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

Durchleiten und aufnehmen

Danke, Marco!! Sobald ich Zeit habe, werde ich testen. Erstmal muss ich aber den Durchleitungs-Modus richtig hinkriegen, und dann ist da noch mein ISDN Telefon, das MSN´s annimmt, für die es gar nicht eingerichtet ist.
Jörg
 
@bodega:
Bei 0049 bekomme ich zwar einen Wählton, der angerufene Anschluss klingelt aber nicht. Versuche ich das Ganze direkt am ISDN Telefon, sagt mir eine freundliche Dame: "Kein Anschluss unter dieser Vorwahl." Anscheinend lässt die Telekom 0049 gar nicht zu!

Laut Log macht ja dtmfbox aus +49XXXXX 49XXXXX:
Code:
voip_registrar Make CAPI call by client (12345 -> 49XXXXX)...

Könnte dtmfbox evtl. die 49 am Anfang durch 0 ersetzen? Würde nämlich gerne mein Telefonbuch auf dem E51 im +49 Format belassen, sonst funktionieren Gespräche aus dem Ausland und VoIP nicht mehr!

Gruß...sbenett
 
sbenett schrieb:
Anscheinend lässt die Telekom 0049 gar nicht zu!
Jetzt wirklich? 0049... sollte doch gehen? 49... aber nicht. Probiere es mal aus dem Festnetz heraus.

sbenett schrieb:
Könnte dtmfbox evtl. die 49 am Anfang durch 0 ersetzen? Würde nämlich gerne mein Telefonbuch auf dem E51 im +49 Format belassen, sonst funktionieren Gespräche aus dem Ausland und VoIP nicht mehr!
Das könnte man noch implementieren. Das + wird halt weggefiltert. Man müsste es durch 00 ersetzen.

EDIT:
ich hätte vorerst nur einen Workaround (als benutzerdefiniertes Skript):
Code:
if [ "$SCRIPT" = "BEFORE_LOAD" ] && [ "$IN_OUT" = "OUTGOING" ] && [ "$TYPE" = "USER" ];
then
  if [ "$EVENT" = "DDI" ]; 
  then 
    if [ ! -f "$DTMFBOX_PATH/tmp/$SRC_CON.49_patch" ];
    then
      $DTMFBOX $SRC_CON -hook up; 
      echo "" > "$DTMFBOX_PATH/tmp/$SRC_CON.49_patch"
    fi
  fi

  if [ "$EVENT" = "EARLY" ]; 
  then
    DST_NO=`echo "$DST_NO" | sed -e "s/^49/0049/g"`
    $DTMFBOX $SRC_CON -call $SRC_NO $DST_NO
    [COLOR="Red"]rm "$DTMFBOX_PATH/tmp/$SRC_CON.49_patch" 2>/dev/null[/COLOR]
    return 1
  fi
fi
Leider fehlt dabei wohl der Wählton.
 
Zuletzt bearbeitet:
bodega schrieb:
Jetzt wirklich? 0049... sollte doch gehen? 49... aber nicht. Probiere es mal aus dem Festnetz heraus.

Hat mich auch gewundert, aber wie gesagt, wenn ich es aus dem Festnetz (T-Com) heraus probiere, kommt die o.g. Ansage. Vom Handy aus funktioniert es. Auch kann ich ohne Probleme einen Freund im Ausland (0043) anrufen.

Kann das bitte jemand mit einem T-Com ISDN-Anschluss mal überprüfen? Also versuchen 0049+Vorwahl(ohne 0)+Rufnummer zu wählen. Mercy!

EDIT:

bodega schrieb:
ich hätte vorerst nur einen Workaround (als benutzerdefiniertes Skript):

Werde ich gleich mal testen, danke!

EDIT2:
Mit sed -e "s/^49/0/g" scheint zwar +49 durch 0 ersetzt zu werden, bekomme aber nur ein Besetztzeichen! Im Log steht dazu folgendes:
Code:
script_funcs.c RUN SCRIPT: "./script/script_main.sh" "CONNECT" "CAPI" "OUTGOING" "1" "0" "12345" "49XXXXX" "1" ""
script_funcs.c RUN SCRIPT: "./script/script_main.sh" "CONNECT" "CAPI" "OUTGOING" "2" "0" "12345" "0XXXXX" "1" ""
...
script_funcs.c RUN SCRIPT: "./script/script_main.sh" "DISCONNECT" "CAPI" "OUTGOING" "1" "0" "12345" "49XXXXX" "1" ""
...
script_funcs.c RUN SCRIPT: "./script/script_main.sh" "DISCONNECT" "USER" "OUTGOING" "0" "2" "12345" "49XXXXX" "1" ""
       funcs.c Set low priority
script_funcs.c RUN SCRIPT: "./script/script_main.sh" "DISCONNECT" "CAPI" "OUTGOING" "2" "-1" "12345" "0XXXXX" "1" ""
 
Zuletzt bearbeitet:
Mhh.. das Skript hebt beim DDI-Event nicht ab. Leider fehlen die jew. Stellen im Log. Nicht dass es an der if-Bedingung liegt ( if [ ! -f "$DTMFBOX_PATH/tmp/$SRC_CON.49_patch" ]; ). Muss leider raten.

EDIT:
oh.. vielleicht mein Fehler:
Code:
rm "$DTMFBOX_PATH/tmp/$SRC_CON.49_patch 2>/dev/null"
durch
Code:
rm "$DTMFBOX_PATH/tmp/$SRC_CON.49_patch" 2>/dev/null
ersetzen und die Datei /var/dtmfbox/tmp/*.49_patch löschen.
 
Zuletzt bearbeitet:
Ja das wars, jetzt funktionierts! Zwar ohne Wählton, aber damit kann ich leben. :)

Vielen Dank für die schnelle Hilfe!
 
Den Wählton könnte man auch noch über das Skript realisieren, aber da muss man es noch etwas erweitern.

Ich werde ein paar Sachen in der nächsten Version daran ändern. Eigentlich könnte das ja weiterhin über das benutzerdefinierte Skript laufen, nur der 200 Response müsste erst mit der Rufannahme der zweiten Verbindung statt finden (dann hat man auch wieder den Wählton). Kurzwahlen/Wahlregeln wären dann auch möglich (z.B. anhand bestimmer Vorwahlen einen anderen Account wählen oder LCR).
 
Ich habe das Callbackscript gestartet, und es funktioniert auch grundsätzlich, d.h. die Box ruft auch auf mein Handy zurück. Danch kommt jedoch nur Stille. Meine Fragen:

1. Gibt es eine Möglichkeit einen Callback so auszulösen, dass nach dem zunächst zurückgerufen und dann automatisch zu einer hinterlegten Zielnummer gewählt wird, ohne dass ich von meinem Handy etwas per dtmf wählen muß?
Da ich eine Vielzahl von Rufnummern auf meiner FBF habe, könnte ich so für die erste MSN z.B. Anruf zu meinen Eltern hinterlegen, für die zweite Anruf zu meinem Bruder...

2. Es wäre für mich interessant, wenn man den Verbindungsaufbau per Webinterface steuern könnte. Eingabe der Nummer, den man eigentlich anrufen möchte, ins Webinterface, nach Klicken von "Verbinden" anrufen der dtfm-box aufs Handy angerufen und nach abnehmen dort auf die ausgewählte Zielnummer verbunden wird.
Es würde schon reichen, wenn es ein Kommando gäbe, mit dem man das auf der shell auslösen könnte (ähnlich dem altbekannten "atdt" - befehl, nur dass das ja immer den Rückruf mit einem internen Anschluß verbunden hat)
 
Hi Andre,
Die Stille in der Leitung ist normal. Über 3 erreichst du dann Call-Through. Je nachdem ob du espeak aufm USB-Stick hast, spricht das Ding auch mit dir.
Wenn du dann 3 gewählt hast, gibst du die Nummer gefolgt von # ein.
Leider weiss ich auf 1. und 2. keine befriedigenden Antworten. Bin erst gestern von der Loop-Back-Kabelvariante mit Callmonitor geswitcht (wer war denn das nochmal?) ;)
Danke dafür. Hoffe ich konnte wenigstens ein wenig aufklären.
Ciao
Jeronimo
 
1. Man müsste sich dafür nur sein eigenes Callback-Skript erstellen und dies als benutzerdefiniertes Skript hinterlegen. Man könnte hierfür "script_internal_3.sh" anpassen. Ich schaue mal, ob ich ein kleines Beispiel zusammenkriege.

2. Einfach mal auf der Konsole ./dtmfbox eingeben.
Z.B. zwei Anrufe durchführen und miteinander verbinden:
Code:
# 1. Anruf über internen S0 (Ctrl. 3), Quellnummer: 12345, Zielnummer: 1111111, man erhält eine Connection-ID zurück
CON_ID1=`dtmfbox -call 12345 1111111 3`

# 2. Anruf über externen S0 (Ctrl. 1), Quellnummer: 1111111, Zielnummer: 88888888, verbunden mit $CON_ID1
CON_ID2=`dtmfbox $CON_ID1 -call 1111111 88888888 1`

Man müsste hier nur jeder Verbindung noch eine Skriptdatei zuweisen, damit die Events auch empfangen werden (CONNECT, CONFIRMED, DTMF, DISCONNECT...). Wenn z.B. ein Gesprächsparter auflegt, so muss auch die Gegenstelle mit aufgelegt werden.

Es gibt noch andere Befehle. Detailhilfe gibt es mit "./dtmfbox -scriptfile help", "./dtmfbox -play help", etc..
 
Durchleiten und Aufnehmen

Es gab einige Probleme beim Testen, ich bin gerade nicht zu hause und beschreibe aus der Erinnerung.
(1) Wenn ich im AVM Webinterface unter Internettelefonie einen Account für die Dtmfbox mit 601 und localhost anlegen will, werde ich aufgefordert einen User-Namen zu vergeben, ich kann ihn nicht leer lassen. Und wenn ich irgendwas eingebe, kann sich die Fritzbox nicht bei der Dtmfbox anmelden („x@localhost konnte sich nicht anmelden“).
Gibt es da einen workaround?
(2) Die Ziel-MSN von eingehenden Gesprächen wird von der Dtmfbox nicht erkannt, sondern als „unknown“ angezeigt. Deswegen habe ich in der Dtmfbox einen Account mit MSN unknown angelegt, und erst dann läuft das isdn_mod Skript, er fragt phonebook ab und am ISDN Telefon wird auch die Ersatz-MSN 601 angerufen.
(3) Es wird aber zuvor von der Fritzbox das ISDN Telefon angerufen, ich sehe zunächst den Anruf der Dtmfbox gar nicht, erst später in der Anrufliste des Telefons. Ich dachte erst mein Telefon spinnt, aber ein anderes verhält sich genauso. Obwohl die Ziel-MSN nicht mehr im Telefon ist, sondern die 601, klingelt es, und wenn ich dann abhebe läuft die Verbindung immer über die Fritzbox statt über die Dtmfbox. Das finde ich ziemlich rätselhaft.
(4) Und noch eine Frage, was muss als ausgehender ISDN- Kontroller bei dem 601-Konto eingestellt werden? 1 oder 3?
Ich bin etwas ratlos, und brauche Hilfe.
 
1. Das ist normal. Es soll nur sicherstellen, dass die MSN auch an Ctrl. 5 erkannt wird. Ich habe den Account bei mir sogar nur eingetragen und deaktiviert (ebenfalls mit Registrar, Username und Internettelefonnummer 602).
EDIT: habe nochmal nachgeschaut. Dachte ich hätte ihn deaktiviert. Muss aber aktiviert bleiben.

2. Das sollte eigentlich nicht sein. Hast du denn im AVM-Webinterface deine ISDN-MSNs angelegt (Telefoniegeräte\Festnetz)? Unter Telefone habe ich bei mir die Variante "ISDN-Telefonanlage" gewählt.

3. Das deutet auf 2 hin. Werden denn alle Telefone angeklingelt oder nur eines direkt? Hast du zufällig eine FB7270 und nutzt das integrierte DECT? Vielleicht auch nochmal prüfen, dass im Telefon als Empfangs-MSN nur die 601 eingetragen wurde.

4. Auch hier muss ich mich nochmal korrigieren (langer Tag gestern ;)). Ctrl. 5 ist hier der richtige. Steht auch in der Hilfe.
 
Zuletzt bearbeitet:
Wenn ich von meinem "1und1"-Handy die FB anrufe, definiert das "Benutzerdefieniertes Script" meine Nummer wie:

DST_NO = [email protected];user=phone

Wie kann ich die Nummer 491520XXXXYYY rausschneiden oder unter "IF" bewerten?

Danke, mfg
ComeRun
 
Die Frage ist eigentlich Off-Topic, da sie ja zur Shell gehören. Mit 'sed' kannst du bestimmte Stellen in einem String ersetzen. In dem Fall folgendermaßen:
Code:
DST_NO=`echo $DST_NO | sed 's/@.*//g'`
damit wird @ und alles danach durch einen Leerstring ersetzt.
 
Danke!
Und sorry für Off-Topic...
 
Durchleiten und Aufnehmen

Hurra, es hat jetzt geklappt!
Ich habe einen analogen Anschluss, und zwischen meiner 7170 und dem Amt ist eine 5050 zum umwandeln von analog in ISDN. Ich hatte mit Asterisk auf der FB experimentiert, und das geht nur über ISDN richtig. Die 5050 war leider fälschlich auf "ISDN" konfiguriert, was aber bis jetzt noch nie gestört hatte, und mir deswegen auch nie aufgefallen war. Nachdem ich sie auf "analog" eingestellt habe, reagiert mein ISDN Telefon auch nur noch auf eingestellte MSN´s.
Ich habe erstmal nur eingehende Anrufe getestet, jetzt springt das Skript wie gewünscht an, der Anruf wird durch geleitet, und mit # werden die beiden Aufnahmen gemacht.
Vielen Dank Marco für diese Super Software!
 
Zuletzt bearbeitet:
Hallo Jörg,

Supi :) - ich schaue mal, dass ich im nächsten Release einen Mixer dazu packe.

@sbenett:
Das mit den Wahlregeln im benutzerdefinierten Skript wird beim nächsten mal auch dabei sein (inkl. Wählton ;)).
 
Hi,

also das ding ist echt cool, oder wäre es wenn ich es zum laufen bekommen würde. entweder suche ich hier im Forum/Thread nach dem falschen oder ich bin einfach nur zu doof :D.

Was ich will:
nummer (sipgate) anrufen und dann ins dtmf menü gelangen.

Status:
- dtmfbox meldet sich scheinbar ordnungsgemäß bei sipgate an. (die fb meldet sich nicht bei sipgate an)
- wenn ich die nummer anrufe bekomm ich lediglich " der gewünschte teilnehmer ist derzeit nicht erreichbar...."
- hab nur voip (liegt da der hund begraben?)

Code:
[general]
loglevel=4
scriptfile=/var/media/ftp/FlashDisk-Partition-0-1/dtmfbox/script/script_main.sh
delimiter=none
adjust_priority=1

[audio]
null_sound=1
snd_play=-1
snd_rec=-1
snd_ec_tail=0
con_ec_tail=0
mixer_talkover=0
mixer_rx_volume=100
mixer_tx_volume=100
earlyb3_ring=1

[voip]
voip=1
voip_client=1
voip_registrar=0
voip_max_clients=4
voip_realm=fritz.box
voip_udp_port=5061
voip_rtp_start=4000
voip_rtp_ports=8
voip_register_interval=3600
voip_keep_alive=180
voip_use_vad=0
voip_ip_addr=fritz.box
voip_stun=stun.sipgate.net
voip_stun_port=10000
voip_ice=1
voip_nameserver=
voip_codecs=g711 #,ilbc,gsm,l16,speex

[capi]
capi_incoming=0
capi_outgoing=0
capi_internal=3
capi_int_prefix=49
capi_nat_prefix=89
capi_ulaw=0

[acc1]
name=dtmf
number=089381xxxxx
type=voip
active=1
voip_registrar=sipgate.de
voip_realm=sipgate.de
voip_user=19xxxxx
voip_pass=xxxxxx
voip_proxy=
voip_id=
voip_contact=
registrar_active=0
registrar_user=
registrar_pass=

falls ich was vergessen habe, bitte meckern!!!

[edit]
Ich habe die dtmfbox 0.4.0 (1) drauf, weil bei der beta kannte ich mich mit den controllern gar nicht aus, was ich da eintragen sollte, zudem wurde es nicht übernommen, bzw beim neustart der dtmfbox wieder gelöscht.
[/edit]
 
Zuletzt bearbeitet:
Hi.

Es fehlt der ID-Eintrag ([email protected]).

Bei der alten Version (0.4.0_1) gab es auf jedenfall noch einen Bug, der den Contact-Header betrifft. Ich weiss nicht mehr genau, ob dies auch auf sipgate zutraf. Die neuere Version sollte funktionieren, jedoch immer die alte Version deinstallieren. In v0.4.1 kann man bis zu 5 Controller hinterlegen - sollte nicht so schwer sein (aber das ist leicht gesagt, wenn man die Anwendung geschrieben hat ;)).
 
Ok werd ich testen, auch gleich mit der neuen version. Allerdings wurden bei der v0.40_2 die controller nicht übernommen.

Wieso steht dann eigentlich optional bei dem ID- Eintrag?
 
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.