Сделать голосовую телефонию с функцией IVR ( телефонист есть)
Общая архитектура
Термины и сокращения
ОСС: оператор сотовой связиКомпоненты
GSM-шлюз: аппаратное устройство для доступа к функциям SIM-картIP-АТС: программная АТС для исходящих и входящих звонков через SIM-карты и IVR
User API: кастомный API для внешних сервисов для выполнения высокоуровневых запросов для управления звонками, IVR-меню и отправкой СМС через SIM-карты
Примеры похожих систем
Logging inhttps://zadarma.com/ru/blog/ivr-webhook/
Требования
GSM-шлюз
- количество портов для SIM-карт: 8 шт
- доступ по сети
- возможность горизонтального масштабирования с помощью подключения дополнительных параллельных GSM-шлюзов
- работа с SIM-картами всех федеральных ОСС:
- МТС
- Билайн
- Мегафон
- Теле2
- Тиньков
- МТС
- управление балансами минут / СМС
- ведение статистики по СМС:
- получатель
- дата отправки
- текст
- стоимость
- статус доставки
- время доставки
- получатель
IP-АТС
- возможность горизонтального масштабирования с помощью подключения дополнительных параллельных GSM-шлюзов
- настройка авто-дайлера (автоматических перезвонов) на номера в случае технического неконтакта
- управление аудио-роликами для проигрывания в IVR-меню
- ведение статистики по звонкам в разрезе по SIM-картам:
- статус дозвона
- продолжительность разговора
- название ролика IVR
- нажатие клавиш IVR
- статус дозвона
User API
Общие требования
- по всем входящим запросам нужно определять ОСС по номеру телефона с помощью MNP API
- по всем входящим запросам нужно определять таймзону абонента с помощью API
- обмен данными в JSON-формате
- языки и Web-фреймворки для разработки API:
- Python + Flask / Falcon / Django
- Java + Spring
- Python + Flask / Falcon / Django
- логирование всех входящих запросов и базовых операций с телефонией
- аутентификация по API-ключу
VoIP
- оптимизация расходов:
- выполнение исходящих вызовов по SIM-карте того же ОСС, что и получатель, в рамках предоплаченных пакетов
- выполнение исходящих вызовов по SIM-карте того же ОСС, что и получатель, в рамках предоплаченных пакетов
- планирование звонков с учетом расписания и таймзоны клиента
SMS
- оптимизация расходов:
- отправка СМС с SIM-карты того же ОСС, что и получатель, в рамках предоплаченного пакета
- отправка СМС с SIM-карты того же ОСС, что и получатель, в рамках предоплаченного пакета
Спецификация методов
VoIP
REST: /call (POST)
Запрос
- phone: номер абонента в формате 79XXXXXXXXX
- record_id: ID аудиозаписи для проигрыша из IP-АТС
- webhook_url: URL, на который будет отправляться информация о звонке при изменении его статуса
- ivrs: массив пунктов IVR-меню
- digit: кнопка ответа IVR
- record_id: ID аудиозаписи для проигрыша из IP-АТС
- blacklist: занести телефон в ЧС
- webhook_parameters: параметры из этого объекта будут переданы в ответном запросе на webhook_url
- webhook_url: URL, на который будет отправлен статус реагирования абонента на данное IVR-меню. В качестве параметрах будут переданы:
- параметры из webhook_parameters
- phone: телефон абонента, выбравшего пункт меню
- answer: кнопка ответа IVR
- параметры из webhook_parameters
- digit: кнопка ответа IVR
Ответ
SMS
send_sms
Запрос
- phone: номер абонента в формате 79XXXXXXXXX
- text: текст сообщения