Изменения

Перейти к: навигация, поиск

Интеграция с телефонией

1028 байт убрано, 14:34, 17 мая 2021
м
Нет описания правки
== Что это? ==Наша система пока напрямую к <rspoiler text="операторам телефонной связи">Манго, UIS, Гравител и др.</rspoiler> не подключается. Ведутся некоторые изыскания на эту тему, но пока не очень обещающие.Однако, она MeaSoft интегрируется с Астериском. Это Asterisk — это самый популярный телефонный сервер, который ни в коем случае не заменяет телефонную компанию, а наоборот - дополняет ее дополняет. Работает так: Вы в телефонной компании берете линии связи (номера телефонов, каналы и т.д.), можете одновременно брать разные каналы в разных компаниях (с разными тарифами, из разных регионов и т.д), можете добавлять свои, например, GSM-шлюзы для экономии на звонках с помощью безлимитных или безлимитных внутри сети сим-карт. Эти линии заводятся в сервер Астериск, к нему же подключаются ваши телефоны, он же программируется - откуда куда какие линии должны задействоваться. К нему же подключается наша система, причем отдельно - офисная и курьерское приложение. Что вы получаете:
'''В офисеКак это работает:''' * Операторы звонят просто кнопкой из программы* Журнал звонков вы в телефонной компании берете линии связи (можно даже записи разговоров примотать) прямо в программеномера телефонов, с привязкой к заказам, клиентам, вашим сотрудникамканалы и т. д.* При входящем звонке программа показывает оператору - кто звонит: Определяет по базе клиента (вплоть до конкретного сотрудника), курьера или получателя.* Отслеживание звонков курьеров с привязкой к заказам (можно даже записи разговоров примотать).* Экономия: Вы можете подключить телефоны всех ваши офисов (в том числе одновременно брать разные каналы в разных городах) к одному серверукомпаниях (с разными тарифами, из разных регионов и связь между ними будет бесплатнойт.д), вы можете делать исходящие звонки через добавлять свои, например GSM-шлюзы, вы можете подключить номера из разных регионов и все филиалы будут звонить для экономии на звонках с помощью безлимитных или безлимитных внутри сети SIM-карт. Эти линии заводятся в эти регионы через эти линии по локальным тарифам.* Снижение нагрузки на операторов: Вы можете настроить Астериск таксервер Asterisk, чтобы, напримерк нему подключаются ваши телефоны, он направлял звонки от клиентов или курьеров не всем операторампрограммируется — откуда куда какие линии должны быть задействованы. К нему же подключается MeaSoft, причем отдельно офисная система и их личным менеджерам (в том числе и на мобильный телефон!)курьерское приложение.
'''У курьеровЧто вы получаете:'''* Экономия: Звонок от курьера через телефонию делается так, что сервер курьеру перезванивает, для курьера звонок бесплатный. Для большей экономии можно использовать GSM-шлюзы, чтобы звонок шел через сим-карту с бесплатной связью внутри оператора курьера.* Запись разговора курьера с получателем.
'''У получателейВ офисе:'''* Солидность: Звонок от курьера получателю можно отправлять операторы звонят просто кнопкой из программы;* журнал звонков прямо в программе, с вашего основного городского номерапривязкой к заказам, и у получателя будет определяться не "левый" мобильный номер (обратную связь с которым вы даже не отследите)клиентам, а красивый фирменный номервашим сотрудникам.Можно подключить записи разговоров;* Снижение нагрузки на операторов: Помимо тогопри входящем звонке программа показывает оператору, что система определяет кто звонит и подсказывает это оператору, Астериск можно настроить так, чтобы он сразу маршрутизировал звонок на курьера: определяет по базе клиента (вплоть до конкретного сотрудника), если звонит получатель, заказ которого находится на руках у курьераили получателя;* отслеживание звонков курьеров с привязкой к заказам.Можно подключить записи разговоров;* Отзывыэкономия: вы можете подключить телефоны всех ваших офисов (в том числе в разных городах) к одному серверу, и связь между ними будет бесплатной. Вы можете сделать в астерискеделать исходящие звонки через GSM-шлюзы, после звонкаможете подключить номера из разных регионов, сбор отзывов о работе как и все филиалы будут звонить в эти регионы через эти линии по локальным тарифам;* снижение нагрузки на операторов : вы можете настроить Asterisk так и , чтобы, например, он направлял звонки от клиентов или курьеровне всем операторам, и мы можем настроить их получение прямо личным менеджерам (в систему с привязкой к заказу, курьеру том числе и т.д., наравне со сбором отзывов о доставке через [[Личный кабинет курьерской службы#Сбор отзывов|web-сервис]]на мобильный телефон).
'''БезопасностьУ курьеров:'''* При базовом использовании, когда вы/курьеры можете звонитьэкономия: звонок от курьера через телефонию делается так, система ведет журнал, и оператору выскакивают уведомления кто звонит, сервер телефонии и его администраторы не имеют доступа ни к каким данным системы. В что сервер телефонии передаются только номера телефонов, на которые нужно позвонитькурьеру перезванивает, вся остальная информация о звонках идет из сервера телефонии к нашей системедля курьера звонок бесплатный.* Для тогобольшей экономии можно использовать GSM-шлюзы, чтобы телефония могла маршрутизировать звонки на ответственных курьеров, менеджеров клиентов и т.д. звонок шел через SIM- мы должны дать ей доступ к этой информации, которая ей необходима. Однако это как правило только номера телефонов клиентов, курьеров, менеджеров, и связи между ними - то есть данные достаточно обезличенные, могут не включать в себя названия, имена, адреса и прочеекарту с бесплатной связью внутри оператора курьера;* запись разговора курьера с получателем.
Астериск здесь выступает прокладкой между вами У получателей:* солидность: звонок от курьера получателю можно отправлять с вашего основного городского номера, и телефонной компанией. Им пользуются многие наши клиенты (да у получателя будет определяться фирменный номер;* снижение нагрузки на операторов: gомимо того, что система определяет кто звонит и не наши тоже!)подсказывает это оператору, и мы сами. Это напримерAsterisk можно настроить так, позволяет нашим операторам чтобы он сразу сказать "Здравствуйтемаршрутизировал звонок на курьера, Иван"если звонит получатель, если заказ которого находится на руках у курьера;* отзывы: вы звоните со своего мобильного телефона. Содержание сервера обычно стоит можете настроить сбор отзывов после звонка о работе операторов и курьеров, и мы можем настроить их получение прямо в районе 10 тсистему с привязкой к заказу, курьеру и т.р д. в месяц (аренда сервера в ДЦ + обслуживание), но плюсы, которые он дает эти расходы хорошо окупаютнаравне со сбором отзывов о доставке через [[Личный кабинет курьерской службы#Сбор отзывов|веб-сервис]].
'''Безопасность:* при базовом использовании, когда вы/курьеры можете звонить, система ведет журнал, и оператор видит уведомления о том, кто звонит, сервер телефонии и его администраторы не имеют доступа ни к каким данным системы. В сервер телефонии передаются только номера телефонов, на которые нужно позвонить, вся остальная информация о звонках идет из сервера телефонии к нашей системе;* чтобы телефония могла маршрутизировать звонки на ответственных курьеров, менеджеров клиентов и т. д., ей нужно дать доступ к этой информации — как правило, это только номера телефонов клиентов, курьеров, менеджеров и связи между ними. Данные достаточно обезличенные, могут не включать в себя названия, имена, адреса и прочее. Asterisk выступает посредником между вами и телефонной компанией. Им пользуются многие наши клиенты и мы сами. Это позволяет нашим операторам сразу сказать «Здравствуйте, Иван», если вы звоните со своего мобильного телефона. Без интеграции с Астериск:'''При Asterisk при звонке из мобильного приложения фиксируется только факт попытки звонка. При этом нет ни записи разговора, ни его длительности его, ни статуса: дозвонился или нет. Офисное приложение при нажатии кнопки звонка вызывает программу для звонков, установленную по умолчанию в Windows - Windows — это может быть программный телефон или Skype. О дальнейшей судьбе этой попытки позвонить мы так же также ничего не знаем.
== Где взять сервер? ==
Сам сервер можно арендовать в ДЦ или установить у себя в офисе. Установить на него телефонию, настроить под вас и сопровождать должны специалисты. Они же помогут и в выборе сервера. Рекомендовать можем проверенных нами админов из https://southbridge.io/, впрочем, на рынке их не малонемало.
== Интеграция мобильного приложения ==
Для осуществления звонков из мобильного приложения через сервер телефонии [https://ru.wikipedia.org/wiki/Asterisk Asterisk] используется подключение через [http://asteriskpbx.ru/display/Asterisk/Asterisk+Managment+Interface+%28AMI%29 AMI].
Включите AMI, задайте адреса, с которых можно получить к нему доступ в файле /etc/asterisk/manager.conf.
Создайте пользователя - , обычно это делается в файлах /etc/asterisk/manager_custom.conf или /etc/asterisk/manager.conf.
Откройте порт в файерволе (обычно 5038, прописывается в /etc/asterisk/manager.conf) ([https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Firewalls.html на всякий случай Вам вам в помощь]). Все подключения от клиентов на андроиде происходят с одного IP-адреса: 138.201.228.71, так что смело "зажимайте" только на него - этого требует безопасность. Осторожно! AMI - вещь достаточно дырявая, и открытие порта на весь мир очень опасно. Тем более что через эту функцию можно за ваш счет соединить 2 произвольных номера.
Пропишите настройки Все подключения здесь: [httpsот клиентов на андроиде происходят с одного IP-адреса://home138.courierexe201.ru/extraclient/phones_settings https://home.courierexe.ru/extraclient/phones_settings]*'''Адрес сервера''' - IP или доменное имя228. Предполагается71, так что у сервера Asterisk, естественно, статичный внешний IP или проброшен порт AMI, иначе ничего работать не будет.*'''Порт сервера''' - На каком порту находится AMI*'''Имя пользователя''' - Логин AMI, созданный в manager.conf (или manager_custom.conf)*'''Пароль''' - пароль пользователя.*'''Канал''' - канал, через который должен происходить звонок. Обычно выглядит как "SIP/trunk_name", где trunk_name - название транка, прописанного, обычно, в файле /etc/asterisk/sipсмело указывайте только его — этого требует безопасность.conf
Для старых версий драйвера SIP Осторожно! AMI — вещь достаточно дырявая, и открытие порта на весь мир очень опасно. Тем более что через эту функцию можно указывать "SIP/trunk_name", в этом случае номер звонящего будет подставляться в конце: "SIP/trunk_name/79001234567"за ваш счет соединить 2 произвольных номера.
Пропишите настройки подключения [https://home.courierexe.ru/extraclient/phones_settings здесь]:* '''Адрес сервера''' — IP или доменное имя. Предполагается, что у сервера Asterisk статичный внешний IP или проброшен порт AMI, иначе ничего работать не будет;* '''Порт сервера''' — на каком порту находится AMI;* '''Имя пользователя''' — логин AMI, созданный в manager.conf (или manager_custom.conf);* '''Пароль''' — пароль пользователя;* '''Канал''' — канал, через который должен происходить звонок. Обычно выглядит как «SIP/trunk_name», где trunk_name — название транка, прописанного, обычно, в файле /etc/asterisk/sip.conf. Для старых версий драйвера SIP можно указывать «SIP/trunk_name», в этом случае номер звонящего будет подставляться в конце: «SIP/trunk_name/79001234567». Для новых версий драйвера SIP можно указывать "SIP«SIP/{NUMBER}@trunk_name"trunk_name», в этом случае номер звонящего будет подставляться вместо {NUMBER}: "SIP«SIP/79001234567@trunk_nametrunk_name»;* '''Контекст''' — контекст обработки запроса. Обычно настраиваются в диалплане в файле /etc/asterisk/extensions.conf <spoiler text="Тут настраивается запись исходящих">В стандартной поставке Asterisk не записывает исходящие звонки от курьеров. Решение — в /etc/asterisk разместить файл кастомного диалплана [http://courierexe.ru/download/extensions_custom.conf extensions_custom.conf]. В файле в 5-й строке нужно заменить транк на тот, который используется в вашей установке. Далее в настройках подключения мобильного приложения используйте контекст «from-courier». Чтобы в CDR звонки курьеров имели номер звонящего курьера, во второй строке файла уберите «<COURIER>». Это добавлено для того, чтобы можно было отфильтровать все звонки курьеров. Для уменьшения размера файлов записей рекомендуем использовать кодек G.729</spoiler>* '''Внутренний телефон офиса''' — внутренний номер, на который приходит звонок при выборе «Позвонить в офис». Рекомендуется в настройках Asterisk указать в этом поле номер группы менеджеров;* '''Городской телефон офиса''' — внешний номер телефона офиса. Приложение будет звонить по сотовой сети на этот номер в случае, если не удалось послать запрос на соединение с офисом в Asterisk. Заполните это поле, даже если не вы не интегрируете приложение с телефонией, это позволит курьерам совершать звонки в офис из приложения;* '''Префикс курьера''' — префикс, который будет добавляться к номеру вызывающего абонента;* '''Префикс клиента''' — префикс, который будет добавляться к номеру вызываемого абонента.
*'''Контекст''' - Контекст обработки запроса. Обычно настраиваются в диалплане в файле /etc/asterisk/extensions.conf <spoiler text="Тут настраивается запись исходящих">В стандартной поставке Asterisk не записывает исходящие звонки от курьеров. Решение - в /etc/asterisk разместить файл кастомного диалплана [httpСохраните настройку и проверьте ее работоспособность://courierexe.ru/download/extensions_custom.conf extensions_custom.conf]. В файле в 5-й строке нужно заменить транк введите 2 телефона и нажмите на тот, который используется в вашей установке. Далее в настройках подключения мобильного приложения используйте контекст "from-courier". Чтобы в CDR звонки курьеров имели номер звонящего курьера, во второй строке файла уберите "<COURIER>". Это добавлено для того, чтобы можно было отфильтровать все звонки курьеров. Для уменьшения размера файлов записей рекомендуем использовать кодек G.729</spoiler>*кнопку '''Внутренний телефон офисаТест''' - Внутренний номер, . MeaSoft отправляет запрос на который приходит звонок, при выборе "Позвонить в офис". Рекомендуется в настройках Asterisk сделать этот номер - номером группы менеджеров.*'''Городской телефон офиса''' - Внешний номер телефона офиса. Приложение будет звонить по сотовой сети на этот номер в случае, если не удалось послать запрос и он должен позвонить сначала на соединение с офисом в Asterisk. '''Заполните это поле'''первый телефон, даже если не вы не интегрируете приложение с телефониейпотом, это позволит курьерам совершать звонки в офис из приложения!*'''Префикс курьера''' - Префикспосле поднятия трубки, который будет добавляться к номеру вызывающего абонента.*'''Префикс клиента''' - Префиксидет вызов на второй номер, который будет добавляться к номеру вызываемого абонентаи происходит их коммутация.
Сохраните настройку, и проверьте ее работоспособность, введя 2 телефона, и нажав кнопку "Тест". Система должна отправить запрос на Asterisk, и он должен позвонить сначала на первый телефон, потом, после поднятия трубки, идет вызов на второй номер, и происходит их коммутация. К сожалению, на На этом уровне наша система MeaSoft может "поймать" и отобразить зафиксировать ошибку только ошибки подключения к AMI, т.е. ошибочный адрес в адресе сервера и/или если указан неверный/закрытый порт. В случае неверного указания остальных данных, включая логин и пароль, система "подумает", что все прошло гладко, запрос она сформировала и на сервер отправила. В случае, если все хорошо - вы получите телефонный Если звонок. Если же этого не произошло - удался, проверьте все введенные данные, попробуйте посмотреть посмотрите, что происходит в астериске - команда "Asterisk с помощью команды <code>asterisk -r"</code>.
'''Обратите вниманиеПримечание''': для . Для успешных звонков из мобильного приложения, в карточке курьера должен быть введен номер мобильного телефона в соответствующее поле!.
При осуществлении вызова сервер приложения посылает на Asterisk AMI-запрос вида:
Action: Logoff
$CALL-FROM-NUMBER и $CALL-TO-NUMBER нормируются, и приводятся к международному формату +7ХХХХХХХХХХ (для России и Казахстана). Для других стран, возможно, тестирование не проводилось, в случае проблем - обращайтесь, будем изучать форматирование номеров в конкретной стране.
Как Вы уже заметили, данная настройка Настройка подразумевает наличие глубоких знаний в области администрирования asterisk-сервераAsterisk, поэтому, убедительная просьба: если Вы вы ими не обладаете, прежде чем звонить нам и просить помощи, обратитесь к специалисту, поддерживающему вашу телефонию, покажите ему данное это руководство. С очень большой вероятностью ему все будет понятно, и он все настроит за 30 минут. Наша служба технической поддержки не обладает достаточной квалификацией в данной области, и, скорее всего, мы не сможем оказать вам поддержку в этом вопросе.
== Интеграция системы с телефонным сервером ==
Интеграция офисной системы с Asterisk происходит аналогично курьерской (см. выше) с той разницей, что запросы на астериск Asterisk идут не с единого сервера, а непосредственно с пользовательских рабочих мест, поэтому файервол на сервере телефонии нужно настраивать соответственно.
Параметры подключения нужно вводить в разделе "'''Справочники" -''' > "'''Переменные" -''' > "'''Подключения" ''' -> "'''Asterisk"'''.
Так же обязательно нужно в В карточках пользователей "'''Настройка" - "''' > '''Пользователи" ввести ''' введите внутренние номера абонентов. У пользователя может быть несколько номеров, перечисленных через запятую. При нажатии кнопки "на кнопку '''Позвонить", ''' программа будет соединять первый телефон из списка. При входящих звонках - будет показывать сообщение при звонке на любой из номеров в списке.
== Обратные запросы от Asterisk ==
Иногда возникает необходимость Если серверу телефонии нужно получить данные из БД при входящем звонке. Для этого , он напрямую подключается к MySQL, база данных courier.  Приведем наиболее популярные задачи и их решения:
*Звонит получатель, нужно его соединить с курьером, у которого находится его заказ. Такое Это особенно актуально, если мобильное приложение курьера звонит через офисную телефонию, у получателя определяется номер телефона офиса, и он перезванивает. Запрос ниже выдает сразу номер телефона курьера, с которым нужно соединить.
SELECT k.code, k.name, k.`phonem`, k.`phonek`
AND c.VALUE='79161234567' /*Вот тут нормированный телефон звонящего ИМЕННО в таком формате*/
*Звонит курьер, нужно его соединить с менеджером. Запрос вернет внутренний номер менеджера курьера:
SELECT k.code, k.name, u.extPhone AS managerext
AND c.VALUE='79161234567' /*Вот тут нормированный телефон звонящего ИМЕННО в таком формате*/
*Звонит клиент, нужно его соединить с менеджером. Запрос вернет внутренний номер менеджера клиента, а так же также статус клиента. Запрос очень упрощен. По-хорошему надо в первую очередь смотреть контакты , не столько привязанные к клиентам, сколько к их контактным лицам (таблица fio, код 39).
SELECT k.code, k.company, u.extPhone AS managerext, c.State
AND c.VALUE='79161234567' /*Вот тут нормированный телефон звонящего ИМЕННО в таком формате*/
* Определить просто отправление из тех, что в работе. Возвращает данные отправления, заказа и клиента:
SELECT *
AND c.VALUE='79161234567' /*Вот тут нормированный телефон звонящего ИМЕННО в таком формате*/
Конечно, при желании можно все это объединить в один запрос, и гораздо быстрее за одно действие получить информацию о том, кто это звонит, и что с ним надо делать. Здесь приведены только шаблонные запросы. В общих словах - : таблица contacts содержит все индексированными контактные данные из всех большинства таблиц системы (ну, из большинства). И все обращения за поиском по телефону должны заходить именно с нее. Коды таблиц для поля SourceCodeType можно посмотреть в таблице schema.table_list.
== Записи разговоров ==
В разных конфигурациях Астериска Asteriks по-разному организуется хранение записей разговоров, поэтому для того, чтобы их прикреплять к звонкам в системе , необходима настройка "по месту"«по месту». Нужно, чтобы ваш администратор телефонного сервера предоставил FTP-доступ к хранилищу записей, и наши специалисты настроят модуль автоматизации, чтобы он привязывал ссылки на файлы на сервере к звонкам в системе. == Устранение неполадок ==Если при попытке совершения исходящего звонка из системы появляется ошибка «Ошибка соединения с сервером телефонии», проверьте доступность порта, указанного в настройках телефонии, с помощью стандартного компонента Windows «Клиент Telnet». Если через «Клиент Telnet» не удается подключиться к порту, обратитесь к системному администратору, отвечающему за телефонию, чтобы он проверил настройки прав доступа к указанному порту.

Навигация