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

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

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

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

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

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

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})

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