AGI Callerid per Rest

Hallo,

ich versuche die Callerid per Rest Schnittstelle aus einem ERP zu setzen. Leider funktioniert es noch nicht wie gewünscht. Ich hoffe ihr könnt mir helfen

Ich habe unter Scripts ein Neues angelegt.

Bezeichnung: reversesearch_rest
Kontext: macro-pre-main
Einbinden: NEIN


exten => s,1,GotoIf($ ${MDC_DIALDESCENT} = ext ]?ok:nein)
exten => s,2,AGI(asterisk_reversesearch.agi|${CALLERID})
exten => s,3(ok),Set(CALLERID(name)=${name})
exten => s,4(nein),Set(CALLERID(name)=${CALLERID(name)})

asterisk_reversesearch.agi


#!/bin/bash -x
# Curl nicht installiert.
#name=$(curl --silent http://erp1/rest/reverse.php?nummer=$1)
name=$(wget -qO- http://erp1/rest/reverse.php?nummer=$1)
#echo $name
echo 'SET VARIABLE NAME '"\"${name}\""

Danke für eure Hilfe.

Gruss

Flo

Hallo Flo,

über voip-info.org und die Suche nach AGI und Bash bin ich auf das gestossen http://yakko.cs.wmich.edu/~drclaw/asterisk/cidname/ . Da geht es um “Caller ID name lookup AGI that uses NANPA data” hört sich ähnlich an und der setzt am Schluss die Variable etwas anders.

LG
Mathias

Moin Flo,

ich ergänz dann noch curl in der kommenden MobyDick 6.11.00, ab und an braucht man das ja doch mal.

Gruß,

Thomas

Danke Thomas.

Ich hab es lauffähig bekommen.


exten => s,1,GotoIf($ ${MDC_DIALDESCENT} = ext ]?ok:nein)
exten => s,2(ok),AGI(asterisk_reversesearch.agi|${CALLERID(num)})
exten => s,3(ok),Set(CALLERID(name)=${name})
exten => s,4(nein),Set(CALLERID(name)=${CALLERID(name)})

Hier muss noch ein bisschen nachgearbeitet werden, z.B. wenn die Nummer unterdrückt wird kann man sich die Abfrage sparen.


#!/bin/bash
# Umkommentieren falls die vorangestellte 0 nicht gekürzt werden soll.
#number=$1
number=${1:1}
#name=$(curl --silent http://erp1/rest/reverse.php?nummer=$1)
name=$(wget -qO- http://erp1/rest/reverse.php?nummer=$number)
echo 'SET VARIABLE NAME '\"$name\"

Gruss

Flo

Hallo Flo,

schön das es klappt. Mich würde das zeitliche Verhalten noch interessieren.
Bemerkt man die zusätzliche externe Anfrage via AGI während des Callaufbaus?

Gruß,

Thomas

Hallo Flo,

schön das es klappt. Mich würde das zeitliche Verhalten noch interessieren.
Bemerkt man die zusätzliche externe Anfrage via AGI während des Callaufbaus?

Gruß,

Thomas

Hi Thomas,

nein man merkt gar nichts (ERP Server hat LAN Anbindung). Ich dachte auch, dass es eventuell Probleme geben könnte.

Ich habe sogar mit einer Außenstelle (ERP Server in Außenstelle), die per VPN (Latenz 70ms) angeschlossen ist, Tests durchgeführt. Ebenfalls kein Problem. Selbst bei Latenzen zwischen 1000ms ist es nur etwa eine halbe Periode (Zeit zwischen 2 mal Klingeln) Verzögerung. Sollte also verkraftbar sein. Als Sicherheit hab ich noch einen Timeout eingebaut.

Wo es Probleme gab war bei der Reverse Abfrage von www.telefonbuch.de. Dort merkte man es mit etwa 2 zusätzlichen Perioden. Ich hab die Idee daher wieder sterben lassen. Im Moment arbeite an der Einbindung von Klicktel.
Das Mobydick Adressbuch, ERP und Klicktel sollten zusammen eine gute Kombination abgeben.

Hat jemand noch eine Idee, wie man auf die Exchange Kontakte eines Benutzer zugreifen kann. Ich würde gerne jedem Exchange Nutzer eine Mobydick Identität zuordnen und dann bei einem Anruf auf seiner Nebenstelle, seine Kontakte zusätzlich abfragen.

Gruss

Flo

Moin Flo,

hört sich recht ordentlich an. Die Sache mit dem Timeout ist sicherlich eine gute Idee. Hinsichtlich der Exchange Anbindung sind wir auch selber fleißig am ausbauen, bereits die Version 6.12.00 wird hier im Client schon einige Tools mitbringen. Vielleicht hast Du ja noch etwas Geduld :wink:

Gruß,

Thomas