Hier nochmal eine Zusammenfassung, was ich eingestellt habe damit eingehende und ausgehende Anrufe mit meiner CRM-Datenbank abgeglichen werden:
Als erstes habe ich folgende 2 Skripte in der pascom unter Erweitert > Skripte
erstellt:
Skript 1
Bezeichnung: phonebook_in
Kontext: phonebook_in
Einbinden: NEIN
Skriptinhalt:
exten => s,1,Verbose(phonebook_in)
# perform search only if name is not set
same => n,GotoIf($[ "${CALLERID(name)}" != "${CALLERID(num):1}" ]?skip)
# invoke CURL
same => n,Set(CURL_CALLER_ID=${CURL(http://server/pascom_crm.php?callnum=${MDC_CALLER_NUM_INTERNAT})})
# set variable CURL_CALLER_ID if matching result is found
same => n,ExecIf($[ "${CURL_CALLER_ID}" != "" ]?Verbose(1,"${CURL_CALLER_ID}")
same => n,ExecIf($[ "${CURL_CALLER_ID}" != "" ]?Set(MDC_RESOLVENAME_HITS=1))
same => n,ExecIf($[ "${CURL_CALLER_ID}" != "" ]?Set(__MDC_DIALCALLERNAME=${CURL_CALLER_ID}))
same => n,ExecIf($[ "${CURL_CALLER_ID}" != "" ]?Set(CALLERID(name)=${CURL_CALLER_ID}))
same => n,Return()
same => n(skip),Return()
Skript 2
Bezeichnung: phonebook_out
Kontext: sub_pre-main
Einbinden: AUSGEHEND
Skriptinhalt:
exten => s,1,Verbose(phonebook_out)
# invoke CURL
same => n,Set(CURL_CALLEE_ID=${CURL(http://server/pascom_crm.php?callnum=${MDC_CALLEE_NUM:1})})
# set variable CURL_CALLEE_ID if matching result is found
same => n,ExecIf($[ "${CURL_CALLEE_ID}" != "" ]?Verbose(1,"${CURL_CALLEE_ID}")
same => n,ExecIf($[ "${CURL_CALLEE_ID}" != "" ]?Set(MDC_RESOLVENAME_HITS=1))
same => n,ExecIf($[ "${CURL_CALLEE_ID}" != "" ]?Set(MDC_DIALCALLEENAME=${CURL_CALLEE_ID}))
same => n,Return()
Skript 1 habe ich dann jedem Benutzer unter Extern/Vorher
zugeordnet.
Hier noch ein Beispiel für ein PHP-Skript um eine MSSQL-Datenbank abzufragen:
pascom_crm.php (966 Bytes)
Das Skript führe ich auf einem Ubuntu 16.04 Server aus.
Für den Zugriff auf die MSSQL-Datenbank unter PHP muss noch das Paket php-sybase
installiert werden.
Abschließend muss noch in der /etc/freetds/freetds.conf
ein Eintrag für den MSSQL-Server hinterlegt werden.
Folgende Einstellungen habe ich benutzt:
[mssqlLocal]
host = localhost
port = 1433
tds version = 7.2
client charset = UTF-8
@Stefan would you keep that configuration or is there a better solution?
If I put both scripts in sub_pre-main then script 2 isn’t working anymore. I thought it would work if I change the field integrate
for script 1 to BEFORE
and for script 2 to OUTGOING
but it doesn’t matter. It would be nice if I didn’t have to assign the script phonebook_in to every user and it would be executed automatically when an incoming call is received.
Edit 19.01.2018 15:58: pascom_crm.php aktualisiert
Edit 01.03.2018 11:27: Formatierung angepasst