First time here? Check out the FAQ!

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

Мгновенная обработка WaitExten()

0

Добрый день,

Подскажите как можно сделать так что бы при вводе цифры во время WaitExten система не дожидалась истечения таймаута, а сразу переходила к введенному экстеншину (как собственно работают ИВР у мобильных операторов)?

спросил Jan 18 '12

godlike Gravatar godlike flag of Ukraine
814 92 24 62

Comments

А с чего Вы взяли , что команда не сразу отрабатывает нажатие?

zzuz (Jan 18 '12)edit

ну наверно потому что я поставил WaitExten(10) и нажимаю 1 в самом начале но попадаю на 1 экстеншн только когда пройдет 10 сек

godlike (Jan 18 '12)edit

хотя вру, через 7 секунд хотя стоит 10

godlike (Jan 18 '12)edit

2 Ответа

2

чтобы по 1 отрабатывалось сразу надо писать так

exten => _1!,1,Noop(dialplan idet tuta)

тоесть ! срабатывает именно как "больше символов с таким префиксом быть не может".

соответвенно если вы его не поставили, оно логично ожидает продолжения ввода, чтоб отрабатывало 10,11,119911 и так далее.

ну еще можно таймаут поставить

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

у вас срабатывает digit наверное

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

ответил Jan 18 '12

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

Comments

Масло маслянное получилось. _1! - читается , как вхождение множества номеров , начинающихся с единицы и заканчивающихся этой единицей.

zzuz (Jan 18 '12)edit

зато работает :) Спасибо meral

godlike (Jan 18 '12)edit

м? это единственный способ так сказать.или вы знаете другой? _1 нефига на прекращает ожидания набора дальнейших цифр. ну развечто можн попробывать 1!, но так вродетоже не работает.

meral (Jan 19 '12)edit

Это кому комментарий адресован?

zzuz (Jan 19 '12)edit

это по поводу масла масляного. знаешь немасляный метод?) ну кроме диалпана в которм у всех екстеншенов длина одинаковая.

meral (Jan 19 '12)edit

в одном контексте , где присутствует WaitExten достаточно нарисовать exten = 1,1,Noop() , что будет делать тоже самое. Единственно , что если в этом контексте есть шаблоны "_1X." , то тогда будет таймаут. Но если есть такой шаблон , то видимо он для чего то нужен?

zzuz (Jan 19 '12)edit

неа. если есть 1 и 20 или 3X. например в одном контексте, то будет ждать ввода после 1. а после _1! ждать не будет.

meral (Jan 19 '12)edit
2

Это зависит не от WaitExten, а:

1 - от диалплана. Если там только 1-но символьные экстеншены, то будит отрабатываться сразу, если 2-х и более, то соотведственно будет ждать не будет ли ввод второй цифры и т.д...

2- И от заданного параметра DigitTimeout, в случае если в диалплане есть 2-х или более значные экстаншены.

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

ответил Jan 18 '12

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

обновил Jan 18 '12

Ваш ответ

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

Статистика

Задан: Jan 18 '12

Просмотрен: 3,377 раз

Обновлен: Jan 18 '12

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