Sign inGet Started

Wykonywanie połączeń

Aby nawiązać połączenie, Twoja centrala PBX wysyła żądanie INVITE protokołu SIP do domeny SIP łącza. Bird sprawdza żądanie, kieruje je do operatora i przekazuje dźwięk. Ta strona opisuje wymagania wstępne, pola żądania, uwierzytelnianie i koszty.

Aby rozpocząć połączenie z aplikacji przez HTTP, skorzystaj z przewodnika tworzenia połączeń. Ta metoda uruchamia opublikowaną sekwencję Bird po odebraniu połączenia.

Zanim wykonasz połączenie

Konfiguracja łącza SIP opisuje po kolei cały proces konfiguracji łącza dla obu kierunków.

Muszą być spełnione cztery warunki, w dowolnej kolejności, a za trzy z nich odpowiadasz Ty:

  • Łącze, które przyjmuje Twój ruch. Utwórz łącze SIP i włącz połączenia wychodzące. Dodaj zakresy adresów IP swoich urządzeń, dozwolony klucz API lub oba te elementy. Klienty, które nie mogą przechowywać długoterminowego sekretu, mogą używać poświadczenia sesji.
  • Uprawniony identyfikator dzwoniącego. Użyj numeru Bird przypisanego do tego obszaru roboczego albo zarejestruj numer zewnętrzny i przeprowadź jego weryfikację przez połączenie. Weryfikacja nie gwarantuje dostarczenia CLI na całej trasie ani nawiązania połączenia, gdy CLI nie jest numerem pozyskanym za pośrednictwem Bird: zobacz zastrzeżenie dotyczące weryfikacji i dostarczania CLI.
  • Włączony kraj docelowy. Włącz obsługiwane kraje na stronie Destinations.
  • Routing przypisany do obszaru roboczego. Bird konfiguruje go za Ciebie, wybierając operatorów obsługujących poszczególne kierunki. Dopóki routing nie zostanie skonfigurowany, połączenia są odrzucane z błędem routing_not_configured, jedną z przyczyn opisanych w sekcji Odrzucone połączenia.

Czego Bird oczekuje w INVITE

Wyślij żądanie do domeny SIP swojego trunku na jednym z obsługiwanych portów. Bird odczytuje trzy części żądania:

CzęśćJak Bird ją wykorzystuje
Host w Request-URIIdentyfikuje Twój trunk. Musi to być domena SIP trunku, skopiowana w całości ze strony trunku
Część użytkownika w Request-URINumer, z którym nawiązywane jest połączenie. Bird odczytuje kraj tego numeru, aby wybrać operatora i ustalić cenę połączenia. Ustaw To na ten sam numer
FromNumer, którym identyfikujesz się jako dzwoniący. Musi to być uprawniony do tego numer Bird lub zweryfikowany zewnętrzny identyfikator dzwoniącego w tym obszarze roboczym

Zapisuj numery w międzynarodowym formacie E.164, ze znakiem + na początku, po którym następują kod kraju i numer krajowy. Bird akceptuje też ten sam numer z 00 zamiast + lub jako same cyfry zaczynające się od kodu kraju. Bird interpretuje cyfry bez + lub 00 jako numer zaczynający się od kodu kraju, więc numer w formacie krajowym nie zostanie odczytany zgodnie z Twoim zamiarem. Nie dodawaj prefiksu technicznego do numeru, z którym nawiązujesz połączenie.

Poza tym jest to zwykłe połączenie SIP i nie musisz wysyłać żadnego niestandardowego nagłówka.

W SDP zaoferuj G.711, A-law lub µ-law. Wysyłaj tony klawiatury (DTMF) jako zdarzenia telefoniczne RFC 4733. Bird usuwa inne kodeki, takie jak G.729 czy Opus, z oferty wysyłanej do operatora, więc uwzględnij G.711 w każdej ofercie.

Media są przesyłane przez nieszyfrowany RTP. SRTP nie jest obsługiwany. TLS na porcie 5061 szyfruje sygnalizację, a dźwięk pozostaje nieszyfrowany.

Uwierzytelnianie każdego połączenia

Przebieg obsługi połączenia zależy od sposobu dopuszczania ruchu do trunku:

  • Tylko lista dozwolonych adresów IP. Jedno żądanie. Bird sprawdza, czy adres źródłowy znajduje się na liście, i kieruje połączenie dalej, bez żądania uwierzytelnienia.
  • Tylko dozwolone klucze API. Bird najpierw żąda hasła dla połączenia w ramach wymiany komunikatów SIP Digest.
  • Obie metody. Połączenia korzystające z dozwolonego klucza API muszą też pochodzić z adresu na liście. Włączone poświadczenia sesji zapewniają osobną ścieżkę dostępu opisaną poniżej.
  • Włączone poświadczenia sesji. Bird żąda uwierzytelnienia połączenia niezależnie od jego źródła, nawet z adresu spoza listy dozwolonych adresów, a odpowiedź wykorzystuje poświadczenie wydane kilka minut wcześniej. Urządzenia już dopuszczone przez listę dozwolonych adresów na trunku bez dozwolonych kluczy nadal łączą się bez żądania uwierzytelnienia.

Gdy na trunku są dozwolone klucze API, Twój system telefoniczny odpowiada skrótem sekretu klucza API, a nie samym sekretem, na czym polega uwierzytelnianie SIP Digest:

  1. Twoja centrala PBX wysyła INVITE.
  2. Bird odpowiada komunikatem 407 Proxy Authentication Required z jednym wierszem żądania uwierzytelnienia na każdy algorytm oferowany przez trunk, domyślnie SHA-256, a następnie MD5.
  3. Twoja centrala PBX ponownie wysyła INVITE z nagłówkiem Proxy-Authorization obliczonym przy użyciu nazwy użytkownika bird i sekretu klucza API jako hasła.
  4. Bird weryfikuje odpowiedź i kontynuuje kierowanie połączenia.

Nagłówek Proxy-Authorization wysyłany z wyprzedzeniem trafia do Bird przed żądaniem uwierzytelnienia, więc urządzenie musi wybrać algorytm, który oferuje łącze SIP. Przy uwierzytelnianiu kluczem API łącze SIP z listą dozwolonych adresów IP nadal wymaga, aby żądanie pochodziło z adresu na tej liście.

Bird odpowiada na nieudane uzgadnianie uwierzytelnienia w warstwie SIP, więc próba zostaje odrzucona, zanim platforma utworzy rekord połączenia. Jeśli połączeń w ogóle nie ma w dzienniku połączeń, sprawdź dane uwierzytelniające zamiast routingu.

Atestacja połączeń

Połączenia do Stanów Zjednoczonych i Francji mają atestację STIR/SHAKEN. Operatorzy używają tego podpisu przy oznaczaniu połączeń. Bird domyślnie stosuje poziom B bez dodatkowej konfiguracji. Skontaktuj się z pomocą techniczną, aby poprosić o poziom A.

Gdy połączenie zostaje odrzucone

Bird sprawdza identyfikator dzwoniącego, miejsce docelowe, limity i saldo portfela przed nawiązaniem połączenia z operatorem. Odrzucenie dociera do systemu telefonicznego jako SIP 503; konkretna przyczyna pozostaje w rekordzie połączenia dostępnym po uwierzytelnieniu. Otwórz połączenie w dzienniku połączeń lub sprawdź odrzucone połączenia, aby poznać poszczególne przyczyny i sposoby ich rozwiązania.

Usuń zapisaną przyczynę przed ponowną próbą. Na przykład calls_per_second_exceeded występuje, dopóki nie zmniejszysz tempa nawiązywania połączeń.

Odpowiedzi na połączenie zarejestrowane przez Bird, w tym 503 przy odrzuceniu z zapisaną przyczyną, zawierają nagłówek X-BIRD-CALL-ID z identyfikatorem Leg ID połączenia (vcl_…). Odczytaj rekord za pomocą GET /v1/voice/legs/{leg_id} lub podaj ten identyfikator pomocy technicznej.

Połączenia alarmowe nie są obsługiwane

Bird Voice nie obsługuje połączeń ze służbami ratunkowymi. Połączenie z numerem 112, 911, 999 lub dowolnym innym numerem alarmowym jest odrzucane na każdym łączu SIP, w każdym kraju. System telefoniczny musi łączyć się ze służbami ratunkowymi inną trasą.

To zachowanie nie zależy od planu, salda ani miejsc docelowych. Skonfiguruj system telefoniczny tak, aby kierował połączenia alarmowe przez usługę, która je obsługuje, na przykład lokalną linię PSTN, bramę w siedzibie firmy lub innego dostawcę. Przetestuj tę trasę. Bird zwraca 503 przy odrzuceniu połączenia alarmowego, co pozwala systemowi telefonicznemu wypróbować inną trasę dostępną w planie wybierania numerów.

Działanie służb ratunkowych zależy od zarejestrowanej lokalizacji dzwoniącego, której Bird nie przechowuje dla łącza SIP. Nie polegaj na trasie Bird w przypadku połączeń alarmowych.

Koszty i rozliczenia

Połączenia głosowe są opłacane z góry z portfela organizacji, podobnie jak w przypadku pozostałych kanałów:

  • Czas podlegający rozliczeniu biegnie od odebrania do zakończenia połączenia, niezależnie od tego, jak długo wcześniej trwało wywoływanie. Rekord połączenia pokazuje go obok Total duration, czyli czasu liczonego od chwili, gdy Bird otrzymał połączenie.
  • Stawka zależy od kraju docelowego. Cennik określa stawkę dla każdego kraju w walucie portfela. Stawka określa minimalny czas podlegający rozliczeniu oraz jednostkę naliczania po upływie tego minimum. Na przykład stawka z minimum jednej minuty i naliczaniem co sześć sekund oznacza, że połączenie trwające 10 sekund jest rozliczane jako jedna minuta.
  • Saldo portfela jest sprawdzane przed skierowaniem połączenia do operatora. Połączenie, na które nie wystarcza środków, jest odrzucane od razu z błędem insufficient_balance, zamiast zostać rozliczone później. Utrzymuj zapas środków lub włącz automatyczne doładowania.
  • Obowiązuje dzienny limit wydatków na połączenia głosowe. Po jego przekroczeniu połączenia są odrzucane z błędem daily_spend_exceeded do rozpoczęcia następnego dnia według UTC. W obszarze roboczym można też ustawić dzienny limit dla każdego kraju docelowego w Voice > Destinations, a połączenie musi mieścić się w obu limitach. Kwota zależy od planu.
  • Koszt pojawia się w rekordzie połączenia po jego wycenie, z pełną precyzją, bez podatku.

Aby sprawdzić opłaty za wszystkie połączenia, skorzystaj z sekcji Zużycie, wydatki i faktury. Eksport CSV Legs zawiera czasy trwania i czas podlegający rozliczeniu, ale nie ma kolumny z kosztem.

Następne kroki

StronaZakres
Dziennik połączeńPrzeglądanie, filtrowanie i eksportowanie rejestrów połączeń
Zdarzenia głosoweOtrzymywanie wyników połączeń przesyłanych do własnych systemów
Metody płatności i portfelDoładowania, doładowania automatyczne i sposób pobierania środków z portfela

Przejdź do dokumentacji, przewodników i przykładów dotyczących tego tematu.