Поддержка DTMF¶
Описание¶
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 сигналы в 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 должен быть установлен следующий параметр
Кроме того, кодек 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.