Есть астериск и подключенные к нему linksys SPA2102.
При разговоре между двумя аккаунтами, астериск не распознает набираемые цифры на телефоне.
Мне нужно сделать возможность трансфера, путем набора на телефоне последовательности.
Причем пробовал сделать это также путем самого линксиса через Vertical Service Activation Codes, но и линксис не воспринимает нажатия.
Что можно исправить в настройках?
1. не установлен/настроен zaptel (не очевидно но факт)
2. несоответствие dtmfmode= на обоих сторонах. (например на адаптере rfc2833 а на астериске inband)
_________________
Успехов!
Я всегда инфо ставлю.
Причем, на СПА часто встречается проблема с ДТМФ на 4.х.х прошивке. Обновляйте фирмвар.
Еще помогает в logger.conf console => ...,...,dtmf
А еще одно. Некоторые Панасоники у меня тоже не работали со спа (именно дтмф). По-моему даже прошивка не помогала. О_о Это как проблема с дект (DECT) требками и СПА/ПАП2Т: аппарат не звонит при поступлении вызова, а ответив, начинается разговор. Прошивка решает. Но чтобы это определить, нежно еще по-париться, т.к. в changeLOGах это не заявлено.
Added after 42 seconds:
anest, а разве zaptel играет роль при передаче DTMF по SIP?
когда inband, то согласно докам - да.
Еще см. параметр relaxdtmf в sip.conf и zapata.conf.
_________________
Я вернулся.
1. Если canreinvite=yes, то RTP траффик может пройти "мимо" asterisk и он не уж никак не сможет отловить DTMF сигнализацию RFC2833.
2. Если INFO - то эта сигнализация обычно должна ходить через asterisk, хотя, как это делают наши китайские друзья - это не всегда истина.
3. inband работает только с 711 кодеком. (да и то через одно место)
_________________
ys
http://voip.rus.net/
Но никак не удается заставить работать трансфер.
Не пойму, почему на самом линксисе не работают
Vertical Service Activation Codes, к примеру Blind Transfer Code: *98
Также астерикс не реагирует на нажатие *2
show features
Builtin Feature Default Current
--------------- ------- -------
Pickup *8 *8
Blind Transfer # *2
sip.conf
[general]
bindport = 5060 ; Port to bind to (SIP is 5060)
bindaddr = 0.0.0.0 ; Address to bind to (all addresses on machine)
allowguest=no
disallow=all
allow=ulaw
allow=alaw
callerid=Unknown
canreinvite=no
insecure=very
srvlookup=yes
videosupport=yes
[204]
host=dynamic
type=friend
secret=111
context=from-sip204
disallow=all
allow=ulaw
nat=yes
callgroup=1
pickupgroup=1
cancallforward=yes
У Вас rtp поток при этих вызовах идет мимо asterisk?
_________________
ys
http://voip.rus.net/
надеюсь вы используете последнюю версию астериска
Версия у меня 1.2.23
Но, ведь можно реализовать это средствами линксиса.
Конкретно хочу сделать следующее.
Когда при разговоре, приходит второй звонок, я нажимаю flash,
разговариваю со вторым собеседником и мне необходимо его
перевести на другой телефон. Традиционно я бы нажал flash, услышал гудок и ввел бы нужный номер. Но в данном случае, при нажатии flash
я возвращаюсь к первому собеседнику.
В линксисе есть Vertical Service Activation Codes, которые позволяют
делать перевод, но когда я нажимаю, к примеру Blind Transfer Code: *98 ничего не происходит. Как средствами линксиса такое реализовать?
Для проверки передачи DTMF, сделай отдельный контекст с содержимым.
| Код: |
| [testingDTMF] exten => s,1,Playback(beep); exten => s,n,Read(enteredValue); exten => s,n,Playback(beep); exten => s,n,NoOp(--- You entered: ${enteredValue} ---); exten => s,n,HangUp(); |
а у себя в главном контексте вешаешь на любой экстеншен:
| Код: |
| exten => 88991,1,Goto(testingDTMF,s,1); |
И в консоли смотришь, что приходит.
Если пусто, то меняешь dtmf значение на пира.
_________________
"Фантазия важнее знания.", Альберт Эйнштейн
_________________
OpenSUSE 10.3 / Asterisk-trunk / Celeron 1100 (512mb) / chan_misdn (HFC)
Linksys PAP2T / SPA941 / SPA3102 / SPA2102
http://igorg.ru