Описание
DTMF - Dual-Tone Multi-Frequency signaling, двухтональный многочастотный сигнал.
Этот метод передачи сигналов используется для обмена числовой информацией по аналоговым телефонным линиям на голосовых частотах между телефонами и другими коммуникационными устройствами и АТС, например, для реализации голосовых меню
Методы посылки DTMF
Существует три метода передачи DTMF сигналов в SIP телефонии:
- SIP INFO пакеты.
- Специальным образом отмеченные события в RTP потоке согласно RFC 2833.
- Inband - обычными звуками в RTP потоке без специального кодирования или пометок.
WCS поддерживает первые два метода.
Настройки DTMF
Использование SIP INFO пакетов
Для того, чтобы передавать DTMF сигналы в SIP INFO пакетах, в файле flashphoner.properties должен быть установлен следующий параметр
dtmf=INFO
Настройка АТС
Для того, чтобы получать DTMF сигналы в SIP INFO пакетах, АТС должна быть настроена следующим образом (на примере Asterisk)
[general] bindport=5060 bindaddr=0.0.0.0 context=default dtmfmode=info allow=all [2000] type=friend secret=2000 host=dynamic canreinvite=no dtmfmode=info
Отметим, что Asterisk по умолчанию использует метод inband
, который не поддерживается WCS.
Передача DTMF согласно RFC2833
Для того, чтобы передавать DTMF сигналы как специально отмеченные события в потоке данных согласно RFC 2833, в файле flashphoner.properties должен быть установлен следующий параметр
dtmf=RFC2833
Кроме того, кодек telephone-event
должен быть разрешен к использованию, например
codecs =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv codecs_exclude_sip =mpeg4-generic,flv,mpv,alaw,ulaw,g729,speex16,g722,vp8 codecs_exclude_streaming =telephone-event codecs_exclude_sip_rtmp =opus,g729,g722,mpeg4-generic,vp8,mpv
В данном примере, разрешены H264
для видео, opus
для аудио и telephone-event
для передачи DTMF.
Настройка АТС
Для того, чтобы получать DTMF сигналы согласно RFC 2833, АТС должна быть настроена следующим образом (на примере Asterisk)
[general] bindport=5060 bindaddr=0.0.0.0 context=default dtmfmode=rfc2833 allow=all [2000] type=friend secret=2000 host=dynamic canreinvite=no dtmfmode=rfc2833
Отметим, что Asterisk по умолчанию использует метод inband
, который не поддерживается WCS.