dtmfbox (AB/CB/CT VoIP/ISDN/Analog)

Zu der DTMF Erkennung:

Wenn ich mich auf dem Handy anrufen lasse, findet wohl, wie ich das sehe, keine Übertragung per Info Message statt.
Mit einer Voip-nummer erhalte ich wenigstens eine Fehlermeldung. Ist es denn im Prinzip möglich die Übertragung der Nummer auch vom Handy aus, nicht inband, also per Info Message übertragen zu lassen?

---
lg
Max
 
Mhh.. ich habe gerade eben auch mal mit Handy getestet. Bei mir kommen die DTMFs an :confused:
Was ist das denn für eine Fehlermeldung die du bekommst?

Ob die Signale inband oder per INFO übertragen wird, liegt am Provider. Das kann man (für den Empfang) nicht beeinflussen.
 
**## wird vom voipd aber nicht mitübergeben, deswegen müsste man dort eine '900' eintragen. Abhören geht dann mit *121#900.

Hi Bodega,

ich versuche noch zwei Sachen zum Laufen zu bringen, dann wäre ich glücklich.

1) ich habe bei DDI nun im Account2 für ein analoges Telefon 900 eingetragen. Wenn ich aber *121#900 eingebe, bekomme ich nach dem Tippen der ersten Zeichen *121# schon ein besetzt. Im Log bei Loglevel2 steht gar nix weiter dazu drin

2) die eMail Funktion geht nicht. Kann man die Funktion nur benutzen, wenn kein USB angeschlossen ist? Ich würde gerne beides nutzen..

EDIT:
Und was mich wundert, wenn die dtmfbox gestartet ist, führt der Callmonitor zwei mal das in:request aus. einmal beim ankommenden Anruf und einmal beim Auflegen.

Vielen Dank & Grüße
jampr
 
Zuletzt bearbeitet von einem Moderator:
1. Wenn bei *121# schon ein besetzt kommt, müsste das am voipd liegen. Schau mal, ob sich der Account auch an die dtmfbox registriert hat. Sieht man im dtmfbox-WebIf und AVM-WebIf.

2. Gibt es auf dem Speedport den mailer? Der müsste unter /sbin/mailer liegen. Eventuell liegt es an falschen Benutzerdaten? Die Funktion klappt auch ohne USB.

jampr schrieb:
Und was mich wundert, wenn die dtmfbox gestartet ist, führt der Callmonitor zwei mal das in:request aus. einmal beim ankommenden Anruf und einmal beim Auflegen.
Wahrscheinlich da eine weitere CAPI Anwendung auf der Box läuft. Ein Request wird wohl von der Box (intern) sein, der andere von der dtmfbox. Eventuell kann man beide Requests unterscheiden ?! Wenn du alle Controller auf '0' stellst, ist es dann genauso?

EDIT:
v0.4.1 kommt. Hoffentlich heute ;)
Bei v0.4.0 hab ich den Socketinfo für den Media-Transport an falscher Stelle angefordert. Das ist natürlich ein grobes Ding, was unbedingt gefixt werden muss.
Bzgl. Callback / Callthrough habe ich bisher kein "hängendes Skript" mehr gehabt. Ich hoffe, dass wird bei euch genauso sein.
 
Zuletzt bearbeitet:
Ist ja beruhigend das es bei dir geht.
Hier der Log für ein Voip-Voip Telefonat und beliebige DTMF Eingabe:

Code:
 13:27:33.047  voip_events.c Call CONNECTING [port=0, reason=0 (Default status message)]
 13:27:33.049  voip_events.c On media update
 13:27:33.050  voip_events.c stream #0: PCMU (8000/1)
 13:27:33.050  voip_events.c stream #0: disable VAD [port=0]
 13:27:33.051   strm0x5a821c Encoder stream started
 13:27:33.052   strm0x5a821c Decoder stream started
 13:27:33.055  voip_events.c Call CONFIRMED [port=0, reason=0 (Default status message)]
 13:27:33.057 script_funcs.c RUN SCRIPT: "/var/dtmfbox/script/script_main.sh" "CONFIRMED" "VOIP" "OUTGOING" "0" "-1" "496xxxxxxxxxx" "[email protected]" "5" ""
 13:27:41.383    tsx0x59f9dc Request msg INFO/cseq=16949 (rdata0x52b694) was unhandled by dialog usages, sending 500 response
 13:27:50.557    tsx0x5adf64 Request msg INFO/cseq=16950 (rdata0x52b694) was unhandled by dialog usages, sending 500 response
 13:28:20.077  voip_events.c Call DISCONNECTED [port=0, reason=200 (OK)]
 13:28:20.078 script_funcs.c RUN SCRIPT: "/var/dtmfbox/script/script_main.sh" "DISCONNECT" "VOIP" "OUTGOING" "0" "-1" "496xxxxxxxxxx" "[email protected]" "5" ""
 13:28:20.120  voip_events.c Hangup [0]
 13:28:20.126        funcs.c Set low priority

Hier der Log für Voip-Handy:

Code:
 13:20:41.593  voip_events.c Call CONNECTING [port=0, reason=0 (Default status message)]
 13:20:41.596  voip_events.c On media update
 13:20:41.596  voip_events.c stream #0: PCMU (8000/1)
 13:20:41.597  voip_events.c stream #0: disable VAD [port=0]
 13:20:41.599   strm0x5a821c Encoder stream started
 13:20:41.599   strm0x5a821c Decoder stream started
 13:20:41.603  voip_events.c Call CONFIRMED [port=0, reason=0 (Default status message)]
 13:20:41.606 script_funcs.c RUN SCRIPT: "/var/dtmfbox/script/script_main.sh" "CONFIRMED" "VOIP" "OUTGOING" "0" "-1" "496xxxxxxxxxxx" "[email protected]" "5" ""
 13:21:11.975  voip_events.c Call DISCONNECTED [port=0, reason=200 (OK)]
 13:21:11.976 script_funcs.c RUN SCRIPT: "/var/dtmfbox/script/script_main.sh" "DISCONNECT" "VOIP" "OUTGOING" "0" "-1" "496xxxxxxxxxxx" "[email protected]" "5" ""
 13:21:12.119  voip_events.c Hangup [0]
 13:21:12.134        funcs.c Set low priority

Es sieht so aus als ob ich in besonderer Verbindung zu 500er Fehlern stehe ;)

---
lg
Max
 
Hallo Max,

Dr_agon schrieb:
Ist ja beruhigend das es bei dir geht.
Du kennst das doch. Hauptsache beim Entwickler läuft es ;)
Ne Spass beiseite.

Wie sieht es denn mit einer Verbindung von Handy zu VoIP aus? Ist es das gleiche? Du kannst auch mal das aktuelle Binary (v0.4.1 rc 2) testen. Vielleicht ist das ja schon behoben.

Du kannst nicht zufällig C programmieren? Das Programm lässt sich auch unter Windows kompilieren (VS2005)...

EDIT:
Bei dem aktuellen Binary musst du unter "Contact" zusätzlich deinen Usernamen hinterlegen. Das ist aber nur bei 1und1 so.

EDIT2:
Warum steht bei dem unteren Log einmal sip.1und1.de und beim oberen die IP Adresse? Ist es egal?
 
Zuletzt bearbeitet:
Und wieder bin ich einen Schritt weiter. :)

Mit dem neuen Binary werden jetzt DTMFs erkannt, wenn ich per Handy anrufe. Andersrum funktioniert das noch nicht.
Ich hab schonmal ein paar Progrämmchen in C geschrieben, benutze aber kein Windows, deswegen müsste ich mir erstmal eine andere IDE draufhauen, einrichten und mich ein bisschen in den Code einlesen.

Benutzt du irgendein öffentliches Repository? bzw. Wie könnte ich mit meinen minder großen C-Kenntnissen behilflich sein?

EDIT:
Solange die Adresse richtig aufgelöst wird ist es egal. Ich habe den Anruf einmal mit ./dtmf -call 496xxxxxxx 06xxxxxxxxxxx und einmal mit ./dtmf -call 496xxxxxxx [email protected] getätigt
 
Zuletzt bearbeitet:
Bei VoIP->VoIP scheint nichts im Log aufzutauchen. Da wird es schwer. Bei VoIP->Handy taucht zumindest eine Meldung auf (über den Transaction Layer). Hier könnte man die DTMFs aus der SIP Message manuell auslesen. Ich hatte das damals bei Sipgate auch machen müssen, ist aber wieder obsolete (Stelle ist auskommentiert --> call_on_tsx_changed in voip_events.c).

Das Repository findest du hier. Unter Linux kann man das ganze natürlich auch kompilieren. Ich finde nur das Debuggen unter Windows ziemlich praktisch. Auch die Möglichkeit per Remote-CAPI zuzugreifen ist ganz schick. Einziger Nachteil ist, dass man DirectX SDK und die Platform SDK benötigt. Aber das gibt es ja alles umsonst.

EDIT:
Ich muss leider gleich weg. Ich werde heute Abend daran weiter arbeiten.
 
Zuletzt bearbeitet:
AB hebt nicht ab

hi bodega

als blutiger anfänger hab ich mal mit der FBF 7050 mit Version 14.33 via telnet die dtmfbox geladen (v0.4.0 (2)
ich betreibe eine analoge Verbindung, wo zwei telefone angeschlossen sind.
Folgende Fragen habe ich dazu
a) im Status-fenster sehe ich beim aktivierten Account
1) [CAPI] 0043723920xxx - - Pending!
-> die letzten 3 Ziffern habe ich mit x ersetzt - was mich interessiert ist die Pending Anzeige ?

b) im Statusteil -> da würde ich keinen Pfad eintragen wollen - wenn ich aber den rauslösche und übernehmen drücke - steht der noch immer drin ?

c) der AB hebt bei mir nicht ab
hab mich schon ein paar h in diesem thread schlau gemacht - aber trotzdem noch keine lösung gefunden. meine ansätze waren
-die MSN (unter Accounts) habe ich mit vorwahl/Länderkennzahl,... probiert
-bei den verbindungseinstellungen habe ich bei CAPI -> ein und ausgehenden controller die 4 (für analog) eingetragen bzw. auch Präfix International und National eingetragen

hast du noch ein paar tipps wie ich
-prüfen kann ob alles richtig funktioniert
-wie und was kann ich überprüfen (hab bereits über telnet bei der FBF geprüft ob der Anruf kommt,...

Danke
Klaus
 
Hallo Klaus,

a) bei CAPI schaltet sich die Anzeige auf OK um, sobald ein Anruf rein kommt (bei korrekter MSN/Nr.). Bei Analog sieht das etwas anders aus. siehe c).
b) Das ist in Ordnung. Der Standardpfad für die Standalone ist /var/dtmfbox.
c) Bei Analog Accounts als MSN immer 'unknown' hinterlegen (siehe Hilfe).

Wenn du die dtmfbox geloggt startest, wirst du sowas sehen wie "Incoming Connection from xxxx to yyyyy". Falls da etwas mit "Ignoring Account" steht, ist die Nummer falsch und es findet kein Skriptaufruf statt.
 
Ich habe mir jetzt mal - unter Windows - die Umgebung eingerichtet. Funktioniert alles wunderbar soweit. Selber zusammen bauen kann ich es auch schon :-D .
Nun bin ich mal gespannt ob ich das berühmte große Ganze überblicke, um mich dann Schritt für Schritt weiter tasten zu können.

EDIT:
Was mich wundert ist, dass die Übertragung vom Handy->Voip ja funktioniert, andersrum aber irgendwie nicht. Was den Quelltext betrifft hab ich noch keinen Durchblick. Wenn ich mal Zeit habe werde ich mir die Dokumentation des PJSIP-Clienten reinziehen. Bis es soweit ist, wird aber wohl noch ein bisschen Zeit vergehen...

Bei VoIP->VoIP scheint nichts im Log aufzutauchen. Da wird es schwer. Bei VoIP->Handy taucht zumindest eine Meldung auf (über den Transaction Layer).

Ist das nicht genau umgekehrt?


---
lg
Max
 
Zuletzt bearbeitet:
hi marco

Vielen Dank - jetzt geht der AB dran
die Lösung war die MSN Eingabe mit "unknown"
Danke nochmal - funktioniert einwandfrei !!

Klaus
 
Dr_agon schrieb:
Ist das nicht genau umgekehrt?
Stimmt, genau umgekehrt.

@all:
Ich habe mal ein kleines Java-Applet erstellt, mit dem man über die Weboberfläche telefonieren kann (per Headset). Besteht an sowas Interesse?
 

Anhänge

  • webphone.JPG
    webphone.JPG
    31.5 KB · Aufrufe: 78
Du kannst auch mal das aktuelle Binary (v0.4.1 rc 2) testen.
Hab ich gemacht... kommt auf meiner 7270:
Code:
   capi_ctrl.c CAPI initialized!                                
   capi_ctrl.c (0x3ff) - Listen to CAPI incoming controller 1...
   capi_ctrl.c (0x3ff) - Listen to CAPI outgoing controller 1...
   capi_ctrl.c (0xff) - Listen to CAPI internal controller 3... 
[COLOR="Red"]script_funcs.c Cannot allocate shared memory!
     dtmfbox.c Shared memory not available![/COLOR]

Die letzte stabile Version geht stattdessen wie folgt weiter:
Code:
[COLOR="DarkGreen"]       funcs.c Set low priority           
   capi_ctrl.c (CNF, CTRL 1) - CAPI_LISTEN
   capi_ctrl.c (CNF, CTRL 1) - CAPI_LISTEN
   capi_ctrl.c (CNF, CTRL 3) - CAPI_LISTEN[/COLOR]
 
Hi Chatty,
wenn du die dl-version verwendest musst du (meines Wissens) das Binary schon direkt nach dem starten der Box austauschen. Ich habe deshalb das rc.dtmfbox Script um folgende Zeilen ergänzt:
Code:
	  # latest_binary
	  cd $DTMFBOX_PATH/
	  rm $DTMFBOX_PATH/dtmfbox
	  wget $WWW_PREFIX/fix/dtmfbox
	  chmod +x $DTMFBOX_PATH/dtmfbox
Einfach dort anhängen wo die anderen Patches geladen werden. Ich habe es dann auf nen Webserver im LAN geladen und die entsprechende Zeile in der debug.cfg geändert -> Dann mal neustarten und hoffen das es geht ;-)
Ich glaube viel umständlicher kann man es nicht machen, aber so wird das Binary wenigstens nach jedem Reboot immer schön mitgeladen.
Wenn du was in den Einstellungen änderst, darfst du nicht vergessen erneut den Pfad zur geänderten rc.dtmfbox anzugeben.

---
lg
Max
 
v0.4.1_rc2_4

Jetzt mal eine Version, mit etwas längerem Namen ;)
Somit sollte (vorerst) kein Workaround nötig sein:

USB-Installation (7170, ...):
Code:
cd /var/media/ftp/*
wget http://fritz.v3v.de/dtmfbox/dtmfbox-usb/dtmfbox-0.4.1_rc2_4.tar
tar xv -f dtmfbox-0.4.1_rc2_4.tar
cd dtmfbox-0.4.1_rc2_4
./rc.dtmfbox install
./rc.dtmfbox start_httpd

Download-Installation (7050, ...):
Code:
cd /var/tmp
wget http://fritz.v3v.de/dtmfbox/dtmfbox-0.4.1_rc2_4-dl/rc.dtmfbox
chmod +x rc.dtmfbox
./rc.dtmfbox install
./rc.dtmfbox start_httpd

(Natürlich immer vorher die alte Version deinstallieren!)

Änderungen:
  • Fix: 1&1: 500er Fehler bei Anruf. Achtet darauf den Usernamen als 'Contact' zu hinterlegen. Ein Beispiel steht in der Hilfe. Die Liste der Account-Beispiele sollte in Zukunft noch Erweitert werden. Postet am besten eure Einstellungen, falls ein Provider in der Liste fehlen sollte.
  • Fix: Socketinfo (Mediatransport) an falscher Stelle ermittelt
  • Ein paar Abfragen bei Callback / Callthrough eingefügt (hoffe, das Skript bleibt nun nicht mehr hängen)
  • Keep-Alive nicht während des Registrierungprozesses verschicken
  • RTP/RTCP streaming für -play und -record (WebPhone Applet)
  • div. Änderungen am WebIf

Hinweis:
  • Das WebPhone Applet ist zwar schon dabei und man kann auch über die Weboberfläche telefonieren, aber es bedarf noch einiger Tests. Falls jemand Java-Applets programmieren kann und das Webphone erweitern möchte, bin ich dafür aufgeschlossen. Ich denke, da kann man noch viel mehr raus machen. Das Applet ist signiert, da sonst keine Aufnahme über Mikrofon möglich wäre. Bei Bedarf poste ich den Code.
 
Zuletzt bearbeitet:
Hallo!
Kann man mit der Box eigentlich auch DTMF-Töne senden?

Hintergrund:
Ich habe einen Istec-Türmanager am S0 der Fritzbox. Wenn ich mit meinem Handy eine (geheime) MSN wähle, möchte ich, dass die Tür aufgeht.

Gewählt werden müsste:

**55(die interne Nummer der ISTEC)

Pause

DTMF-Töne: *71#<PIN>*

dann müsste wieder aufgelegt werden.

ist das möglich?
JueLue
 
@JueLue
Du könntest das doch mit nem ganz normalen Callthrough realisieren. Du rufst an, lässt dich mit der internen Nummer verbinden und gibst dein Passwort ein. Oder habe ich da was falsch verstanden?

@Markus
Mein DTMF-Problem lässt mich einfach nicht los. Warum werden denn die DTMF's vom Handy->Voip übermittelt, umgekehrt aber nicht. Da muss es doch einen Unterschied beim Zustandekommen der Verbindung geben, welcher verhindert das INFO-Messages versandt werden, nicht korrekt ankommen oder nicht erkannt werden.
Jetzt frag ich mich, ob dass der richtige Ansatz zur Lösung des Problems ist, oder einfach nur kompletter (Schweizer) Käse. :gruebel:

---
lg
Max
 
@JueLue
Du könntest das doch mit nem ganz normalen Callthrough realisieren...

Ich kann sogar den Türmanager direkt anrufen, vom Handy aus kostet das aber jedesmal 10Cent:(.

Ich möchte ja, dass die Fritzbox schon reagiert, wenn ich mit meinem Handy die spezielle MSN nur anwähle, ohne dass ein Gespräch zustande kommt, soll die FB wenn sie mein Handy mit Anruf auf der MSN identifiziert die ISTEC anwählen und die DTMF-Töne übermitteln -> Tür geht auf. Das würde dann nichts kosten.;).

Jürgen
 
Im Prinzip sollte auch das kein Problem darstellen. DTMF's können ja per: ./dtmf 0 -dtmf [0-9|asterisk|poundkey] gesendet werden. Jetzt müsste nur nach einem Anruf von deiner Nummer ein angepasstes Script ausgeführt werden. Diese Funktion ist meines Wissens noch nicht implementiert aber leicht zu integrieren.

Ich habe auch ein bisschen rumprobiert und mir ist aufgefallen, das du mir mit deiner Frage auch weiter geholfen hast :-D . Wenn ich nämlich einen DTMF-Ton übertragen habe, empfängt er, aus mir unerklärbaren Gründen, meine Eingabe auf dem Handy.

---
lg
Max
 
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.