Команда WaitExten
Назначение:
Команда дает возможность звонящему абоненту набрать номер нового экстеншена, с которым будет работать текущий контекстОписание:
WaitExten(seconds)Ожидать, пока пользователь наберет номер нового екстеншена заданное число секунд, потом выйти с кодом возврата 0. Параметр Seconds может быть не только целым числом, но и иметь десятичную дробь. (например: 1.5 = 1.5 секунды).
Эта команда особенно интересна тем, что она перезапускает текущий контекст сначала, но обрабатываемым екстеншеном уже будет тот номер, что был введен абонентом. Вот посмотрите на пример использования:
[waitexten_example] exten => s,1,NoOp(${TIMESTAMP} waitexten_example begins) exten => s,2,DigitTimeout,1 ; Сначала установим паузу в 1 секунду, ; если пройдет больше времени, то набор номера будет считаться законченым exten => s,3,ResponseTimeout,10 ; 10 секунд в течение которых ничего не набрали - это уже проблема... exten => _X,1,NoOp( only got one digit. It was ${EXTEN}) exten => _X,2,SetVar(Predigits=${EXTEN}) ; Сохраняем предыдущий номер для использования позже... exten => _X,3,Goto(s-gathermoredigits,1) exten => s-gathermoredigits,1,NoOp( users have slow fingers - lets increase the DigitTimeout and try again) exten => s-gathermoredigits,2,DigitTimeout,5 ; Увеличим паузу в наборе номера (между цифрами) до 5 секунд exten => s-gathermoredigits,3,WaitExten(8) ; и дадим звонящему 8 секунд, чтобы что-нибудь набрать exten => _X.,1,NoOp(${TIMESTAMP} ok, теперь наберем номер ${Predigits}${EXTEN}) exten => _X.,4,Dial(facility/${Predigits}${EXTEN})