E-Mail Benachrichtigung bei verpasstem Anruf?

In dem Fall kannst du in der hangup extension prüfen ob der Kanal zum einen von deiner Queue kommt und zum anderen bislang unbeantwortet ist. So in der Art (für queue 5000):

exten => s,n,Set(chanstate=${CHANNEL(state)})
exten => s,n,GoToIf($ “${MDC_EXTEN}” = “5000” & “${CHANSTATE}” = “Ring” ]?custom-missed,s,1)

Ich habe das ganze Skript inkl. dem queue Check auch mal hier zur Verfügung gestellt

Hallo Tom,

vielen Dank für Dein Antwort und das Skript.
Werde es bei Gelegenheit testen und dann berichten.

cu
Christoph

Hallo,

ich weiß das Thema hängt hier schon ein weilchen - bei uns gab es die gleiche Anforderung und ich war froh dafür ein fertiges Script gefunden zu haben - ich hatte es bei unserem alten Asterisk ähnlich gelöst. Aber bei weitem nicht so komfortabel :slight_smile:

Mir ist nur noch eine Sache aufgefallen an der ich gerade rumgrüble…

Bei uns haben manche User mehere Telefone - soll vorkommen :wink: - und eben diese User bekommen dann pro Telefon eine Emailbenachrichtigung. Auch wenn ein Telefon ran geht kommt für die beiden anderen in diesem Moment die Meldung, dass der Anruf verpasst wurde. Hab ich das nur an einer falschen Stelle eingeklinkt - oder ist das tatsächlich ein “Design”-Problem?

MfGrüßle,
Jesko

Hallo Jesko,

das ist mal eine gute Gelegenheit, wie versprochen, zu berichten.
Wir haben die Skripte seit einigen Wochen bei uns selbst und bei Kunden im Einsatz - und sie funktionieren perfekt.
An dieser Steller nochmals vielen DANK an TOM!!!

Ich selbst habe an meinem Benutzer auf unserer eigenen Anlage 4 Telefone hängen, (Telefone kann man nie genug haben :slight_smile: )
kann aber nicht bestätigen, dass es eine eMail (verpasster Anruf) für einen beantworten Anruf gibt, egal an welchem Telefon
ich das Gespräch entgegen nehme. Ebenfalls egal ist auch, ob ein Anruf direkt auf meine Duchwahl kommt oder mich über
eine Warteschlange erreicht.

Wenn Du eine eMail nach erfolgr. beantwortetem Anruf erhälst, dann trifft die Bedingung ${CHANSTATE}" = “Ring” bzw. ${DIALSTATUS}"!=“ANSWER” in Deiner Konfig nicht zu.
Hast Du schon mal in der CLI nachgeschaut wie der entsprechende Status nach Beendigung eines Telefonats ist?

Ich stelle Dir mal ein Teil von unserem def_hangup Skript ein. Dann kannst Du mal mit Deinem vergleichen…


exten => s,1,NoOp(Hangup Macro)
exten => s,n,Set(chanstate=${CHANNEL(state)})

; Teams (Warteschlangen)
exten => s,n,GoToIf($ "${MDC_EXTEN}" = "93" & "${CHANSTATE}" = "Ring"  ]?custom-missed,s,1)


; Benutzer (direkte DW)
;DW Christoph
exten => s,n,GoToIf($ "${MDC_EXTEN}" = "32" & "${DIALSTATUS}"!="ANSWER" ]?custom-missed,s,1)


exten => s,n,NoOp(>>>def_hangup:: EXTEN: ${ARG1} DIALSTATUS: ${ARG2} QUEUESTATUS: ${ARG3} REASON: ${ARG4})


cu
Christoph

Hallo Tom,

kannst Du mir das noch genauer erklären, wie ich wo was eintragen muss?
Und wie genau die Reihenfolge beim Abwerfen ist
Bin noch nicht wirklich drinnen in der Materie, würde das “Feature” aber gerne nutzen!

Habe eine MobyDick mit v7.11.1 und Nutzer mit Dreistelliger Durchwahl.

Vielen Dank im vorraus

Danke, habs gelöst.

Jedoch habe ich auch das Problem, dass wenn der CALL an eine Rufgruppe geht, alle eine Mail erhalten auch wenn einer in der Gruppe das Gespräch abgenommen hat.
Vielleicht findet sich da ja noch eine Lösung.

Gruß
Linuxuser

Hallo Zusammen ich muss das Thema nochmal aufgreifen - wir Stehen vor selbigen Problem allerdings bei der Pascom cloud !

das python skript für E-Mail Adressenermittlung in diesem Beispiel unter /etc/admin/getmail.py kann ich hier nicht nutzen oder ?

viele Grüße

Es gibt auch noch die Möglichkeit mit Aktionsbedingungen und InlineScript zu arbeiten,
dass sollte in der Cloud auf jedem Fall funktionieren.

hallo Rinal13,

Danke aber so Ähnlich haben wir es nur das JEDER eine andere Mail hinterlegt hat.

da die Anlage immer größer wird will ich ein riesiges def_hangup vermeiden… auch ein “Inline Script” bei jeden User zu setzen ( momentan 300 Stück ) ist leider auch nicht zielführend.

VG

mit curl kann ich die Daten ja abrufen -
ich bräuchte die Möglichkeit das in einem Script (def_hangup ?) abzurufen
und dann auf die E-mail zu Filtern / als Variable zu setzen

curl -X GET “pascom Status” -H “accept: /

Ich muss dieses alte Thema noch einmal aufrufen, weil keine der im Thread erwähnten Lösungen wirklich befriedigend ist.

Ziel: Eine E-Mail über einen verpassten Anruf an ein Team, wenn entweder
a) Timeout Extern erreicht ist
oder
b) Der Anrufer vorher auflegt.

Bisherige Ansätze:
InlineSkript im Extern-Nachher-Kontext des Teams. Das funktioniert unter dem Aspekt, dass der Anrufer es wirklich lange genug klingeln lässt um in den Nacher-Kontext zu gelangen. Legt der Anrufer vorher auf, greift das nicht.

Somit wären wir im Default-Hangup-Skript. Da habe ich das soweit laufen, allerdings mit einer unschönen Begleiterscheinung, nämlich dass die E-Mail für jedes Team-Mitglied einmal erzeugt wird.

Somit bin ich auf der Suche für eine vermeintlich einfache Anforderung und daher für jeden Hinweis dankbar.

LG
Michael

Hallo Michael,

bei uns sieht das im defaul009- def_hangup so aus

;Team Service              
exten => s,n,ExecIf($[("${MDC_EXTEN}" = "93")&("${CHANNEL(state)}" = "Ring")]?System(echo def_009 // Verpasster Anruf von ${CALLERID(num)} | mail -s "Pascom: Verpasster Anruf von ${CALLERID(num)} Name: ${MDC_DIALCALLERNAME} // Team: ${MDC_CALLEE_TM_NAME} - DW${MDC_EXTEN} am ${STRFTIME(${EPOCH},,%Y-%m-%d um %H:%M:%S)}" dxxxxm@sxxxxxxk.de)

Es wird genau 1 eMail erzeugt. Auf das Postfach dxxxxm@sxxxxxxk.de hat jedes Teammitglied Zugriff.

Ist das eine Onsite und dort läuft das lokale Python-Script und custom-missed?
Wie sich das mittlerweile verhält kann ich Dir leider nicht sagen, da bei uns alles Cloud ist…

cu
Christoph

1 Like

Ich hab auch nur Cloud-Kunden und daher würde ein einfaches Skrip reichen. Ich probiere das mal aus. Vielen Dank dafür.

Dein Skript funktioniert nur unter der Bedingung, dass es kein Timeout Extern im Team gibt bzw. der Anrufer vor erreichen des Timeouts auflegt. Ansonsten erfolgt keine Benachrichtigung.

Das scheint daran zu liegen, dass bei Erreichen des Timeouts in den Kontext Extern-Nachher gewechselt wird und damit die Bedingung CallState = Ring nicht mehr erfüllt ist. Zudem muss ich dort bewusst auflegen muss bei “Keine Antwort”, sonst würde der Anruf weiter signalisiert bis zum Erreichen des Timeouts für die gerufenen Teilnehmer.

Also noch ein wenig unglücklich. Ich forsche mal weiter.

ch habe noch nicht ganz heraus gefunden, wie ich sowohl als auch abbilden kann

1 Like

… Du brauchst beides. Einmal ein Inline-Script im Nachher-Kontext, wenn der Timeout erreicht ist. Jetzt landet der Anruf in Extern-Nachher und der defaul009 wird nicht mehr durchlaufen.

System(echo Verpasster Anruf von ${CALLERID(num)} | mail -s "Pascom: Verpasster Anruf von ${CALLERID(num)} Name: ${MDC_DIALCALLERNAME} // Team: ${MDC_CALLEE_TM_NAME} - DW${MDC_EXTEN} am ${STRFTIME(${EPOCH},,%Y-%m-%d um %H:%M:%S)}" itsxx@sxx.de)

Legt der Anrufer von erreichen des Timeout auf, dann kommt default009 zum Zuge und Extern-Nachher wird nicht mehr durchlaufen.

cu Christoph

2 Likes

Das war mein Problem. Ich wollte das ganz in Programmierer-Manier - vermeide redundanten Code - nur einmal haben. Aber so funktioniert es.

Hallo Christoph,

ich habe dein Skript ausprobiert, aber es funktioniert leider nicht bei mir. Das Problem besteht darin, dass in unserem Team anstelle von Freizeichen eine Ansage als Wartemusik eingerichtet ist. Zudem bleibt der Kanalstatus trotz verpasster Anrufe auf “UP”. Hast du vielleicht noch eine Idee, wie wir das dennoch lösen können?

Vielen Dank!

LG Tibor

Hallo Tibor,

leider kann ich Dir nicht weiter helfen. Habe vor ca. 1 Jahr den Arbeitgeber gewechselt und bin seit dem komplett weg von dem VOIP-Zeugs. Die Pascom-Weiterentwicklung habe ich leider auch nicht mehr auf dem Schirm. Ab u. an lese ich noch das Forum, aber das war es dann auch. Es gibt bestimmt noch andere Kollegen, die Dir weiterhelfen können…

cu
Christoph

Hi Christoph,

alles klar und danke für deine Rückmeldung. Hätte jemand vielleicht noch eine Idee?

Vielen Dank!

Tibor

Hallo @laurin,

wir haben es über ein allgemeines Skript gelöst.
Funktioniert bisher problemlos für Benutzer und Teams.

default009 def_hangup, dort steht folgender Eintrag drin.

exten => s,1,NoOp(>>>def_hangup:: EXTEN: ${ARG1} DIALSTATUS: ${ARG2} QUEUESTATUS: ${ARG3} REASON: ${ARG4})
exten => s,n,ExecIf($[(“${MDC_EXTEN}” = “580”)&(“${CHANNEL(state)}” = “Ring”)]?System(echo Sie haben einen verpassten Anruf von ${CALLERID(num)} | mail -s “Pascom: Verpasster Anruf von ${CALLERID(num)} Name: ${MDC_DIALCALLERNAME} // Team: ${MDC_CALLEE_TM_NAME} - DW${MDC_EXTEN} am ${STRFTIME(${EPOCH},%d-%m-%Y um %H:%M:%S)}” max@mustermann.de)
exten

1 Like