First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Дублируются DTMF команды

1

Суть проблемы в следующем: Дублируются DTMF команды, т.е. при звонке извне пользователю проигрывается голосовое меню - "Нажмите 1 что-бы соединиться с тем-то, 2 что-бы соединиться с тем-то", затем когда пользователь нажает 1 астериск воспринимает как 11 или 2 воспринимает как 22. (Исползуется Asterisk 1.6.2.19 и девайсы Linksys SPA3102)

спросил Oct 6 '11

hell Gravatar hell
11 2 1 3

обновил Oct 8 '11

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Настройки в шлюзе: DTMF Process INFO: yes FAX Passthru Method: NSE DTMF Process AVT: yes DTMF Tx Method: AVT DTMF Tx Mode: Normal Release Unused Codec: yes Настройки в sip.conf type=friend host=dynamic username=spa3102-1-pstn secret=ххххх nat=no context=incoming ;callerid="spa3102-1-pstn" <01> ;dtmfmode=auto dtmfmode=rfc2833 rfc2833compensate=yes disallow=all allow=ulaw allow=alaw ;allow=gsm deny=0.0.0.0/0.0.0.0 permit=192.168.1.0/255.255.255.0 qualify=yes hell (Oct 7 '11)edit
Вот лог астериска, где видно, что астериск, при звонке извне, нажатие я кнопок 5,2 воспринял, как 5,5,2 http://2file.net/get/21309/hell (Oct 7 '11)edit

9 Ответов

2

Это из-за эха в линии. Попробуй позвони из вне на внутренний телефон и набери какую-нибудь цифру и послушай, что услышишь на внутреннем телефоне.

ссылка удалить спам редактировать

ответил Oct 6 '11

Master135 Gravatar Master135
431 1 3 10

обновил Oct 6 '11

Comments

Явного эхо в линии не слышно и дублирования DTMF происходит только до соединения с внутренним номером, т.е. в голосовом меню. Дублирование ловится командой WaitExten диалплана астериска. А вот командой Read того-же диалплана дублирование уже не ловится. Командой Read ловил dtmf-ы без единого сбоя при помощи вот такого экстеншинона: exten => s,1,Answer() exten => s,n,Wait(1) exten => s,n(collect),Read(digito,,11) exten => s,n,SayDigits(${digito}) exten => s,n,GoTo(collect) exten => s,n,Hangup hell (Oct 7 '11)edit
1

Вот блин проблема !!!!!!

В диалплане пишещь по 2 строки:

exten => 1,1,Goto(managers,s,1)

exten => 11,1,Goto(managers,s,1)

exten => 2,1,Goto(support,s,1)

exten => 22,1,Goto(support,s,1)

ссылка удалить спам редактировать

ответил Jun 7 '12

amonra Gravatar amonra flag of Ukraine
2301 26 13 65
http://lantec.ua/

обновил Jun 7 '12

Comments

Они не всегда дублируются, бывает что и 111 и 222 идут. Кроме того такие комбинации могут совпадать с внутренними номерами сотрудников, которых можно вызвать из меню. Вбить костыль это конечно решение, но оно будет последнее в списке.

Thomas Morph (Jun 7 '12)edit
0

Лажает на FXO или FXS?

ссылка удалить спам редактировать

ответил Jun 7 '12

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

Comments

Прошу прощения, немного погорячился, указав что у меня полная аналогия. Переформулировал и дополнил свое сообщение.

Thomas Morph (Jun 7 '12)edit
0

проверь в sip.conf

relaxdtmf=yes
dtmfmode
= inband

и поставь на шлюзе тоже inband, еще все что там INFO / AVT все на офф.
также поиграйся с DTMF Tx Strict Hold Off Time думаю надо увеличить его.

ссылка удалить спам редактировать

ответил Oct 7 '11

alexcr Gravatar alexcr
3124 10 9 51
http://asterisk-service.c...

Comments

в астериске поставил relaxdtmf=yes dtmfmode = inband , выставил во всех девайсах - inband, эффекта нет. Пункт DTMF Tx Strict Hold Off Time в spa3102 не нахожу, может быть в моей версии прошивки 5.1.7(GW) этого пункта нет вообще. hell (Oct 8 '11)edit
0

Встречал такое, если пользователь звонит на астериск через GSM (на gsm модем, например) и если при этом плохое качество приема сигнала Базовой станции

ссылка удалить спам редактировать

ответил Oct 6 '11

lexxnsk Gravatar lexxnsk
86 8 3 11
0

настройте одинкаво dtmfmode на шлюзе и на астериске.

ссылка удалить спам редактировать

ответил Oct 6 '11

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

обновил Oct 6 '11

Comments

Переставил на шлюзах DTMF Tx Method: Auto на DTMF Tx Method: INFO, в астериске прописанно dtmfmode=info, симптомы не поменялись. Изначально в вопросе не совсем точно указал, что астериск не на 100% воспринимает все дтмф коды двойными, но достаточно часто. hell (Oct 6 '11)edit
Ну так. Мануалы , логи . Гадать как всё настроёно и что в логах сегодня никто не будет . После дождика в четверг телепаты не работают 3 дня. zzuz (Oct 6 '11)edit
свои настройки я запостил как ответ, потому что они никак не помещались нормально в комент. hell (Oct 6 '11)edit
пробовал менять в шлюзе и астериске dtmfmode на inband, (в шлюзе AVT/в астериске rfc2388), INFO. никакой разницы, все равно относительно длительное нажатие на кнопку телефона распознается, как две цифры. hell (Oct 6 '11)edit
Да потому что эти шлюзы - говно. Подбирайте ДТМФ режим, попробуйте уровень дтмф снизить: так же возможно дальнее эхо. switch (Oct 7 '11)edit
А шлюзы какого производителя не говно ? или какие модели шлюзов ? Увы режимы дтмф на данную проблемму влияния не оказывают никакого. Насколько я понимаю снизить уровень дтмф поможет при проблеммах с исходящими дтмф командами, а в моем случае нужно разобраться с восприятием входящих команд. Причем как я уже писал, дублирование отлавливается только командой WaitExten диалплана астериска. А вот командой Read того-же диалплана дублирование уже не ловится. hell (Oct 8 '11)edit
быть не может. zzuz (Oct 8 '11)edit
Отловил следующее, дублирование dtmf сигнала происходит в момент когда астериск проговаривает голосовое приветствие, если приветствие отключить или дождаться окончания приветствия, то дублирования не происходит. hell (Oct 8 '11)edit
Ну так верните на rfc2833 . zzuz (Oct 8 '11)edit
Я чуть выше писал, что пробовал выставлять dtmfmode во все возможные варианты и rfc2833 тоже и на существующую проблемму это никакого влияния не оказало. dtmfmode менял синхронно на шлюзах и в астериске. hell (Oct 10 '11)edit
0

Покажи диалплан.
Пример IVR:


 
[incoming]
 exten
=> s,1,Answer
 exten
=> s,2,Set(TIMEOUT(response)=5)
 exten
=> s,3,Background(mymenu)
 exten
=> s,4,Background(chooseSomething)

exten => t,1,Goto(s,2)

exten => i,1,Playback(pbx-invalid)
 exten
=> i,2,Goto(s,2)

exten => 1,1,DoSomething?

exten => 2,1,DoSomethingElse?

exten => 3,1,Dial(...)

ссылка удалить спам редактировать

ответил Jun 7 '12

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

обновил Jun 7 '12

Comments

Да, практически аналогия, только

exten =&gt; s,4,Background(chooseSomething)
exten
=&gt; s,5,WaitExten(10)
Thomas Morph (Jun 7 '12)edit

WaitExten убери.

bolshoy_plohish (Jun 7 '12)edit

Он необходим для выдерживания некоторой паузы после последнего сообщения, чтобы пользователь мог ввести добавочный номер. Кроме того убранный WaitExten результат не дал (при звонках из локальной сети все работает с ним без проблем).

Thomas Morph (Jun 7 '12)edit

Для паузы есть команда Wait(), а для установки максимального времени ожидания ввода пользователя

Set(TIMEOUT(response)=5)

bolshoy_plohish (Jun 7 '12)edit

А телефон пробовал другой взять или позвонить с софтфона?

bolshoy_plohish (Jun 7 '12)edit

Да. По локальной сети пробовали соффоны и сип-телефоны. Все хорошо. При звонках с них же на внешний номер с IVR дубли. При звонках с городских телефонов вне офиса на внешний номер тоже дубли. С провайдером ведем переписку, возможно где-то у них проблемы.

Thomas Morph (Jun 7 '12)edit

Попробуй установить максимальный промежуток времени между набираемыми цифрами

Set(TIMEOUT(digit)=timeout)'

bolshoy_plohish (Jun 7 '12)edit

А вообще-то просто обработай неправильный набор и все.

exten => i,1,Playback(pbx-invalid)

exten => i,2,Goto(s,2)

http://voip.rus.net/tiki-index.php?page=Asterisk+i+extension

bolshoy_plohish (Jun 7 '12)edit

Set(TIMEOUT(digit)=timeout) погоды не делает.

http://voip.rus.net/tiki-index.php?page=Asterisk+i+extension достаточно интересно, буду иметь ввиду. Спасибо.

Thomas Morph (Jun 8 '12)edit
0

Вам удалось решить данную проблему?

У меня похожая проблема. Городской номер куплен у провайдера. Связан с * по SIP. При звонках на этот номер идет переключение в голосовое меню (самое стандартное, без использования AGI). При тестировании по внутренней сети - проблем с DTMF не наблюдалось. Дублирование сигналов идет при звонках на "внешний номер".

На данный момент веду диалог с провайдером, ищем где косяк.

ссылка удалить спам редактировать

ответил Jun 6 '12

Thomas Morph Gravatar Thomas Morph
11 2

обновил Jun 7 '12

Comments

Решается подбором DTMF режима на астериске и на шлюзе.

switch (Jun 6 '12)edit

Режимы DTMF пробовал всякие, лучше не становится.

Thomas Morph (Jun 7 '12)edit
0

после Answer поставь Wait

ссылка удалить спам редактировать

ответил Jun 7 '12

prq Gravatar prq
21 12 1 7

Comments

Решению проблемы это не поможет.

Thomas Morph (Jun 7 '12)edit

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Oct 6 '11

Просмотрен: 5,512 раз

Обновлен: Jun 07 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.