[mögliche Lösung] RFC2833 und DTMF Probleme

TinTin

Aktives Mitglied
Mitglied seit
6 Mai 2004
Beiträge
1,864
Punkte für Reaktionen
0
Punkte
0
Ich ärgerte mich schon seit Jahr und Tag darüber dass das senden von DTMF Tönen mittels speziell SendDTMF() und dtmfmode=rfc2833 nicht stabil funktionierte.

Mit Providern wie sipgate, die dtmfmode=info unterstützen, ist SendDTMF() dagegen nie ein Problem gewesen, das Problem tritt nur mit Providern auf die "lediglich" dtmfmode=rfc2833 unterstützen. Immer wieder werden Zahlen "verschluckt" oder doppelt übermittelt. Ein Graus.

Nach erneutem Frust mit sipphone.com (unterstützt auch nur rfc2833), habe ich angefangen (wieder einmal) nach einer Lösung zu googlen und bin schließlich fündig geworden:

Man öffne rtp.c und ändere diese Zeile:

if (rtp->lasteventseqn <= seqno || rtp->resp == 0 ||
(rtp->lasteventseqn >= 65530 && seqno <= 6)) {

wie folgt um:

if ((rtp->lasteventseqn <= seqno && rtp->resp == 0) || (rtp->lasteventseqn >= 65530 && seqno <= 6)) {

(Klammersetzung geändert). Dann Asterisk neu kompilieren.

Die zu ändernde Zeile taucht zweimal im Code auf, ich habe sie auch zweimal ersetzt - SendDTMF() funktioniert jetzt seit Tagen bei mir einwandfrei mit rfc2833!

Dieser Patch is allerdings nie offiziell geworden (warum weiß der Geier), er stammt aus der Asterisk-dev Liste.

Vielleicht hilft es auch dem einen oder anderen von Euch.

Gruß,
Tin
 
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.