Здравствуйте! Появилась задача определить внутренний номер, не ответивший на звонок с другого внутреннего номера. У меня возникли две идеи, но обе оказались негодными:
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, где можно определить номер не ответившего внутреннего номера и использовать его в своём кастомном коде.
Есть ли у кого-нибудь идеи, более продуктивные, чем у меня?
Идея с followme через жопу, но должна работать.
Добавьте туда Dumpchan и смотрите
Правильно - поправить макрос, который звонит на экстеншен или использовать predial-hook c hangup handler.
Задан: May 1 '19
Просмотрен: 377 раз
Обновлен: May 02 '19
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.