- PVSM.RU - https://www.pvsm.ru -
Данная статья посвящена вопросу интеграции CRM-систем с серверами телефонии на базе Asterisk.
В статье не рассматриваются вопросы, связанные с настройкой сервера Asterisk или нюансами работы CRM-систем, рассматриваются лишь общие варианты организации взаимодействия со всеми их плюсами и минусами.
Как компании «доходят» до разработки CRM «под себя» и собственной телефонии — вопрос скорее политический и бизнесовый, чем технический, поэтому на вопросы «зачем» ответов дать не смогу. Но факт остаётся фактом — в один прекрасный день нам понадобилось решение, способное обеспечить взаимодействие телефонной части с CRM.
Исходные данные:
Что нужно было сделать:
Первое, что пришло в голову — реализация «звонилки» прямо в браузере (мы же помним, что взаимодействие с CRM осуществляется через веб-интерфейс). А тут как раз спецификация WebRTC подоспела с плагинами для популярных браузеров.
Идея, несомненно, хорошая, но для бизнеса не подходящая в силу того, что при подвисании / закрытии браузера или обновлении страницы мы теряем коннект, звонок и клиента.
По тем же причинам не был выбран ни один из «классических» SIP веб-клиентов.
Идея с отдельным SIP-телефоном обладает очевидным для бизнеса преимуществом — практически в любой непредвиденной ситуации мы сохраняем звонок. Возникают сложности с обеспечением взаимодействия с CRM, однако это решаемая задача.
Осталось научить сипфон звонить из интерфейса оператора.
Скажите, как заставить сипфон на компьютере сделать исходящий звонок из браузера? Никак? Совершенно верно.
Именно поэтому мы стали посылать команду астериску через AGI-интерфейс, по которой он организовывал исходящий вызов до абонента, а затем подключал к каналу оператора. Так для сипфона исходящий звонок стал входящим с командой автоответа от сервера телефонии.
Всё стало хорошо, оператор, начинал работу с некой сущностью CRM-системы (для простоты назовём её «Звонок»), далее вручную или автоматически отправлялась команда инициации «исходящего» звонка через agi, а по завершению звонка asterisk присылал нам информацию о звонке (вариантов много, начиная от GET-запроса и заканчивая WebSocket).
Этап внедрения исходящей телефонии в России прошел не без шероховатостей, но довольно успешно, после чего было необходимо начинать работу со входящими звонками.
Осталось научить оператора принимать входящий звонок из интерфейса, а не через сипфон.
Тут уже пришлось завязаться на работу Asterisk непосредственно с браузером, по крайней мере до успешного принятия звонка, в результате чего на сервере телефонии появился еще и Web Socket сервер.
Таким образом информация о поступлении входящего звонка к оператору поступала непосредственно в браузер, а остальные команды шли в Asterisk через сервер CRM и затем через AGI интерфейс.
Решение организовать управление телефонией через сервер CRM было связано со следующими требованиями:
Вышеописанная схема достаточно хорошо работала в России, однако когда КЦ в Эстонии стал осуществлять звонки через CRM-систему мы обнаружили большое количество проблем со звонками, вызванных не корректной работой AGI. Пакеты от Эстонского Asterisk не доходили до нашего сервера CRM, в результате чего мы не получали никакой информации о выполнении команды, не знали дошла ли команда вообще.
Через неделю стало очевидно, что ситуация не улучшится, повлиять на качество связи между Российским и Эстонским серверами мы не могли, в результате чего было принято волевое решение о полном переходе на управление телефонией через Web Socket.
Еще через неделю мы получили работающую схему, где у каждого Asterisk был свой Web Socket сервер, с которым браузер оператора связывался в пределах одной локальной сети. Сервер CRM как был, так и остался в РФ.
Таким образом связь интерфейса оператора с сервером телефонии происходит в пределах одной локальной сети без задержек и все команды управления телефонией и события отправляются и приходят обратно в браузер оператора.
Взаимодействие CRM и телефонии непосредственно происходит через callback'и от Asterisk и опосредованно через асинхронные запросы из операторской панели.
P.S. К сожалению, чукча не очень художник и не обладает достаточным количеством свободного времени, чтобы нарисовать общие схемы взаимодействия прямо сейчас, но обещает сделать это, если читателей заинтересуют затронутые в статье вопросы.
Автор: maxru
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/telefoniya/55325
Ссылки в тексте:
[1] Источник: http://habrahabr.ru/post/213071/
Нажмите здесь для печати.