Отлючение дейстий при нажатии звёздочки в IVR.
Добавлено: 01 фев 2014, 07:21
Есть вот такой контекст:
[TestIvr]
exten => s,1,Set(TIMEOUT(digit)=3) ;
exten => s,n,Set(TIMEOUT(response)=4) ;
exten => s,n,Set(CDR(accountcode)="incoming-to-${EXTEN}");
exten => s,n,Set(CHANNEL(language)=ivr);
exten => s,n,Playback(ru_zip_1);
exten => s,n,Background(play);
exten => s,n,WaitExten(4);
exten => s,n,Dial(SIP/client/XXXXXXX,60,tTog);
exten => s,n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => s,n,Hangup;
exten => 1,1,Dial(SIP/client/602,60,tTog);
exten => 1,n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => 1,n,Hangup;
exten => 2,1,Dial(SIP/client/601,60,tTog);
exten => 2,n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => 2,n,Hangup;
exten => _[it],1,Dial(SIP/client/600,60,tTog);
exten => _[it],n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => _[it],n,Hangup;
Ситуация следующая, при звонке на номер XXXXXXX попадаем в контекст TestIvr, где описан автосекретарь. По таймауту и некорректному набору звонок уходит на линию 600, при нажатии 2 на линию 601, при нажатии 1 на линию 602. Но вот если тот кто звонит на номер XXXXXXX во время прослушивания сообщения автосекретаря или после него в течение 4 секунд нажимает звёздочку, то вызов уходит на линию 600, как понимаю нажатие звёздочки распознаётся как некорректное. Как сделать так, чтобы при нажатие звёздочки не было на это никакой реакции и контекст выполнялся дальше, чтобы нажатие звёздочки игнорировалось этим контекстом.
[TestIvr]
exten => s,1,Set(TIMEOUT(digit)=3) ;
exten => s,n,Set(TIMEOUT(response)=4) ;
exten => s,n,Set(CDR(accountcode)="incoming-to-${EXTEN}");
exten => s,n,Set(CHANNEL(language)=ivr);
exten => s,n,Playback(ru_zip_1);
exten => s,n,Background(play);
exten => s,n,WaitExten(4);
exten => s,n,Dial(SIP/client/XXXXXXX,60,tTog);
exten => s,n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => s,n,Hangup;
exten => 1,1,Dial(SIP/client/602,60,tTog);
exten => 1,n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => 1,n,Hangup;
exten => 2,1,Dial(SIP/client/601,60,tTog);
exten => 2,n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => 2,n,Hangup;
exten => _[it],1,Dial(SIP/client/600,60,tTog);
exten => _[it],n,NoOp(client_DIALSTATUS=${DIALSTATUS});
exten => _[it],n,Hangup;
Ситуация следующая, при звонке на номер XXXXXXX попадаем в контекст TestIvr, где описан автосекретарь. По таймауту и некорректному набору звонок уходит на линию 600, при нажатии 2 на линию 601, при нажатии 1 на линию 602. Но вот если тот кто звонит на номер XXXXXXX во время прослушивания сообщения автосекретаря или после него в течение 4 секунд нажимает звёздочку, то вызов уходит на линию 600, как понимаю нажатие звёздочки распознаётся как некорректное. Как сделать так, чтобы при нажатие звёздочки не было на это никакой реакции и контекст выполнялся дальше, чтобы нажатие звёздочки игнорировалось этим контекстом.