Unittests

divB

Mitglied
Mitglied seit
14 Jul 2006
Beiträge
324
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich erstelle gerade eine Scriptsammlung die Schritt für Schritt das ganze System, vorwiegend Asterisk testen soll, ob wohl alles richtig läuft.

Bis jetzt kontrolliere ich ob alle Treiber geladen sind (capi/fcpci, zaphfc, ..) und richtig konfiguriert sind, ob Asterisk gestartet ist, alle Module geladen sind und sonst alles passt.

Schließlich will ich noch Testanrufe machen. Von extern werde ich dann Jajah verwenden (versuchen).

Für intern mag ich jede Nebenstelle kurz anrufen und einmal bimmeln lassen und dann (natürlich script-automatisiert) schauen, ob alles seinen Lauf geht.

Das erste Problem hab ich beim Callfile. Wie muss das Callfile aussehen wenn ich ganz einfach die Nebenstelle "sip1" anrufen will? Vom Asterisk aus? Irgendwie hab ich jetzt bei "Channel" und "Extension" das gleiche stehn. Ist das ein Problem?

Bis jetzt siehts so aus:

Code:
cat > $callfile <<EOF
Channel: SIP/sip1
CallerID: Testanruf <12345>
MaxRetries: 0
WaitTime: 1
Extension: sip1
EOF

chown asterisk.root $callfile
chmod 600 $callfile
mv $callfile /var/spool/asterisk/outgoing


Das zweite Problem betrifft das automatisierte Auffangen der Ergebnisse. Die Logdateien in /var/log/asterisk geben zu wenig Infos her.

Also würde ich gerne zuerst ein 'asterisk -r' im Hintergrund machen mit hoch gesetztem verbose und debug level, dann das Callfile erstellen und abschicken und nach ein paar Sekunden 'asterisk -r' wieder beenden und die Ausgaben parsen. Da müsste dann genug Info sein.

Ich versuche das zur Zeit so:

Code:
#!/bin/bash

logfile=`tempfile`
pidfile=`tempfile`
callfile=`tempfile`

echo -n "Testanruf Nebenstelle: "
asterisk -r > $logfile &

echo $! > $pidfile

disown

cat > $callfile <<EOF
Channel: SIP/sip1
CallerID: Testanruf <12345>
MaxRetries: 0
WaitTime: 1
Extension: sip1
EOF

chown asterisk.root $callfile
chmod 600 $callfile
mv $callfile /var/spool/asterisk/outgoing

sleep 2

kill -SIGTERM `cat "$pidfile"`
rm -f "$pidfile"

if grep 'success oder andere meldungen' $logfile
then
# ok
else
#failed
fi

rm $logfile

Das Problem ist allerdings, dass Asterisk dann glaubt, es wird ununterbrochen die Enter-Taste gedrückt.
Bereits nach 1 Sekunde ist die "Logdatei" einige hundert KB groß mit folgendem Inhalt:

Code:
*CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> *CLI> 
unsw

Weiss jemand einen Ausweg oder eine bessere Idee?

Bzw. gibts schon Scripts zum Testen seiner Asteriskconfig?


Vielen Dank,
divB
 
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.