Спасибо за ответ! Возможно воспроизвести с помощью это команды проигрывание непрерывного тона? Я попробовал, тон с промежутком проигрывается, даже если написать SendDtmf(111111111,0)
solly19854 ( 2012-06-01 17:21:59 +0400 )редактироватьЗдравствуйте, данная ошибка просто срубила меня наповал! Моя конфигурация: AsteriskNOW 2.0.2, Digium TE210P, DAHDi 2.6.1. Между телефонной станцией LG-LDK300 и Астериск поднят поток Е1. Он работает без ошибок! Вот конфиг.
/etc/asterisk/chan_dahdi_groups.conf
signalling=pri_net
switchtype=national
pridialplan=unknown
prilocaldialplan=unknown
group=2
context=from-lg
channel=32-46,48-62
/etc/dahdi/system.conf
span=1,1,0,CCS,HDB3
span=2,0,0,CCS,HDB3,CRC4
bchan=1-10,32-46,48-62
dchan=16,47
loadzone=ru
defaultzone=ru
Контекст от станции Lg.
[from-lg]
exten => s,1,Set(collect=A)
exten => s,2,Playtones(425)
exten => s,3,WaitExten(10)
exten => _X,1,StopPlaytones()
exten => _X,2,Set(collect=${collect}${EXTEN})
exten => _X,3,Goto(lg,1)
exten => lg,1,Set(TIMEOUT(response)=3)
exten => lg,2,WaitExten(5)
exten => t,1,Goto(from-internal,${collect:1},1)
exten => t,2,Hangup()
Как видно, Астериск принимает звонок от Lg, проигрывает Playtones(425) и ждет ввода номера с Lg чтобы потом пробросить дальше. Так вот, если работает Playtones(425) и я нажимаю на Lg цифры 1 или 2, Астериск их не видит. Остальные цифры воспринимаются. При отключеном Playtones(425) 1 и 2 воспринимаются нормально. Пробовал экспериментировать с частотой, ставить relaxdtmf = yes/no - безрезультатно. Подскажите, у вас есть иди, в чем может быть проблема. Lg в канал цифры отправляет, проблема именно на стороне Asterisk. Спасибо!
Попробуйте SendDTMF вместо Playtones
Спасибо за ответ! Возможно воспроизвести с помощью это команды проигрывание непрерывного тона? Я попробовал, тон с промежутком проигрывается, даже если написать SendDtmf(111111111,0)
solly19854 ( 2012-06-01 17:21:59 +0400 )редактироватьНаверное, правильнее было бы использовать DISA()
Спасибо! Использование DISA действительно сокращает код до одной строчки, но проблема остается к сожалению...
solly19854 ( 2012-06-04 09:42:22 +0400 )редактироватьПравильнее LG в этом случае рассматривать как большой FXS шлюз. Тогда ложный сигнал снятия трубки (непрерывный тон) - выдает сама LG, после набора 9. Далее overlapped dial-ом идет донабор номера.
У него контекст неправильный!
Звонки входящие и начинаться должен с Answer()
[from-lg]
exten => s,1, Answer()
exten => s,n,Set(collect=A)
exten => s,n,Playtones(425)
далее… Для установки максимального времени ожидания ввода пользователя нужно
использовать Set(TIMEOUT(response)=10), а не WaitExten(10)
[from-lg]
exten => s,1, Answer()
exten => s,n,Set(collect=A)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Playtones(425)
И.Т.Д
http://asterisk-support.ru/question/1424/knigi-po-asterisk
bolshoy_plohish ( 2012-06-04 08:59:41 +0400 )редактироватьЯ не могу использовать Answer() так как в этом случае Lg не увидит, какой номер был набран после установки соединения. А к Lg прикручена система биллинга. Можно и так и так писать. exten => s,1,DISA(no-password,from-internal) Тот же результат, цифры 1 и 2 не видит. Zavr2008, попробую сделать как вы говорите.
solly19854 ( 2012-06-04 09:50:06 +0400 )редактироватьЯ же дал тебе ссылку на книжку!!!
Почитай внимательно про использование переменных!!!!
Да и вообще почитай!
bolshoy_plohish ( 2012-06-04 10:29:08 +0400 )редактировать
exten => _X.,1,Answer
exten => _X.,n,Set(__CALLERID(all)=${CALLERID(num)})
exten => _X.,n,Set(TIMEOUT(response)=10)
exten => _X.,n,DISA(no-password,mycontext)
Как-то так... :-)
УРА!!! ЗАРАБОТАЛО!!! Спасибо всем большое за ответы!!! Как обычно дело было в одной строчке. В настройках канала с Lg на Asterisk нужно было включить overlapdial=yes. И ничего больше! В таком случае Asterisk ждет окончания набора номера и выполняет его в контексте, указанном в настройках канала (я поменял на from-internal). При этом с Lg слышен гудок, гудок прерывается при наборе первой цифры, цифры 1 и 2 отлично воспринимаются. И то что я вначале наворотил с контекстом вообще было не нужно! 8-) Вот что осталось в итоге.
/etc/asterisk/chan_dahdi_groups.conf
signalling=pri_net
switchtype=euroisdn
pridialplan=unknown
prilocaldialplan=unknown
overlapdial=yes
group=2
context=from-internal
channel=32-46,48-62
Еще раз всем спасибо!
а кто тебе про оверлап-диал напомнил? =)) Пометь мой ответ как правильный.
Zavr2008 ( 2012-06-08 13:06:15 +0400 )редактироватьЗадан: 2012-06-01 12:20:04 +0400
Просмотрен: 1,593 раз
Обновлен: Jun 04 '12
Тон.сигналы с городской АТС на WC TDM2400P
Как добавить к callerid префикс при входящим только с DAHDI
Freepbx13+Asterisk13: DISA игнорирует первую цифру в номере, если она 3)
Установка dahdi-2.4.1.2 на kernel-2.6.32.26-175
AsteriskNOW + TDM400p - странное определяется системой
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
А для чего такой изврат потребовался если не секрет? :)
Zavr2008 ( 2012-06-01 13:33:10 +0400 )редактироватьтам обычно на LG стоит просто overlapped dial..
Zavr2008 ( 2012-06-01 13:38:25 +0400 )редактироватьТакая конфигурация потребовалась чтобы для пользователей переход на Астериск происходил незаметно, и они как и раньше на Lg набирали 9, слышали гудок, дальше набирали номер. Может это как-то еще можно реализовать, но я к сожалению, не знаю как... Overlapped dial думаю вряд ли как-то влияет, ведь без Playtones все работает... Такое впечатление, что совпадение частот происходит, с другой стороны при Playtones(300) и Playtones(500) все то же самое. Очень странно
solly19854 ( 2012-06-01 17:17:38 +0400 )редактироватьне извращайтесь. для это го есть disa. ну или на крайняк фалик проигрывайте.
meral ( 2012-06-01 20:24:09 +0400 )редактировать