Skript default009 / def-hangup /Shell-Script nach Gesprächsende


#1

Hallo, wir wollen nach Gesprächsende Daten wie Anrufernummer, Dauer etc. in unserem Chatprogramm Mattermost anzeigen lassen und haben dazu ein Shell-Script gebaut.
Wenn ich es bei einem Team extern/vorher bei einem Inline Script einbaue funktioniert es schonmal und in Mattermost erscheinen bei einem Anruf Daten…

Ausdruck des Inline Scripts:
system(/etc/admin/bin/mattermost.sh ${MDC_DIALCALLERNUM} “Groups” “TRUE”)
Zeigt nur die Anrufernummer an, der Rest erst mal statisch zum Test…

Da wir die Gesprächsdauer wollen und auch den Namen/Nummer des angerufenen, habe ich versucht das Skript default009 zu ändern:
exten => s,1,NoOp(>>>def_hangup:: EXTEN: ${ARG1} DIALSTATUS: ${ARG2} QUEUESTATUS: ${ARG3} REASON: ${ARG4})
exten => h,n, system(/etc/admin/bin/mattermost.sh ${MDC_DIALCALLERNUM} “Groups” “TRUE”)

Leider passiert überhaupt nichts…Hat jemand eine Idee, was ich falsch mache?

Vielen lieben Dank, für jeden Hinweis!

Viele Grüße
Steffen


#2

Hallo Steffen,

die h Hangup extension wird glaube ich im def_hangup nicht (oder nicht mehr, zugegebenermaßen habe ich desem “Eck” des Dialplans noch nie viel beachtung geschenkt) aufgerufen, und selbst wenn, hast du hier keine Priorität 1 (h,1).
Wenn du es mit
exten => s,n, system(/etc/admin/bin/mattermost.sh ${MDC_DIALCALLERNUM} “Groups” “TRUE”)
versuchst (nächste Prio im “s” Kontext), klappt es dann?

Grüße,
Steve


#3

Supi vielen Dank, ich bin schon selber darauf gekommen, pardon vielmals!

Hatte es so gemacht und funzt perfekt:

exten => s,2,system(/etc/admin/bin/mattermost.sh ${MDC_DIALCALLERNUM} ${MDC_DIALCALLEENUM})

Eine kleine Sache noch:
Gibt es eine Möglichkeit im default009 auch die Gesprächsdauer an unser shell-script zu schicken??
Und kann man irgendwie unterscheiden, ob ein Gespräch erfolgreich angenommen wurde oder nicht (true/false)??

Muchas gracias für jede Hilfe!

Un saludo - Steffen


#4

Hi,

versuche aktuell das gleiche allerdings ohne erfolg… es kommt einfach nichts im mattermost an… Mein script wird ausgeführt laut asterisk cli…

ich vermute das hier irgendwo der fehler liegt: ?

#!/bin/sh

ARGVN="$@"

curl -k
-d token=secret
-d callerdata=""
http://12345.firma.eu/hooks/dqnbqa85hbrpxc3eypae4n6ada

hoock von zammad nach mattermost funktionieren tadellos…

über einen tip würde ich mich freuen.

grüsse


#5

Hallo @Peter.Heinen,

ist das Script auch von der Dateiberechtigung her für den Asterisk ausführbar (chmod +x)? Ggf benötigst du auch den kompletten Pfad zum curl, damit der Auruf via Script funktioniert. Bezüglich Mattermost selbst habe ich leider keine Kenntnisse.

Grüße,
Steve


#6

Hallo Peter,

bei mir funktioniert alles außer “Duration” und “Result”:

.sh File:

#!/bin/sh

endpoint=https://chat.sunbonoo.com:8065/hooks/uncmiwrncpn85djaykheaeisnw
from=$1
to=$2
duration=$4
sunbonoo_number=$5
nameofcalled=$6
if [ “$3” = “TRUE” ]
then
success=":white_check_mark:"
else
success=":warning:"
fi
text="

From To Result Duration sunbonoo Number Name of caller
$1 $2 $success $4 $5 $6

"
payload=$(jq -n --arg text “$text” ‘{“text”: $text}’)
#echo $payload >> test.txt
curl -i -k -X POST -H “Content-Type: application/json” -d “$payload” “$endpoint”

Default009:
exten => s,1,NoOp(>>>def_hangup:: EXTEN: ${ARG1} DIALSTATUS: ${ARG2} QUEUESTATUS: ${ARG3} REASON: ${ARG4})
exten => s,2,system(/etc/admin/bin/mattermost.sh ${MDC_DIALCALLERNUM} ${MDC_DIALCALLEENUM} “TRUE” “0:41” ${MDC_CALLEE_NUM_TRUNK} ${MDC_CALLEE_ACC_REALNAME})


#7

Hi Steffen,

soll Duration die Dauer des Gespräches sein? Wenn ja benutze die Variable ${ANSWEREDTIME}.

Für den den Status ${DIALSTATUS}

So funktioniert es bei uns.

Gruss

Flo