SIP - Messaging
Es gibt zwei Arten von SIP-Nachrichten: requests und responses.
Die Eröffnungszeile einer Anforderung enthält eine Methode, die die Anforderung definiert, und einen Anforderungs-URI, der definiert, wohin die Anforderung gesendet werden soll.
In ähnlicher Weise enthält die Eröffnungszeile einer Antwort einen Antwortcode.
Anforderungsmethoden
SIP requestssind die Codes, die zum Herstellen einer Kommunikation verwendet werden. Um sie zu ergänzen, gibt esSIP responses Dies zeigt im Allgemeinen an, ob eine Anforderung erfolgreich war oder fehlgeschlagen ist.
Diese als METHODEN bezeichneten SIP-Anforderungen machen SIP-Nachrichten funktionsfähig.
METHODEN können als SIP-Anforderungen betrachtet werden, da sie eine bestimmte Aktion anfordern, die von einem anderen Benutzeragenten oder Server ausgeführt werden soll.
METHODEN werden in zwei Typen unterschieden -
Kernmethoden
Erweiterungsmethoden
Kernmethoden
Es gibt sechs Kernmethoden, wie unten diskutiert.
EINLADEN
INVITE wird verwendet, um eine Sitzung mit einem Benutzeragenten zu initiieren. Mit anderen Worten wird eine INVITE-Methode verwendet, um eine Mediensitzung zwischen den Benutzeragenten einzurichten.
INVITE kann die Medieninformationen des Anrufers im Nachrichtentext enthalten.
Eine Sitzung gilt als eingerichtet, wenn eine EINLADUNG eine Erfolgsantwort (2xx) erhalten hat oder eine Bestätigung gesendet wurde.
Eine erfolgreiche INVITE-Anfrage erstellt a dialog zwischen den beiden Benutzeragenten, der fortgesetzt wird, bis ein BYE gesendet wird, um die Sitzung zu beenden.
Eine EINLADUNG, die innerhalb eines festgelegten Dialogfelds gesendet wird, wird als bezeichnet re-INVITE.
Mit Re-INVITE können Sie die Sitzungseigenschaften ändern oder den Status eines Dialogfelds aktualisieren.
EINLADEN Beispiel
Der folgende Code zeigt, wie INVITE verwendet wird.
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9
Max-Forwards: 70
From: Alice<sips:[email protected]>;tag = 1234567
To: Bob<sips:[email protected]>
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sips:[email protected]>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v = 0
o = Alice 2890844526 2890844526 IN IP4 client.ANC.com
s = Session SDP
c = IN IP4 client.ANC.com
t = 3034423619 0
m = audio 49170 RTP/AVP 0
a = rtpmap:0 PCMU/8000
TSCHÜSS
BYE ist die Methode zum Beenden einer eingerichteten Sitzung. Dies ist eine SIP-Anfrage, die entweder vom Anrufer oder vom Angerufenen gesendet werden kann, um eine Sitzung zu beenden.
Es kann nicht von einem Proxyserver gesendet werden.
Die BYE-Anforderung leitet normalerweise End-to-End-Routen unter Umgehung des Proxyservers weiter.
BYE kann nicht an eine ausstehende EINLADUNG oder eine nicht eingerichtete Sitzung gesendet werden.
REGISTRIEREN
Die REGISTER-Anforderung führt die Registrierung eines Benutzeragenten durch. Diese Anfrage wird von einem Benutzeragenten an einen Registrar-Server gesendet.
Die REGISTER-Anforderung kann weitergeleitet oder weitergeleitet werden, bis sie einen autorisierenden Registrar der angegebenen Domain erreicht.
Es trägt die AOR (Address of Record) in der To Header des Benutzers, der registriert wird.
Die REGISTER-Anforderung enthält den Zeitraum (3600 Sekunden).
Ein Benutzeragent kann eine REGISTER-Anforderung im Namen eines anderen Benutzeragenten senden. Dies ist bekannt alsthird-party registration. Hier dasFrom Das Tag enthält die URI der Partei, die die Registrierung im Namen der in der To Header.
STORNIEREN
CANCEL wird verwendet, um eine nicht eingerichtete Sitzung zu beenden. Benutzeragenten verwenden diese Anforderung, um einen ausstehenden Anrufversuch abzubrechen, der zuvor eingeleitet wurde.
Es kann entweder von einem Benutzeragenten oder einem Proxyserver gesendet werden.
CANCEL ist ein hop by hop Anforderung, dh sie durchläuft die Elemente zwischen dem Benutzeragenten und empfängt die Antwort, die vom nächsten statusbehafteten Element generiert wird.
ACK
ACK wird verwendet, um die endgültigen Antworten auf eine INVITE-Methode zu bestätigen. Ein ACK geht immer in Richtung INVITE.ACK kann SDP-Body (Medieneigenschaften) enthalten, wenn es in INVITE nicht verfügbar ist.
ACK darf nicht zum Ändern der Medienbeschreibung verwendet werden, die bereits in der ersten EINLADUNG gesendet wurde.
Ein Stateful-Proxy, der eine ACK empfängt, muss bestimmen, ob die ACK stromabwärts an einen anderen Proxy oder Benutzeragenten weitergeleitet werden soll.
Bei 2xx-Antworten ist ACK Ende-zu-Ende, bei allen anderen endgültigen Antworten funktioniert es jedoch Hop-by-Hop, wenn zustandsbehaftete Proxys beteiligt sind.
OPTIONEN
Die OPTIONS-Methode wird verwendet, um einen Benutzeragenten oder einen Proxyserver nach seinen Funktionen abzufragen und seine aktuelle Verfügbarkeit zu ermitteln. In der Antwort auf eine Anforderung werden die Funktionen des Benutzeragenten oder Servers aufgeführt. Ein Proxy generiert niemals eine OPTIONS-Anforderung.
Erweiterungsmethoden
Abonnieren
ABONNIEREN wird von Benutzeragenten verwendet, um ein Abonnement einzurichten, um eine Benachrichtigung über ein bestimmtes Ereignis zu erhalten.
Es enthält eine Expires Header-Feld, das die Dauer eines Abonnements angibt.
Nach Ablauf des Zeitraums wird das Abonnement automatisch beendet.
Das Abonnement stellt einen Dialog zwischen den Benutzeragenten her.
Sie können das Abonnement erneut abonnieren, indem Sie vor Ablauf der Frist im Dialogfeld ein weiteres ABONNIEREN senden.
Für ein Abonnement des Benutzers wird ein 200 OK erhalten.
Benutzer können sich abmelden, indem sie eine andere SUBSCRIBE-Methode mit dem Expires-Wert 0 (Null) senden.
BENACHRICHTIGEN
NOTIFY wird von Benutzeragenten verwendet, um das Auftreten eines bestimmten Ereignisses abzurufen. Normalerweise wird ein NOTIFY innerhalb eines Dialogfelds ausgelöst, wenn zwischen dem Abonnenten und dem Notifier ein Abonnement besteht.
Jeder NOTIFY erhält eine Antwort von 200 OK, wenn er vom Notifier empfangen wird.
NOTIFY enthalten eine Event Header-Feld, das das Ereignis angibt, und a subscriptionstate Header-Feld, das den aktuellen Status des Abonnements angibt.
Eine Benachrichtigung wird immer zu Beginn und nach Beendigung eines Abonnements gesendet.
VERÖFFENTLICHEN
PUBLISH wird von einem Benutzeragenten verwendet, um Ereignisstatusinformationen an einen Server zu senden.
PUBLISH ist meistens nützlich, wenn es mehrere Quellen für Ereignisinformationen gibt.
Eine PUBLISH-Anforderung ähnelt einer NOTIFY-Anforderung, wird jedoch nicht in einem Dialogfeld gesendet.
Eine PUBLISH-Anfrage muss eine enthalten Expires Header-Feld und a Min-Expires Header-Feld.
VERWEISEN
REFER wird von einem Benutzeragenten verwendet, um einen anderen Benutzeragenten auf den Zugriff auf einen URI für das Dialogfeld zu verweisen.
REFER muss a enthalten Refer-ToHeader. Dies ist ein obligatorischer Header für REFER.
REFER kann innerhalb oder außerhalb eines Dialogfelds gesendet werden.
EIN 202 Accepted löst eine REFER-Anforderung aus, die angibt, dass ein anderer Benutzeragent die Referenz akzeptiert hat.
DIE INFO
INFO wird von einem Benutzeragenten verwendet, um Anrufsignalisierungsinformationen an einen anderen Benutzeragenten zu senden, mit dem er eine Mediensitzung eingerichtet hat.
Dies ist eine End-to-End-Anfrage.
Ein Proxy leitet immer eine INFO-Anfrage weiter.
AKTUALISIEREN
UPDATE wird verwendet, um den Status einer Sitzung zu ändern, wenn keine Sitzung eingerichtet wurde. Der Benutzer kann den Codec mit UPDATE ändern.
Wenn eine Sitzung eingerichtet ist, wird eine erneute Einladung verwendet, um die Sitzung zu ändern / zu aktualisieren.
PRACK
PRACK wird verwendet, um den Empfang einer zuverlässigen Übertragung der vorläufigen Antwort (1XX) zu bestätigen.
Im Allgemeinen wird PRACK von einem Client generiert, wenn er eine vorläufige Antwort erhält, die eine enthält RSeq zuverlässige Sequenznummer und a supported:100rel Header.
PRACK enthält (RSeq + CSeq) Wert in der rack Header.
Die PRACK-Methode gilt für alle vorläufigen Antworten mit Ausnahme der 100 Trying-Antwort, die niemals zuverlässig transportiert wird.
Ein PRACK kann einen Nachrichtentext enthalten. Es kann für den Austausch von Angeboten und Antworten verwendet werden.
BOTSCHAFT
Es wird verwendet, um eine Sofortnachricht über SIP zu senden. Ein IM besteht normalerweise aus Kurznachrichten, die von Teilnehmern, die an einer Textkonversation beteiligt sind, in Echtzeit ausgetauscht werden.
NACHRICHT kann innerhalb eines Dialogs oder außerhalb eines Dialogs gesendet werden.
Der Inhalt einer NACHRICHT wird im Nachrichtentext als MIME Anhang.
EIN 200 OK Normalerweise wird eine Antwort empfangen, um anzuzeigen, dass die Nachricht an ihrem Ziel zugestellt wurde.