Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Общего характера / * и окончание набора по #

* и окончание набора по #

Asterisk и окончание набора по #
Откуда: Харьков
Сообщений: 41

* и окончание набора по #

Hi All
Собрал я давно * в качестве офисной АТС и радуюсь жызни. Есть куча вопросов/проблем с ним связаных, до многих руки недоходят, многие решил с помощью линейки, но одну большую, никак не могу решить:
- в ivr, после набора номера, я хочу, чтобы по нажатию #, * понимал, что донабор окончен
[Apr 20 15:17:47] DTMF[36437]: channel.c:2108 __ast_read: DTMF end '#' received on SIP/80577664074-68934000, duration 0 ms
[Apr 20 15:17:47] DTMF[36437]: channel.c:2160 __ast_read: DTMF end accepted without begin '#' on SIP/80577664074-68934000
[Apr 20 15:17:47] DTMF[36437]: channel.c:2171 __ast_read: DTMF end passthrough '#' on SIP/80577664074-68934000
[Apr 20 15:17:47] WARNING[36437]: pbx.c:2527 __ast_pbx_run: Invalid extension '4009#', but no rule 'i' in context 'data1'
до астериска всё доходит, но # он воспринимает как часть номера. Куда копать?
админ, asterisk, freebsd, linux, w2k3, w2k8
2009-04-20 16:22

Сообщений: 866

Re: * и окончание набора по #

А чем IVR сделан? Background + WaitExten ?
2009-04-20 16:37

Откуда: Харьков
Сообщений: 41

Re: * и окончание набора по #

dimas:

А чем IVR сделан? Background + WaitExten ?
Да
админ, asterisk, freebsd, linux, w2k3, w2k8
2009-04-20 17:01

Сообщений: 866

Re: * и окончание набора по #

Как это делать "правильно" я не знаю.
Какие варианты приходят в голову это:

1. Прописывать щаблоны обоих видов:

1234 => {

Answer;
Playback(...)
Dial(...);
};

1234# => jump 1234;


2. Заняться рукодельем и считывать ввод юзера через приложение Read - оно умеет играть файл и считывать что там юзер вводит. По # заканчивает ввод и диалплан продолжается. После чего в переменной лежит считанная строка - можно сделать на нее Goto (не забыв обработать экстеншен 'i' куда перейдет управление если юзер ввел лажу и такого перехода нет).

Это все однозначно делабельно до состояния "не хуже чем Backgound+ReadExten" но довольно мутроно.

3. Делать то же самое рукоделье на AGI. В принципе не сильно отличается от п.2.


2009-04-20 18:18

Откуда: Саратов
Сообщений: 414

Re: * и окончание набора по #

buryanov:

до астериска всё доходит, но # он воспринимает как часть номера. Куда копать?
Отрезать последнюю #.
exten => s,n,Set(MACRO_EXTEN=${IF($[${MACRO_EXTEN:-1:1}=#]?${MACRO_EXTEN:0:-1}:${MACRO_EXTEN})})
+7(925)140-7438
2009-04-20 21:09

Сообщений: 866

Re: * и окончание набора по #

ммм... ну это будет работать только если есть макро в которое передааются все введенные в IVR номера. (вы кстати что имели в виду? stdexten?)

если же ivr собран как куча инклюдов разных контекстов так не получится.
2009-04-20 21:51

Сообщений: 1573

Re: * и окончание набора по #

buryanov:

в ivr, после набора номера, я хочу, чтобы по нажатию #, * понимал, что донабор окончен
используйте вместо WaitExten именно Read ...

CLI> show application Read
2009-04-21 01:34

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru