Hallo,
ich würde gerne immer eine E-Mail bekommen, wenn ich einen Anruf verpasst habe. Ist dies möglich? Danke
Hallo,
ich würde gerne immer eine E-Mail bekommen, wenn ich einen Anruf verpasst habe. Ist dies möglich? Danke
hat keiner eine Idee? Mir wäre das sehr wichtig. Da ich so selten im Büro bin. Oder geht das vielleicht sogar schon mit Bordmitteln?
ich habe im Internet folgendes gefunden:
In der extensions.conf folgendes eintragen:
exten => 12345,1,System(echo “${DATETIME}: ${CALLERID} wollte was von dir.” | nail -s Anrufbenachrichtigung Meier.Kurt@myhost.de -)
Kann ich das einfach abändern? oder muss ich das über die GUI machen?
Guten Morgen,
du könntest bei den Benutzers als Aktion nachher mit dem Rufstatus keine Antwort (oder wie es für dich passend ist) auf ein Skript verweisen, was genau das tut.
Sprich du legst dir zuerst unter Erweitert->Skripte ein Skript (ohne Durchwahl) an, dort kannst du dann mit der s als Extension arbeiten und deinen oben genannten System-Call einbinden. Diese Skript bindest du dann als Aktion bei deinen Benutzern ein und verweist auf die verwendete Extension.
Du solltest noch zuvor deinen Mail-Server unter den Diensten konfiguriert haben.
Grüße
Markus
Guten Morgen Markus,
wenn man in der Aktion “nachher” auf das Skript verweist wird es nur ausgeführt wenn das Timeout erreicht wird, wenn aber der Anrufer vorher auflegt dann scheint der Anruf zwar im MD Client als verpasst auf aber das Skript wurde natürlich nicht ausgeführt.
Wie könnte man dies lösen? Praktischer wäre so eine Funktion dass der Benutzer selbst im Client eine eMail Benachrichtigung setzen könnte.
Danke!
Gruß
Mirko
Guten Morgen,
du könntest für den Fall, dass der Anrufer auflegt, den Einstiegspunkt im Hangup-Skript def_hangup (siehe Erweitert->Skripte) nutzen. Über die App DumpChan kannst du dir alle Variablen ausgeben lassen. Wenn du über die Systemeinstellung sys.asterisk.configure.extensions.dialoptions um g erweiterst, wird die Variable MDC_CALLEE_HANGUP gesetzt.
Darauf könntest du prüfen und dann deine Email verschicken.
Gruß
Markus
Guten Morgen,
danke für den Tipp ich werde es versuchen umzusetzen.
Gruß
Mirko
Hallo gumpix,
habe hier was fertig, was dir vielleicht hilft. In diesem Skript (Einstieg über die Hangup-Extension) wird die Mail immer ausgelöst wenn der Anruf beendet und vorher nicht beantwortet worden ist (voicemailboxen, Ansagen etc. sind also nicht abgedeckt). Die E-Mail wird über die Rest-Schnittstelle vom User ausgelesen und an den User versendet der ursprünglich angerufen wurde.
Skript def_hangup
exten => s,1,NoOp(Hangup Macro)
exten => s,n,GosubIf($ “${DIALSTATUS}”!=“ANSWER” ]?custom-missed,s,1)
exten => s,n,NoOp(>>>def_hangup:: EXTEN: ${ARG1} DIALSTATUS: ${ARG2} QUEUESTATUS: ${ARG3} REASON: ${ARG4})
Skript custom-missed
exten => s,1,NoOp(--------->> CHECK CALLEENUM: ${MDC_DIALCALLEENUM} <<--------)
; specify extensions here
same => n,GotoIf($ “${MDC_DIALCALLEENUM}” = “23” ]?getmail,1)
same => n,GotoIf($ “${MDC_DIALCALLEENUM}” = “42” ]?getmail,1)
same => n,Return()
exten => getmail,1,NoOp(GET MAIL)
same => n,Set(TEMP_EXTEN=${MDC_DIALCALLEENUM})
same => n,Set(mail=${SHELL(/etc/admin/getmail.py ${MDC_CALLER_NUM})})
same => n,NoOp( ----> ${mail})
same => n,GotoIf($ “${MAIL}” = “NONE” ]?hangup,1)
same => n,GotoIf($ “${MAIL}” != “” ]?mail,1)
same => n,Return()
exten => mail,1,NoOp(SCHREIBE EMAIL AN: ${MAIL})
same => n,GoSub(clearname,1)
same => n,system(echo “” | mail -s “Mobydick: Verpasster Anruf von ${CALLERID(num)} ${CALLERID(name)} um ${STRFTIME(${EPOCH},%Y-%m-%d %H:%M:%S)}” ${MAIL})
same => n,Return()
exten => clearname,1,NoOp(CLEAR CID-NAME)
same => n,GotoIf($ “${CALLERID(name):0:1}” != “0” ]?return)
same => n,Set(CALLERID(name)=unbekannt)
same => n(return),Return()
python skript für E-Mail Adressenermittlung in diesem Beispiel unter /etc/admin/getmail.py
#!/usr/bin/python
import urllib2
import json
import sys
user = ‘moybdickcmd’
password = ‘mobydick’
url = ‘http://127.0.0.1/services/voicemailbox/’ + sys.argv[1]
password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(
None, url, user, password
)
auth_handler = urllib2.HTTPBasicAuthHandler(password_manager)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
data = json.loads(urllib2.urlopen(url).read())
print data’016voi_email’]
Hallo Tom,
großartiges Skript, vielen herzlichen Dank!
Ich mußte aber eine Zeile abändern:
von
same => n,Set(mail=${SHELL(/etc/admin/getmail.py ${MDC_CALLER_NUM})})
nach
same => n,Set(mail=${SHELL(/etc/admin/getmail.py ${MDC_DIALCALLEENUM})})
MDC_CALLER_NUM ist bei mir leer.
Wozu ist diese Zeile?
same => n,Set(TEMP_EXTEN=${MDC_DIALCALLEENUM})
Vielen Dank nochmal!
Gruß
Mirko
Ok, cool.
same => n,Set(mail=${SHELL(/etc/admin/getmail.py ${MDC_CALLER_NUM})})
nach
same => n,Set(mail=${SHELL(/etc/admin/getmail.py ${MDC_DIALCALLEENUM})})
Kann gut sein, dass sich hier noch alte Variablen eingeschlichen haben, habe ich jetzt nicht im Kopf
Wozu ist diese Zeile?
same => n,Set(TEMP_EXTEN=${MDC_DIALCALLEENUM})
Hm… ist an dieser Stelle tatsächlich sinnlos kannst du einfach rausnehmen.
Hallo Tom,
das Skript funktioniert perfekt!
Vielen Dank!!!
cu
Christoph
Hallo Tom,
irgendwas ist ja immer… :rolleyes:
Nachdem die eMailbenachrichtigung bei direkten Anrufen auf die im Skript eingetragenen Nebenstellen richtig gut funktioniert, haben wir versucht, das auch für eine Team- Nebenstelle einzurichten. Das funktioniert leider nicht. Nach Beendigung eines erfolgreich geführten Telefonates wird eine Verpasst- eMail gesendet mit der Nummer des Anrufers, also so, als wäre der Anruf verpasst.
Mit einem Blick in die CLI wird auch schnell klar warum. Die Durchwahl der Teamnebenstelle erhält nach Beendigung den Dialstatus ““ womit ist die Bedingung “!ANSWER“ erfüllt ist und die eMail geht raus.
Da die CLI ausgibt, welche Nebenstelle das Gespräch angenommen hat, habe ich versucht, das Skript entsprechend anzupassen, bin gescheitert weil ich nix Ahnung
Hast Du einen Tipp für mich…?
Vielen Dank!
cu
Christoph
Hi Christoph,
bei Teams sieht das ganze deutlich anders aus, die Queue Applikation ist in sich geschlossen und man kann deshalb nicht ohne weiteres sagen ob der Anruf in der Queue beantwortet worden ist oder nicht.
Man könnte eine Abfrage gestalten wenn die Queue auf ‘Freizeichen’ statt ‘Musik’ steht, dann wäre bekannt das der Anruf sich zuletzt in der Queue befunden hat und noch von niemanden (auch nicht Musik oder Ansage) beantwortet wurde. Wäre das bei dir der Fall?
Tom
Hallo Tom,
vielen Dank für Deine Antwort!
Genau so wie Du es beschreibst, ist es bei uns der Fall. Die Queues stehen alle auf Freizeichen.
cu
Christoph
In dem Fall kannst du in der hangup extension prüfen ob der Kanal zum einen von deiner Queue kommt und zum anderen bislang unbeantwortet ist. So in der Art (für queue 5000):
exten => s,n,Set(chanstate=${CHANNEL(state)})
exten => s,n,GoToIf($ “${MDC_EXTEN}” = “5000” & “${CHANSTATE}” = “Ring” ]?custom-missed,s,1)
Ich habe das ganze Skript inkl. dem queue Check auch mal hier zur Verfügung gestellt
Hallo Tom,
vielen Dank für Dein Antwort und das Skript.
Werde es bei Gelegenheit testen und dann berichten.
cu
Christoph
Hallo,
ich weiß das Thema hängt hier schon ein weilchen - bei uns gab es die gleiche Anforderung und ich war froh dafür ein fertiges Script gefunden zu haben - ich hatte es bei unserem alten Asterisk ähnlich gelöst. Aber bei weitem nicht so komfortabel
Mir ist nur noch eine Sache aufgefallen an der ich gerade rumgrüble…
Bei uns haben manche User mehere Telefone - soll vorkommen - und eben diese User bekommen dann pro Telefon eine Emailbenachrichtigung. Auch wenn ein Telefon ran geht kommt für die beiden anderen in diesem Moment die Meldung, dass der Anruf verpasst wurde. Hab ich das nur an einer falschen Stelle eingeklinkt - oder ist das tatsächlich ein “Design”-Problem?
MfGrüßle,
Jesko
Hallo Jesko,
das ist mal eine gute Gelegenheit, wie versprochen, zu berichten.
Wir haben die Skripte seit einigen Wochen bei uns selbst und bei Kunden im Einsatz - und sie funktionieren perfekt.
An dieser Steller nochmals vielen DANK an TOM!!!
Ich selbst habe an meinem Benutzer auf unserer eigenen Anlage 4 Telefone hängen, (Telefone kann man nie genug haben )
kann aber nicht bestätigen, dass es eine eMail (verpasster Anruf) für einen beantworten Anruf gibt, egal an welchem Telefon
ich das Gespräch entgegen nehme. Ebenfalls egal ist auch, ob ein Anruf direkt auf meine Duchwahl kommt oder mich über
eine Warteschlange erreicht.
Wenn Du eine eMail nach erfolgr. beantwortetem Anruf erhälst, dann trifft die Bedingung ${CHANSTATE}" = “Ring” bzw. ${DIALSTATUS}"!=“ANSWER” in Deiner Konfig nicht zu.
Hast Du schon mal in der CLI nachgeschaut wie der entsprechende Status nach Beendigung eines Telefonats ist?
Ich stelle Dir mal ein Teil von unserem def_hangup Skript ein. Dann kannst Du mal mit Deinem vergleichen…
exten => s,1,NoOp(Hangup Macro)
exten => s,n,Set(chanstate=${CHANNEL(state)})
; Teams (Warteschlangen)
exten => s,n,GoToIf($ "${MDC_EXTEN}" = "93" & "${CHANSTATE}" = "Ring" ]?custom-missed,s,1)
; Benutzer (direkte DW)
;DW Christoph
exten => s,n,GoToIf($ "${MDC_EXTEN}" = "32" & "${DIALSTATUS}"!="ANSWER" ]?custom-missed,s,1)
exten => s,n,NoOp(>>>def_hangup:: EXTEN: ${ARG1} DIALSTATUS: ${ARG2} QUEUESTATUS: ${ARG3} REASON: ${ARG4})
cu
Christoph
Hallo Tom,
kannst Du mir das noch genauer erklären, wie ich wo was eintragen muss?
Und wie genau die Reihenfolge beim Abwerfen ist
Bin noch nicht wirklich drinnen in der Materie, würde das “Feature” aber gerne nutzen!
Habe eine MobyDick mit v7.11.1 und Nutzer mit Dreistelliger Durchwahl.
Vielen Dank im vorraus
Danke, habs gelöst.
Jedoch habe ich auch das Problem, dass wenn der CALL an eine Rufgruppe geht, alle eine Mail erhalten auch wenn einer in der Gruppe das Gespräch abgenommen hat.
Vielleicht findet sich da ja noch eine Lösung.
Gruß
Linuxuser