Wie DTMF Töne nach der Anwahl senden?

voipalex

Mitglied
Mitglied seit
18 Okt 2004
Beiträge
324
Punkte für Reaktionen
0
Punkte
16
Hallo!

Ich würde gerne mit Asterisk kostengünstige Auslandsgespräche über EasyTelecom führen.

Die bieten eine dt. Festnetz-Nr, die man zu günstigen Konditionen erreichen kann. Wenn man diese anruft und die Ansage abwartet, dann kann man die Zielrufnummer per DTMF übermitteln. Abschließend muss man noch die #-Taste drücken, damit Easytelecom erkennt, dass nun die Nummer vollständig eingegeben wurde.

Ich würde das nun gerne in meinen Asterisk einbauen. Bestimmte Vorwahlen (z.B. Kroatien) oder Telefonnummern sollen automatisch über EasyTelecom laufen.

Ich bekomme das aber leider irgendwie nicht hin und bin mir nicht ganz sicher, wo das Problem liegt:

1. Versuch
Code:
[easytelecom]
exten => _00385X.,1,Dial(SIP/02115399099@beule1u1,180,rD(${EXTEN}#))

Ich vermute fast, dass ich das Zeichen # nicht per DTMF mit Asterisk senden kann.

2. Versuch
...lief über senddtmf und funktionierte leider auch nicht.

Hat jemand eine Idee?

Gruß
Alex
 
Normalerweise sollte auch die # als DTMF-Ton gesendet werden. Das kannst Du danz einfach testen. Ruf dich einfach selber an, (ein Soft-Client würde reichen) und versuche einfach mal ein #-Zeichen als DTMF zu erzeugen (mit der D-Option).
Ich vermute aber eher ein anders problem. Könnte es sein, dass man bei EasyTelecom erst die Ansage abwarten muss bevor man was eingeben kann? Dann würden die DTMF-Töne einfach ignoriert werden.
Wie hast Du das denn in Versuch 2 gemacht? Hast Du ein Macro ausgeführt (M-Option)? Wenn nein, dann soltest Du es mal so probieren. Da kannst Du dann auch vor dem Senden der DTMF-Töne ein Wait einlegen (eben solange wie die Stimme labert, das musst Du dann eben einmal ausmessen).
 
Die Ansage von EasyTelecom muss nicht abgewartet werden (ich hab gerade deren Nummer zum Testen angerufen und die Ziffern + # eingegeben bevor diese beendet war -> hat geklappt).

Mein 2. Versuch sieht etwa so aus (Nrn. geändert):

Code:
[typ_in_kroatien]
exten => 0038512345678,1,Dial(SIP/02115399099@1u1sucks,180,M(easytelecom))

[macro-easytelecom]
exten => s,1,NoOp,${CALLERID}
exten => s,2,NoOp,${MACRO_EXTEN}
exten => s,3,NoOp,${MACRO_CONTEXT}
exten => s,4,NoOp,${MACRO_PRIORITY}
exten => s,5,NoOp,${ARG1}
exten => s,6,NoOp,${ARG2}
exten => s,7,SendDTMF(0038512345678#)

Ich habe auch mal testweise die Nr von Easytelecom durch meine Festnetz-Nr ersetzt, um zu prüfen ob die DTMF Töne korrekt übertragen werden: Das ist nicht der Fall (kann sie nicht hören). Selbst wenn ich vor SendDTMF noch ein Wait schreibe höre ich nichts. Auch wenn man die Ziffern einzeln via SendDTMF sendet und dazwischen jeweils ein Wait packt ergibt sich keine Änderung.

Nebenbei ist mir übrigens aufgefallen, dass die Variablen ${MACRO_EXTEN}, ${MACRO_CONTEXT} and ${MACRO_PRIORITY} nicht wie in der Doku gesetzt werden. Denke, dass das ein Bug ist (ich benutze Asterisk 1.0.7 aus Debian Sarge auf diesem PC).

Weitere Ideen / Vorschläge?

Gruß
Alex
 
Wie überträgst Du überhaupt die DTMF-Töne? Versuche mal in der sip.conf ne andere Methode. Am vielversprechensten sollte eigentlich "inband" sein. Dann musst Du aber alaw oder ulaw nehmen.
Bei mir klappt das mit den DTMF-Tönen und der #. Habe es gerade mal getestet. Man kann laut und deutlich Signal hören.

Einen Vorschlag habe ich auch: Update erstmal dein Asterisk! So groß ist der Aufwand ja nicht.
 
@Hupe: DANKE!

Mit inband und alaw/ulaw tut es jetzt.

Mir ist aber nicht klar, warum es mit den anderen Einstellungen nicht geht.

Gruß
Alex
 
Naja, das kann ne Reihe Gründe haben. Welchen Vpip-Provider nutzt Du denn? Und auf welcher Einstellung war das vorher? Wenn Du einen DTMF-Ton nicht per inband sendest, dann muss das Voip-Gateway Deines Sip-Providers das macher. Ich habe es bei mir mal mit Sipgate und dtmfmode=info (da ist der codec dann egal) getestet. Das scheint einwandfrei zu funzen.
 
In diesem Fall wurde 1und1 als VoIP-Provider und dtmfmode=rfc2833 benutzt.
Im umgekehrten Fall (eingehendes Gespräch via VoIP) klappt die Signalisierung zumindest einwandfrei (dabei waren alle Codecs erlaubt).

Ich teste mal noch ein bißchen rum, um herauszufinden ob es am dtmfmode und/oder am Codec lag.
 
Das Inband bei alaw und ulaw geht, ist normal. Bei anderen Cosdecs sollte auch das versagen. "Info" sollte aber eigentlich auch von den meisten Provider unterstützt werden. Das ist auch gut so, da es codecunabhängig ist.
 
Was genau muss ich in der extensions.conf eintippen, damit Asterisk eine bestimmte Nummer wählt, und dann paar DTMF-Töne eingibt und ich das alles hören kann?
 
Code:
exten => _333,1,Dial(SIP/01234567@1und1account,,M(mailbox))

[macro-mailbox]
exten => s,1,SIPDtmfMode(inband)
exten => s,2,SendDTMF(w*0123#)
Wenn ich das ausführe, stürzt Asterisk ab und lässt sich nicht mehr beenden. Ich muß dann immer die Fritzbox neu starten. Weiß Jemand, woran es liegen könnte? Früher hat es funktioniert und ich bin mir sicher, dass die Zeilen auch so waren.

Edit----
Wenn ich SipDtmfMode(info) setze, werden zwar keine DTMF-Töne übermittelt, aber Asterisk stürzt auch nicht ab.
Erlaubt sind übrigens nur alaw und ulaw.

Evtl. O.T.:
Übrigens habe ich während der Gespräche manchmal DTMF-Töne, machmal sind die Gespräche dann beendet. Auch, wenn ich Jemanden anrufe, höre ich nach einem kurzen Klingelsignal oft meine eigene Wartemelodie, bis der Andere dran geht. Das war früher nicht so. In der features.conf habe ich inzwischen alle Zeilen deaktiviert, das hilft aber auch nicht. Kann es an der Asterisk-Version liegen? Hat 1und1 etwas geändert?
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,523
Beiträge
2,293,524
Mitglieder
378,030
Neuestes Mitglied
adrian2811