Здравствуйте! Появилась задача определить внутренний номер, не ответивший на звонок с другого внутреннего номера.
У меня возникли две идеи, но обе оказались негодными:
1) В extensions_override_freepbx.conf
перепределить h например так:
[ext-local]
exten => h,1,NoOp(Не ответил: ${NODEST})
exten => h,n,Macro(hangupcall,)
Но переменная __NODEST в этом контексте не определяется, в отличии от очередей и групп вызова.
К тому же, если включен followme, то если звонящий положил трубку до иcтечения времени, отпущенного на followme, до этих строк дело вообще не доходит.
2) Использовать followme, с направлением в custom destination по неответу.
custom destination такое, например: fwmannounce,${EXTEN},1 -
чтобы в самом контексте иметь номер назначения из переменной ${EXTEN}.
Но..
[2019-05-01 13:22:24] VERBOSE[1122][C-00011c45] pbx.c: Executing [5000@followme-sub:52] Goto("IAX2/homeuserfa1-15609", "fwmannounce,${EXTEN},1") in new stack
[2019-05-01 13:22:24] VERBOSE[1122][C-00011c45] pbx_builtins.c: Goto (fwmannounce,${EXTEN},1)
[2019-05-01 13:22:24] WARNING[1122][C-00011c45] pbx.c: Channel 'IAX2/homeuserfa1-15609' sent to invalid extension but no invalid handler: context,exten,priority=fwmannounce,${EXTEN},1
Назначение здесь берётся, как оказалось из astdb, и ${EXTEN} в этом случае является частью строки, а не переменной.
Т.е. номер надо подставлять самому и делать custom destination для каждого внутреннго номера отдельный. А это не то, что хочется получить.
Получить хочется точку входа в диалплан freepbx, где можно определить номер не ответившего внутреннего номера и использовать его в своём кастомном коде.
Есть ли у кого-нибудь идеи, более продуктивные, чем у меня?
спросил
2019-05-02 01:52:38 +0400
eux 60 ● 15 ● 2 ● 11