Asterisk Datenbank mit 5000 Eintraegen fuellen ?

adoII

Neuer User
Mitglied seit
7 Feb 2006
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Hi,
ich moechte meine Callerids aus der Warenwirtschaft in die asterisk-db importieren, damit mir im Display der SIP-Telefone die Anrufernamen angezeigt werden.

Wenn ich aber nun mit einem Shell-Script 4000 mal hintereinander mache:
database put callerids nummer name dann hab ich nachher nur 600 Eintraege in der Asterisk DB. Asterisk scheint einfach nicht so schnell, so eine Menge Kommandos verarbeiten zu koennen.

Hat jemand ne Idee wie man die asterisk-db bulkmaessig mit so grossen Datenmengen fuellen kann ? Ich koennte zwar ne SQL-Datenbank nehmen aber das will ich nicht, ich koennte auch 4000 mal einen sleep machen, will ich aber auch nicht. Ich such was vernuenftiges, so ne Art dbput Utility fuer db1-datenbanken. Den vorherigen "database deltree callerids" kann man ja mit asterisk -rx absetzen, das ist ja nur 1 Zeile.

db1 ist aber andererseits inzwischen ziemlich alt, die letzten db1.8.5 Sourcen von Berkeley lassen sich auf nem aktuellen Linux schon gar nicht mehr kompilieren, ich hoffte da waere vielleicht ein utility dabei..

Ein perl DB_File Modul fuer berkeley1 hab ich mir auch schon gebaut aber da fehlt mir jetzt das db-know how um datensaetze zu schreiben.

Bin fuer jede Idee dankbar.
 
Hi,
warum willst Du die ganzen Daten ins Asterisk stopfen? Würde es nicht reichen, erst beim eingehenden Anruf per AGI die Daten abzuholen?

Hat den Vorteil dass Du die Daten nur einmal in der Warenwirtschaft vorhalten musst.
 
Das würde mich auch interessieren. Habe das gleiche Problem. Der Asterisk soll schön seine CallerIDs anzeigen, auch wenn alle Netzwerkverbindungen zu anderen MySQL Datenbanken unterbrochen sind...

mfg Guard-X
 
Code:
database put cidname $name
funktioniert bei mir hier prima. Das nicht alle daten bei "database show" angezeigt werden, ist bei mir ebenso, allerdings funktioniert es dennoch.
Über eine etwas sauberere Lösung wäre ich allerdings auch froh.
 
sterkel schrieb:
Hi,
warum willst Du die ganzen Daten ins Asterisk stopfen? Würde es nicht reichen, erst beim eingehenden Anruf per AGI die Daten abzuholen?

Das ist wohl die einzig sinnvolle Lösung.

Ich denke nicht das die Asterisk-db für derartige Vorhaben gedacht war.
 
Ok, ich seh es ein und werde auf die astdb verzichten. Obwohl db1 verdamt schnell ist und im Prinzip gerade fuer grosse Datenmengen geeignet ist.

Ich hab aber in der Asteriskdb noch ein k.o.-kriterium gefunden, die Datenbank scheint in der Groesse beschraenkt, ich kann da zwar tausende saetze reinschreiben aber die sind nachher nicht da. Das File /var/lib/asterisk/astdb wird nie groesser als 20480 Bytes.
 
adoII schrieb:
Ok, ich seh es ein und werde auf die astdb verzichten. Obwohl db1 verdamt schnell ist und im Prinzip gerade fuer grosse Datenmengen geeignet ist.

Ich hab aber in der Asteriskdb noch ein k.o.-kriterium gefunden, die Datenbank scheint in der Groesse beschraenkt, ich kann da zwar tausende saetze reinschreiben aber die sind nachher nicht da. Das File /var/lib/asterisk/astdb wird nie groesser als 20480 Bytes.

Code:
root root 217088 2007-01-10 13:44 /var/lib/asterisk/astdb

irgendwas scheint da bei mir anders zu sein :)
 
du hast recht, die socket-kommunikation ist irgendwie magic und da gehen daten verloren wenn man etwa mit socat da was reinballert.
Ich hab jetzt meine Loesung gefunden und nehme doch die astdb und fuelle die mit dem asterisk manager interface. Das geht flott und verlustfrei.
Code:
#!/usr/bin/perl

use Asterisk::Manager;

my $astman = new Asterisk::Manager;

$astman->user('admin');
$astman->secret(bla');
$astman->host('localhost');
$astman->connect || die "Could not connect to " . $astman->host . "!\n";
foreach $num(1..5000) {
  $astman->command("database put callerids willi$num $num");
}

$astman->disconnect;
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.