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

hallo Leute,

ich hab nach einer kleinen Pause wieder mal die dtmfbox in angriff genommen und habe nun folgendes Problem.
ich habe als dtmf befehl folgendes probiert
(immer jeweils in der ersten befehlszeile)
say_or_beeb "vorher"; nc IP PORT; say_or_beep "nachher"
say_or_beeb "vorher"; nc IP PORT
nc IP PORT; say_or_beep "nachher"
nc IP PORT

leider führt er NIE den nc befehl aus, ich kann mir nicht erkören warum, das es im telnet und in der Rudi-Shell 1a funktioniert.

(suFu habe ich benutzt doch ignoriert er in der suche das wort "nc" da es ihm wohl zu kurz ist)
schöne Grüße

//edit

kann es sein, das die Wettervorhersage und das Biowetter nicht mehr recht funktionieren ?
ich höre rein garnichts wenn ich dies anwähle --- podcast funktioniert.
 
Zuletzt bearbeitet:
@snowyrain: Hört sich so an (im Log sehe ich sonst nichts) als würde schlicht der verfügbare Arbeitsspeicher etwas sehr knapp bemessen sein. Evtl. -- so denn möglich -- im Freetz-Config noch einiges andere ausknipsen... Aber 16MB RAM sind halt -- wenig.
 
Hallo,

@hawhill: ich werde noch mal versuchen ein Image nur mit Dmtf-Box-Sip zumachen und alles was geht raus zuschmeissen. Sonst muss ich es mit ner 2.4er Kernel Version versuchen.

Gruß

Snowyrain
 
Hallo zusammen,

sorry, dass ich momentan so spät antworte. Am WE werde ich wahrscheinlich mehr Zeit haben.

Moppel_me schrieb:
Meine Idee ist folgende (für meinen Fall speziell):
Anruf -> Modul Pin -> Pin okay -> Modul Sprachmenü laden -> Auswahl treffen -> Modul X laden.
Genau so dachte ich mir das auch. Ein "Modul Pin"/"Modul Sprachmenü" müsste es aber nicht geben, da ja das Plugin als Menü dient. So könnte das Menü für Callthrough aussehen:

Code:
[menu:main]
say=... 3 Callthrough ...
3=menu:callthrough       // 3 für Callthrough. Gehe zu menu:callthrough

[menu:callthrough]
say=PIN eingeben
1234#=menu:ct_pinok    // 1234# Pin ok? Dann gehe zu menu:ct_pinok

[menu:ct_pinok]
say=Account auswählen
1=menu:ct_acc(1)        // zu menu:ct_acc wechseln und 1 übergeben
2=menu:ct_acc(2)        // zu menu:ct_acc wechseln und 2 übergeben 
3=menu:ct_acc(3)        // usw...
4=menu:ct_acc(4)
...

[menu:ct_acc]
say=Nummer wählen 
#=script:ct_call(%$1%, %dtmf%) // Skript ausführen und Account-ID (%$1%) vom vorherigen Menü übergeben und DTMF-Zeichen (%dtmf%)

// Anruf durchführen, per Skript
[script:ct_call]
say=Wähle %$2%
cmd=callmeback.bat %$1% %$2%
redirect=menu:ct_acc   // zurück zu menu:ct_acc, nachdem Skript ausgeführt

Das muss aber natürlich auch noch dokumentiert werden ;). Sollte sowohl unter Linux wie auch Windows funktionieren, da alles im Modul passiert. Die Skripte sind halt nur unterschiedlich. Aber dafür auf ein Minimum reduziert.

Moppel_me schrieb:
Tue mir nur einen gefallen, updatete die Win32 Version bitte auch immer weiter!
Aber sicher doch. :)

MHeinrich schrieb:
Habe bei mir das Problem, daß über bestimmte - nach aussen hin nicht bekannte Rufnummern - nur Werbe-Callcenter anrufen und ich die Gespräche sofort zur Beweissicherung aufnehmen möchte. So kam neulich nach so einem Gespräch mit einem Kabelanbieter ungefragt eine Auftragsbestätigung und ein Installationspaket. Kann mir für so einen Fall jemand ein Beispielskript oder einen Link anbieten?
Im Addon-Verzeichnis gibt es ein Anticallcenter-Skript. Schau dir das mal an. Dort werden unbekannte Anrufer aufgefordert, ihre Telefonnummer einzugeben . Das Aufzeichnen müsste man dann nur hinzufügen.

Tommyland78 schrieb:
Wie meinst du das mit den SIP´s ? Meinst Du damit, dass ich externe SIP´s einrichten soll um dann eine Weiterleitung an dieses Sip-Konto zu machen oder kann die DTMF-Box eigene SIP-Konten verwalten?
Die dtmfbox kann eigene SIP-Konten verwalten. Sie agiert dann als SIP-Registrar. Über den voipd wird sich lokal angemeldet, so dass ein externer SIP-Provider nicht nötig ist.

Tommyland78 schrieb:
Edit: Kann ich denn wenigstens auf alle FON´s weiterleiten statt geziehlt auf nur einen FON?
Mhh.. da muss ich passen. Analog (per CAPI) ist so eine Sache. Der Weg über den SIP-Registrar könnte da eher funktionieren.
 
...Bei mir kann ich durch Modifikation aber Gespräche aufzeichnen (ISDN)...

Hallo bodega,

könntest Du das vielleicht etwas näher beschreiben? Wie genau bringe ich dem Script bei, dass z.b. alle eingehende Gesrpäche auf MSN 111111 über die DTMF Box geroutet, an die PseudoMSN weitergereicht und aufgezeichnet werden?

Würdest Du vielleicht dein recod Script posten?

Dank dem isdn_mod.sh rückt diese lange gesuchte Lösung nun ein stück näher. Ich versuch das bislang leider erfolglos, in eine isdn_mod.sh Kopie einzubinden, die dann bei Anruf auf bestimmter MSN gestartet werden soll.

*Edit*
Hab jetzt im abgewandelten isdn_mod.sh folgendes eingebaut:
Code:
# Caller gets confirmed
#
 if [ "$EVENT" = "CONFIRMED" ];
 then
                        # starte aufzeichnung
                        $DTMFBOX $SRC_CON -record "$MYREC"

Allerdings hab ich nun das Problem, dass dieses Gespräch nicht mehr führbar ist, da es alle paar Sekunden zu 3-5 Sek. lange Aussetzern kommt, sowohl in der ordnungsgemäß erstellten Aufnahmedatei, wie im Gespräch selbst.

Gespeichert wird die Datei direkt auf einem USB Stick. Verbraucht das Erstellen soviel CPU-Last, dass die Fritzbox dass nicht mehr schafft? Kann man ggf. einen anderen Codec für die Aufzeichnung verwenden, oder sollte ich mir nun nen "großen" Server mit ISDN Anbindung aufstellen? ;)

vg
Lemur
 
Zuletzt bearbeitet:
SIP-Anmeldung / Ports -Portweiterleitung

Ich habe das Problem, dass ich mich mit meinem SIP-Softphone nicht an der FritzBox (dtmfbox) anmelden kann.

Grund ist klar: Der Port 5061 und 4000 sind durch die Firewall frei....
Allerdings benutzt jeder Client wohl noch einen eigenen, jedes mal geänderten Port....Dieser ist auch unter "dtmf Status" hinter einem angemeldeten Client zu sehen.

+++ Zur Erklärung...zwischen FritzBox und dem restlichen Netzwerk ist nen NAT mit Portweiterleitung/Firewall +++

Jetzt kann ich doch aber nicht eine Masse an Ports freigeben?!!!!
Dazumal, auch eines meiner Probleme....ich die Ports nicht kenne...also "von...bis"

Jemand ne Idee?


Der Tom
 
Grund ist klar: Der Port 5061 und 4000 sind durch die Firewall frei....

Wenn die Ports frei sind, ist der Grund für mich nicht klar ?!

Allerdings benutzt jeder Client wohl noch einen eigenen, jedes mal geänderten Port. Dieser ist auch unter "dtmf Status" hinter einem angemeldeten Client zu sehen.

Das ist normal. Das wäre hier der Port vom Client. Den brauchst Du aber nicht beachten. Diese Ports werden auch nicht freigegeben sondern öffnen sich selbständig je, nach Verbindung.

Zur Erklärung...zwischen FritzBox und dem restlichen Netzwerk ist nen NAT mit Portweiterleitung/Firewal

Sicher? ;) Ich hoffe Du meinst jetzt nicht die NAT der Fritzbox, auf der dtmfbox läuft. Wenn da wirklich ne andere NAT zwischen wäre, müsstest Du in dieser NAT die Portweiterleitung entsprechend einrichten.

Jetzt kann ich doch aber nicht eine Masse an Ports freigeben?!!!! Dazumal, auch eines meiner Probleme....ich die Ports nicht kenne...also "von...bis"

Aber warum macht man ne NAT zwischen Fritzbox Intern und dessen Clients? Ne Firewall auf dem Client-PC wäre da doch logischer, oder ist das betreffende Netzwerk so groß? Die Ports wären 5061 + 4000 - x (x= 2 pro Client)

Gruß Lemur
 
Also wie gesagt 5061 und 4000 sind frei...das passt...

Aber weil der Client wohl eben seine eigenen Ports noch benötigt und diese wohl bei der Anmeldung am SIP (dtmf-box) benötigt werden. Der letzte Versuch mit einer anderen Box die ich VOR der Firewall betreibe lieferte Port 1421....am Client der nächste war 15 Portnummern höher...mhhh

Und ja ich meine meinen eigenen NAT und nicht die der FB und ja das Netzwerk ist größ.... 13 Clients und 8 per VPN...zumindest was das AD mit den Profilen angeht....

Und welchen Sinn sollte eine Firewall auf einem Client machen? - Also das ist ja wohl das Ende jedes Sicherheitsgedanken... :)

So und nu? Wie weiter?
 
Mach mal 5061 und 4000-4010 auf.
Welches Protokoll hat denn die Portfreigabe in der NAT?

Der Sinn bzgl. der Clientfirewall wäre z.B. das Verhindern von Clientseitigen Zugriffen,
z.b. von Software auf dem Client die sich nicht verbinden soll, o. ä.
oder von bestimmten Clients, die von der DMZ noch mal extra abgesichert werden müssen. ;)

Ich würde also ehr sagen, dass es der Anfang eines Sicherheitsgedanken sein könnte ... oO

*EDIT*
Hast Du denn die Möglichkeit, genau diesen Client, mal direkt an der dtmfbox zu betreiben, um zu sehen ob es funktioniert?
Somit könntest Du das Problem auf ein Firewall/NAT Portforwarting eingrenzen?!
 
Zuletzt bearbeitet:
Nun ich will das ja nicht ins unendliche treiben und es am ende noch OT werden lassen....aber wie kann sich eine Software auf einem Client mit irgendwas verbinden was der Admin nicht will? Ich mein...wenn der Admin schon das install solch einer Soft zuläst.... :)

Aber gut...ich werds mal mit den 10 weiteren probieren....ach ohne nachzusehen ... UDP wars glaub ich...

Der Tom
 
Es gibt einige Möglichkeiten, warum der Admin es zulässt, vielleicht sitzt er ja selber manchmal an nem Client, wo er die Software braucht *g Oder anderes Szenario, wie willst Du das Tunneln von, sagen wir mal einer abgewandelten Spyware verhindern, wenn Dir der Prozess nicht bekannt ist? Irgend ne SSL Verbindung auf nen xyz.com mit Port 443 fällt da i.d.R. in der NAT nicht auf, auf ner Clientfirewall, die den ausführenden Prozess kennt, sehr wohl ;)

Aber egal, lassen wir das OT mal.

Hab gerad geschaut, bei mir belegt dtmfbox 5061 + 4000 - 4039 UDP.

Und damit geht definitiv mein Softphone, übrigens auch durch ne NAT.
Du kannst die Ports der dtmfbox aber ggf. unter Settings/ VOIP ändern.
 
Zuletzt bearbeitet:
Jetzt ist der blöde Akku vom Headset leer...na toll...

Aber, ums loszuwerden....jetzt gehts erstmal...morgen dann der Rest mit Skype und dém Sipeingebaue in Skype ...das wird noch was werden....gääähn...

Bis morgen...Ach und danke...kletztendlich hab ichs bis 4010 gemacht...ich muss jeden einzeln eintragen....

Der Tom
 
hallo bodega...
ich habe mal eine frage!

da dein paket ja nun eine (respekt!!!) doch recht nennenswerte grösse erhalten hat und die funktionen sich ja regelgerecth überschlagen, wollte ich mal fragen, ob es die funktion des per anruf scriptens mit der ich früher meine ports ein und ausgeschaltet habe auch irgendwie einzeln gibt...denn ab usw hat die box ja jetzt...
das komplette paket passt leider nicht mehr druff auffe box...trotz external.patch...
oder kannst du mir sagenw as ich alles abwählen kann ohne diese scriptsteuerung zu verlieren?

wäre dir da sehr dankbar...
grüsse
der darky eben
 
Hallo bodega,

gestern habe ich die dtmfbox installiert und einen VOIP-Account installiert. Es funktioniert alles so weit, eine tolle Sache.

Folgendes Problem habe ich nun: Wenn ich VOIP-Accounts einrichte, registrieren diese sich ja in regelmäßigen Abständen bei ihrem SIP-Server. Das ist aber nicht nötig, wenn der Account nicht für eingehende Anrufe verwendet wird. Diese Registrierung kann sogar störend sein, weil in meinem speziellen Fall ein Sparvoip-Account konfiguriert wurde und die SIP-Software der Betamax-Ableger dann Fehler anzeigt, sobald dtmfbox diesen registriert.

Kann ich für einzelne VOIP-Accounts die Registrierung am SIP-Server abschalten, ähnlich wie es der VOIP-Dienst der FritzBox mit "do_not_register = yes" zulässt? Anscheinend führt die Einstellung voip_register_interval = 0 in der dtmfbox.cfg dazu, dass sich keiner der konfigurierten Accounts anmeldet. Kann man das eventuell auch individuell ein-/ausschalten?
 
Hi all,

Lemur schrieb:
Allerdings hab ich nun das Problem, dass dieses Gespräch nicht mehr führbar ist, da es alle paar Sekunden zu 3-5 Sek. lange Aussetzern kommt, sowohl in der ordnungsgemäß erstellten Aufnahmedatei, wie im Gespräch selbst.
Bei dem hinterlegten Codec (G711) schwer vorstellbar. (8000 * ( 16 / 8 ) * 1) / 1024 = 15,625 kb pro sec. Das sollte der USB eigentlich schaffen. Der Kodierungsaufwand ist sehr gering. Falls die dtmfbox mit Resample-Quality '2' gebaut sein sollte (high quality), könnte das aber vor kommen. Hast du schon mal mit 'top' geschaut, ob die Auslastung hoch ist?

Tommyland78 schrieb:
Der Port 5061 und 4000 sind durch die Firewall frei....
Allerdings benutzt jeder Client wohl noch einen eigenen, jedes mal geänderten Port....Dieser ist auch unter "dtmf Status" hinter einem angemeldeten Client zu sehen.
Kann man den Port-Range irgendwie fest hinterlegen, bzw. das Registrierungsintervall auf den gleichen Wert stellen wie in der dtmfbox? Normalerweise sollten die Clients keine Neuregistrierung durchführen, solange das Registrierungsintervall nicht abgelaufen ist. Es könnte aber auch noch ein Bug sein, den ich schon gefixt habe. Irgendwas war da nochmal...

@Darkyputz
Bei der nächsten Version sollte das gehen (siehe vorherige Posts über Plugins und Menü über INI-Datei). Mit dem Platz ist das so ne Sache, aber da erzähle ich dir nix Neues ;). Zumindest kam ich am WE etwas mehr zum programmieren und es sieht bereits gut aus. Ich bin momentan dabei, die alten Skripte zu migrieren. Der größte Teil wird auch wegfallen und es wird um einiges übersichtlicher. Die Skripte lassen sich auch direkt per WebIf bearbeiten und werden (gepackt) auf USB oder im Flash gespeichert.

Menüpunkte die auf jedenfall wegfallen werden:
- Callback/Callthrough
- Anrufbeantworter
- DTMF-Commands
- Sonstiges

Die Funktionen wird es alle weiterhin geben! Da man aber die Skripte direkt bearbeiten kann, sollte dass eher Vorteilhaft sein. Welche Größe am Ende rauskommt, wird sich zeigen.

@mrspeccy
Leider gibt es so einen Parameter nicht. Da ich aber gerade dabei bin, kommt es mit auf die Todo für das nächste Release...
 
Falls die dtmfbox mit Resample-Quality '2' gebaut sein sollte (high quality), könnte das aber vor kommen. Hast du schon mal mit 'top' geschaut, ob die Auslastung hoch ist?

Hallo Bodega,

danke für deine Antwort.

Was mich ein bischen verwundert ist deine Aussage, dass "2" high quality ist.
Im Freetz "make menuconfig" steht das genau andersrum. Da ist 0 high quality und 2 low quality. Was stimmt denn nun? Hatte übrigens mit der goldenen Mitte "1" das Resample-Quality compiliert.

Werd bei Gelegenheit nochmal mit top schauen, imo mach ich gerad nen Rückschritt auf die freetz -r2186, aber da ist ja auch das aktuelle dtmfboxpack mit dabei.

War meine Idee, die Recordschleife nach dem "intern connected" einzubauen denn soweit an der richtigen Stellen, mit anderen Worten, sollte dass so einwandfrei laufen?

vg Lemur
 
Zuletzt bearbeitet:
danke für dein zügiges feedback...
freu mich schon...
 
@Lemur:
Jo. Das muss eigentlich genau andersrum. Die goldene Mitte (Small Filter) geht aber auch. Bei Linear (2) ist es am Schnellsten. Bin mir jetzt nur nicht sicher, ob Small Filter mitgebaut wird, da in pjsip "deprecated" ... muss mir das eh nochmal im dsmod anschauen. Egal... beim nächsten Release kann man das über die Konfig einstellen.

Die Stelle im Skript ist auf jedenfall richtig. Man müsste eventuell nur noch die Gegenseite aufzeichnen ($DTMFBOX $DST_CON -record "$MYREC2") und beide Wave-Dateien mixen. Noch sehr viel Arbeit ;).
Ich hoffe, dass durch das Menü-Plugin alles etwas einfacher wird. Dann könnte sich das Paket fast von selbst pflegen, wenn mehr Leute mitmachen.

@all:
Irgendwo hatte ich gelesen, dass die Wettervorhersage nicht funktioniert. Darüber bin ich momentan auch gestolpert.
Die Webseite für die Wettervorhersage hat sich geändert. Der Podcast funktioniert weiterhin. Ich werde das Skript für das nächste Release soweit vorbereiten, dass die Dame sagt: "Wettervorhersage muss noch implementiert werden!". Momentan muss ich mich mehr auf andere Programmteile konzentrieren.
 
Zuletzt bearbeitet:
@bodega,

danke für die zeitnahe Antwort.
Das die Gegenseite nicht mitaufgezeichnet wird, hab ich dann auch relativ schnell bemerkt und nun schon mit eingebaut. In der r2186 sind übrigens die Lags weg, und die CPU Last spring nur kurzeitig auf 42%.

Allerdings hab ich nun ein anderes Problem, die Aufzeichnung startet ca. 10 Sek. nach "confirmed", leider hören sich die beiden Gesprächspartner auch erst nach ca. 8-10 Sek.

Wie sich die Stabilität bei längeren Aufzeichnungen verhällt, hab ich auch noch nicht testen können. Werden die WAV Files erst nach dem disconnect geschrieben? Wenn dem so ist, dann dürfte die Länge durch die Boxmittel schnell begrenzt sein, wie sieht das da mit der Stream - Geschichte aus?

Die erschließt sich mir noch nicht. Kann ich den "Stream" als raw - File direkt schreiben lassen, oder wird der auch erst am Ende der Aufzeichnung erstellt? Wie lautet der Befehl für den Stream?

Code:
Recfile="var/media/ftp/uStor01/test.raw"
$dtmfbox 0 -record $Recfile mode=stream hz=8000
geht irgendwie nicht, die File wird nicht erstellt.

Grüße Lemur
 
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.