[Gelöst] E-Mail bei verpassten Anrufen

Freakhouse

Neuer User
Mitglied seit
22 Mai 2015
Beiträge
50
Punkte für Reaktionen
1
Punkte
8
Ich würde mir gerne im Dialplan einrichten, dass ich per E-Mail über verpasste Anrufe (also alle Anrufe, bei denen der Anrufer aufgelegt hat, bevor jemand den Anruf beantworten konnte) werde. Die Kommandos für den Versand der E-Mail an sich sind bekannt und funktionieren auch bereits. Mir fehlt nun jedoch noch der Befehl für das Auslösen des E-Mail-Versandes bei Auflegen des Anrufers. Die folgende Wählregel versendet daher bei jedem eingehenden Anruf sofort eine E-Mail.

Code:
exten = 012345,1,NoOp(Eingehender Anruf)
exten = 012345,2,System(printf "From: Asterisk <[email protected]>\nTo: <[email protected]>\nSubject: Verpasster Anruf\n\nFolgender Anruf wurde soeben Verpasst:\n\nAnrufer: ${CALLERID(num)}\nUhrzeit: ${STRFTIME(${EPOCH},,%H:%M)} Uhr" | sendmail [email protected])
exten = 012345,3,Dial(SIP/9999)

Was muss ich benutzen, damit ich nur dann eine E-Mail bekomme, wenn der Anrufer auflegt, bevor der Anruf beantwortet wurde?
 
Zuletzt bearbeitet:
DIALSTATUS wird vom Dial gesetzt und kann danach ausgewertet werden. Wenn der Anrufer auflegt, wird der (ursprüngliche) Dialplan aber nicht weiter abgearbeitet. Du musst das ganze in eine h-extension packen.
 
Moin

Interessant.
Beachte die Warnung, dass so ein Handler mit Return() zurückkehren muss.
...dann ist es auch logisch, dass es mehrere geben darf, die nacheinander ausgeführt werden.

Wenn Return() Goto() oder ähnliche Direktive vergessen/weggelassen wird, was macht Asterisk dann?
...ein automatisches Return()? ...sozusagen als Default?

Bei manchen Beispielen ist das so gemacht worden. :gruebel:
 
Zuletzt bearbeitet:
Ich steig da mit dem HangUpHandler gerade voll nicht durch. Könnte mir jemand von euch einen solchen HangUpHandler anhand meines oben geposteten Beispielscode erklären? :noidea:
 
Irgendwie so ähnlich.
Code:
exten => 012345,1,Set(CHANNEL(hangup_handler_push)=email)
 same => n,Dial(SIP/9999)
 same => n,HangUp()

 same => n(email),ExecIf($["${DIALSTATUS}"="ANSWERED"]?Return())
 same => n,System(printf "From: Asterisk <[email protected]>\nTo: <[email protected]>\nSubject: Verpasster Anruf\n\nFolgender Anruf wurde soeben Verpasst:\n\nAnrufer: ${CALLERID(num)}\nUhrzeit: ${STRFTIME(${EPOCH},,%H:%M)} Uhr" | sendmail [email protected])
 same => n,Return()
 
@rentier-s: vielen Dank! Habe den Hangup Handler jetzt mal eingebaut. Das E-Mailen klappt damit wunderbar und lässt sich wie gewünscht steuern.
 
Das ist sehr schön. Magst Du dann bitte den Thread-Titel in "gelöst" ändern, dazu den 1. Beitrag Bearbeiten -> Erweitert.
 
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.