#!/bin/bash # (C)2009 DatuX - Released under GPL # Asterisk test script # Test de instellingen die gemaakt zijn door 01100_asteriskconf uit via de pjsip SIP client en via ssh commandos #dependencys: # -PBX op 192.168.13.1 met sip account 650, password 'test'. nummer 111 moet automatisch antwoorden op deze pbx. # -geluidskaart waarvan output terug gekoppeld staat naar capture input # -geluidskaart moet multichannel zijn (dus meerdere dingen tegelijk afspelen) # -om filmpjes te maken: xvidcap starten met 'aoss xvidcap' source testlib || exit 1 DESCRIPTION1="Sla test over indien we niet de juiste licentieoptie hebben." CMD="cat /etc/webint/REG" VERIFYPOSITIVE='"VAGU"' if ! sshtest; then echo "Dit is geen voiceserver, test overgeslagen" exit 0 fi TIMEOUT=30 ##################################################### Test afdeling ############################# # Tests hieronder toevoegen, gebruik makend van de functies van asterisktestlib info "Basic check: Geen warning en errors in de logs bij herstart met lege logs?"; CMD="svcstop /service/asterisk rm /var/log/asterisk/full svcstart /service/asterisk " sshtest || exit 1 asterisk_errorcheck info "Basic check: Klopt het aantal geladen modules?"; VERIFYPOSITIVE="157 modules loaded" asterisk_cmd "show modules" || exit 1 #verbose mode VERIFYPOSITIVE="Verbosity" asterisk_cmd "set verbose 100" || exit 1 VERIFYPOSITIVE="Core debug" asterisk_cmd "set debug 100" || exit 1 info "Pjsua starten" pjsua_restart ####################################### SIP: registratie sip accounts info "Register user 100 tot 105" for USER in `seq 100 105`; do NOWAIT=1 PASSWD="test" sip_register $USER || exit 1 done ####################################### SIP: basic checks om te zien of het uberhaubt werkt info "Basic check: Bel 100 en hang op" sip_call 100 || exit 1 sip_hangup || exit 1 info "Basic check: bel 100, en beantwoord en hangop" sip_call 101 || exit 1 sip_answer || exit 1 sip_hangup || exit 1 ####################################### SIP: voicemail systeem checken DESCRIPTION1="voorbereiding voicemail test: verwijder alle voicemail zooi 105 van server" CMD="rm -r /var/spool/asterisk/voicemail/default/105" sshtest || exit 1 info "Stel unavailable message in" sip_call '#' || exit 1 sip_waitanswer || exit 1 sip_dtmf "0" || exit 1 sip_dtmf "1" || exit 1 info "Spreek unavailable message in..." sleep 4 makesound sip_dtmf "#" || exit 1 sip_dtmf "1" || exit 1 sip_hangup || exit 1 DESCRIPTION1="unavail nu aanwezig op server?" CMD="ls /var/spool/asterisk/voicemail/default/105" VERIFYPOSITIVE="unavail.wav" sshtest || exit 1 info "Bel 105 en laat bericht achter" sip_call 105 || exit 1 sip_waitanswer || exit 1 sleep 6 info "Spreek bericht in..." makesound makesound sip_dtmf '#' sip_hangup || exit 1 DESCRIPTION1="check op server of we echt voicemail hebben. er moet wel geluid zijn ontvangen, anders drop asterisk het mailtje! " CMD="ls /var/spool/asterisk/voicemail/default/105/INBOX" VERIFYPOSITIVE="wav" sshtest || exit 1 info "Bel voicemail 105, luister het mailtje en maak hem leeg" sip_call '#' || exit 1 sip_waitanswer || exit 1 sip_dtmf "1" || exit 1 sleep 3 sip_dtmf "7" || exit 1 sip_hangup || exit 1 DESCRIPTION1="is voicemail box echt leeg?" CMD="ls /var/spool/asterisk/voicemail/default/105/INBOX" VERIFYNEGATIVE="wav" sshtest || exit 1 ####################################### SIP: follow me info "Followme testen" #extentie 111 draait op de datux centrale en moet meteen opnemen. (staat nu op 'directory service' insgesteld') sip_call 103 || exit 1 #wacht todat de incomende call op 103 stop. vanaf dat moment word followme actief: sip_waithangup || exit 1 sleep 2 VERIFYPOSITIVE=" FollowMe" asterisk_cmd "show channels" || exit 1 sip_hangup || exit 1 ####################################### SIP: voip trunk info "Voip trunk testen" #extentie 111 draait op de datux centrale en moet meteen opnemen. (staat nu op 'directory service' insgesteld') sip_call 111 || exit 1 sip_waitanswer || exit 1 sip_hangup || exit 1 ####################################### SIP: voice menu info "Voicemenu testen (menu 600 geeft piep en schakeld door naar 100)" sip_call 600 || exit 1 sip_waitanswer || exit 1 sip_answer || exit 1 sip_hangup || exit 1 ####################################### SIP: call queue DESCRIPTION1="niet ingelogd op queue?" VERIFYPOSITIVE="Agent/105.*(Invalid|has taken no calls yet)" asterisk_cmd "show queue" || exit 1 info "Login op via extentie 1000" sip_call 1000 || exit 1 sip_waitanswer || exit 1 sip_dtmf '105#' || exit 1 sleep 2 DESCRIPTION1="wel ingelogd op queue?" VERIFYPOSITIVE="Agent/105.*Not in use" asterisk_cmd "show queue" || exit 1 info "Bel naar queue" sip_call 800 || exit 1 sip_waitanswer || exit 1 DESCRIPTION1="agent is nu busy?" VERIFYPOSITIVE="Agent/105.*Busy" asterisk_cmd "show queue" || exit 1 makesound sip_hangup || exit 1 DESCRIPTION1="niet ingelogd op queue?" VERIFYPOSITIVE="Agent/105.*Unavailable.*last was" asterisk_cmd "show queue" || exit 1 ###################################### SIP: meet me #asterisk 1.4.23.2 segfault hier op! #1.4.22.2 doet het wel. sip_call 500 || exit 1 sip_waitanswer || exit 1 sleep 2 makesound sip_dtmf '#' || exit 1 sip_call 500 || exit 1 sip_waitanswer || exit 1 sleep 2 makesound sip_dtmf '#' || exit 1 info "Conference is now active.." makesound VERIFYPOSITIVE="2 users in that conference" asterisk_cmd "meetme list 500" sip_hangup || exit 1 ####################################### SIP: call transfer en music on hold testen info "bel 100, en transfer naar 101" sip_call 100 || exit 1 sip_answer || exit 1 sip_transfer 101 || exit 1 sip_answer || exit 1 sip_hangup || exit 1 info "bel 100, en beantwoord en zet in hold" sip_call 100 || exit 1 sip_answer || exit 1 sip_hold || exit 1 sleep 2 info "Lijkt de music on hold het te doen?" CMD="lsof /var/lib/asterisk/moh/*" VERIFYPOSITIVE="wav" sshtest || exit 1 info "Unhold en hang op" sip_unhold || exit 1 sip_hangup || exit 1 ####################################### SIP: ring groups info "Test ringgroups " sip_call 700 || exit 1 VERIFYPOSITIVE="4 active channels" asterisk_cmd "show channels" || exit 1 sip_hangup || exit 1 VERIFYPOSITIVE="0 active channels" asterisk_cmd "show channels" || exit 1 #laatste fout-controle na alle tests: asterisk_errorcheck info "Regression test completed successfully"