Нам нужно разработать голосовой шлюз SIP для WhatsApp, чтобы отправлять некоторые звонки с нашей АТС.
Шлюз должен иметь возможность передавать входящие голосовые вызовы через SIP и перенаправлять их через WhatsApp для завершения вызова на номер WhatsApp пункта назначения.
- Мы предоставим номер телефона/номера телефонов и изображения для учетной записи WhatsApp.
- Проект должен быть многоканальным. Я хотел бы иметь возможность запускать несколько вызовов (вы можете запустить несколько учетных записей WhatsApp с несколькими номерами телефонов или использовать только одну учетную запись WhatsApp с несколькими вызовами.)
- Платформа разработки/операционная система не имеет значения. вы можете использовать Asterix, Freeswitch, FreePBX против...
- Реализация должна возвращать правильные коды ошибок вызова на серверную часть SIP, например CALL SUCCESS (200 OK), BUSY (486 Busy Here), UNAVAILABLE (503 Service Unavailable) и т. д., чтобы попробовать другие раунды на другом SIP-коммутаторе. .
Функциональный поток
1) Звонки с АТС/sip-шлюза будут перенаправляться на шлюз WhatsApp.
2) Шлюз WhatsApp преобразует SIP в протокол WhatsApp.
3) Если необходимо, в шлюзе WhatsApp есть многоканальные учетные записи WhatsApp, и ваш код выбирает любую из доступных учетных записей для совершения звонка. Вы можете запустить несколько учетных записей/каналов WhatsApp с несколькими телефонными номерами в шлюзе WhatsApp или использовать только одну учетную запись/канал WhatsApp (если можно совершать несколько вызовов из одной учетной записи) для нескольких вызовов одновременно. .
4) если все учетные записи WhatsApp заняты, отправьте обратно код ошибки «600 Busy Everywhere» или «503 Service Unavailable».
5) если номер не используется в WhatsApp, если для вызываемого номера нет привязанной учетной записи WhatsApp. затем он отправляет ошибку «503 Служба недоступна», и мы перенаправляемся на другие шлюзы.
6) Вызываемый номер, указанный в заголовке вызова, будет проверен шлюзом WhatsApp. Если с этим номером связана учетная запись WhatsApp и номер находится в сети, вызов в WhatsApp будет завершен.
7) Если звонок успешно завершен или вызываемый номер не отвечает, то звонок будет разъединен.
Система должна вернуть соответствующий код ошибки sip, если вызов занят или нет ответа.
9) исходный код должен быть предоставлен нам с пояснениями для целей отладки в будущем.