Sorun çözme
VoIP'te DTMF Nedir? RFC2833, SIP INFO ve Inband Nasıl Çalışır?
DTMF (Dual Tone Multi Frequency), telefon görüşmesi sırasında rakamların ve * / # gibi tuşların karşı sisteme iletilmesini sağlayan sinyalleşme yöntemidir. IVR menüleri, çağrı merkezleri, telefon bankacılığı ve otomatik servisler DTMF kullanır.
VoIP sistemlerinde DTMF yalnızca ses tonu olarak gönderilmez. Tuş bilgisi RTP içinde ayrı bir olay, SIP mesajı veya doğrudan konuşma sesi içinde taşınabilir. Bu nedenle sesin çalışması, DTMF'nin de doğru çalıştığı anlamına gelmez. Temel kavramlar için SIP Nedir? rehberine bakabilirsiniz.
DTMF ne demek?
DTMF, Dual Tone Multi Frequency ifadesinin kısaltmasıdır. Klasik telefon sistemlerinde her tuş, iki farklı ses frekansının aynı anda üretilmesiyle temsil edilir.
Telefon üzerindeki 0-9, *, # tuşları bu yöntemle tanımlanır. Bazı özel telefon sistemleri A, B, C ve D tuşlarını da kullanabilir.
DTMF ne işe yarar?
DTMF, görüşme devam ederken karşı sisteme kullanıcı seçimi göndermek için kullanılır:
- IVR menülerinde seçim yapmak
- Dahili numara tuşlamak
- Telefon bankacılığı işlemlerini yönetmek
- Çağrı merkezi uygulamalarına müşteri girdisi göndermek
- Uzaktaki otomatik servisleri kontrol etmek
- Konferans veya voicemail sistemlerinde komut göndermek
VoIP'te DTMF nasıl gönderilir?
VoIP tarafında yaygın olarak üç temel DTMF yöntemi kullanılır:
| Yöntem | Nasıl taşınır? | Temel özellik |
|---|---|---|
| RFC2833 / RFC4733 | RTP içinde telephone-event | DTMF, normal konuşma sesinden ayrı taşınır |
| SIP INFO | SIP dialogu içinde INFO mesajı | DTMF bilgisi SIP sinyalleşmesi üzerinden gönderilir |
| Inband | Normal RTP ses akışı içinde gerçek ton | Kodek ve ses kalitesinden daha fazla etkilenir |
DTMF'nin hangi yöntemle gönderildiği ses kodeğinden bağımsız olabilir. Örneğin konuşma PCMU ile taşınırken tuşlama RFC2833/RFC4733 ile ayrı RTP olayları olarak ilerleyebilir.
RFC2833 / RFC4733 nedir?
RFC2833 adı IP telefon, santral ve gateway arayüzlerinde hâlâ yaygın olarak görülür. RFC4733 ise bu yaklaşımı güncelleyen standarttır.
Bu yöntemde DTMF normal konuşma sesinin içine karıştırılmaz. Tuşlar RTP içinde telephone-event olarak gönderilir.
m=audio 16000 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
Örnekte 101 değeri, DTMF olayları için kullanılan dinamik RTP payload type değeridir. 101 yaygın bir değerdir, ancak her sistem için zorunlu değildir. Gerçek değer SIP/SDP görüşmesi sırasında belirlenir.
SIP INFO nedir?
SIP INFO yönteminde DTMF, RTP medya akışı yerine mevcut SIP görüşmesi içinde ayrı bir INFO mesajı olarak taşınır.
INFO sip:1000@192.0.2.10 SIP/2.0
Content-Type: application/dtmf-relay
Signal=5
Duration=160
Bu yöntemin çalışması için çağrı yolundaki santral, SBC, SIP proxy veya operatörün SIP INFO mesajlarını desteklemesi ve doğru iletmesi gerekir.
Inband DTMF nedir?
Inband yönteminde DTMF tonu doğrudan konuşma sesiyle birlikte RTP ses akışı içinde taşınır. Karşı taraftaki sistem gerçek tonu dinleyerek hangi rakama basıldığını algılar.
Bu nedenle kodek, transcoding, jitter, paket kaybı, ses seviyesi ve diğer ses işleme özellikleri Inband DTMF'yi etkileyebilir. Sorun giderirken PCMA veya PCMU gibi G.711 kodekleriyle karşılaştırmalı test yapmak faydalıdır.
RFC2833, SIP INFO ve Inband arasındaki fark nedir?
| Özellik | RFC2833 / RFC4733 | SIP INFO | Inband |
|---|---|---|---|
| Taşıma | RTP Event | SIP mesajı | Ses / RTP |
| Kodek etkisi | Düşük | Çok düşük | Yüksek |
| IVR kullanımına uygunluk | Yüksek | Sistem desteğine bağlı | Ses kalitesine bağlı |
| Wireshark kontrolü | RTP Event | SIP INFO | Audio Stream |
Hangi DTMF yöntemi kullanılmalı?
Tek bir yöntem bütün sistemler için doğru değildir. Seçim, karşı taraftaki cihazın veya servisin desteğine göre yapılmalıdır.
- SIP Trunk, IP santral ve IVR sistemlerinde RFC2833/RFC4733 genellikle iyi bir başlangıç seçimidir.
- Karşı sistem açıkça SIP INFO istiyorsa SIP INFO kullanılmalıdır.
- Analog veya belirli PSTN geçişlerinde gerçek ton gerekliyse Inband kullanılabilir.
- Birden fazla cihazın bulunduğu çağrı yolunda santral veya SBC'nin DTMF dönüşüm davranışı kontrol edilmelidir.
Sık görülen DTMF sorunları
| Belirti | Olası sebep | İlk kontrol |
|---|---|---|
| Hiçbir tuş çalışmıyor | DTMF yöntemi uyuşmuyor | RFC2833, SIP INFO ve Inband ayarları |
| Ses var, IVR tuşu görmüyor | Ses ve DTMF farklı yöntemlerle taşınıyor | SDP ve DTMF paketleri |
| Bazı rakamlar kayboluyor | Kısa event, paket kaybı, kodek veya algılayıcı sorunu | Event süresi, RTP kaybı, kodek |
| Bir tuş iki kez algılanıyor | Duplicate event veya iki yöntemin birlikte işlenmesi | Capture içindeki gerçek event sayısı |
* veya # çalışmıyor | Event listesi, özellik kodu veya dial plan | SDP fmtp ve santral ayarları |
| SIP INFO bazı rotalarda çalışmıyor | Proxy veya SBC INFO mesajını geçirmiyor | Her iki SIP bacağındaki INFO mesajları |
| Inband yalnızca G.711'de çalışıyor | Sıkıştırmalı kodek tonu bozuyor | PCMA ve PCMU ile karşılaştırma |
| Bir trunkta çalışıyor, diğerinde çalışmıyor | Operatör, transcoding veya DTMF dönüşümü farklı | İki rotanın SDP ve RTP karşılaştırması |
| Uzun basınca çalışıyor, kısa basınca çalışmıyor | Minimum süre veya algılama eşiği | DTMF event süresi |
Duplicate DTMF neden olur?
Duplicate DTMF, kullanıcının bir tuşa bir kez basmasına rağmen IVR'ın aynı rakamı iki kez algılamasıdır.
İlk yapılması gereken, paket yakalama üzerinde gerçekten iki ayrı DTMF olayı oluşup oluşmadığını kontrol etmektir.
- Gateway veya telefon gerçekten iki event oluşturuyor olabilir.
- Hem RFC2833 hem Inband aynı anda işleniyor olabilir.
- Santral tek RTP event'ini hatalı biçimde iki kez işliyor olabilir.
- DTMF süre veya aralık değerleri karşı tarafın algılama mantığıyla uyuşmuyor olabilir.
Gateway yalnızca bir event gönderiyor, ancak IVR iki rakam algılıyorsa sorun karşı taraftaki DTMF işleme tarafında aranmalıdır.
Bazı DTMF tuşları neden algılanmaz?
DTMF'nin tamamen çalışmamasıyla yalnızca bazı rakamların veya bazı çağrıların sorun çıkarması farklı arızalardır. Aralıklı sorunlarda şu noktalar önemlidir:
- DTMF ton süresinin çok kısa olması
- İki DTMF olayı arasındaki aralığın yetersiz olması
- RTP paket kaybı veya yüksek jitter
- Inband kullanımında kodek veya transcoding bozulması
- Ses seviyesinin çok düşük veya çok yüksek olması
- Santral veya IVR algılayıcı hassasiyeti
- Operatör veya SIP Trunk rotasına göre farklı DTMF işleme
Wireshark ile DTMF nasıl kontrol edilir?
DTMF sorununda en güvenilir yöntemlerden biri gerçek çağrı üzerinden paket yakalamaktır.
RFC2833 / RFC4733 için
rtpevent
Wireshark içinde RTP Event veya telephone-event paketleri görülmelidir. SDP tarafında da telephone-event/8000 satırı kontrol edilmelidir.
SIP INFO için
sip.Method == "INFO"
Tuşlama sırasında SIP INFO mesajı oluşuyorsa DTMF, SIP sinyalleşmesi üzerinden taşınıyor demektir.
Inband için
Ayrı bir SIP INFO veya RTP Event paketi beklenmez. RTP ses akışı veya PCM kaydı üzerinden gerçek DTMF tonunun ses içinde bulunup bulunmadığı kontrol edilir.
DTMF sorunu nasıl analiz edilir?
- Çağrı başlamadan önce SIP/RTP paket yakalamayı başlatın.
- Görüşme bağlandıktan sonra 1 2 3 4 5 6 7 8 9 0 * # tuşlarını sırayla test edin.
- Her tuş için hangi DTMF yönteminin kullanıldığını kontrol edin.
- RFC2833/RFC4733 kullanılıyorsa event ID, süre ve payload type değerlerini inceleyin.
- DTMF'nin çağrı yolundaki hangi cihaza kadar doğru ulaştığını belirleyin.
- Gerekirse farklı trunk, operatör veya kodekle aynı testi karşılaştırın.
Örnek: Dinstar UC2000'de DTMF ayarları
DTMF menüleri üreticiye ve yazılım sürümüne göre değişebilir. Dinstar UC2000 ailesinin genel SIP profil belgelerinde SIP INFO, INBAND ve RFC2833 yöntemleri yer alır. UC2000-VE/VF/VG kullanım kılavuzunda ise RFC2833 ve SIGNAL seçenekleri geçer.
| Alan | Görevi |
|---|---|
| DTMF Method / DTMF Type | DTMF'nin hangi yöntemle taşınacağını belirler |
| RFC2833 Payload Type | RTP telephone-event için kullanılan payload değerini belirler |
| DTMF Volume | Ton seviyesiyle ilgilidir, kılavuz varsayılan değerin kullanılabileceğini belirtir |
| DTMF Interval | DTMF olayları arasındaki zamanlamayla ilgilidir, kılavuzdaki aralık 50-800 ms'dir |
Dinstar belgelerinde RFC2833 payload için varsayılan 101 değeri görülebilir. Ancak sahadaki gerçek SIP/SDP görüşmesindeki değer esas alınmalıdır.
Sıkça sorulan sorular
RFC2833 ile RFC4733 aynı şey mi?
RFC4733, RFC2833 yaklaşımını güncelleyen standarttır. Cihaz arayüzlerinde seçenek çoğunlukla hâlâ RFC2833 adıyla gösterilir.
RFC2833 payload mutlaka 101 mi olmalıdır?
Hayır. RTP telephone-event payload değeri dinamiktir ve SDP üzerinden belirlenir. 101 yaygın bir varsayılan değerdir.
DTMF için en iyi yöntem hangisidir?
Tek bir evrensel cevap yoktur. SIP Trunk ve IVR projelerinde RFC2833/RFC4733 genellikle iyi bir başlangıçtır, ancak karşı sistemin desteği belirleyicidir.
DTMF sesi duyuluyor ama IVR neden algılamıyor?
Duyulan ton Inband olabilir, ancak IVR RFC2833 veya SIP INFO bekliyor olabilir. Kullanılan yöntemi SIP/RTP yakalamasıyla doğrulamak gerekir.
Neden bir tuş iki kez algılanıyor?
Aynı tuş için iki event üretilmesi, hem Inband hem RFC2833'ün birlikte işlenmesi veya karşı sistemdeki DTMF işleme davranışı buna neden olabilir.
G.729 DTMF'yi etkiler mi?
RFC2833/RFC4733 veya SIP INFO kullanılıyorsa DTMF normal ses kodeğinden ayrı taşınır. Inband kullanılıyorsa sıkıştırmalı kodekler tonun algılanmasını zorlaştırabilir.
Sonuç
DTMF, VoIP görüşmelerinde kullanıcı tuşlarının karşı sisteme aktarılmasını sağlar. RFC2833/RFC4733 DTMF'yi RTP olayı olarak, SIP INFO SIP mesajı olarak, Inband ise normal sesin içinde taşır.
DTMF sorunlarını çözmenin en doğru yolu yalnızca cihazdaki modu değiştirmek değil, tuş bilgisinin uçtan uca hangi yöntemle ilerlediğini paket yakalamayla doğrulamaktır. Bu yaklaşım sorunun telefon, santral, SBC, operatör, gateway veya IVR tarafında olup olmadığını belirlemeyi kolaylaştırır.
VoIP altyapınız ve DTMF sorunlarınız için Likit Telekom ekibine ulaşın
Doğru cihazı birlikte seçelim
Kurulumunuza uygun Dinstar ürününü belirlemek için ekibimize ulaşın.