Musimy opracować bramkę głosową SIP dla WhatsApp, aby wysyłać niektóre połączenia z naszej centrali telefonicznej.
Bramka powinna mieć możliwość przekazywania przychodzących połączeń głosowych przez SIP i przekierowywania ich przez WhatsApp w celu zakończenia połączenia na numer WhatsApp docelowego punktu.
- Dostarczymy numer telefonu/numerów telefonów oraz obrazy do konta WhatsApp.
- Projekt powinien być wielokanałowy. Chciałbym mieć możliwość uruchamiania kilku połączeń (możesz uruchomić kilka kont WhatsApp z wieloma numerami telefonów lub użyć tylko jednego konta WhatsApp z wieloma połączeniami.)
- Platforma rozwoju/system operacyjny nie ma znaczenia. możesz używać Asterix, Freeswitch, FreePBX itd...
- Implementacja powinna zwracać poprawne kody błędów połączenia do serwera SIP, na przykład CALL SUCCESS (200 OK), BUSY (486 Busy Here), UNAVAILABLE (503 Service Unavailable) itd., aby spróbować innych rund na innym przełączniku SIP.
Przepływ funkcjonalny
1) Połączenia z centrali/sip-bramki będą przekierowywane do bramki WhatsApp.
2) Bramki WhatsApp przekształcają SIP w protokół WhatsApp.
3) W razie potrzeby w bramce WhatsApp są wielokanałowe konta WhatsApp, a twój kod wybiera dowolne z dostępnych kont do wykonania połączenia. Możesz uruchomić kilka kont/kanalów WhatsApp z wieloma numerami telefonów w bramce WhatsApp lub użyć tylko jednego konta/kanalu WhatsApp (jeśli można wykonywać kilka połączeń z jednego konta) do kilku połączeń jednocześnie.
4) jeśli wszystkie konta WhatsApp są zajęte, zwróć kod błędu „600 Busy Everywhere” lub „503 Service Unavailable”.
5) jeśli numer nie jest używany w WhatsApp, jeśli dla dzwonionego numeru nie ma powiązanego konta WhatsApp. następnie zwraca błąd „503 Usługa niedostępna”, a my przekierowujemy się do innych bramek.
6) Numer dzwoniony, podany w nagłówku połączenia, zostanie sprawdzony przez bramkę WhatsApp. Jeśli z tym numerem związane jest konto WhatsApp i numer jest w sieci, połączenie w WhatsApp zostanie zakończone.
7) Jeśli połączenie zostanie pomyślnie zakończone lub dzwoniony numer nie odpowiada, połączenie zostanie rozłączone.
System powinien zwrócić odpowiedni kod błędu sip, jeśli połączenie jest zajęte lub nie ma odpowiedzi.
9) kod źródłowy powinien być dostarczony nam z wyjaśnieniami do celów debugowania w przyszłości.