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

Hallo bodega,

bodega schrieb:
Bei Callback/Callthrough über CAPI den ausgehenden Controller auf 1 ändern ! Early B3 fehlt momentan. Also gibts kein Tuten...

leider klappt es bei mir so wie ich möchte. Der Callback kommt zurück, aber dann gehts nicht weiter, trotz Eingabe einer 101#. Wie oben angegeben, habe ich beide Controllernummern auf 1 gesetzt.

Wo kann man das Log (Loglevel steht auf 4) einsehen und gibt es schon eine kleines Readme?

Ich möchte das Callback-Script erweitern, indem auf der Nummer zurückgerufen wird, von der auch der Callback-Triggeranruf kam (natürlich mit Positivliste) und möchte statt der fest vorgegebenen Nummern, beliebige Nummern anrufen können (also die DTMF-Töne als Rufnummer verwenden). Ggf. wäre auch ein Kombination PIN/Rufnummer denkbar (also PIN*Rufnummer#). Ich denke das sollte möglich sein.

Gruß
Markus
 
Nur mal angenommen, ich würde eine bestehende Portfreigabe via dtmf aktivieren und wieder deaktivieren wollen...was müsste dafür wo im dtmfbox eingetragen werden?
 
Hi Leute hab die neue dtmfbox auf der FB drauf wenn ich nun versuche meine voip nummer zu registrieren kommt per telnet abfrage das raus:

[VOIP] XXXXXX - sip.1und1.de - (403) - Keine RFC1918-IPs erlaubt

was hat das zu bedeuten?
habs auch mit der ip der seite versucht da kommt das gleiche raus

MfG Tomekk
 
Du musst bei einer der Adessen (ich glaub bei "Registrar") nur "1und1.de" eintragen. Mal durchprobieren. Allerdings ist mein aktueller Stand, dass 1und1 noch nicht wirklich funktioniert.
 
lol der registrar steht drin und dass 1u1 ned funzt wusste ich dachte nur dass sich das mittlerweile evtl geändert hat
 
Hallo bodega,

m.kress schrieb:
leider klappt es bei mir so wie ich möchte. Der Callback kommt zurück, aber dann gehts nicht weiter...
Ich habs jetzt hinbekommen.


m.kress schrieb:
Wo kann man das Log (Loglevel steht auf 4) einsehen...
Hatte wohl Tomaten auf den Augen. Hab's jetzt gefunden.

m.kress schrieb:
Ich möchte das Callback-Script erweitern, indem auf der Nummer zurückgerufen wird, von der auch der Callback-Triggeranruf kam (natürlich mit Positivliste) und möchte statt der fest vorgegebenen Nummern, beliebige Nummern anrufen können (also die DTMF-Töne als Rufnummer verwenden). Ggf. wäre auch ein Kombination PIN/Rufnummer denkbar (also PIN*Rufnummer#). Ich denke das sollte möglich sein.

Ich habe das CB-Script angepasst, dass es Ansatzweise das kann. Was mir fehlt, ist eine Möglichkeit bei Disconnect der 1. Verbindung (der Callback) auch die 2. Verbindung zu trennen. Diese Klingelt nämlich weiter und hängt sozusagen in der Luft.

Ich möchte auch gerne auch interne Telefone (nur Callback) anrufen können. Falls die gewünschte Zielrufnummer, die ich mit meinem Script per DTMF eingebe leer ist, so setze ich **51 als Ziel ein. Das funktioniert aber scheinbar nicht. Was muß ich tun?

Ich habe eine Frage zu dem Script. Welche Funktion hat dieser IF (der Syntax ist klar, jedoch nicht das warum)?
Code:
 if [ "$DST_NO" = "$NO_WITH_NULL" ] || [ "$DST_NO" = $NO_WITHOUT_NULL" ];

Gruß
Markus
 
Zuletzt bearbeitet:
Tomekk1985m schrieb:
lol der registrar steht drin und dass 1u1 ned funzt wusste ich dachte nur dass sich das mittlerweile evtl geändert hat
Nein, hat sich leider noch nicht geändert. Aber der Fehler den Du hast ist einer, welcher durch eine falsche Adresseinstellung zustande kommt.

Im Anhang siehst Du meine Einstellungen. Damit meldet sich die dtmfbox schon mal an den 1und1-server an, leider nimmt die box nur nicht ab.
 

Anhänge

  • bild1.JPG
    bild1.JPG
    50.1 KB · Aufrufe: 100
  • bild2.JPG
    bild2.JPG
    33.7 KB · Aufrufe: 76
m.kress schrieb:
Ich habe das CB-Script angepasst, dass es Ansatzweise das kann. Was mir fehlt, ist eine Möglichkeit bei Disconnect der 1. Verbindung (der Callback) auch die 2. Verbindung zu trennen. Diese Klingelt nämlich weiter und hängt sozusagen in der Luft.

Beim "DISCONNECT" musst du die gewählte Verbindung manuell einhängen:

Code:
# Der ausgehende Callback-Anruf. 
# DTMF: 100# ruft die erste Nr. an, DTMF: 101# ruft die zweite Nr. an, usw.
if [ "$EVENT" = "DTMF" ] && [ "$DIRECTION" = "OUTGOING" ]; 
then
  if [ "$DST_NO" = "$NO_WITH_NULL" ] || [ "$DST_NO" = "$NO_WITHOUT_NULL" ]; 
  then

    # DTMF: "101#" – CAPI Anruf nach 0242134121 über MSN 33333
    if [ "$DTMF" = "101" ]; then
      # Verbindungs-ID in /var/tmp/connection.tmp speichern
[COLOR="Red"]      con=`dtmfbox $SRC_CON -call 33333 0242134121`
      echo $con > /var/tmp/connection.tmp[/COLOR]
    fi

    return 1  # AB-Skript abbrechen
  fi
fi

[COLOR="red"]if [ "$EVENT" = "DISCONNECT" ] && [ "$DIRECTION" = "OUTGOING" ]; 
then
  # Verbindungs-ID auslesen und trennen
  con=`cat /var/tmp/connection.tmp`
  dtmfbox $con -hook down
fi[/COLOR]

Hab es jetzt nicht getestet, aber so müsste es funktionieren.

m.kress schrieb:
Ich möchte auch gerne auch interne Telefone (nur Callback) anrufen können. Falls die gewünschte Zielrufnummer, die ich mit meinem Script per DTMF eingebe leer ist, so setze ich **51 als Ziel ein. Das funktioniert aber scheinbar nicht. Was muß ich tun?

Das mit den **XX-Nr hab ich bisher nicht probiert. Interne Telefone kann man über Ctrl. 3 erreichen (aber nicht über die Kurzwahl).
In Momentan kann man nur einen ausgehenden Controller einstellen (intern=3 bzw. extern=1).

m.kress schrieb:
Ich habe eine Frage zu dem Script. Welche Funktion hat dieser IF (der Syntax ist klar, jedoch nicht das warum)?

Manchmal wird eine Null mit der Vorwahl übertragen und manchmal nicht. Lässt sich vielleicht schöner lösen ;)
Das warum ist mir auch noch unklar.

EDIT:
Hab mal einen Parameter an den '-call' drangehangen. Bei der nächsten Version kann man den Controller dann dynamisch bestimmen. Das mit dem Webinterface-Design ist auch fertig.
Es gibt auch eine USB-Version (mit Webinterface), die man nicht flashen braucht. Wahrscheinlich angenehmer, weil sich hin und wieder was ändert (find ich zumindest).
 
Zuletzt bearbeitet:
Hallo Bodega,

super mit dem Controller-Parameter. Denn ein Callback "nach zuhause" wäre sicherlich der am meist genutzte Anwendungsfall (das geht zwar auch mit der Standardfirmware, doch könnte ich mit der dtmfbox-Lösung wesentlich flexiber arbeiten.

Mein Script werde ich Veröffentlichen, denn ich glaube das einige andere Bedarf haben.
Folgende Features hat meine gewünschte Endlösung (Alles ist bereits gelöst, aber noch ziemlich ungetestet):

Fall 1: Triggeranruf von Nummer auf Positivliste
-> es wird nicht abhoben
-> Callback sofort auf Nummer des Triggeranrufs
-> Ansage: Nummer eingeben
-> Zielnummer# eingegeben
-> Ansage der eingegebenen Nummer
-> Beginnt Nummer mit einem * (z.B. *12345#), so wird aufgelegt und ein 2. Rückruf an Nummer hinter Stern gemacht (z.B. an 12345). Prozedur beginnt an diesem Anschluß von vorne, jedoch ohne das die Nummer auf der Positivliste stehen muß. Vorteil: Man kann einem Teilnehmer mit anonymen Nummer oder einer Nummer die nicht auf der Positivliste steht übergeben werden.
-> Nummer wird gewählt und verbunden

Fall 2: Triggeranruf von Anonym
-> es wird abgehoben
-> Ansage "PIN und Rückrufnummer eingeben" oder
-> Bei fehlender Rückrufnummer oder falscher PIN entsprechend Ansagen
-> PIN korrekt und Rückrufnummer angegeben/bekannt, dann Rückruf

Fall 3: Triggeranruf von Nummer die nicht auf Positivliste steht (oder ohne Nummer)
-> es wird abgehoben
-> Ansage "PIN eingeben" oder "PIN und Rückrufnummer eingeben" (abhängig ob Anonym).
-> PIN (ggf. und Rückrufnummer) eingeben (PIN*NUMMER#).
-> Bei fehlender Rückrufnummer oder falscher PIN entsprechend Ansagen
-> PIN korrekt und Rückrufnummer angegeben/bekannt, dann Rückruf (wird wie in Fall 1 weitergemacht)

Gruß
Markus
 
Zuletzt bearbeitet:
Hi bodega,

ich versuche mich gerade daran, eine Menüsteuerung per Script zu programmieren.
Dafür benutze den Parameter "-delimiter none". Dadurch wird jeder DTMF code direkt and das Script weitergegeben.
Allerdings habe ich dabei folgendes Problem:
1) bei 0-9 wird der DTMF code augenscheinlich als 6. Parameter übergeben anstatt als 8. (gut, das kann leicht im Script korrigiert werden)
2) # und * werden gar nicht übergeben - es sieht ein wenig danach aus, als ob diese Zeichen vor dem Aufruf von der shell ausgewertet/ausgefiltert werden (?).

Ach ja, kannst Du auch wieder eine standalone Version erzeugen? :)
 
Hallo todada,

oha, da scheint ein Bug drin zu sein.

Bei 1 wird die Quell- und Zielrufnummer weggelassen, deswegen der 6. Parameter anstelle von 8.
Bei 2 wird der Stern und die Raute von der Shell gefiltert. Dann stehen dann aufeinmal die Dateinamen des Verzeichnisses :eek: (echo *)

Werde ich zur nächsten Version fixen (u.a. standalone).
Danke für den Hinweis.
 
Danke!

Ich habe übrigens noch einen seltsamen Effekt bemerkt, der mich zwar nicht stört, den ich mir aber nicht erklären kann.
In der originalen script_main.sh werden Statusausgaben auf die Konsole gemacht und danach die Script-Datei für die Aufnahme erzeugt:

Code:
 --------------------------------------------------------------------------------
# Output info
 --------------------------------------------------------------------------------
echo ""
echo "EVENT  : $EVENT"
echo "TYPE   : $TYPE"
echo "IN/OUT : $IN_OUT" 
...
if [ "$EVENT" = "CONNECT" ]; 
then
...
          # Start background script (ringing)
          #
          echo "echo \$\$ > $DTMFBOX_PATH/tmp/script_timeout_$SRC_CON.pid" > $DTMFBOX_PATH/tmp/script_timeout_$SRC_CON.sh
          echo "sleep $RINGTIME"                                          >> $DTMFBOX_PATH/tmp/script_timeout_$SRC_CON.sh
...

Bei mir erscheint die Ausgabe der ersten echo-Kommandos nicht in der Konsole, sondern wird mit in die Datei geschrieben!
Mittlerweile generiere ich keine Scripte mehr, so daß es nichts ausmacht (außer das man keine log-Ausgaben sieht). Aber komisch ist das schon.

Ich benutze übrigens dtmfbox 0.3.5.
 
@todada:
In welche Datei wird das geschrieben? Die Logausgaben des Skriptes sieht man nur, wenn das Programm im Vordergrund gestartet wird.

EDIT:
@all:
Ich denke am WE werde ich die neue Version posten. Dann sollte es auch den Source geben.
Schauen, wie die Tests verlaufen...

Hab auch mal das neuste espeak kompiliert. Die Sprachausgabe hört sich mittlerweile recht gut an. Es könnten sogar ganze Zahlen vorgelesen werden (unglaublich ;)).
 
Zuletzt bearbeitet:
Hi bodega,

ich hab es nochmal ausprobiert und kann es jetzt selbst nicht mehr reproduzieren...
Also erst einmal Entwarnung! :p

Was ich gesehen hatte ist folgendes:
die Ausgaben der echo-Kommandos wurden mit in die script_timeout_xxx.sh geschrieben. So, als wenn sie gepuffert (der Prozess ist ja im Hintergrund gestartet und hat keine Konsole) und dann mit der ersten Ausgabe in die Datei geschrieben würden.
Das würde sowieso eher auf einen Fehler in der busybox hindeuten.

Allerdings hatte ich die ersten Versuche mit der Laborversion (29.04.31-6572) gemacht. Wenn ich die Zeit finde, werde ich es damit noch einmal ausprobieren.

Tom
 
@bodega
Ist die v0.3.6 auch als standalone verfügbar?
 
@todada:
Ich überlege gerade, ob man das dynamische Erstellen der Datei nicht weglassen kann und dafür eine Statische nimmt :rolleyes:

@holofox:
für v0.3.6 nicht mehr. Aber bei v0.3.7 ist eine dabei.
 
So, nach einem langen Abend muß ich sagen, daß ich nicht mehr weiter weiß.

Ich hatte die Scripte von 0.3.5 noch einmal genommen und nur so weit geändert, daß ich die dtmfbox standalone starten konnte. Damit funktionierte das Erstellen der Scriptdatei - was ich gestern fröhlich gemeldet hatte.

Da ich es ja doch wissen wollte habe ich die Laborversion in die FB geladen. Ergebnis: Auch damit kein Fehler!

Also wieder die standard Software geladen (puh!) und an anderer Stelle weitergemacht...

Jetzt plötzlich bekomme wieder den selben Fehler. Der Inhalt der Datei
tmp/script_timeout_0.sh sieht dann folgendermaßen aus:
Code:
EVENT  : CONNECT
TYPE   : ISDN
IN/OUT : INCOMING
(0) xxxxxx < xxxxxxxxxx (-1)
echo $$ > /var/media/ftp/MassStorageDevice-Partition-0-1/vmbox/tmp/script_timeout_0.pid
sleep 15
dtmfbox 0 -hook up
dtmfbox 0 -play ./play/beep.wav
dtmfbox 0 -record /var/media/ftp/MassStorageDevice-Partition-0-1/vmbox/record/07-05-18---xxxxxx-xxxxxxxxxx-0.wav
sleep 30
dtmfbox 0 -play ./play/beep_end.wav
dtmfbox 0 -hook down
return 1
d.h. die vorherigen echo-Ausgaben gelangen mit in die Datei.
Füge ich testweise vor dem Erzeugen der Datei ein

echo "TEST" > /dev/pts/1

ein (ich habe zwei telnet Sessions gestarted), dann sehe ich den ganzen Schmodder im Terminal und die Datei ist ok.

Ein Neustart der Box ändert auch nichts am Verhalten.

Da mir die Ideen ausgehen werde ich wieder den Aufruf einer vorbereiteten Scriptdatei mit entsprechenden Parametern einbauen (hatte ich schon drin) und die Sache erst einmal ruhen lassen.

Vielleicht kommt ja noch irgendwann die große Erleuchtung.

Tom
 
Erstaunlich. Vielleicht sollte ich die Ausgaben im Skript weglassen, wobei mir der Fehler irgendwie nicht ganz Plausibel erscheint. Ich hab's auch mal versucht nachzustellen, aber irgendwie klappt das... :noidea:

Wie gesagt, ich werde das Skript statisch hinterlegen. Damit sollte sowas dann nichtmehr auftreten (wobei mir der Fehler trotzdem verschlossen bleibt).
 
Zuletzt bearbeitet:
Jau - ich war ziemlich frustriert :(.
Da ich das Problem aufgebracht hatte wollte ich auch irgendeine Erklärung finden.

Wenn sonst keiner diesen Fehler sieht :confused: (und da ich einen workaround habe) würde ich die Sache hier erst einmal beenden.

Sobald ich irgendeine Erkenntnis habe, werde ich sie natürlich umgehend posten.

Danke für die Hilfe.
 
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.