Страница 1 из 1

AsteriskNOW (aster 11) как правильнее выбор в IVR в переменн

Добавлено: 23 май 2018, 19:08
svd
Дня доброго.

Существует AsteriskNOW (aster 11).
Звонки на входе попадают в IVR (одноуровневую, но всё же) оттуда 5 путей в разные очереди
необходимо записать выбор сделанный пользователем в IVR в переменную канала.

IVR создана при помощи ВЭБ-интерфейса

Код: Выделить всё

[ivr-1] ; WH-Hello
include => ivr-1-custom
include => from-ivr-directory-Выключено
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})

exten => s,1,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,GotoIf($["${CHANNEL(state)}" = "Up"]?skip)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(skip),Set(IVR_MSG=custom/wh_1)
exten => s,n(start),Set(TIMEOUT(digit)=3)
exten => s,n,ExecIf($["${IVR_MSG}" != ""]?Background(${IVR_MSG}))
exten => s,n,WaitExten(3,)

exten => 1,1(ivrsel-1),Goto(ext-queues,11,1)

exten => 2,1(ivrsel-2),Goto(ext-queues,21,1)

exten => 3,1(ivrsel-3),Goto(ext-queues,31,1)

exten => 4,1(ivrsel-4),Goto(ext-queues,41,1)

exten => 5,1(ivrsel-5),Goto(ext-queues,10,1)

exten => i,1(final),Playback(no-valid-responce-transfering)
exten => i,n,Goto(ext-queues,10,1)

exten => t,1(final),Playback(no-valid-responce-transfering)
exten => t,n,Goto(ext-queues,10,1)

exten => return,1,Set(_IVR_CONTEXT=${CONTEXT})
exten => return,n,Set(_IVR_CONTEXT_${CONTEXT}=${IVR_CONTEXT_${CONTEXT}})
exten => return,n,Set(IVR_MSG=custom/Renovacio_1)
exten => return,n,Goto(s,start)

exten => h,1,Hangup

exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup

;--== end of [ivr-1] ==--;
код этот хранится в extension_additional.conf а значит будет перезаписан при случае ;-)
править тут смысла нет.
а так бы кусочек кода
exten => s,n,WaitExten(3,)
сюда бы вставить что то типа exten => s,n, Set(__PRESS=${EXTEN}) (ну или не только выбор кнопки, а ещё и название IVR)
exten => 1,1(ivrsel-1),Goto(ext-queues,11,1)

дальше работаю с этой переменной как хочу

но самое "не клёвое" в этом то что перезапишется этот конфиг, назовём это вариантом 1 и заодно отвергнем.

вариант 2, написать меню целиком в рукопашную... те кто придёт "опосля нас" не увидят, не найдут, спахабят

вариант 3, создать misc-destination-ов 5+ штук и маршрутить по нажатию в IVR не сразу в очередя, а в в эти дестинейшены, которые и написать в рукопашную. содержать будут 2 строки, запись переменной, переход далее в нужную очередь.

что смущает в варианте 3:
клиент передумывает что-то и записывает нове голосовое приветсвие и нумерация вариантов меню меняется, а куски кода продолжают показывать неправильные уже на сейчас цифры.

Может я какого варианта грамотного не знаю? подскажите куда идтить

Re: AsteriskNOW (aster 11) как правильнее выбор в IVR в пере

Добавлено: 23 май 2018, 19:29
ded
Если вариант 1 для вас годный (а название IVR - вставить что то типа
exten => s,n, Set(__PRESS=${EXTEN})
exten => s,n, Set(__IVRCHOSEN=Buhaya-buhgalerija)
или ещё как-то, обратитесь к справочнику переменных), то весь контекст ivr-1 целиком заваливаете в extensions_override_freepbx.conf
- и вуа ля! Работает он, а не тот что в _additional.

Издержки:
svd писал(а):клиент передумывает что-то и записывает нове голосовое приветствие и нумерация вариантов меню меняется, а куски кода продолжают показывать неправильные уже на сейчас цифры.
svd писал(а): те кто придёт "опосля нас" не увидят, не найдут, спахабят

Re: AsteriskNOW (aster 11) как правильнее выбор в IVR в пере

Добавлено: 23 май 2018, 22:13
april22
Исправить код диалплана, в freepbx, не для слабонервных.

Re: AsteriskNOW (aster 11) как правильнее выбор в IVR в пере

Добавлено: 24 май 2018, 07:53
Kroteg
ИМХО раз так сильно надо - напиши свое меню полностью в extension_custom.conf
затем с помощью Custom Destination вставь в веб-интерфейс и установи в качестве направления IVR по таймауту (таймаут 1-2 сек).
вариант 2, написать меню целиком в рукопашную... те кто придёт "опосля нас" не увидят, не найдут, спахабят
это уже их проблемы - да и разобраться не так сложно будет при малейшей логике
вариант 3, создать misc-destination-ов 5+ штук и маршрутить по нажатию в IVR не сразу в очередя, а в в эти дестинейшены, которые и написать в рукопашную. содержать будут 2 строки, запись переменной, переход далее в нужную очередь.

что смущает в варианте 3:
клиент передумывает что-то и записывает нове голосовое приветсвие и нумерация вариантов меню меняется, а куски кода продолжают показывать неправильные уже на сейчас цифры.
так и пусть разбирается и делает тот, кто будет ответственен за это

Re: AsteriskNOW (aster 11) как правильнее выбор в IVR в пере

Добавлено: 02 фев 2019, 22:07
svd
По итогу сделал как советовал ded и скопировал весь контекст в extensions_override_freepbx.conf
Благодарю