VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Asterisk IVR меню , не детектит # как завершение набора

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

alkor
Сообщения: 35
Зарегистрирован: 05 фев 2013, 21:04

Asterisk IVR меню , не детектит # как завершение набора

Сообщение alkor »

Добрый день !

Есть задача собрать IVR меню, где необходимо при наборе номера детектить решётку # как завершения набирания для дальнейших действий ivr

В моём варианте ivr

exten => ru,1,Answer
exten => ru,n,Set(CHANNEL(language)=ru)
exten => ru,n,Set(TIMEOUT(digit)=15)
exten => ru,n,Set(TIMEOUT(response)=15)
exten => ru,n,Background(prepaid-enter-pin-number)
exten => ru,n,WaitExten()

система просто ждёт 15 сек, а на # никак не реагирует.
Подскажите, пожалуйста, где что нужно добавить, что бу в моём варианте если полюзователь набрал 1234567890+# , система не ждала бы 15 сее.

Спасибо.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение ded »

Надо использовать не WaitExten (у вас же не экстен набирается?), а Read.
Изучите синтаксис Read
alkor
Сообщения: 35
Зарегистрирован: 05 фев 2013, 21:04

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение alkor »

Набирается как раз экстен , который впоследствии должен передать в сип транк.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение ded »

Background(prepaid-enter-pin-number) - это экстен?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение ded »

Нет, это ПИН-код.
Чтобы оно работало и не ждало Вам надо определить твёрдую значность ваших экстенов в том же самом контексте:
exten => ru,1,Answer
exten => ru,n,Set(CHANNEL(language)=ru)
;exten => ru,n,Set(TIMEOUT(digit)=15)
;exten => ru,n,Set(TIMEOUT(response)=15)
exten => ru,n,Background(please-enter-extension-number)
exten => ru,n,WaitExten()

exten => _ZXXXXXXXXXX,1,Dial(SIP/${EXTEN}) -- вот это и есть твёрдая значность.

и задать там же
exten => i,1,????
exten => h,1,Hangup)
alkor
Сообщения: 35
Зарегистрирован: 05 фев 2013, 21:04

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение alkor »

да, но в моём варианте данный зкстен (или пин) может быть разной длины и начало абсолютно разное
по-этому и нужна возможность с решёткой
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение ded »

ded писал(а):Изучите синтаксис Read
Для вашего интерактивного меню # - это не завершение набора, а просто символ, как цифра, или *. И что делать с ним?
Сдаётся мне, что Вы пилите ещё один фантастический фанерный велосипед.
Лучше подобрать из готовых, которые 100% ездят.
alkor
Сообщения: 35
Зарегистрирован: 05 фев 2013, 21:04

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение alkor »

Изучил, нашёл пример, прикрутил - работает.
Но. в cdr в поле destinations я вижу только "s", а нужно то что набрал пользователь.
Подскажите, плз, можно ли "s" для cdr поменять на "get" ?

вот пример
exten => s,1,Set(wait=2)
exten => s,n,Set(CHANNEL(language)=ru)
exten => s,n(begin),Playback(prepaid-enter-dest-ru)
exten => s,n,Set(gottries=0)
exten => s,n,Set(got=)
exten => s,n(getmore),Set(timer=${EPOCH})
exten => s,n,Read(get,"silence/1",,,,${wait})
exten => s,n,Set(timer=$[${EPOCH}-${timer}])
exten => s,n,GotoIf($[${timer}==$[${wait}+1]]?gotnothing:gotsomething)
exten => s,n(gotnothing),Set(gottries=$[${gottries}+1]
exten => s,n,GotoIf($[${LEN(${get})} == 0]?reallynothing:gotdigit)
exten => s,n(reallynothing),GotoIf($[${gottries}>1]?done:getmore)
exten => s,n(gotsomething),Set(gottries=0)
exten => s,n,GotoIf($[${LEN(${get})} == 0]?gotpound:gotdigit)
exten => s,n(gotpound),Set(got=${got}#)
exten => s,n,Goto(getmore)
exten => s,n(gotdigit),Set(got=${got}${get})
exten => s,n,Dial(SIP/sn2400/055000371${get},45,rtT)
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Asterisk IVR меню , не детектит # как завершение набора

Сообщение Vlad1983 »

в CDR пишется EXTEN, который был в строке с Dial
exten => s,n,Dial...

создайте отдельный контекст с exten => _X.,1,Dial... и Goto(dialdialdial,${get},1) туда
ЛС: @rostel
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH