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

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

1

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

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

спросил 2011-10-06 14:23:54 +0400

hell Gravatar hell
11 2 1 3

обновил 2011-10-08 19:22:47 +0400

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 ( 2011-10-07 14:53:28 +0400 )редактировать
Вот лог астериска, где видно, что астериск, при звонке извне, нажатие я кнопок 5,2 воспринял, как 5,5,2 http://2file.net/get/21309/hell ( 2011-10-07 15:06:14 +0400 )редактировать

9 Ответов

2

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

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

ответил 2011-10-06 21:32:19 +0400

Master135 Gravatar Master135
431 1 3 10

обновил 2011-10-06 21:35:24 +0400

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 ( 2011-10-07 14:52:42 +0400 )редактировать
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)

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

ответил 2012-06-07 12:51:20 +0400

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

обновил 2012-06-07 12:53:22 +0400

Comments

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

Thomas Morph ( 2012-06-07 13:43:43 +0400 )редактировать
0

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

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

ответил 2012-06-07 08:37:13 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

Comments

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

Thomas Morph ( 2012-06-07 08:53:46 +0400 )редактировать
0

проверь в sip.conf

relaxdtmf=yes
dtmfmode = inband

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

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

ответил 2011-10-07 18:29:36 +0400

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 ( 2011-10-08 14:51:05 +0400 )редактировать
0

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

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

ответил 2011-10-06 20:16:25 +0400

lexxnsk Gravatar lexxnsk
86 8 3 11
0

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

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

ответил 2011-10-06 15:21:33 +0400

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

обновил 2011-10-06 15:21:50 +0400

Comments

Переставил на шлюзах DTMF Tx Method: Auto на DTMF Tx Method: INFO, в астериске прописанно dtmfmode=info, симптомы не поменялись. Изначально в вопросе не совсем точно указал, что астериск не на 100% воспринимает все дтмф коды двойными, но достаточно часто. hell ( 2011-10-06 15:42:17 +0400 )редактировать
Ну так. Мануалы , логи . Гадать как всё настроёно и что в логах сегодня никто не будет . После дождика в четверг телепаты не работают 3 дня. zzuz ( 2011-10-06 15:59:29 +0400 )редактировать
свои настройки я запостил как ответ, потому что они никак не помещались нормально в комент. hell ( 2011-10-06 17:24:32 +0400 )редактировать
пробовал менять в шлюзе и астериске dtmfmode на inband, (в шлюзе AVT/в астериске rfc2388), INFO. никакой разницы, все равно относительно длительное нажатие на кнопку телефона распознается, как две цифры. hell ( 2011-10-06 17:28:09 +0400 )редактировать
Да потому что эти шлюзы - говно. Подбирайте ДТМФ режим, попробуйте уровень дтмф снизить: так же возможно дальнее эхо. switch ( 2011-10-07 17:47:24 +0400 )редактировать
А шлюзы какого производителя не говно ? или какие модели шлюзов ? Увы режимы дтмф на данную проблемму влияния не оказывают никакого. Насколько я понимаю снизить уровень дтмф поможет при проблеммах с исходящими дтмф командами, а в моем случае нужно разобраться с восприятием входящих команд. Причем как я уже писал, дублирование отлавливается только командой WaitExten диалплана астериска. А вот командой Read того-же диалплана дублирование уже не ловится. hell ( 2011-10-08 14:55:22 +0400 )редактировать
быть не может. zzuz ( 2011-10-08 18:04:26 +0400 )редактировать
Отловил следующее, дублирование dtmf сигнала происходит в момент когда астериск проговаривает голосовое приветствие, если приветствие отключить или дождаться окончания приветствия, то дублирования не происходит. hell ( 2011-10-08 18:08:54 +0400 )редактировать
Ну так верните на rfc2833 . zzuz ( 2011-10-08 18:27:35 +0400 )редактировать
Я чуть выше писал, что пробовал выставлять dtmfmode во все возможные варианты и rfc2833 тоже и на существующую проблемму это никакого влияния не оказало. dtmfmode менял синхронно на шлюзах и в астериске. hell ( 2011-10-10 10:18:23 +0400 )редактировать
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(...)

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

ответил 2012-06-07 09:12:27 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

обновил 2012-06-07 09:40:06 +0400

Comments

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

exten =&gt; s,4,Background(chooseSomething)
exten =&gt; s,5,WaitExten(10)
Thomas Morph ( 2012-06-07 09:49:57 +0400 )редактировать

WaitExten убери.

bolshoy_plohish ( 2012-06-07 10:04:02 +0400 )редактировать

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

Thomas Morph ( 2012-06-07 14:10:43 +0400 )редактировать

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

Set(TIMEOUT(response)=5)

bolshoy_plohish ( 2012-06-07 14:23:38 +0400 )редактировать

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

bolshoy_plohish ( 2012-06-07 14:31:40 +0400 )редактировать

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

Thomas Morph ( 2012-06-07 17:11:35 +0400 )редактировать

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

Set(TIMEOUT(digit)=timeout)'

bolshoy_plohish ( 2012-06-07 18:21:07 +0400 )редактировать

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

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 ( 2012-06-07 18:52:15 +0400 )редактировать

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

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

Thomas Morph ( 2012-06-08 08:54:23 +0400 )редактировать
0

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

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

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

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

ответил 2012-06-06 15:28:53 +0400

Thomas Morph Gravatar Thomas Morph
11 2

обновил 2012-06-07 08:58:26 +0400

Comments

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

switch ( 2012-06-06 20:29:40 +0400 )редактировать

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

Thomas Morph ( 2012-06-07 09:01:02 +0400 )редактировать
0

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

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

ответил 2012-06-07 12:27:55 +0400

prq Gravatar prq
21 12 1 7

Comments

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

Thomas Morph ( 2012-06-07 14:12:00 +0400 )редактировать

Ваш ответ

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 ленту новостей

Статистика

Задан: 2011-10-06 14:23:54 +0400

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

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

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