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

Hallo Marco,

habe mal versucht über telnet einen Anruf mit folgendem Aufruf über VOIP mittels 1&1 zu tätigen:

./dtmfbox -call [email protected] 0xxxxxxxx6

Der Controller (ausgehend) ist auf 3 eingestellt.

Leider klingelt es auf der 0xxxxxxxx6 Festnetznummer nicht und im LOG steht folgende Meldung
00:03:51.589 capi_ctrl.c (ISDN/ANALOG): Listen to CAPI controller 1...
00:03:51.590 capi_ctrl.c (CNF, CTRL 1, PLCI: 0) - CAPI_LISTEN
00:03:51.593 voip_ctrl.c Start VOIP listen loop...
00:03:51.755 voip_auth.c SIP registration successful (sip.1und1.de), status=12
00:03:51.756 voip_auth.c Next registration in 28534 sec
00:03:51.757 voip_auth.c sip.1und1.de: (200) - OK
00:04:57.754 voip_funcs.c Call: sip:[email protected] -> sip:0xxxxxxxx6
00:04:57.755 voip_funcs.c Create UAC dialog
00:04:57.757 voip_funcs.c Create SDP
00:04:57.758 voip_funcs.c Create INVITE


Wenn ich die gleiche Nummer mit ISDN anklingel geht es problemlos (über Controller 1).

Muß ich eventuell um über VOIP zu telefonieren den Controller (ausgehend) auf 5 einstellen??
Woran könnte es liegen das über VOIP kein ausgehender Anruf getätigt werden kann (vielleicht befindet sich ein Hinweis im LOG??)???

Edit
Habe noch etwas gefunden vielleicht ist es Hilfreich beim 1&1 Problem?? Hier der Link
http://www.vlines.de/tabelle.html
EDIT
hatte einiges falsch gemacht und nun den richtigen Log eingefügt......
 
Zuletzt bearbeitet:
AB-Ansage wird zweimal gespielt?

Hi!

Erstmal danke für das tolle Add-on, ist ja schon klasse, was man so alles aus dem Böxchen (7050) herausholen kann. Ich habe gestern dtmfbox zum ersten Mal installiert (v0.3.7), und es hat auch gleich dank der vielen Tipps hier im Forum funktioniert.

Heute habe ich mir eine Ansage draufgespielt (per wget nach /var/dtmfbox/play). Die wurde dann aber, als ich das per Handy ausprobiert habe, zweimal abgespielt ?!? :confused:

Ich hatte das .wav ganz normal mit dem Soundrecorder unter Windows erstellt. Woran kann das liegen, evtl. auch eine Windoof / Linux Sache?

Danke im Voraus für alle Tipps!
 
@Thomas:
Code:
./dtmfbox -call [email protected] 0xxxxxxxx6
-->
./dtmfbox -call 49xxxxxxx7 [email protected]
Die MSN sollte keinen @1und1.de Hostanteil besitzen beim -call Parameter und in den Einstellungen, da der AB sonst nicht abnimmt.
Die anzurufende Nr (0xxxxxxx6) sollte bei VoIP immer mit Hostanteil sein (z.B. [email protected]).
Die Controller haben mit VoIP nichts zu tun und sind nur für ISDN/Analog zuständig. Die Einstellungen sind deswegen auch unterteilt (VoIP/CAPI).

Es könnte in nächster Zeit auch etwas besser mit 1und1 aussehen. prodigy7 und ich werden es uns anschauen. Nur Versprechen kann ich nichts...

@jpiranha:
mhh. zweimal Abspielen gab es schonmal. Ich konnte das bisher nicht nachvollziehen. Du überschreibst aber nicht den beep.wav und hast "Piepton nach Ansage" auf "Ja"?.

EDIT:
Um ein Recorder-Problem auszuschließen, probier mal sox und konventier das File:
Code:
sox eingabe.wav -r 8000 -c 1 ausgabe.wav
Oder einfach eine Aufnahme per AB starten und diese verwenden ;)

EDIT2:
@all:
ich hatte da so eine Idee:
wäre schön, wenn man DTMF-Signale übergeben kann, sobald man nur das Telefon abhebt. So könnte man eigene Tastencodes definieren und das Admin-Menü direkt aufrufen (intern).
Soweit so schlecht: ich hab mal auf Ctrl 3 gelauscht. Abheben bekommt man mit, das etwas eingegeben wird auch - nur nicht was!? cMsg ist auf einmal recht uninformativ :( - mal weiter sehen...

EDIT3:
und nochmal ein edit ;)
Habe mir die Sache nochmal angeschaut. Die DTMFs bekomme ich jetzt auch schon vor dem Wählen. Das geht aber nur auf der FB. Per Remote-CAPI geht es nicht. Also könnte man eigene Tastencodes definieren, die keine externe Verbindung benötigen.

EDIT4:
Als Information: es funktioniert nun (auch über Remote-CAPI).
Das AB Menü kann man in der nächsten Version über *#100# - *#109# erreichen. Rein theoretisch würde auch eine Anrufübernahme funktionieren (nur da fehlt dann noch was). Wenn jetzt noch Display Messages funktionieren...
Hab unter anderem eSpeak integriert: die Ansagen werden mit Datum & Uhrzeit angesagt (nur USB-Version - da sonst zu groß).

Ein Callback-Submenü ist auch geplant (Vorschläge ???)...
 
Zuletzt bearbeitet:
Ein Callback-Submenü ist auch geplant (Vorschläge ???)...

- Lockrufnummer

- Anschluss (MSN) auf den reagiert werden soll

- Pin Nummer

- Anschluss der zurückrufen soll (VOIP, ISDN)


vorschlag mal ganz auf die Schnelle :)
 
Hallo, brauch mal kurz Hilfe für die Einrichtung von 1und1 (Voip) auf die dtfm box.
Da gab es ja wohl bisher Probleme. Soll es jetzt etwa gehen ?, wenn ja bitte mal ne kurze Anleitung. Bei mir geht der Ab nicht dran. Und es sieht aus, als wenn sich die Voipnummer im AB nicht regestriert.
 
@Zitat bodega
Es könnte in nächster Zeit auch etwas besser mit 1und1 aussehen. prodigy7 und ich werden es uns anschauen. Nur Versprechen kann ich nichts...

@trusty
leider läuft VOIP mit der dtmfbox noch nicht, aber wie oben im Zitat zu sehen wird daran gearbeitet.
Wenn es Dir nur um den AB geht so gibt es einen Workaround über die Rufumleitung der Fritzbox. Damit sollte sich der AB und die 1&1 Rufnummer betreiben lassen wenn ich mich nicht irre.
http://www.ip-phone-forum.de/showpost.php?p=847615&postcount=237
 
1und1, Wahlregeln (TSB)

Hey, Bodega!
Habe nach langem auch mal wieder in den Thread geschaut, und bin begeistert, was sich alles getan hat. Habe erstmal Stunden gebraucht, um mich durchzuarbeiten ;)
Also, ich hab n paar Informationen zu 1und1, die evtl helfen werden.

Habe mal mein userscript einfach so eingerichtet:
echo $1 $2 $3 $4 $5 $6 "$7" "$8" "$9" >> /var/testing

Bei nem Anruf auf eine 1u1-voip nummer von meinem Telefon aus (auch 1u1 voip) geht der AB ran, und nimmt ohne probleme auf.
Bei nem Handyanruf auf die gleiche Nummer geht er nicht ran.

Status danach:
Code:
/ $ cat var/testing
MAIN CONNECT VOIP INCOMING 0 -1 49xxxxxxxx16 [email protected]
MAIN CONFIRMED VOIP INCOMING 0 -1 49xxxxxxxx16 [email protected]
MAIN DISCONNECT VOIP INCOMING 0 -1 49xxxxxxxx16 [email protected]
MAIN CONNECT VOIP INCOMING 0 -1 [COLOR="Red"]+[/COLOR]49xxxxxxxx16 [COLOR="Red"]+[/COLOR][email protected];user=phone
Unterschied ist dort also, dass beide Nummern mit + davor und bei Handy "@1und1-2.sip.mgc.voip.telefonica.de;user=phone" (ich denke doch, der gateway telefonnetz->voip) übertragen wird. Das + müsste doch der Grund sein, warum der AB nicht reagiert, weil es dann nicht mehr die eigentlich gespeicherte MSN ist.
Könnte man nicht bei allen Nummern, die von dtmfbox bearbeitet werden, ein eventuelles + davor streichen ?

Edit: Habe jetzt nochmal Voip für mein Haustelefon ausgeschaltet, hab also über ISDN telefoniert. Ergebnis:
MAIN CONNECT VOIP INCOMING 1 -1 +49xxxxxxxx16 [email protected];user=phone
Auch hier + vor den Nummern und der mutmaßliche Gateway dahinter (was wohl eig. kein Problem sein dürfte).

Noch ein anderes Anliegen: ist es möglich, die Wahlregeln zu benutzen ? Wenn ich bsp.weise ein Callback (der eigentliche grund, warum ich dtmfbox haben will) vom handy aus mache, oder per callback ein handy anrufen will, ist es für mich billiger, wenn ich übers festnetz gehe und ne call-by-call vorwähle - dafür hab ich TSB laufen.

Gruß
Arne
 
dtmfbox v0.3.8 (usb/dsmod/standalone)

@wurstfabrik + all:

mit 1und1 geht es nun :)
Es gab da so ein paar Probleme mit STUN. Vielen Dank nochmal an prodigy7, der mir seinen Account zum Testen zur Verfügung gestellt hatte!

Die USB Version kann sprechen (espeak), die dsmod- und Standalone-Version nicht.

Der AB kann bequem über Kurzwahl erreicht werden (intern):
- *#100# für Account Nr. 1
- *#101# für Account Nr. 2
- .. usw.

Der AB nimmt ab und sagt die Anzahl der Nachrichten des jew. Accounts an (USB). 1# spielt die 1. Nachricht ab, 2# die 2. Nachricht, usw... Die eigenen DTMF-Befehle sind unter *1# - *50# zu erreichen (vorher PIN eingeben). Von Außen kommt man ins AB-Menü per Pincode# (während der AB läuft).

Neu ist auch das Callback und Callthrough Webinterface (welches ich aber noch nicht sonderlich getestet habe). Die Triggernummer sollte mit Vorwahl angegeben werden (mit führender Null). Die Navigation erfolgt über Sprache/DTMF (siehe auch Hinweis im Webinterface).

Hier nochmal die Installation:

USB
Code:
cd /var/media/ftp/usb
tar xvz -f dtmfbox-0.3.8-usb.tar.gz
cd dtmfbox-0.3.8-usb
export DTMFBOX_PATH=/var/media/ftp/usb/dtmfbox-0.3.8-usb
./rc.dtmfbox-setup install
./rc.dtmfbox-setup start_httpd
# (im Webinterface den USB-Pfad unter Status ebenfalls ändern!!!)
(alte Version: vorher "Uninstall" und reboot!!!)


ds-mod
Datei DSMOD_VERZEICHNIS/addon/static.pkg öffnen und folgende Zeile hinzufügen:
Code:
dtmfbox
dann:
Code:
cd DSMOD_VERZEICHNIS
rm -R addon/dtmfbox
tar xvzf dtmfbox-dsmod-addon-0.3.8_26.tar.gz
make


Standalone
Code:
cd /var
wget http://fritz.v3v.de/dtmfbox/dtmfbox-0.3.8-standalone/rc.dtmfbox-setup
chmod +x rc.dtmfbox-setup
./rc.dtmfbox-setup install
./rc.dtmfbox-setup start_httpd
(alte Version: vorher "Uninstall" und reboot!!!)


Der Webserver ist unter http://fritz.box:6767 zu erreichen.
Die dsmod Version habe ich nicht getestet (verwende USB, sollte aber funktionieren).


1und1-Beispielaccount:
MSN: 4912345678
Registrar: 212.227.15.197
Realm: 1und1.de
Username: 4912345678
Password: *****
ID: [email protected]

Stun-Server: stun.1und1.de
Stun-Port: 3478

README (von v0.3.7)

EDIT @ wurstfabrik:
Das mit dem +: vielleicht sollte ich das filtern. Probiere bitte mal aus, ob das mit dieser Version auch so ist, dann ändere ich das.

EDIT2:
+ im Skript gefiltert. Neu hochgeladen.

EDIT3:
Sourcecode:


EDIT4:
Keine wirkliche Änderung, nur an der Datei busybox-httpd (ohne LFS kompiliert). Wer vorher die Meldung "unresolved symbol fopen64()..." bekam, sollte diese nicht mehr bekommen. dtmfbox-0.3.8-usb ausgetauscht.

EDIT5:
Sry, aber noch einer Änderung ist notwendig (diese Betrifft das Skript "script_funcs.sh"). Bei 1und1 wird manchmal ein + an die Nummer vorangestellt. Das führt dazu, dass der AB nicht abnimmt. Hatte es durch EDIT2 verschlimmbessert.
 

Anhänge

  • dtmfbox-0.3.8-usb.tar.gz
    738.3 KB · Aufrufe: 71
  • dtmfbox-dsmod-addon-0.3.8_26.tar.gz
    261.9 KB · Aufrufe: 53
Zuletzt bearbeitet:
Hallo Marco,

schade das ich jetzt weg muss aber ich bin schon ganz gespannt Callback zu testen :)
Hätte nicht gedacht das es so schnell funktionieren würde...

Vielen Dank und noch einen schönen Sonntag
 
bodega schrieb:
EDIT @ wurstfabrik:
Das mit dem +: vielleicht sollte ich das filtern. Probiere bitte mal aus, ob das mit dieser Version auch so ist, dann ändere ich das.

Also, ich habs nun nochmal getestet und hatte das gleiche Problem. Mit ein wenig Nachforschung bin ich soweit, dass in der Funktion search4msn() $ACC_MSN nicht gesetzt werden kann, weil der Anruf ja einmal mit + und einmal ohne + kommt, und in den Einstellungen ist die MSN ja auch entweder mit oder ohne gesetzt.

Ich habs bei mir nun mit nem kleinen Workaround hinbekommen, bei dem ich denke, dass er unproblematisch sein sollte. Ich hab in der script_funcs.sh die Zeile 263 geändert.
Code:
if [ "$ACC_MSN" = "$SRC_NO" ]; then
wird zu
Code:
if [ "$ACC_MSN" = "$SRC_NO" ] || [ "$ACC_MSN" = "+$SRC_NO" ] || [ "+$ACC_MSN" = "$SRC_NO" ]; then
Dann ist es egal, wo ein + und wo keins steht. Funktioniert auch, soweit ich das getestet habe. Kannst du ja entweder so einbauen, oder du nimmst halt automatisch überall die +zeichen raus ...

Nun nochmal zur zweiten Frage: ist das mit dem TSB i-wie möglich ?
 
Wahlregeln unterstützt das Skript leider nicht. Die Nr. die über Callback gewählt werden, müssten zusätzlich geroutet werden:
Man könnte in dem Fall die Wahlregeln aus dem Webinterface extrahieren und das Routing in script_cbct.sh einbauen.

Machbar wäre es...

Vielleicht gibt es noch eine andere Möglichkeit. Mit dem TSB kenn ich mich jetzt nicht so aus.

EDIT:
Hab das + jetzt gefiltert...
 
Zuletzt bearbeitet:
Hey Bodega!
Danke für die schnelle Reaktion.
Du hast ja nun die Zeile
ACC_MSN=`eval echo \\$DTMFBOX_ACC${cnt}_MSN | sed 's/+//g'`
abgeändert. Wenn meine nicht so sehr weitreichenden Linuxkenntnisse das richtig verstehen, wird ein eventuelles + vor der gespeicherten MSN für den vergleich entfernt.
Das würde das Problem aber nicht beheben, viel eher müsste das + vor der anrufenden Nummer entfernt werden, da sich das ändert, je nachdem ob der Anrufer aus dem Festnetz oder per voip anruft. Oder am besten einfach bei beiden Filtern, dann ist es auch egal, ob man die MSN mit oder ohne + speichert.
Gruß
Arne
 
Hi Leute,

hab da ein riesen Problem, erstens wie kann ich die "alte" Version deinstallieren? Und 2. hab vor kurzem die neue .33 FW draufgespielt, somit kein ds-mod und nix mehr drauf. (mittlerweile sogar ein recovery gemacht) nun mein Problem ist einfach, dass das ding nicht aufm USB starten will bzw wenn ich alles nach Anleitung mache, will er trotzdem das ding aus /var/dtmfbox starten und bringt die meldung:
can't resolve symbol 'fopen64'

wat is dat und wie kann ich das bitte beheben, will doch nur nen AB auf meiner Box mehr ist mir momentan egal. (ds-mod kommt später sicher nochmal drauf hatte aber in letzter Zeit einige Probs mit meiner Box).

MfG Tomekk
 
@wurstfabrik:
Stimmt. Jetzt kapiere ich das.. Die anzurufende Nr. hab ich da außer acht gelassen :) . War mal so eben auf die Schnelle...
Also SRC_NO=`echo $SRC_NO | sed s/+//g` fehlt da noch...
Ich glaube, das mache ich dann doch in der Binary...

@tomekk1985m:
fopen64 gab's hier schon dreimal. Hab leider keine Busybox mit LFS. Hört sich so an, als ob die neue FW mit LFS kompiliert wurde.

Wahrscheinlich müsste ich die uclibc neu aufsetzen und mit LFS kompilieren (einer ne Idee/Hinweis bevor ich damit anfange?).
 
Zuletzt bearbeitet:
bodega schrieb:
Die USB Version kann sprechen (espeak), die dsmod- und Standalone-Version nicht.

Hallo,

ich habe ein paar Anregungen zur Version 0.38. Vorweg: das ist ein klasse Werkzeug, ich hab es erst vor ein paar Tagen entdeckt und es läuft bisher super.

1.) Lässt es sich generell so einrichten, dass wenn $DTMFBOX_PATH/espeak/speak existiert, es benutzt wird? Dann könnte ds-mod mit USB-Stick auch sprechen, sofern man espeak in das Verzeichnis kopiert hat.

2.) Kann script_main.sh so geändert werden:

...
/sbin/mailer -s "$MAIL_SUBJECT" \
-f "$MAIL_FROM" \
-t "$MAIL_TO" \
...

Dann können auch E-Mail Adressen wie "Meister Lampe <[email protected]>" eingegeben werden. Das sieht schöner im Mailer aus.

3.) Kann das Mail-Subject frei wählbar, z.B. Eingabezeile in ds-mod gemacht werden?

4.) Komprimierung der WAV vor E-Mail Versand. Kannst du die Datei mehr komprimieren? Im Moment behelfe ich mir mit folgender Konstruktion um GPRS Kosten zu sparen:

# send mail...
#
TMPRECFILE=/var/tmp/`basename $RECFILE`
$DTMFBOX_PATH/script/sndfile-convert -ms-adpcm $RECFILE $TMPRECFILE
/sbin/mailer -s "$MAIL_SUBJECT" \
-f "$MAIL_FROM" \
-t "$MAIL_TO" \
-m $MAIL_SERVER \
-a $MAIL_USER \
-w $MAIL_PASS \
-d $TMPRECFILE \
-i $DTMFBOX_PATH/tmp/inline_$SRC_CON.txt
rm -f $TMPRECFILE

Siehe auch: http://www.ip-phone-forum.de/showthread.php?t=138371

Vielen Dank für die super Software,
dksoft
 
1. Ist möglich. Dafür müsste man einen Symlink unter /var/dtmfbox anlegen (bzw. espeak in den dtmfbox-Ordner kopieren). Sobald der Unterordner espeak existiert, bekommt man Sprachausgabe.
2. Anführungszeichen. Wird erledigt.
3. Da müsste ich nur schauen, ob die Platzhalter beim Parsen noch funktionieren (also Zielrufnummer, Anrufernummer...)
4. MP3 ist sicherlich sinnvoll und platzsparender. Macht die Applikation aber auch um einiges größer. Trotzdem würde ich das gerne integrieren (am besten als Plugin, damit man nicht bei jeder Version ändern muss).

Das mit den Plugins (Benutzerdefiniertes Skript) funktioniert auch bei Standalone und USB-Version. Wenn die Datei /var/tmp/flash/dtmfbox_userscript.sh existiert, wird diese vorher ausgeführt.

Beispiel, um die MP3-Funktionalität als Plugin einzubinden:
/var/tmp/flash/dtmfbox_userscript.sh:
Code:
#!/bin/sh
mailer_custom() {
  #
  # hier die Mailer-Funktion aus script_funcs.sh einfügen und anpassen
  #
}
 
if [ "$1" = "MAIN" ];     # nur bei script_main.sh reagieren
then
 if [ "$IN_OUT" = "INCOMING" ];   # nur INCOMING-Events
 then
    if [ "$EVENT" = "DISCONNECT" ];   # beim DISCONNECT wird die eMail verschickt
    then
 
       if [ "$RECORD" != "OFF" ];
       then
 
         # Stop idle-script
         kill_idle
 
         if [ -f $RECFILE ]; then
 
            # Make recordings "unique" (add time)
            mv $RECFILE $RECFILE_UNIQUE
            RECFILE=$RECFILE_UNIQUE
 
            # Mailer (custom)...
            #
            mailer_custom
 
          fi
        fi          
 
        # !!! Fortfahren des eigentlichen Skriptes (script_main.sh) abbrechen !!
        return 1
    fi
 fi
fi
Habe obiges jetzt nicht getestet, aber so könnte man es als Plugin einbinden und würde bei jeder neuen Version erhalten bleiben... Wenn du bereits was hast, würde ich es gerne übernehmen..
 
Zuletzt bearbeitet:
Wie gesagt, MP3-Kodierung ist für die Box wahrscheinlich zu rechenaufwendig. Mein Vorschlag in dem von dksoft2 genannten Thread ist ja die Komprimierung in AD-PCM, was offenbar die allermeisten Abspielgeräte unterstützen, was auf ca. 25% komprimiert und mittels der frei verfügbaren libsndfile auch relativ einfach implementierbar sein sollte. Der Algorithmus ist auch total simpel, d.h. wenn man es schafft, wirklich nur die WAV<->AD-PCM-Konvertierung in die dtmfbox einzubinden, dürfte nicht allzuviel an der Größe des Binaries ändern.

Gruss, Nico
 
4Bit :). Das ist auch die Einsparung. Für Musik ist das sicherlich ungeeignet, aber für Sprache ist der Codec durchaus in Ordnung. Der Nachteil an alaw und der Vorteil von AD-PCM ist ja, das ersteres nicht so einfach abspielbar ist, während letzteres eines der Standardformate im WAV-Container ist und somit von den meisten Geräten einfach so abgespielt wird (ich will jetzt nicht sagen, von allen, das weiss ich halt nicht).
 
Genau das habe ich gerade auch gedacht. :) - wobei ich die Samplerate ändern würde (bei der Bitrate bin ich mir nicht sicher..)

Alaw: 8Bit/8000Hz wird momentan auf 16Bit/8000hz resampled (wegen VoIP/CAPI Konformität). Eine Umwandlung auf 8Bit/4000Hz würde 75% einsparen und käme wahrscheinlich auch ohne externe Lib aus.

Bitrate umwandeln ist kein Problem. Überlege nur gerade, wie ich die Samplerate geändert krieg (Durchschnitt aus 2 Bytes bilden :noidea:).
 
Ehrlich gesagt: Ich hab keine Ahnung wie genau diese Formate aussehen :). Wenn man einfach in den Header schreiben kann, dass das jetzt 8Bit/4KHz hat, und dann akzeptieren die Player das klaglos, dann geht natürlich auch Dein Weg.
Beim AD-PCM ist wohl irgend ein Trick dabei, wie da komprimiert wird (d.h. wie genau von 16 auf 4 Bit reduziert wird), es gibt da (wie im Anrufbeantworter-Thread auch schon erwähnt) ja auch noch 2 unterschiedliche Implementierungen, nämlich MS-AD-PCM und IMA-AD-PCM die leicht unterschiedlich sind.

Ich würde das ganze aber nicht unter Einbindung der libsndfile machen, sondern einfach die entsprechenden Funktionen statisch dazu nehmen. Wenn ich mich recht entsinne, haben die Macher der libsndfile die auch von woanders bekommen und eingebunden. Die Funktionen sind nur ein paar Zeilen lang.
 
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.