SIP - rozwidlenie
Czasami serwer proxy przekazuje pojedyncze wywołanie SIP do wielu punktów końcowych SIP. Ten proces jest znany jako rozwidlanie. Tutaj jedno połączenie może dzwonić do wielu punktów końcowych w tym samym czasie.
Dzięki rozwidleniu SIP telefon stacjonarny może dzwonić w tym samym czasie, co telefon programowy lub telefon SIP w telefonie komórkowym, umożliwiając łatwe odbieranie połączenia z dowolnego urządzenia.
Ogólnie rzecz biorąc, w biurze, jeśli szef nie może odebrać połączenia lub odejść, rozwidlenie SIP pozwala sekretarce na odbieranie połączeń z jego numeru wewnętrznego.
Rozwidlenie będzie możliwe, jeśli dostępny jest stanowy serwer proxy, który musi wykonać i odpowiedzieć z wielu otrzymanych.
Mamy dwa rodzaje rozwidlenia -
- Rozwidlenie równoległe
- Sekwencyjne rozwidlenie
Rozwidlenie równoległe
W tym scenariuszu serwer proxy rozwidli INVITE do, powiedzmy, dwóch urządzeń (UA2, UA3) jednocześnie. Oba urządzenia wygenerują 180 dzwonków, a ktokolwiek odbierze połączenie, wygeneruje 200 OK. Odpowiedź (załóżmy, że UA2), która jako pierwsza dotrze do Zleceniodawcy, ustanowi sesję z UA2. W przypadku drugiej odpowiedzi zostanie wywołane ANULOWANIE.
Jeśli twórca otrzyma obie odpowiedzi jednocześnie, to w oparciu o wartość q, prześle odpowiedź.
Sekwencyjne rozwidlenie
W tym scenariuszu serwer proxy rozwidli INVITE do jednego urządzenia (UA2). Jeśli UA2 jest w tym czasie niedostępny lub zajęty, serwer proxy rozwidli go na inne urządzenie (UA3).
Oddział - identyfikator i tag
Identyfikatory oddziałów pomagają serwerom proxy dopasować odpowiedzi do żądań rozwidlonych. Bez identyfikatorów gałęzi serwer proxy nie byłby w stanie zrozumieć odpowiedzi rozwidlonej. Branch-id będzie dostępny w nagłówku Via.
Tagi są używane przez UAC do rozróżniania wielu odpowiedzi końcowych z różnych UAS. UAS nie może rozstrzygnąć, czy żądanie zostało rozgałęzione, czy nie. Dlatego musi dodać tag.
Serwery proxy mogą również dodawać tagi, jeśli generują ostateczną odpowiedź, nigdy nie wstawiają tagów do żądań lub odpowiedzi, które przekazują.
Może się zdarzyć, że pojedyncze żądanie może być również rozwidlone przez wiele serwerów proxy. Tak więc proxy, które utworzyłoby fork, powinno dodać własne unikalne identyfikatory do utworzonych gałęzi.
Zadzwoń do nogi i Call ID
Noga połączenia odnosi się do relacji sygnalizacyjnej jeden do jednego między dwoma agentami użytkownika. Call ID to unikalny identyfikator przenoszony w wiadomości SIP, który odnosi się do połączenia. Połączenie to zbiór odnóg połączenia.
UAC rozpoczyna się od wysłania ZAPROSZENIA. Ze względu na rozwidlenie może otrzymać wiele 200 OK od różnych UA. Każdy odpowiada innemu etapowi rozmowy w ramach tego samego połączenia.
Zatem wywołanie jest grupą odnóg połączenia. Etap wywołania odnosi się do połączenia typu koniec-koniec między UA.
Przestrzenie CSeq w dwóch kierunkach odgałęzienia wywołania są niezależne. W jednym kierunku numer kolejny jest zwiększany dla każdej transakcji.
Poczta głosowa
Poczta głosowa jest obecnie bardzo popularna wśród użytkowników korporacyjnych. To aplikacja telefoniczna. Pojawia się obraz, gdy rozmówca jest niedostępny lub nie może odebrać połączenia, centrala poinformuje dzwoniącego o pozostawieniu wiadomości głosowej.
Agent użytkownika otrzyma odpowiedź 3xx lub przekieruje do serwera poczty głosowej, jeśli numer abonenta wywoływanego jest nieosiągalny. Potrzebne jest jednak jakieś rozszerzenie SIP, aby wskazać systemowi poczty głosowej, której skrzynki pocztowej użyć - to znaczy, jakiego powitania odtworzyć i gdzie przechowywać nagraną wiadomość. Można to osiągnąć na dwa sposoby -
Używając rozszerzenia pola nagłówka SIP
Wykorzystując Request-URI do sygnalizowania tych informacji
Załóżmy dla użytkownika sip:[email protected] ma system poczty głosowej pod adresem sip: voicemail.tutorialspoint.com, który zapewnia pocztę głosową, identyfikator URI żądania INVITE, gdy jest przekazywany do serwera poczty głosowej, mógłby wyglądać następująco -
sip:voicemail.tutorialspoint.com;target = sip:[email protected];cause = 486
Na poniższej ilustracji pokazano, w jaki sposób identyfikator żądania-URI przenosi identyfikator skrzynki pocztowej i przyczynę (tutaj 486).