Rückwärtssuche am Telefon anzeigen

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
7
Punkte
0
Ab v0.5 ist die Rückwärtssuche für ISDN-Telefone fest im Webinterface integriert. Es ist das selbe Prinzip, jedoch ist die Konfiguration einfacher geworden. In der Hilfe, unter Skripteinstellungen / Rückwärtssuche ist dazu alles erklärt.

Alt:
Vorwort
Mit dtmfbox v0.4.1_rc4 wird das Addon isdn_mod.sh mitgeliefert, welches sich im Verzeichnis /var/dtmfbox/script/addons befindet.
Damit hat man die Möglichkeit Gespräche vom externen S0 an den internen S0 weiterzuleiten.
Die dtmfbox reicht die Verbindung weiter und man kann so eine Rückwärtssuche durchführen und das Ergebnis am ISDN-Telefon anzeigen (Display-Message).

Eine Rückwärtssuche über eine Kontakt-Datei und dasOertliche.de sind bereits implementiert. Die Rückwärtssuche kann zudem um eine eigene benutzerdefinierte Suche ergänzt werden.

Vorbereitung ISDN-Telefone (Basis)
Sagen wir, dass es drei Nummern gibt: 11111, 22222 und 33333. Für MSN "11111" und "22222" möchten wir das Addon einbinden.
Dazu tragen wir am Telefon als Empfangs-MSN eine Pseudo-MSN ein:
MSN "11111" bekommt die "601",
MSN "22222" bekommt die "602".
Euer Telefon reagiert nun nicht mehr, wenn von Extern ein Anruf eingeht. Hier kommt das benutzerdefinierte Skript ins Spiel:

Benutzerdefiniertes Skript
Damit der Anruf wieder signalisiert wird, muss dem Addon mitgeteilt werden welche Nummern weitergereicht werden sollen. Voraussetzung dafür ist, dass MSN "11111" und "22222" als CAPI-Account im WebIf hinterlegt wurden. Das Addon wird folgendermaßen aufgerufen:
Code:
. ./script/addons/isdn_mod.sh [I]<ACCOUNT-ID> <REAL-MSN> <EMPFANGS-MSN> <SENDE-MSN> <AVM-WEBIF PASSWORT>[/I]
if [ "$?" = "1" ]; then return 1; fi

In unserem Beispiel sähe es so aus:
Code:
#!/bin/sh

# MSN "11111" ist als 1. Account eingerichtet
. ./script/addons/isdn_mod.sh "1" "11111" "601"
if [ "$?" = "1" ]; then return 1; fi

# MSN "22222" ist als 2. Account eingerichtet
. ./script/addons/isdn_mod.sh "2" "22222" "602" 
if [ "$?" = "1" ]; then return 1; fi
<SENDE-MSN> und <AVM-WEBIF PASSWORT> habe ich erstmal weggelassen. Dazu unten mehr.

Rückwärtssuche
Zunächst wird geschaut, ob ein Eintrag in /var/dtmfbox/phonebook.txt gefunden werden kann. Wurde kein Eintrag gefunden, wird ein Userskript-Event ausgelöst ($SCRIPT="INVERS"). Hier kann man seine eigene Rückwärtssuche durchführen und das Ergebnis mit "echo" ausgeben. Wurde kein Eintrag ausgeben, wird eine Online-Rückwärtssuche durchgeführt.

Die Datei phonebook.txt hat folgendes Format:
Code:
nummer|display-text
03012345|Ein Eintrag
021154321|Weiterer Eintrag
...

Das Userskript für die Rückwärtssuche könnte so aussehen:
Code:
#!/bin/sh
[COLOR="Red"]if [ "$SCRIPT" = "INVERS" ];
then
  if [ "$DST_NO" = "03012345" ]; then echo "Ein Eintrag"; fi
  if [ "$DST_NO" = "021154321" ]; then echo "Weiterer Eintrag"; fi
  return 1;
fi[/COLOR]

# MSN "11111" ist als 1. Account eingerichtet
. ./script/addons/isdn_mod.sh "1" "11111" "601"
if [ "$?" = "1" ]; then return 1; fi
...

Sonstiges
Man kann anstatt der Empfangs-MSN auch eine SIP-Uri angeben:
Code:
# MSN "11111" ist als 1. Account eingerichtet
. ./script/addons/isdn_mod.sh "1" "11111" "601@localhost" "" "avm-webif-pass"
if [ "$?" = "1" ]; then return 1; fi
Der Anruf wird dabei mittels SIP an den voipd weitergereicht. Voraussetzung dafür ist, dass man im AVM-WebIf einen Internettelefonie-Account angelegt hat, ohne Registrierungsdaten. In dem Fall wäre es die Internetrufnummer: 601, Registrar: localhost, Rest: <leer lassen>.
Das AVM-Webinterface Passwort wird ebenfalls übergeben, damit ein Telefonbucheintrag geschrieben werden kann (es wird der erste TB-Eintrag überschrieben!).

Möchte man auch die Sende-MSN über die dtmfbox steuern, kann man ebenfalls eine <SENDE-MSN> angeben.
Unter den Verbindungseinstellungen muss CAPI-Ctrl. 5 hinterlegt sein, da über diesen Controller das ausgehende Gespräch erkannt wird. Wie auch bei der Empfangs-Uri, muss die Pseudo-MSN als Internettelefonie-Account im AVM-Webif eingerichtet sein. Wenn es z.B. der dritte Internettelefonie-Account wäre, würde der Aufruf folgendermaßen aussehen:
Code:
# MSN "11111" ist als 1. Account eingerichtet
# 601 ist als 3. Internettelefonie-Account eingerichtet (0#-8#)
. ./script/addons/isdn_mod.sh "1" "11111" "601" "2#601"
if [ "$?" = "1" ]; then return 1; fi
In der dtmfbox legt man einen zusätzlichen CAPI-Account an, mit der MSN: "2\#601" und dem ausgehenden CAPI-Ctrl. 5.

Was könnte man sonst noch realisieren?
  • VoIP-Gespräche komplett über dtmfbox führen (ohne voipd)
  • Telefon-Rekorder
  • MOH
  • Konferenzen mit mehr als 2 Gesprächspartnern
  • ...

Hinweise zur Standalone/Download Version
Da bei dieser Version das benutzerdefinierte Skript nach einem Reboot nicht mehr vorhanden ist, muss man sich etwas überlegen. Der einfachste Weg wäre, das Skript /var/dtmfbox/script/dtmfbox_userscript.sh "On-The-Fly" über die /var/flash/debug.cfg zu erstellen.

Wie immer: ohne Gewährleistung, Verwendung auf eigene Gefahr!

Have phun'
 
Zuletzt bearbeitet:
727: DECT-Telefone

Das Feature mit der Rückwärtssuche hört sich ja echt interessant an. Die 7270 bietet ja neben dem internen SO und den 2 analogen Ports auch eine DECT-Basis an. Die DECT-Telefone geben über ihr Display die gleichen Infos wieder, wie mein ISDN-Telefon.

Wäre es möglich auch die Gespärche an die DECT-Telefone über DTMFBOX laufen zu lassen?

Viele Grüße,

Michael
 
Hallo Michael,

leider weiß ich nicht, ob man die angemeldeten Telefone am DECT der Fritz!Box ansprechen kann. Wenn man diese über den internen S0 ebenfalls erreichen kann, sollte es möglich sein.

Testen kannst du es wie folgt:
Code:
CONID=`./dtmfbox -call 12345 [I]<msn>[/I] 3`
./dtmfbox $CONID -text "Hallo"

<msn> ersetzt du durch die MSN der Nebenstelle, die du anrufen möchtest. Solltest du "Hallo" auf dem Display sehen, hat es funktioniert. Man müsste es dann noch mal mit einer "gefälschten MSN" probieren.
 
Hallo Michael,
leider weiß ich nicht, ob man die angemeldeten Telefone am DECT der Fritz!Box ansprechen kann. Wenn man diese über den internen S0 ebenfalls erreichen kann, sollte es möglich sein.

Mit deiner Hilfe http://www.ip-phone-forum.de/showthread.php?t=155474&highlight=r%FCckw%E4rtssuchefunktioniert die Rückwärtssuche ja schon auf meiner Dreambox.

Weiter habe ich ein älteres analoges Siemens Gigaset (DECT 3015 Comfort) am FON1 der Fritz 7270 (inkl. neuester Labor-Software) hängen. Wie gesagt das Telefon hängt mit Basisstation am FON1 und die Mobilteile sind dort und nicht an der Fritz angemeldet.
Diese würde ich gerne mit deinem Programm befüttern. Könnte dies mit deinem isdn_mod.sh funktionieren?

Weiß jemand, welcher Capi-Controller dann anzusprechen wäre?

Hinweis: Wenn jemand im Telefonbuch der FritzBox steht, das ich über WebInf pflege, dann wird dieser Namen im Display angezeigt. Das hat den interessanten Nebeneffekt, dass auf dem 2-zeiligen Display manchmal der Name doppelt steht, denn in der ersten Zeile steht ein eventueller Eintrag im lokalen Adressbuch des Telefons und in der 2. Zeile die Übermittlung durch die FritzBox
 
Zuletzt bearbeitet:
Hi,

wird es eine solche Lösung vielleicht auch für analoge Telefone mit CNIP geben?
 
Analog ist halt so eine Sache. Eventuell funktioniert das über SIP, aber da habe ich noch nicht weiter nachgeschaut.

CNIP und Display-Messages. Eines von beiden muss es wohl können. CNIP steht das nicht mehr für das lokale Adressverzeichnis im Telefon? Korrigiert mich, wenn ich falsch liege.
 
Hi Bodega, meine 7270 dient als Dect Station. Habe das ganze jetzt mal installed. Um das zu testen was du unten geschrieben hast muss ich da noch vorher irgendwelche Configs in der dtfm box vornehemen?

Muss ich meine msn in <msn> eintragen oder für die 12345 ersetzten?

Gruß Bolle
Hallo Michael,

leider weiß ich nicht, ob man die angemeldeten Telefone am DECT der Fritz!Box ansprechen kann. Wenn man diese über den internen S0 ebenfalls erreichen kann, sollte es möglich sein.

Testen kannst du es wie folgt:
Code:
CONID=`./dtmfbox -call 12345 [I]<msn>[/I] 3`
./dtmfbox $CONID -text "Hallo"

<msn> ersetzt du durch die MSN der Nebenstelle, die du anrufen möchtest. Solltest du "Hallo" auf dem Display sehen, hat es funktioniert. Man müsste es dann noch mal mit einer "gefälschten MSN" probieren.
 
Hi,

über CNIP kann die Fritz!Box einen Text an das analoge Telefon senden, der beim Anruf angezeigt wird. CNIP wird in der Fritz!Box genutzt, um einen Telefonbucheintrag, der im Fritz!Box-Telefonbuch gespeichert ist, mit Namen am analogen Telefon anzuzeigen.

Wenn im FB-Telefonbuch z.B. folgender Eintrag existiert...

Name: Mustermann, Telefonnummer: 123456789

...dann zeigt mir das Gigaset bei einem Anruf das:

123456789

Mustermann

Und meine Frage ist nun, ob sich das irgendwie mit der Rückwärtssuche kombinieren lässt.
 
Was mich immer wieder verwirrt ist, dass von CNIP gesprochen wird. Dabei wird der Display-Text als IE Element (Information Element) übertragen. Wie die Telefone das nun anzeigen, ist aber nicht klar geregelt. Trick hatte das mal gut erklärt.
Zu deiner Frage: der Analog-Part (POTS) der FB ist in ähnlicher Weise konzipiert wie die ISDN-Ctrl. Jedoch wurde CAPI nie für ISDN entwickelt, so dass ein paar Abstriche gemacht wurden. Z.B. kann ich über den internen S0 keine Verbindung zu FON1-3 aufbauen. Die Ansteurung regelt der Telefon-Daemon im Hintergrund irgendwie anders. Die einzige Möglichkeit die ich mir vorstellen kann wäre, über SIP zu gehen. Jedoch habe ich in dem Bereich nicht weiter geforscht.
 
Hi,
über CNIP kann die Fritz!Box einen Text an das analoge Telefon senden, der beim Anruf angezeigt wird. CNIP wird in der Fritz!Box genutzt, um einen Telefonbucheintrag, der im Fritz!Box-Telefonbuch gespeichert ist, mit Namen am analogen Telefon anzuzeigen.
Wenn im FB-Telefonbuch z.B. folgender Eintrag existiert...
...dann zeigt mir das Gigaset bei einem Anruf das:

es würde schon reichen, wenn man den mit der Inverssuche gefundenen Namen, der ja wiederum (bei mir) in die debug.cfg oder wie bei vielen in eine andere externe Datei geschrieben wird, einfach mit Name/Tel. in das Fritz-Telefonbuch einträgt. Dazu müsste man wissen, wo diese Infos gespeichert sind, die über das WebInf verwaltet werden.
 
Hallo juwo,

ich hatte mal ein Skript gepostet, welches das Telefonbuch, automatisch befüllt. Im dtmfbox-Package im Addon-Verzeichnis ist dieses dabei.

Es gibt nur einen Knackpunkt: wenn der Telefondienst den Anruf durchführt, wurde das TB schon ausgelesen. Ein nachträgliches Eintragen wäre an der Stelle zu spät und der Name erscheint nicht auf dem Display.

Was ich mit dem obigen Skript mache ist folgendes: der Telefondienst kann durch die geänderte MSN den Anruf nicht weiter durchstellen - die dtmfbox erkennt jedoch die korrekte Nummer und stellt den Anruf durch. Da man nun den Verbindungsaufbau selbst durchgeführt hat, kann man sein eigenes Telefonbuch verwenden.

Dieses Prinzip müsste eigentlich auch mit VoIP funktionieren (bzw. Analog-Telefon, angemeldet an der dtmfbox). Man muss die FB einfach daran hindern, den Anruf durchzustellen ;)
 
Hallo juwo,

ich hatte mal ein Skript gepostet, welches das Telefonbuch, automatisch befüllt. Im dtmfbox-Package im Addon-Verzeichnis ist dieses dabei.

Dieses Prinzip müsste eigentlich auch mit VoIP funktionieren (bzw. Analog-Telefon, angemeldet an der dtmfbox). Man muss die FB einfach daran hindern, den Anruf durchzustellen ;)

Hallo Marco,

du meinst vermutlich dein isdn_mod.sh (über das es ja schon einen kurzen Thread von dir gibt) oder? Leider bin ich mit deinem Package noch ein wenig überfordert. Muss mich dazu noch mehr einlesen, um das zu verstehen. Das Prinzip mit dem Abfangen und dem Umleiten ist mir klar, nur halt mit der Umsetzung haperts noch. Vor allem möchte ich das alles in die debug.cfg einbauen, da ich (noch) keinen USB-Stick angeschlosssen habe. Aber daran wirds dann wohl wieder scheitern, weil ja deine ganzen Pakages auch mit geladen/gestartet werden müssen. So gesehen ist das aus meiner Sicht nicht so einfach (für mich).

Jürgen
 
ni marco,
versuche mich auch an der Sache, dass auf Telefon Rückwärtssuche durchgeführt wird. Das erste was ich gemacht habe ist die dtmf box zu installieren.

So aber ab jetzt hackt es ...ich weiß nicht weiter! Gibt es ne Möglichkeit, eine Step by Step Anleitung für User wie mich zu schreiben. Also was ich im WebIF der dtmf machen muss und dann eben noch was ich im Skript verändern muss...

Viele GrüßeTOM

EDIT: Habe die Acoounts iengerichtet.
Wenn ich nun aber deine zwei Befehle testen will kommt das hier:

# CONID=`./dtmfbox -call 12345 <56789> 3`
-sh: cannot open 57789: No such file
 
Zuletzt bearbeitet:
ni marco,
# CONID=`./dtmfbox -call 12345 <56789> 3`
-sh: cannot open 57789: No such file

1. bist du im richtigen verzeichnis?
Code:
cd /var/dtmxxxxx
dtmxxxxx ist dein installationsverzeichnis des paketes auf der fritz

2. keine
Code:
<>
verwenden
sondern <msn> durch deine richtige TelNr. ohne Vorwahl (z.B. 44444) erstzen
Code:
CONID=`./dtmfbox -call 12345 44444 3`
./dtmfbox $CONID -text "Hallo"
 
ok ! Danke habe es ausprobiert! im Status des dtmfbox wird ein outgoing angezeigt aber das Hallo erscheint leider nicht auf dem Telefon welches über dect an der Fritz angeschlossen ist. SCHADE scheint wohl nicht zugehen! Lass mich aber gerne eines besseren belehren ;-)

Cu Bolle

EDIT: Hier noch der LOG

Code:
21:33:34.069   conference.c Port 2 (capi port [0]) transmitting to port 1 (null port)
 21:33:34.069   conference.c Port 1 (null port) transmitting to port 2 (capi port [0])
 21:33:34.069   capi_funcs.c (CTRL 3, SRC: 12345, DST: 55673) - CONNECT_REQ
 21:33:34.069 script_funcs.c [-1] (SCRIPT) - CAPI-CALL - 12345 -> 55673 [3]
 21:33:34.069    capi_ctrl.c (CNF, CTRL 3, PLCI: 2307) - CAPI_CONNECT
 21:33:34.069  capi_events.c (IND, CTRL 3, PLCI: 2307) - CAPI_INFO (0x0018) - CHANNEL IDENTIFICATION (0x03)
 21:33:34.069  capi_events.c (IND, CTRL 3, PLCI: 2307) - CAPI_INFO (0xc000) - UNKNOWN INFO
 21:33:34.079 script_funcs.c RUN SCRIPT: "./script/script_main.sh" "CONNECT" "CAPI" "OUTGOING" "0" "-1" "12345" "55673" "-1" ""
 21:33:34.089        funcs.c Set high priority
 21:33:36.359 script_funcs.c [0] (SCRIPT) - Queue: 78, Pending: 0
 21:33:36.359   capi_funcs.c Send Display-Message: "Hallo"
 21:33:36.359    capi_ctrl.c (CNF, CTRL 3, PLCI: 2307) - CAPI_INFO
 21:33:42.069  capi_events.c (IND, CTRL 3, PLCI: 2307) - CAPI_INFO (0x0008) - CAUSE (0x01)
 21:33:42.069  capi_events.c (IND, CTRL 3, PLCI: 2307) - CAPI_INFO (0xc000) - UNKNOWN INFO
 21:33:42.069  capi_events.c (IND, CTRL 3, PLCI: 2307) - CAPI_DISCONNECT
 21:33:42.069   capi_funcs.c CAPI 0x3492 - No user responding
 21:33:42.069   conference.c Port 2 (capi port [0]) stop transmitting to port 1 (null port)
 21:33:42.069   conference.c Port 1 (null port) stop transmitting to port 2 (capi port [0])
 21:33:42.079 script_funcs.c RUN SCRIPT: "./script/script_main.sh" "DISCONNECT" "CAPI" "OUTGOING" "0" "-1" "12345" "55673" "-1" ""
 21:33:42.099        funcs.c Set low priority
 21:33:43.879 script_funcs.c [-1] (SCRIPT) - Queue: 79, Pending: 0
 21:33:43.909 script_funcs.c [-1] (SCRIPT) - Queue: 80, Pending: 0
 21:33:43.939 script_funcs.c [-1] (SCRIPT) - Queue: 81, Pending: 0
 
Zuletzt bearbeitet:
Hi all,

juwo schrieb:
Vor allem möchte ich das alles in die debug.cfg einbauen, da ich (noch) keinen USB-Stick angeschlosssen habe. Aber daran wirds dann wohl wieder scheitern, weil ja deine ganzen Pakages auch mit geladen/gestartet werden müssen. So gesehen ist das aus meiner Sicht nicht so einfach (für mich).
Ohne USB ist das momentan wirklich etwas schwierig, da man selbst keine Änderungen an den Skripten speichern kann. Die neue Version 0.5 speichert alle Skripte in der debug.cfg (gepackt), bzw. auf USB, so dass diese Änderungen ebenfalls einen Neustart überleben. Vielleicht noch etwas warten ;)

bolle schrieb:
im Status des dtmfbox wird ein outgoing angezeigt aber das Hallo erscheint leider nicht auf dem Telefon welches über dect an der Fritz angeschlossen ist.
Wird was angezeigt, wenn du auf dem Telefon #96*6* eingibst? Hast du die Display-Messages aktiviert: #960*1* ?
Also wenn sich das integrierte Dect über Ctrl. 3 ansprechen lässt, ist das schon ein Teilerfolg.
Eventuell mal öfter ein
Code:
./dtmfbox $CONID -text "Hallo"
eingeben, während es klingelt. Die 2 sec könnten vielleicht zu kurz sein.
 
Hi Marco,
so Displaymessage ist aktiviert! Kein Bier vor vier....

Du schreibst etwas von Klingeln...leider kilingelt das Telefon nicht wenn ich den Befehl ausführe! Zeigt nur das Outgoing an!

Hier mal ZWEI Bildchen
Also nochmal ich habe die Telefone über DECT an der Fritz angeschlossen..Die Einstellungen sind beim Account korrekt oder?



Gruß Bolle
 

Anhänge

  • Unbenannt.JPG
    Unbenannt.JPG
    33.1 KB · Aufrufe: 161
  • Unbenannt!.JPG
    Unbenannt!.JPG
    36.1 KB · Aufrufe: 119
Zuletzt bearbeitet:
Hallo Bolle,

ach so.. habe das wohl falsch verstanden. Dann macht auch das
Code:
CAPI 0x3492 - No user responding
mehr Sinn.

Auf dem Bild sehe ich zwei Accounts ("96...", "51..."). Beide sind über das interne Dect angebunden, richtig?

Man müsste vielleicht zunächst einmal prüfen, ob die Telefone auf ihre richtige MSN reagieren. Falls das nicht funktioniert, hilft nur ein dtrace von einem eingehenden Anruf, ohne dtmfbox. Am besten noch mit Telefonbucheintrag, damit ein Name auf dem Display steht:
Code:
dtrace -* -nt1 -nt2 -nt3 -s > capitrace.log
Da musst du nur aufpassen, da die MSN auch als Hex mit dabei steht. Wenn du möchtest, kannst du mir das Log auch per Mail schicken: maz =at= v3v =punkt= de
 
Auf dem Bild sehe ich zwei Accounts ("96...", "51..."). Beide sind über das interne Dect angebunden, richtig?
Ist richtig! Zwei Telefone über Dect angebunden!

Man müsste vielleicht zunächst einmal prüfen, ob die Telefone auf ihre richtige MSN reagieren
Wie mach ich das am besten?

Vielleicht noch zur Info, wenn ich raus telefoniere zeigt es mitr im Status nix an.

EDIT: log habe ich an deine mailadresse verschickt!
 
Zuletzt bearbeitet:
Danke für das Log. Also da passiert was auf dem internen S0. Das sieht soweit schon mal gut aus. "96..." wird angeklingelt, das ist ok und "52" (da war die dtmfbox noch an, oder ;)).

In dem Fall müsste eigentlich ein
Code:
CONID=`./dtmfbox -call 12345 96.... 3`
oder
CONID=`./dtmfbox -call 12345 52 3`
funktionieren und das Telefon klingeln.

Was mich nur etwas beunruhigt:
bolle schrieb:
Vielleicht noch zur Info, wenn ich raus telefoniere zeigt es mitr im Status nix an.
Wenn du raus telefonierst und es hat noch keiner abgenommen (tuten), wird die Verbindung angezeigt. Sobald jemand abhebt, wird die Verbindung nicht mehr angezeigt. Der Status aktualisiert sich alle 10 sek. Ich hoffe das hängt damit zusammen.
 
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.