Интеграция VoIP / архитектура для веб-приложения (Rails) - PullRequest
0 голосов
/ 01 мая 2018

Я хочу понять, как я могу интегрировать VoIP для моего WEB-приложения, которое в моем случае было бы приложением Rails.

Чего я не хочу достичь, так это отправлять события сокета во внешний интерфейс для каждого состояния вызова:

  • звонок
  • звонок начался
  • звонок окончен

Внедрение уже выполнено, но я не уверен, правильная ли архитектура, и информация, которую я до сих пор находил в Интернете, плохая.

Не думаю, что имеет смысл объяснять, как это делается в настоящее время (но при необходимости я могу предоставить), но начиная с ruby-asterisk gem, который можно использовать для получения данных о добавочном номере, что было бы правильной архитектурой для того, чтобы непрерывно извлекать события из состояний вызова и отправлять их в виде событий сокета на WEB?

Как определить, закончился ли звонок?

Что касается общей реализации, видите ли вы какое-либо использование redis для сохранения предыдущих состояний вызова, а затем для определения новых состояний?

1 Ответ

0 голосов
/ 01 мая 2018

Основная проблема: звездочка АТС

Опять же: это небольшая офисная АТС, а не универсальная платформа с API.

Так что правильной архитектурой для высокой нагрузки является централизованный сервер сокетов hi-perfomance, который поддерживает аутентификацию, ответ на ваши вызовы API (если есть), уведомление о событии и т. Д. И т. Д. После этого вы используете план набора номеров AMI +, чтобы уведомить сервер о действиях на PBX.

Ваше веб-приложение должно подключаться к серверу Thoose, а не напрямую к Asterisk. Только ОДНО соединение со звездочкой рекомендуется из соображений эффективности.

Если у вас низкая нагрузка - не имеет значения, что вы делаете, она тоже будет нормально работать.

Звездочка не поддерживает redis, поэтому использовать ее нелегко. Используйте CDR для конечного события.

...