Программа которая звонит по SIP телефонии и понимает ДА/НЕТ

Алексей18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
19.08.2021

Что требуется:

Создать программу под linux которая сможет совершать звонки через SIP телефонию, проигрывать аудио-запись ответившему абоненту и слушать его ответ: "да" или "нет". В зависимости от ответа - проиграть другой аудио-файл и послать определенный http запрос по указанному адресу. Если абонент ответил другое слово, то проиграть другой аудио-файл и слушать опять.

Программа должна быть написана с использованием open-source технологий, без использования сторонних API сервисов Вся обработка должна происходить на локальной машине. Предполагаемый стек: Asterisk, CMUSphinx/Kaldi/tensorflow

Все должно работать в Docker-е.

После оплаты вы должны предоставить исходный код.

Конфигурация программы (yaml файл):

greeting_audio: "" # путь до аудио файла приветствия

repeat_audio: "" # аудио если ответ не понятен

yes_audio: "" # аудио после ответа ДА

no_audio: "" # аудио после ответа НЕТ

yes_post_url: "" # ссылка которая будет вызываться POST запросом при ответе ДА, возможно вставить значения переменных {var1}, 2,3.

no_post_url: "" # ссылка которая будет вызываться POST запросом при ответе НЕТ, возможно вставить значения переменных {var1}, 2,3.

timeout: 60 # таймаут в сек. когда программа завершится если не получено ответа

# дополнительные параметры в заголовке

request_headers:

- "Name1: value1" # пример. доп. заголовка

- "Name2: value2"

# настройки телефонии

sip_host: ""

sip_login: ""

sip_password: ""

sip_port: 5060

Входные параметры:

--config - путь до файла конфигурации yaml

--phone - телефон по которому будет произведен звонок

--var1 --var2 --var3 - переменная которую можно подставить в ссылку которая будет заменять плейсхолдер {var1}...

Коды ошибок:

0 - звонок удался, url вызвался

1 - абонент не отвечает

2 - невозможно дозвониться до номера телефона (неверный)

3 - ошибка телефонии (кончились деньги, неверный пароль и т.д.)

4 - звонок удался, но ошибка вызова url