Asterisk - Shell-Script bei Anruf möglich?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
mase76
Beiträge: 1353
Registriert: 19.06.2004 08:57:32

Asterisk - Shell-Script bei Anruf möglich?

Beitrag von mase76 » 19.06.2007 21:02:31

Hallo!
Ist es irgendwie möglich, von Asterisk bei einem Anruf ein
Shell-Script ausführen zu lassen? Am besten soll noch als
Argument die Nummer des Anrufers mitgegeben werden.

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 21.06.2007 09:00:31

Jo. Mach ich auch .

Dafür eignet sich der System Aufruf :

BSP bei mir im Einsatz :

Code: Alles auswählen

        exten => 1234,1,Ringing
        exten => 1234,2,Wait(2)
        exten => 1234,3,PrivacyManager()
        exten => 1234,4,Set(CALLFILENAME=${TIMESTAMP}-${CALLERIDNUM}-${EXTEN})
        exten => 1234,5,Monitor(wav,${CALLFILENAME},m)
        exten => 1234,6,System('/usr/bin/tellvdr -d 192.168.111.99 MESG Anruf von: ${CALLERIDNUM} &')
        exten => 1234,7,System('echo ANFRUF von: ${CALLERIDNUM} | smbclient -M alumbrados -U Telefonanlage &') ;net send
        exten => 1234,8,System('/usr/bin/sms 017********** ANFRUF von: ${CALLERIDNUM} bekommen. &')
        exten => 1234,9,Dial(Zap/g1/${EXTEN},20,tT)
        exten => 1234,10,Playback(/var/lib/asterisk/sounds/custom/ansage55)
        exten => 1234,11,Voicemail(1234)
        exten => 1234,113,Playback(im-sorry)
        exten => 1234,114,Playback(vm-goodbye)
        exten => 1234,115,Hangup
        exten => 1234,12,Hangup

TIPP: Ich würde immer ein & hinter den Befehl setzen, so das asterisk nicht auf den exit Status warten muss.


Gruss Chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

mase76
Beiträge: 1353
Registriert: 19.06.2004 08:57:32

Beitrag von mase76 » 22.06.2007 23:07:28

Danke!
Dein Tip war schon mal ganz gut.
Nur war es so, dass die Meldung nur 1x für 2 Sekunden kam.
Jetzt hab ich's so gelöst, dass die Meldung quasi blinkt, so lange der Ruf dauert,
die Mailbox ran geht, oder der Anruf angenommen wird.
Das aufgerufene Script beinhaltet eine Endlosschleife mit der svdrp Message,
und wird dann einfach gekillt.
Ist vielleicht nicht so ganz elegant, aber es funktioniert.
/etc/asterisk/extensions.conf:

Code: Alles auswählen

[capi-in]
exten => 1234,1,system('/usr/local/bin/vdrphone.sh ${CALLERIDNUM} &')
exten => 1234,2,dial,SIP/10&IAX2/20|30|r
exten => 1234,3,goto,r-${DIALSTATUS}|1
exten => r-BUSY,1,voicemail,b10
exten => r-BUSY,2,hangup
exten => r-NOANSWER,1,system('/usr/bin/killall -9 vdrphone.sh &')
exten => r-NOANSWER,2,voicemail,u10
exten => r-NOANSWER,3,hangup
exten => h,1,system('/usr/bin/killall -9 vdrphone.sh &')
/usr/local/bin/vdrphone.sh:

Code: Alles auswählen

#!/bin/sh

while true
do svdrpsend.pl MESG Anruf $1
sleep 3
done

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Beitrag von chroiss » 25.06.2007 13:08:20

Naja , das mit der "svdrp Message"

kannst Du ja selber im Menü am TV einstellen , dass die n bischen länger stehen bleiben.
Bei mir 15 Sekunden glaube ich . Und bis dahin hat nun wirklich jeder gelesen,
wer gerade anruft.

PS:

Das ja'n Zufall, das Du gerade auch nach ner VDR Lösung gesucht hast . ;-)

Gruss CHROISS !
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Antworten