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’]