Интеграция IP-телефонии

Последние изменения: 13.10.2023

Система MAG.Travel 2015 позволяет осуществлять интеграцию с рядом компаний, предоставляющих услуги IP-телефонии:

  • Asterisk;

  • Mango-Office;

  • Mobilon;

  • Oktell;

  • Zadarma.

  • UIS

Благодаря этому, появляется возможность осуществлять и принимать звонки от клиентов и фиксировать их в системе MAG.Travel 2015, а именно:

  • Создавать клиентов из карточки звонка;

  • Добавлять Лид, а также определять имеющийся лид по клиенту;

  • Создавать предварительный заказ;

  • Фиксировать звонки по лиду в списке обращений, а также в журнале звонков;

  • Хранить записи телефонных разговоров (зависит от поставщика услуги IP-телефонии)

Так же информацию о том, как настроить/подключить  IP-телефонию можно найти  в нашей вики

Настройка телефонии происходит в в разделе "Администрирование" - "Настройки IP телефонии"

Asterisk

Перейдите в Администрирование (верхний правый угол с изображением шестерёнки). В открывшемся экране строчка – Настройка ip телефонии. В открывшемся экране Выберите «тип телефонии» - Asterisk и заполните такие данные как:

  • Адрес сервера Asterisk,

  • Порт для подключения к AMI (Asterisk management Interface),

  • Логин AMI,

  • Пароль AMI.

Ип с которых должен быть доступен Астериск по AMI
148.251.195.241
188.40.126.229
148.251.22.175
185.26.169.104
Посмотреть логин, пароль к AMI можно перейдя на сервере Asterisk по пути: /etc/asterisk/manager.conf

Для этого в manager.conf должны быть прописаны логин и пароль ами, а также разрешения на all
Пример конфигурации:
[magtravel]
secret = XXXXXXX
deny=0.0.0.0/0.0.0.0
permit=148.251.195.241/255.255.255.255
permit=188.40.126.229/255.255.255.255
permit=148.251.22.175/255.255.255.255
permit=185.26.169.104/255.255.255.255
read = all,cdr
write = all,cdr
writetimeout = 500

  • Вместо XXXXXXX необходимо указать пароль для подключения, который затем прописать в настройках телефонии в Маге.*

Должно быть также настроено событие AgentCalledEvent - http://fshareit.com/java/asterisk/asterisk-java/1.1.0-beta-javadoc/org/asteriskjava/manager/event/AgentCalledEvent.html
В файле queues.conf должна быть строка: eventwhencalled = yes
А также: eventmemberstatus = yes
И Астериск должен быть собран с модулем apps/app_queue.c

Можно указать контекст Астериск для исходящих звонков.
Этот контекст будет использоваться при звонке из Мага.
Если он не заполнен, то по умолчанию используется default (в большинстве случаев используется именно он)

Для прослушивания записей звонков необходимо настроить либо ftp либо http сервер
в случае интеграции через HTTP сервер на компьютере с Астериск должен быть развернут сервис, который по определенному относительному пути отдает файлы из папки /var/spool/asterisk/monitor/
в случае интеграции через FTP сервер аналогично должны отдаваться файлы из этой папки через FTP

Mag.Travel позволяет настроить умную переадресацию на ответственного сотрудника.
Умная переадресация - это перевод звонка от клиента, который в данный момент звонит, на ответственного менеджера, который указан в карточке этого клиента в CRM системе. Иными словами, клиент всегда дозванивается на менеджера, который ведет его дела в этой компании.
Настраивается Умная переадресация в Freepbx через дополнительное назначения

Указываем цель (target) magtransfer,s,1 (4), и можно указать направление из умной переадресации (5)

Переходим в раздел Admin - Config Edit - extensions_custom.conf (FreePBX 13/14) (Для более ранних версий отредактируем файл /etc/asterisk/extensions_custom.conf вручную на сервере)

[magtransfer]
exten => s,1,Set(DEFEXT=200)
exten => s,n,Set(API_key=API_KEY_TEXT)
exten => s,n,Set(RingTime=15)
exten => s,n,ExecIf($[("${MOHCLASS}"!="default") & ("${MOHCLASS}"!="")]?Set(CHANNEL(musicclass)=${MOHCLASS}))
exten => s,n,Set(D_OPTIONS=m(${CHANNEL(musicclass)})Tt)
exten => s,n,NoOp(FROM_DID=${FROM_DID})
exten => s,n,NoOp(CALLERID(num)=${CALLERID(num)})
exten => s,n,Set(TOEXT=${CURL(https://2015.mag.travel/tourclient/api/Telephony/PhoneRedirectNumber/ID_IN_MAG/API_KEY_TEXT/${CALLERID(num)})})
exten => s,n,GotoIf($["${TOEXT}"!=""]?dst:nodst)
exten => s,n(dst),Dial(SIP/${TOEXT},${RingTime},${D_OPTIONS})
exten => s,n,Return()
exten => s,n(nodst),Dial(SIP/${DEFEXT},${RingTime},${D_OPTIONS})
exten => s,n,Return()

где:

  • ID_IN_MAG – ID который указываете при входе в систему;

  • API_KEY_TEXT – API ключ который Вы генерируете. - *Этот ключ так же должен быть прописан в настройках телефонии в MAG*

  • DEFEXT - добавочный по умолчанию, на который пойдет звонок если TOEXT получит не верное значение

  • FROM_DID - транк, на который поступил звонок

  • TOEXT - номер телефона ответственного из настроек в ЛК (тут значение для нового клиента, или для известного)

Затем нужно направить звонок в входящем маршруте в созданное дополнительное назначение magtransfer


Mango-Office

Для интеграции с IP-телефонией Mango-Office необходимо быть действующим клиентом Mango-Office.

Регистрация в Mango-Office

Для начала интеграции с IP-телефонией Mango-Office, необходимо пройти регистрацию на сайте  mango-office, а также пополнить баланс.
Шаг 1. Войдите в Личный кабинет Виртуальной АТС (ВАТС).
Шаг 2. Перейдите в раздел «Интеграции»:

5e2e03b9958a90aa5f7ed14c6fc4209d.png


Шаг 3. Откройте вкладку «API коннектор».

9655ba845ea9a66da23c50028690505e.png


Шаг 4. Сохраните данные вашей АТС для дальнейшего копирования в виджет CRM-системы или не закрывайте вкладку до окончания настройки интеграции.


b6e8aeafb624c6ba489304c4e14c44db.png


Шаг 5. В поле «адрес внешней системы» впишите адрес СRM-системы или сервера для принятия и обработки уведомлений, которые посылает API.

Также указать следующие данные:

5c9b8fc21ae3906be28b2e328ff87520.png

Шаг 6. Установите безопасность посредством IP-адресов. Если вы хотите прослушивать записи разговоров прямо из CRM, то установите флаг «записи разговоров» (при этом необходимо подключить услугу «запись разговоров» в личном кабинете → вкладка «инструменты» → выберите пункт «запись разговоров» и нажмите кнопку «подключить»). Для принятия настроек нажмите кнопку «сохранить».

6a85065000dce45a65bef16aaaeda2ae.png


Скопируйте "Уникальный код вашей АТС" и "Ключ для создания подписи" (они потребуются для настройки телефонии в системе MAG.Travel 2015):


Шаг 7 Необходимо создать в системе сотрудников и создать им SIP-аккаунт.

3d9621d4a67d84263e80bc1a482cfee3.png
d0528c097d72045dcdcb7e1926970eff.png


Настройка Mango-Office в MAG.Travel 2015

Данные, скопированные из Личного кабинета Mango-Office, необходимо прописать в системе MAG.Travel 2015, в разделе "Настройки – Настройки ip телефонии".

Ak 320.png


Ak 326.png


Укажите внутренние номера сотрудников в MAG.Travel 2015 (в разделе "Настройки – Настройки ip телефонии") так, как они указаны у Вас в Виртуальной АТС Mango-Office.
В Mango-Office:

Ak 328.png


В MAG.Travel 2015:

Ak 327.png


После этого необходимо сохранить настройки в системе MAG.Travel 2015.

Для исходящего звонка нажмите на кнопку Позвонить в системе MAG.Travel 2015

Ak 329.png

, сервис Mango-Office сначала позвонит Вам, а потом соединит Вас с клиентом (используется SIP-Клиент).
При входящем звонке на ваш внутренний номер, вы увидите всплывающую карточку с номером телефона или сразу с именем туриста (если он есть в клиентской базе):

Ak 330.png


Внимание! Все разговоры ведутся по IP-телефонам (не через систему MAG.Travel 2015).

Назначение звонков ответственному менеджеру

В разделе Администрирование - Вкладка "Настройки" необходимо выбрать менеджера в настройке "Назначать неотвеченные звонки менеджеру".
Таким образом, неотвеченные звонки и клиенты, созданные на их основе будут назначены выбранному менеджеру, а также при повторных звонках - они будут перенаправлены именно на него.

f6350cbc62864161bcc487281d7fefd8.png

Для корректной работы перенаправления звонков, необходимо также настроить входящую линию в Виртуальной АТС Mango-Office:

d807d77544f62f63287adb085aab21b4.png
8fc8a9d1d3a1fd78a2b2029df8e4a57e.png




Необходимо настроить распределение звонков на группу абонентов за счёт создания схемы с установкой расписания, включающего Приветствие -> Переадресация на группу абонентов.


Mobilon

Для интеграции с IP-телефонией Mobilon необходимо быть действующим клиентом Mobilon.

Настройка в Mobilon

В личном кабинете Mobilon, в разделе Интеграция, на вкладке Настройки необходимо прописать данные для интеграции с Mag.Travel 2015:

  • Тип: Webhook;

  • В поле URL для событий размещаем ссылку <a rel="nofollow" href="https://2015.mag.travel/tourclient/api/telephony/Mobilon/999/events">https://2015.mag.travel/tourclient/api/telephony/Mobilon/999/events</a>, где - 999 - Ваш ID который вы указываете при входе в MAG.Travel 2015.

Ak 432.png


Также, необходимо создать Абонентов в разделе Конфигуратор подпункт Абонент:

Ak 433.png


Настройка Mobilon в MAG.Travel 2015

Для настройки в Mag.Travel 2015 необходимо перейти в раздел Администрирования, справочник Настройки IP-телефонии и в поле Тип телефонии выбрать Mobilion:

Ak 435.png


Также, далее нужно заполнить данные для пользователей системы, а именно внести у пользователя такие данные как:

  • Внутренний номер;

  • Userkey.

Данные для поля Userkey необходимо взять из данных абонентов в кабинете Mobilon:

Ak 434.png


После этого необходимо сохранить настройки в системе MAG.Travel 2015.

При входящем звонке на ваш внутренний номер, вы увидите всплывающую карточку с номером телефона или сразу с именем туриста (если он есть в клиентской базе):

Ak 330.png


Внимание! Все разговоры ведутся по IP-телефонам (не через систему MAG.Travel 2015).


Oktell

Для Интеграции с ip-телефонией Oktell необходимо:

В поле «Тип телефонии» выбрать Oktell

В поле «Автоматическое создание клиента» выбрать в каком из предложенных вариантов будет автоматически создан клиент: - Не создавать – при поступлении входящего звонка новый клиент создан не будет - При входящем с неизвестного номера – новый клиент создастся, если входящий звонок поступит с номера телефона, которого ещё нет в вашей базе - При пропущенном входящем с неизвестного номера - новый клиент создастся, если на входящий звонок не было ответа и такого номера телефона нет в вашей базе

Выбрать один из предложенных вариантов в поле «Автоматическое создание лида», где: - Не создавать – Лид в базе создан не будет - При каждом входящем звонке – Лид создается по каждому входящему звонку, не важно от кого и с какого номера телефона поступил звонок - При входящем с неизвестного номера – Лид создается только в том случае, если звонок поступил с неизвестного номера При пропущенном входящем с неизвестного номера - Лид создается, если на звонок не было ответа и он поступил с неизвестного номера

В поле «Изменять статус лида при пропущенном звонке» выбрать на какой статус Лида изменять статус, если звонок был пропущен (статусы подтягиваются из соответствующего справочника)

В поле «Сервер Oktell» прописать ссылку на ваш сервер Oktell с префиксом «ws://»

Oktell.png


Внимание! Десктопное приложение Oktell не взаимодействует с Mag.Travel.


Zadarma

В ЛК ZADARMA перейдите в раздел "Настройки" - "API и интеграции". Здесь вы можете найти API ключ и ключ для создания подписи. Их нужно прописать в настройках IP телефонии в системе MAG.Travel

В разделе "Уведомления о звонках в АТС", в поле "Ссылка вашего ресурса" нужно указать ссылку вида: http://2015.mag.travel/TourClient/api/Telephony/Zadarma/999999/events при этом заменить 999999 на Ваш ID в MAG и справа отметьте все события:

2019-10-02 12-03 Zadarma.jpg

Также в системе MAG.Travel, в настройках IP телефонии нужно прописать внутренние номера пользователей для которых будет доступна интеграция. В ZADARMA можно найти внутренние номера сотрудников в разделе Моя АТС, внутренние номера. Поле с номером - "Внутренний номер АТС"

Также, для записи разговоров должен быть установлен флаг: Запись разговоров - в облако

Zadarmarecording.jpg

Для приема входящих звонков в ЛК ZADARMA должны быть подключены номера в разделе Моя АТС, внешние линии.


UIS

  1. Подключить API

Нужно подключить компонент «Call API Базовый набор» и «Уведомления». Для переадресации на ответственного нужно также подключить «Call API Управление вызовами»

Подключается компонент в разделе Администратор - Аккаунт - Тариф и опции:

131ac8841637ec092ca5a95fd4035b32.png

2. Доступ к АПИ

Ключи генерируются на уровне пользователя в разделе личного кабинета "Аккаунт" → "Управление пользователями"

Существует два типа ключей:

Постоянный;

Временный;

Постоянный ключ имеет неограниченное время действия.

Временный ключ имеет конкретную дату окончания действия ключа.

Генерируем постоянный ключ.

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

22afc1d8b92d449b374517a8ea66ef45.png

3. Настройка доступа по IP

По умолчанию доступ к API запрещен всем, чтобы можно было делать запросы необходимо IP-адрес хоста с которого делается запрос добавить в белый список. Это можно сделать через личный кабинет "Администратор -> Аккаунт -> Правила и настройки безопасности" вкладка "API".

Наши IP:

148.251.195.241
188.40.126.229
148.251.22.175
185.26.169.104

37105ff6133c44454ddb0eda74ef9c38.png

4. Настройка IP телефонии в МАГЕ

Для настройки ip телефонии перейдите в системе маг в администрирование (шестеренка в правом верхнем угле), далее в “Настройки ip телефонии”

24b7675c39f3c855a436cc3927a2edc6.png

Здесь тип телефонии выбирайте UIS.

  • Ключ доступа к API UIS вставьте, что вы сгенерировали в личном кабинете UIS.

Ключ для API уведомлений придумайте сами, он понадобится в следующем пункте.

b1011fb7bfed198888ed2a68b533219e.png

5. Настройка уведомлений

Чтобы настроить получение уведомлений, перейдите в раздел Сервисы и статистика, в боковом меню откройте Уведомления и нажмите добавить. В открывшемся окне необходимо заполнить параметры: название уведомления; тип события, о котором нужно вас уведомить; условия, при которых будет приходить уведомление; способ получения уведомлений.

Нужно настроить 8 HTTP уведомлений

f95c7a597fded160d88d8a7a3500b4f0.png

При настройки уведомлений в каждый URL необходимо прописать свой ID Мага (В примере ID это 200). А также, в каждом шаблоне запроса вместо <ваш ключ в настройках телефонии в MAG.Travel> прописать Ключ для API уведомлений указанное в настройках телефонии в Маг, вы его создаете сами.

Входящее плечо

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/IncomingLeg

{

"notification_name":{{notification_name}},

"notification_time":{{notification_time}},

"external_id": {{external_id}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"contact_id": {{contact_id}}

},

"employee_info": {

"employee_full_name": {{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"call_source": {{call_source}},

"call_session_id":{{call_session_id}},

"direction": {{direction}},

"leg_id": {{leg_id}},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Исходящее плечо

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/OutgoingLeg

{

"notification_name":{{notification_name}},

"notification_time":{{notification_time}},

"external_id": {{external_id}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"contact_id": {{contact_id}}

},

"employee_info": {

"employee_full_name": {{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"call_source": {{call_source}},

"call_session_id":{{call_session_id}},

"direction": {{direction}},

"leg_id": {{leg_id}},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Входящий звонок на виртуальный номер

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/IncomingLine

{

"notification_name":{{notification_name}},

"virtual_phone_number":{{virtual_phone_number}},

"notification_time":{{notification_time}},

"scenario_name": {{scenario_name}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"communication_number":{{communication_number}},

"contact_id": {{contact_id}},

"contact_full_name": {{contact_full_name}}

},

"call_session_id":{{call_session_id}},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Исходящий звонок

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/Outgoing

{

"notification_name": {{notification_name}},

"virtual_phone_number": {{virtual_phone_number}},

"notification_time": {{notification_time}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"contact_id":{{contact_id}},

"contact_full_name":{{contact_full_name}}

},

"call_session_id":{{call_session_id}},

"employee_info":{

"employee_full_name":{{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Начало разговора

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/CallStarted

{

"notification_name": {{notification_name}},

"virtual_phone_number": {{virtual_phone_number}},

"notification_time": {{notification_time}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"contact_id":{{contact_id}},

"contact_full_name":{{contact_full_name}}

},

"call_session_id":{{call_session_id}},

"employee_info":{

"employee_full_name":{{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Окончание разговора

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/EndPart

{

"notification_name":{{notification_name}},

"virtual_phone_number":{{virtual_phone_number}},

"notification_time":{{notification_time}},

"external_id": {{external_id}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"communication_number":{{communication_number}}

},

"employee_info": {

"employee_full_name": {{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"call_info": {

"call_source": {{call_source}},

"call_session_id":{{call_session_id}},

"direction": {{direction}},

"scenario_name": {{scenario_name}},

"talk_time_duration": {{talk_time_duration}}

},

"leg_ids": {{leg_ids}},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Завершение звонка

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/EndCall

{

"notification_name":{{notification_name}},

"virtual_phone_number":{{virtual_phone_number}},

"notification_time":{{notification_time}},

"external_id": {{external_id}},

"contact_info":{

"contact_phone_number":{{contact_phone_number}},

"communication_number":{{communication_number}}

},

"employee_info": {

"employee_full_name": {{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"call_info": {

"call_source": {{call_source}},

"direction": {{direction}},

"call_session_id":{{call_session_id}},

"scenario_name": {{scenario_name}},

"talk_time_duration": {{talk_time_duration}},

"total_time_duration": {{total_time_duration}},

"wait_time_duration": {{wait_time_duration}},

"tag_names": {{tag_names}}

},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}

Записанный разговор

POST https://2015.mag.travel/tourclient/api/Telephony/Uis/200/Record

{

"notification_name": {{notification_name}},

"virtual_phone_number": {{virtual_phone_number}},

"notification_time": {{notification_time}},

"scenario_name": {{scenario_name}},

"contact_info": {

"contact_phone_number": {{contact_phone_number}},

"communication_number": {{communication_number}},

"contact_id": {{contact_id}},

"contact_full_name": {{contact_full_name}}

},

"call_session_id": {{call_session_id}},

"employee_info": {

"employee_full_name": {{employee_full_name}},

"extension_phone_number": {{extension_phone_number}}

},

"call_record_file_info": {

"file_link": {{file_link}},

"call_record_duration": {{file_duration}}

},

"tag_ids": {{tag_ids}},

"tag_names": {{tag_names}},

"mag_secret": "ваш ключ в настройках телефонии в MAG.Travel"

}




Примечание

При интеграции с Asterisk или  Oktell 
для записи регистрации звонков в журнале, необходимо чтобы кто-то из сотрудников всегда был авторизован в системе MagTravel.

Помогла ли вам статья?