Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Freepbx: узнать какой номер не ответил при локальных звонках.

0

Здравствуйте! Появилась задача определить внутренний номер, не ответивший на звонок с другого внутреннего номера. У меня возникли две идеи, но обе оказались негодными:

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 Gravatar eux flag of Russian Federation
60 15 2 11

1 Ответ

1

Идея с followme через жопу, но должна работать.

Добавьте туда Dumpchan и смотрите

Правильно - поправить макрос, который звонит на экстеншен или использовать predial-hook c hangup handler.

ссылка удалить спам редактировать

ответил 2019-05-02 03:13:34 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Т.е. Ваше предложение, найти соответвующмй predial-hook и определить там hangup handler, в который передать вызываемый номер и номер звонящего, я правильно понял? Попробую, спасибо.

eux ( 2019-05-02 13:37:20 +0400 )редактировать

Спасибо за подсказку. Всё получилось: процедуру для hangup handler и в dialout-one-predial-hook её назначил.

eux ( 2019-05-02 23:35:11 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2019-05-02 01:52:38 +0400

Просмотрен: 373 раз

Обновлен: May 02 '19

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.