Callmonitor 1.13 und höher: Ankündigungen und Bedienung

Der Callmonitor hilft dir, auf Anrufe zu reagieren (wie und ob Faxe gemeldet werden, weiß ich gerade nicht). Wie du auf die Daten der Faxe/Nachrichten zugreifst, um sie zu verschicken, ist deine Aufgabe. Der Callmonitor bietet in dieser Richtung noch keinerlei Hilfsfunktionen.

Andreas
 
CRM -> Customer Relationship Management (Tool)

Das Verschicken ist nicht das Problem, also wie ich das später dann in einen SOAP Request verpacke.
Was mich interessiert, wie komme ich an die Information:
a) War das ein AB Anruf? Wenn ja, wo liegt die Audio Datei?
b) War das ein Fax? Wenn ja, wo liegt mein Fax PDF?

Gruß

Marco
 
Möge irgendjemand von Moderatoren bitte diese Diskussion hier und vor allem auch meine Antwort auslagern.
AVM hat im Prinzip diese Sachen, die du machen willst im Griff: AB-Nachrichten und Faxe per E-Mail weiterleiten. Als ich vor einigen Jahren meinen SMS-Versender (übrigens auch basierend auf Curl) für betamax-Konten geschrieben hatte (bzw. aus einem vorhandenen Material umgeschrieben), hatte ich eine ähnliche Idee: SMS versenden, wenn AB-Anruf kommt oder etwas Ähnliches geschieht. Ich wollte den AVM-Mailer (das ist ein Wrapper von AVM) so modifizieren, dass die benötigten Informationen abgefangen werden und an meinen SMS-Skript weitergereicht werden. Rein theoretisch dürfte es gehen und ich vermute sehr stark, dass AVM ihren eigenen Mail-Wrapper dafür auch nutzt. Die Benachrichtigungsmails beinhalten neben dem HTML-Teil mit schönen css-Passagen und Teilen meist noch ein reines Textteil. Und an dem Teil könnte man mittels sed was machen.

MfG
 
Hi zusammen,

ich habe eien Frage bzgl. des Listeners...

in:* ^ ^96xxxxxx .... (sind 1und1 Nummern also reine VOIP)
out:* ^ ^96xxxxxx .....

Jetzt ist es so, dass es beim In nur auf die oben angegebene Nunner reagiert wird (so soll es ja auch sein).Nur bei Out scheint es Probleme zu geben. Muss ich da was anderes eintragen für die Nummer?!

Wenn ich beim out keine Nummer eintrage geht es???? Ich will aber dass es eben nur auf diese Nummer reagiert.

Habt ihr eine Idee für das Problem?

So nun noch eine zweite Frage, ich habe einen RSS-Feed..bereits schon eingefügt funzt auch soweit. Nur möchte ich , dass dieser auf ein bestimmtes Wort hin unteruscht wird und nur das dann angezeigt wird z.B. Haus
Wie muss da die Zeile faür dann aussehen?

feed_url_2 = "http://www.xxxx.de/index.php?format=feed&type=rss"
 
Zuletzt bearbeitet:
Nur bei Out scheint es Probleme zu geben. Muss ich da was anderes eintragen für die Nummer?!
Beim "out" muss deine lokale Nummer nach links. Zuerst kommt immer die Quellrufnummer, dann die Zielrufnummer.
 
Ok funzt super ! Danke!!

Aber jetzt habe ich was festgestellt in den Listener wird ein Anruf mit anschließender RÜCKWÄRTSSUCHE so eingetragen...das stimmt was nocht oder?

Alex XXXXX u. Marita XXXX Axel u. Marita, yyyystrasse, PLZ ORT

Warum trägt er die Vornamen nochmal ohne Nachnamen ein, und müsste statt des KOMMAS nicht ein SEMIKOLON sein? Ich nutze den aktuellen 1.17.2

EDIT: das mit den doppelten namen liegt am TELEFONBUCH...mit dem Örtlichen geht es!
 
@Andreas: hast source_md5 vergessen
 
ok supi!! Danke ...man wird dann erfahren sobald es auf dem Server ist..
 
CM-Ausgaben auf Samsung-TV

Hallo Andreas,

könntest Du Dir bitte mal dieses Skript (makeSoap) anschauen?
Es gibt den Anrufernamen bzw. die Nummer auf einem Samsung-TV aus. Aufruf im CM mit:
Code:
 in:request ^ ^ makeSoap "$TIMESTAMP;RING;1;$SOURCE_NAME;$DEST_DISP;$PROVIDER" 192.168.xxx.yyy
Derzeit setzt das Skript noch ein einfaches Telefonbuch unter /etc/telefonbuch voraus bzw. macht eine Reverssuche auf DasÖrtliche.
Es wäre toll, wenn Du das in den CM integrieren könntest, so dass dann das richtige Telefonbuch der Fritzbox (oder des CM) und die diversen Reverssuchen des CM verwendet werden. Ist das möglich? Danke für Deine Hilfe!
 
Zuletzt bearbeitet:
@ao: Ja, theoretisch ist das möglich. Praktisch wäre es mir lieb, wenn vorher jemand, der das braucht, das Skript vereinfacht (nach Überfliegen bleibt nur etwa 1/3 übrig) und testet. (Als zweites wäre es gut zu wissen, mit welchen Geräten unter welchen Voraussetzungen das Skript eingesetzt werden kann.)
 
Hallo Andreas,

der SOAP-Teil ist der Kern des Ganzen. Der Rest (also Tel.buch, Reverssuche) kann raus - siehe Martins Skript dort.
Die letzte Zeile musste ich anpassen, weil "netcat" auf der FB "nc" heisst und der Parameter -n unbekannt (aber auch nicht nötig) ist.
Hier also das Skript von Martin mit der angepassten letzten Zeile:
Code:
#! /bin/sh
# usage: ./makeSoap2 "06.05.10 19:19:50;RING;1;1234;4567;SIP1;" 192.168.178.38
# bzw. : ./makeSoap2 "$TIMESTAMP;RING;1;$SOURCE_NAME;$DEST_DISP;$PROVIDER" {IP des TV}

DESTINATION=$2
IFS=";"
set -- $1
DATETIME=$1
CALLEE=$4
CALLER=$5
IFS=" "

set -- $DATETIME
CALLDATE=$1
CALLTIME=$2

# BUILD XML
soap="<?xml version=\"1.0\" encoding=\"utf-8\"?>
<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" >
<s:Body>
<u:AddMessage xmlns:u=\"urn:samsung.com:service:MessageBoxService:1\\\">
<MessageType>text/xml</MessageType>
<MessageID>'$(date +%H%M%S)'</MessageID>
<Message>
&lt;Category&gt;Incoming Call&lt;/Category&gt;
&lt;DisplayType&gt;Maximum&lt;/DisplayType&gt;
&lt;CallTime&gt;
&lt;Date&gt;$CALLDATE&lt;/Date&gt;
&lt;Time&gt;$CALLTIME&lt;/Time&gt;
&lt;/CallTime&gt;
&lt;Callee&gt;
&lt;Number&gt;$CALLEE&lt;/Number&gt;
&lt;Name&gt;$CALLEE&lt;/Name&gt;
&lt;/Callee&gt;
&lt;Caller&gt;
&lt;Number&gt;$CALLER&lt;/Number&gt;
&lt;Name&gt;$CALLER&lt;/Name&gt;
&lt;/Caller&gt;
</Message>
</u:AddMessage>
</s:Body>
</s:Envelope>
"

# echo $soap
# echo length: ${#soap}


# BUILD HTTP
CRchar=$(echo -e "\r")
message="POST /PMR/control/MessageBoxService HTTP/1.0 $CRchar
Content-Type: text/xml; charset=\"utf-8\" $CRchar
HOST: $DESTINATION $CRchar
Content-Length: $((${#soap}+0)) $CRchar
SOAPACTION: \"urn:samsung.com:service:MessageBoxService:1#AddMessage\" 
Connection: close $CRchar
$CRchar
$soap"

echo $message >soapTV
# SEND MESSAGE TO TV
echo $message | nc -w 1 $DESTINATION 52235

Getestet habe ich es mit dem CM 1.16 und folgendem Listener-Eintrag:
Code:
in:request ^ ^ /var/media/ftp/uStor01/external/usr/share/makeSoap "$TIMESTAMP;RING;1;$SOURCE_NAME;$DEST_DISP;$PROVIDER" tv
Blöde Frage: Was kann man da eigentlich noch im CM integrieren? Das o.g. Skript?
Oder macht das evtl. gar keinen großen Sinn?
Vielleicht wäre der Zugang zur Anzeige auf dem TV mehreren Nutzern einfacher, wenn es integriert wäre.
 
Ich würde den Aufruf noch anpassen, damit man nicht diese hässliche Zeile angeben muss, sondern direkt die entsprechenden Variablen verwendet werden. Könntest du vielleicht ein Foto machen, damit wir einen Eindruck davon bekommen, wie diese Nachricht angezeigt wird?
 
Hi, ich habe das Skript ein bisschen überarbeitet und die ersten Schritte für eine Integration in den Callmonitor gemacht. Bitte testen: Anhang entpackt nach /tmp/flash/callmonitor/actions.local.d, Callmonitor neustarten, Aufruf in Listeners mit
Code:
samsung <Hostname oder IP>
Meine Fragen: Funktioniert es generell? Auch wenn Umlaute in den Namen vorkommen? Ist in der Anzeige genug Platz für die Adressen aus der Rückwärtssuche oder sollte nur der Name angezeigt werden? Irgendwelche weiteren Verbesserungsvorschläge?

Viele Grüße,

Andreas
 

Anhänge

  • samsung.sh.gz
    799 Bytes · Aufrufe: 66
Anhang entpackt nach /tmp/flash/callmonitor/actions.local.d
Hallo Andreas, das Verzeichnis "actions.local.d" existiert bei meinem CM 1.16 nicht. Muss ich den zuerst aktualisieren oder reicht es, das Verzeichnis anzulegen und Dein Skript dort zu entpacken? Woher weiß der CM dann, dass er das aufrufen soll?

Das Skript gibt bei Direktaufruf eine Fehlermeldung:
Code:
root@fb1 /var/tmp/flash/callmonitor/actions.local.d $ ls -al
drwxr-xr-x    2 root     root            0 May 17 20:23 .
drwxr-xr-x    3 root     root            0 May 17 20:22 ..
-rwxr--r--    1 root     root         1567 May 17 18:29 samsung.sh
root@fb1 /var/tmp/flash/callmonitor/actions.local.d $ ./samsung.sh tv
./samsung.sh: line 1: require: not found
./samsung.sh: line 2: require: not found
Was bedeuten denn diese ersten Zeilen im Skript?
Code:
require recode
require http

xmlencode() {
    echo -n "$1" | sed 's/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g;'
}
 
Das Verzeichnis musst du selbst anlegen, wenn es nicht existiert. Das Skript ist nicht zum direkten Aufrufen gedacht; du kannst entweder den Befehl "samsung" in den Listeners benutzen oder "callaction samsung" von der Kommandozeile.

Andreas
 
Ok, hab's verstanden. Und im CM-Wiki steht ja auch, dass man selbst definierte Skripte nach "/tmp/flash/callmonitor/actions.d/*.sh" legt. Tolle Sache, Andreas!

Der Listener-Eintrag sieht jetzt so aus (tv ist in hosts definiert):
Code:
in:request ^ ^ samsung tv
Das Resultat kann ich momentan nicht testen, da das TV-Gerät in Benutzung ist.
Als ich in der FB-Konsole "callaction samsung tv" eingab, sah meine Frau auf dem TV "Anruf von...". ;)
Näheres teste ich morgen und berichte dann, inkl. TV-Screenshots etc.

Wie kann ich zum Testen bei "callaction samsung {TV-IP}" Parameter übergeben? Dem Skript entnehme ich diese Parameter:
Code:
$CALLDATE $CALLTIME $SOURCE_DISP $DEST_DISP
Also z.B. so?
Code:
callaction samsung tv 17.05.2010 21:18 12345 6789
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.