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

Как при завершении исходящего звонка передать информацию на сервер с CRM

0

Добрый всем день. Нужна помощь. Есть задача, по завершению исходящего звонка в Asterisk передать информацию об этом звонке в CRM ку посредством POST запроса. У меня реализован такой метод на входящих звонках. Там все просто, я перенаправил звонок в нужное мне custom_destination и все заработало.

Теперь есть задача для обратного. Есть след контекст прописанный в extension_custom.conf

[from-internal-custom]

exten => h,1,Set(rtn=${CURL(http://mycrm.com/outendcall,Status=${CDR(disposition)} AnswerPeer=${DIALEDPEERNUMBER} CallerNum=${CALLERID(num)} CallTime=${CDR(duration)} TellTime=${CDR(billsec)})})

exten => h,2,Wait(1)

exten => h,3,NoOp(CURL-RESPONSE: ${rtn})

По логике, этот контекст должен был быть использован при исходящем звонке. Но не тут то было. Не могу запустить его из разных мест, пробовал уже его и в extension.conf дописывать в контексте from-internal

Помогите, что делаю не так?

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

спросил 2017-07-28 14:16:03 +0400

symon Gravatar symon
11 2 3

обновил 2017-07-28 14:21:37 +0400

Comments

берете код рабочий из основной части в override_freebpx и там уже правите как нужно.

awsswa ( 2017-07-28 23:23:58 +0400 )редактировать

1 Ответ

0

В freepbx есть такой контекст

[macro-hangupcall]
include => macro-hangupcall-custom
exten => s,1(start),GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?theend)
exten => s,n(delrgi),Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})})
exten => s,n(theend),ExecIf($["${ONETOUCH_RECFILE}"!="" & "${CDR(recordingfile)}"=""]?Set(CDR(recordingfile)=${ONETOUCH_RECFILE}))
exten => s,n,Hangup
exten => s,n,MacroExit()

При сильном желании и отсутсвии здравого смысла, его можно переназначить.

Причем тут здравый смысл? Ну вы хотите выставить h-handlers и вам не приходит в голову, что их ЕЩЕ КАКОЙ-ТО модуль решит выставить.

А правильно сделать так

Читаем вот это

https://wiki.asterisk.org/wiki/display/AST/Hangup+Handlers

Потом пишем модуль для freepbx, который на нужных вам исхдящих роутах даст возможность поставить галочку "отправить инфо в crm", галочка создаст необходимые splice/inserts в диалплане, который выставят hangup_handlers

Есть промежуточный вариант. Вставть hangup_handlers в

dialout-trunk-predial-hook
ссылка удалить спам редактировать

ответил 2017-07-29 08:34:45 +0400

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

Comments

Спасибо! Натолкнули в правильном направлении!!! Все заработало.

symon ( 2017-07-31 13:59:27 +0400 )редактировать

давайте давайте. мне больше будет заказов вида "мне тут чтото наконфигурили, теперь вот с этим модулем вместе не работает".

meral ( 2017-07-31 16:09:48 +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)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: 2017-07-28 14:16:03 +0400

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

Обновлен: Jul 29 '17

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