Aufgaben von SIP
SIP lädt zu bevorstehenden Sitzungen ein. Es etabliert und kontrolliert Multimedia Sitzungen oder Aufrufe. Die Unterstützten Dienste sind:
- Videokonferenzen
- Internet-Telefonie
- Unicast und
- Multicast Sitzungen
SIP unterstützt alle fünf Mittel um Multicast Sitzungen zu eröffnen:
- Ermittlung des Standorts des Empfängers
- Ermittlung der Medien, die benutzt werden
- Ermittlung der Bereitschaft des Empfängers
- Etablierung der für den Aufruf benötigten Parameter
- Sorgt für den Transfer und die Beendigung der Sitzung
Der Initiator einer Sitzung muß hierbei nicht notwendiger Weise auch an der Sitzung teilnehmen. Abgesehen von Personen kann SIP auch Programme (resp. Server) zu einer Sitzung einladen, zum Beispiel:
- Media storage devices - um eine Sitzung aufzunehmen
- Video-on-demand-Server, um Videos in eine (video)Konferenz einzuspielen.
- SIP bietet keine Kontrolldienste für eine Sitzung an
- SIP allokiert keine Multicast Adressen (dies wird dem SAP überlassen)
- SIP reserviert keine Ressourcen, kann dem eingeladenen System aber die notwendigen Informationen liefern, um dies zu tun
- SIP kann Benutzer zu einer Sitzung mit oder ohne Platzreservierung einladen
Funktionsweise des SIP
SIP initiiert eine Sitzung, kann aber auch dazu einladen. SIP wurde als Teil einer IETF* Multimedia Daten- und Kontrollarchitektur entwickelt.
*IETF = Internet Engineering Task Force, Zusammenschluss von verschiedenen Einzelpersonen, mit dem Zweck, das Internet weiterzuentwickeln.
SIP Adressierung:
- Besteht aus User und Host-Teil
- User ist ein Betriebssystem-Benutzername
- Host ist entweder ein Domainname mit DNS-A Adresse oder eine Numerische (IP)
Netzweradresse.
Beispiel:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
root@[193.175.132.42]
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
Die Einladung:
Eine Erfolgreiche SIP Einladung besteht aus einem INVITE Request und dem dazugehörigen ACK Request des Clients. In dem INVITE Request ist das SDP Paket enthalten. Wenn der angerufene teilnehmen möchte, so wird ein SDP Protokoll zurückgesendet. Wenn der Client die Einladung annimmt sendet er einen ACK Request zurück. Im anderen Fall (Ablehnung der Einladung) wird Client-Seitig ein BYE Request zurückgesandt.
Caller SIP Proxy Callee
| | |
| INVITE | |
|--------------->| |
| 100 Trying | |
|<---------------| |
| INVITE | INVITE |
| |--------------->|
| | 100 Trying |
| |<---------------|
| | 180 Ringing |
| |<---------------|
| 180 Ringing | |
|<---------------| |
| | 200 OK |
| |<---------------|
| 200 OK | |
|<---------------| |
| ACK | |
|-------------------------------->|
| RTP Streams | |
o---------------------------------o
| |
Zuerst bekommt und akzeptiert der Proxy-Server einen INVITE Request, kontaktiert den location-service mit allen Teilen der Adresse und erfragt eine etwas präzisere Ortsangabe. Nun schickt der Proxy-Server einen SIP INVITE Request an die vom location-service zurückgelieferte Adresse. Der user-agent-server alarmiert nun
den Benutzer (der den INVITE abgesetzt hat) und übermittelt dem Proxy-Server die erfolgreiche Alarmierung des Benutzers. Der Proxy-Server wiederum gibt das erfolgreiche Resultat an den Anrufer zurück. Der Empfang dieser Nachricht wird seitens des Anrufers durch die Absetzung einer ACK Nachricht an den Angerufenen bestätigt. und nochmals kommt ein response zurück.
Aufbau von SIP Nachrichten
Eine SIP Nachricht ist eine Nachfrage vom Client an den Server oder eine Antwort des Servers an den Client. Die Pakete bestehen aus einem Header und einem Body. In dem Header stehen die Informationen, anhand derer erkannt werden kann, ob es sich um eine Client- oder Serverseitige Nachricht handelt.
Request:
Request Line = Method, Request-URL, SIP-Version
General Header
Request Header
Entity Header
[Message Body]
Method gibt die Art der Nachfrage an, z.B. INVITE, BYE, ACK
Response:
Status Line = SIP-Version, Status-Code, Reason-Phrase
General Header
Request Header
Entity Header
[Message Body]
Außerdem gibt es noch Status-Codes, die aus einem Zahlentripel bestehen, und das Resultat des Anrufs angeben:
1xx = Request erhalten und in Bearbeitung
2xx = Request erfolgreich empfangen
3xx = Weitere Aktionen sind notwendig
4xx = Client Fehler
5xx = Server Fehler
6xx = Request wird nicht akzeptiert.
Die Headerfields
general-header = Accept
| Accept-Encoding
| Accept-Language
| Call-ID
| Contact
| CSeq
| Date
| Encryption
| Expires
| From
| Record-Route
| Timestamp
| To
| Via
entity-header = Content-Encoding
| Content-Length
| Content-Type
request-header = Authorization
| Contact
| Hide
| Max-Forwards
| Organization
| Priority
| Proxy-Authorization
| Proxy-Require
| Route
| Require
| Response-Key
| Subject
| User-Agent
response-header = Allow
| Proxy-Authenticate
| Retry-After
| Server
| Unsupported
| Warning
| WWW-Authenticate
Das Format ist immer in der Form
Feldname : Feldwert
Der General Header bezieht sich auf die zu übermittelnde Nachricht
z.B.: Call- ID : 187602141351worcester.bell-telephone.com
Der Entity Header enthält Informationen über den Body
Der Request Header ermöglicht dem Client Informationen über sich oder über die Nachricht
an den Server zu senden.
z.B.: From :
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
Subject : A tornado is heading our way
Priority: urgent
Der Responce Header schließlich ermöglicht es dem Server, Informationen über den Responce
an den Client zu schicken. z.B.: Location: Bei einem 3xx-Responce enthält dieser Header
weitere SIP-URLs, die der Client anwenden sollte.
Die SIP-URL folgt den Richtlinien der RFC 1630
Es gibt zwei Arten von SIP-URLs: Kurzform und Langform.
Die Kurzform KANN ausschließlich innerhalb von SIP Nachrichten verwandt werden. In allen
anderen Fällen muß die Langform benutzt werden.
Beispiele für Kurz- und Langform SIP-URLs:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
sip://
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
sip://j.doe:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
;transport=tcp
sip://
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
?subject=project%20x&priority=urgent
sip://+1-212-555-1212:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
sip://alice@[10.1.2.3]
sip://alice@10.1.2.3
Der Messagebody (und Beispiele)
Der Message-Body enthält die Sitzungsbeschreibung (SDP)
C->S: INVITE
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
SIP/2.0
Via: SIP/2.0/UDP 239.128.16.254 16
Via: SIP/2.0/UDP 131.215.131.131
Via: SIP/2.0/UDP 128.16.64.19
From:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
(Mark Handley)
Subject: SIP will be discussed, too
To:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
(Eve Schooler)
Call-ID:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
Content-type: application/sdp
CSeq: 4711
Content-Length: 187
v=0
o=user1 53655765 2353687637 IN IP4 128.3.4.5
s=Mbone Audio
i=Discussion of Mbone Engineering Issues
e=
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
c=IN IP4 224.2.0.1/127
t=0 0
m=audio 3456 RTP/AVP 0
Beispiel für den Server an den Client:
S->C: SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 239.128.16.254 16
Via: SIP/2.0/UDP 131.215.131.131
Via: SIP/2.0/UDP 128.16.64.19 1
From:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
Call-ID:
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
Location: sip://
Diese E-Mail-Adresse ist gegen Spambots geschützt! JavaScript muss aktiviert werden, damit sie angezeigt werden kann.
CSeq: 4711