Pascom 17.10 & 18.03 - Benachrichtigung per E-Mail bei verpassten Anrufen

Hallo Tyrion - leider klappt das bei mir nicht … sobald ich die Email durch $(var_mail) ersetze wie in deinem script kommt leider keine E-mail an

Hallo @razorspade,

ich hab’s mal quickanddirty in def_hangup eingetragen und funktioniert.
So sieht es bei mir aus…

Für den Live-Betrieb muss noch die Bedingung für verpasst rein…
vlt. kannst Du ja mal ein Screenshot von Deinem def_hangup posten…!?

cu
Christoph

Hallo Thomas,

hast Du schon mal getestet, ob Du von der Konsole aus eine eMail verschicken kannst?

echo "Konsolentest" | mail -s "Test von Konsole" email@domain.de

cu
Christoph

Hallo Christoph,

vielen Dank für deine Hilfe. Scheinbar mache ich was falsch?! Wenn ich den Befehl von dir eingebe, copy & paste funktioniert leider nicht, erhalte ich:

No such command 'echo “Konsolentest”

LG THOMAS

Hallo Thomas,

steht in der Zeile weiter hinten ggf. noch… (type 'core show help echo…
Dann hast Du die echo-Zeile an der CLI eingetippt und nicht an der Konsole!?
CLI mit ! beenden (Ausrufezeichen eintippen und mit ENTER bestätigen)- dann bist Du an der Konsole. (asterisk@deinInstanzName:/$)
Die echo-Zeile in meinem Post habe ich in einen Code-Block eingefügt. Die solltest Du beruhigt mit CTRL+c kopieren können und an der Cloud-Konsole mit SHIFT+CTRL+v einfügen, email@domain.de mit Deiner eMail-Adresse ersetzten und mit ENTER abschicken.

cu
Christoph

Hallo Christoph,

danke für deine ausführliche Anleitung, damit habe ich es hinbekommen. Mailversand klappt in der Anlage, das weiß ich nun.

LG THOMAS

Hallo es klappt :slight_smile: allerdings sieht das Script jetzt so aus:

exten => s,n,Set(var_mail=xxxxx@mail.com)

exten => s,n,ExecIf($[(“${MDC_EXTEN}” = “2275”)&(“${CHANNEL(state)}” = “Ring”)]?System(echo “Hallo”, “am ${STRFTIME(${EPOCH}„%Y-%m-%d um %H:%M:%S)}” “hat ${CALLERID(num)} versucht Sie (Ihre Durchwahl: ${MDC_EXTEN}) anzurufen.” | mail -s “PASCOM - Verpasster Anruf” ${var_mail}))

gibt es eine Möglichkeit die Variable beim Benutzer zu definieren ? - als Inline script oder script ?

vielen dank und viele Grüße

Hallo Thomas,

spuckt die CLI an der Anlage, an der das Skript nicht funktioniert evtl. einen Fehler/Fehlermeldung aus, die uns ggf. auf die Spur bringt?

cu
Christoph

Hallo @razorspade,

…coool! :+1:

Wenn Inline-Skript würde ich die Variable beim Benutzer in Extern/Vorher setzten.

Da jeder Benutzer seine eigene DW hat, kannst Du die var_mail auch im hang-up Skript setzten.
Der Vorteil ist halt, dass Du alles kompakt an einer Stelle konfigurieren kannst.

Du kannst natürlich auch ein eigenes Skript erstellen, in dem Du die entsprechende eMail-Adresse setzten lässt. Dazu musst Du dann natürlich aus dem hang-up in Dein eigenes Skript verzweigen und mit dem Ergebnis als Übergabeparameter wieder zurück zu hang-up.
Die Möglichkeiten sind vielfältig…

cu
Christoph

Hallo!

Ich habe einen Anruf abgesetzt und den relevanten CLI Auszug in eine Textdatei kopiert, die ich an diesen Beitrag angehängt habe. Kannst du damit etwas anfangen und einen Rückschluss ziehen, warum es nicht funktioniert?

Danke!

THOMAS

cli_def_hangup.txt (1,7 KB)

vielen dank :slight_smile: -so ist es perfekt

für alle intressierten:
das ist im Benutzer als Inline-Script: VORHER

und das ist im def_hangup als Nachher:

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

exten => s,n,ExecIf($[("${MDC_EXTEN}" = ${var_dw})&("${CHANNEL(state)}" = "Ring")]?System(echo "Hallo", "am ${STRFTIME(${EPOCH}"%Y-%m-%d um %H:%M:%S)}" "hat ${CALLERID(num)} versucht Sie (Ihre Durchwahl: ${MDC_EXTEN}) anzurufen." | mail -s "PASCOM - Verpasster Anruf" ${var_mail}))

Hi ,
hab es wie von Dir beschrieben eingetragen , es funktioniert !

In der Cli hab ich eine Warnung

  [May 28 10:35:57] WARNING[21582][C-000000bc]: ast_expr2.fl:470 ast_yyerror: ast_yyerror():  syntax error: syntax error, unexpected ')', expecting '-' or '!' or '(' or '<token>'; Input:
("100" = )&("Ring" = "Ring")

Hallo @nada,

nada

cu
Christoph

Hallo Thomas,

sry – hatte irgendwie Deine Antwort übersehen…:dizzy_face:

Der Dialplan der Pascom ruft offensichtlich 2x das def_hangup auf, wenn der Mobil-Client im Spiel ist. Zu erkennen an Zeile 8 u. 12.


Wie auch immer – wenn es so ist, soll es so sein….

In beiden Fällen sind die Bedingungen des ExecIf nicht erfüllt (zu erkennen an der 0 in Zeile 10 u. 14) –
"0?System(echo……
Wäre die Bedingung erfüllt, müsste an der Stelle eine 1 stehen und die eMail geht raus.

Wenn wir den ersten Aufruf ab Zeile8 betrachten und das ExecIf in Deinem Script so aus sieht
th2
erkennen wir in Zeile 8 u. 9, dass MDC_EXTEN gleich 10 ist. (DW des Teams) Das würde also passen. Bleibt die Vermutung, dass Variable CHANNEL(state) anstelle -Ring- etwas anderes enthält. (wenn auch nur schwer vorstellbar). Leider sehen wir den Inhalt von CHANNEL(state) in der CLI nicht.
Das kannst Du aber ändern, indem Du in der def_hangup, in Zeile 2 u. 3 folgendes einfügst

exten => s,n,NoOp(>>>> MDC_EXTEN / ${MDC_EXTEN})
exten => s,n,NoOp(>>>> CHANNEL(state) / ${CHANNEL(state)})

Im zweiten Aufruf ist ExecIf nicht erfüllt, weil MDC_EXTEN offensichtlich LEER ist. (Erkennbar in Zeile12 u. 13 / vergl. Zeile8 u. 9) Das soll uns nicht weiter stören, da wir sonst 2 eMails bekommen würden.

Ist Deine Anlage 19.06 oder ist das noch eine ältere Version?

cu
Christoph

Hi Christoph!

Vielen Dank für deinen ausführlichen Beitrag! Ich werde vermmutlich morgen dazu kommen das auszuprobieren und werde das Ergebnis im Anschluss hier posten.

LG THOMAS

Hallo!

Im Anhang der Auszug aus der CLI. Bin gespannt, was du damit herausfindest.

Danke!

THOMAS

cli_def_hangup1.txt (6,4 KB)

Hallo Thomas,

th

Dieses Up bedeutet nichts anderes, als dass der Kanal beantwortet wurde und so, wie schon vermutet, unser ExecIf zunichte macht.
Dass der Kanal beantwortet wurde bedeutet aber nicht gleichzeitig, dass auch ein “Mensch” mit dem Anrufer gesprochen hat!
Das kann ausgelöst werden…

  1. in dem Du in intern-/extern- Vorher zB eine Ansage abspielst
  2. in den Basisdaten des Teams Wartemusik anstelle von Freizeichen eingestellt ist
    … oder eine Kombination aus 1 u. 2 und noch einiges andere mehr…

Wenn Du auf Wartemusik und/oder Ansage(n) nicht verzichten kannst, wird es schwieriger einen verpassten Anruf zu Identifizieren und via eMail zu versenden. Dazu bräuchte ich dann etwas mehr Info von Dir bzgl. der letztendlichen Konfiguration…

cu
Christoph

Hallo Christoph,

dann hast du mir mit

vermutlich die Lösung serviert. Ich habe eine Begrüßungsansage eingebaut.

Werde bei Gelegenheit die Vermutung testen.

Schönes Wochenende!

LG THOMAS

Hallo Christoph,

super vielen Dank für den bisherigen Support zu dem Thema.

Bei uns funktioniert jetzt dank deiner Hilfe auch das versenden einer Info-Mail an die jeweiligen Nutzer bei verpassten Anrufen.

Leider musste ich auch feststellen, dass wenn die Mailbox rangeht und der Anrufer auflegt bevor er die Ansage besprochen hat, dass wir keine Nachricht bzgl. eines verpassten Anrufes bekommen.
Gibt es da evt. eine Möglichkeit, dass auch bei dem Abwurf des Anrufs an die Mailbox eine Mail verschickt wird, aber nur wenn der Anrufer vor dem Besprechen der Ansage aufgelegt hat?

Viele Grüße
Fabian

Hallo Fabian,

Ja, gibt es. Du musst in extern nachher vor der Ansage bzw. vor der Mailbox ein Inlineskript hinzufügen. Schau Dir mal meine Antwort Nr.13 weiter oben an…

Das Ding an der Sache ist allerdings, dass Du ggf. 2 eMails bekommst. Eine mit dem verpassten Anruf vom Skript und wenn die Mailbox besprochen wurde, natürlich auch eine eMail mit der Nachricht.
Aber Du bekommst auf jeden Fall eine Nachricht, wenn der Anrufer noch vor oder während der Ansage auflegt.

cu
Christoph