SIP Tutorial Signaling & Network Control 7 th Semester.

56
SIP Tutorial Signaling & Network Control 7 th Semester

Transcript of SIP Tutorial Signaling & Network Control 7 th Semester.

Page 1: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Tutorial

Signaling & Network Control 7th Semester

Page 2: SIP Tutorial Signaling & Network Control 7 th Semester.

2

Why packet switching? Why SIP?

0

10

20

30

40

50

60

70

80

90

100

1980 1985 1987 1990 1995 2000 2001

electromechanalogdigital

Technology evolution of PSTN

Page 3: SIP Tutorial Signaling & Network Control 7 th Semester.

3

Session Initiation Protocol Overview• Application Layer Signaling Protocol• Used to establish, modify, and terminate multimedia

sessions• Part of Internet Multimedia Architecture• Can use UDP, TCP, TLS, SCTP, etc.• Based on HTTP (Web)

– Similar text-based structure– Uses URIs (Uniform Resource Indicators)

• Applications include (but not limited to):– Voice, video, gaming, instant messaging, presence, call

control, etc.• SIP sessions involve one or more participants and can

use unicast or multicast communication.

Page 4: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP entities

• User Agent User Agent Client User Agent Server

• Proxy Server• Redirect server• Registrar

Page 5: SIP Tutorial Signaling & Network Control 7 th Semester.

5

SIP Elements – User Agents

Outbound Proxy Server

Inbound Proxy Server

Capable of sending and receiving SIP requests.

UAC – User Agent Client UAS – User Agent Server

End Devices SIP phone PC/laptop with

SIP Client PDA mobile phone

PSTN Gatewaysare a type of User Agent

SIP

SIP

SIP

DNS Server

DNS

Location Server

User Agent BUser Agent A

Media (RTP)

SIP

Page 6: SIP Tutorial Signaling & Network Control 7 th Semester.

6

SIP Elements – Proxy Servers

Outbound Proxy Server

Inbound Proxy Server

Forward or “proxy” requests on behalf of User Agents

Consult databases: DNS Location Server

Types: Stateless Transaction

Stateful Call Stateful

No media capabilities Ignore SDP.

Normally bypassed once dialog established, but can Record-Route to stay in path.

SIP

SIP

SIP

DNS Server

DNS

Location Server

User Agent BUser Agent A

Media (RTP)

SIP

Page 7: SIP Tutorial Signaling & Network Control 7 th Semester.

7

SIP Elements – Other Servers

Outbound Proxy Server

Inbound Proxy Server

Location Server

Database of locations of SIP User Agents

Queried by Proxies in routing

Updated by User Agents by Registration

DNS Server

SRV (Service) Records used to locate Inbound Proxy Servers

SIP

SIP

SIP

DNS Server

DNS

Location Server

User Agent BUser Agent A

Media (RTP)

SIP

Page 8: SIP Tutorial Signaling & Network Control 7 th Semester.

8

SIP Client and Server• SIP Elements are either

– User Agents (end devices that initiate and terminate media sessions)

– Servers (that assist in session setup)• Proxies: Decides next hop and forwards request• Registrars: Accepts REGISTER requests from clients• Redirect servers : Sends address of next hop back to client

– SIP Gateways:• To PSTN for telephony interworking• To H.323 for IP Telephony interworking

• A User Agent acts as a– Client when it initiates a request (UAC)– Server when it responds to a request (UAS)

Page 9: SIP Tutorial Signaling & Network Control 7 th Semester.

9

SIP AddressingUses Internet URLs

– Uniform Resource Locators– Supports both Internet and PSTN addresses– General form is name@domain– To complete a call, needs to be resolved down to

User@Host– Examples:

sip:[email protected]

sip:J.T. Kirk <[email protected]>

sip:[email protected];user=phone

sip:[email protected]

sip:[email protected];phone-context=VNET

Page 10: SIP Tutorial Signaling & Network Control 7 th Semester.

10

SIP Requests and ResponsesSIP Responses use a

numerical code and a “reason phrase”

Classes:

1xx Informational2xx Success3xx Redirection4xx Client Error5xx Server Error6xx Global Failure

Example: 404 Not Found

SIP Request types are called “methods”

Methods in base spec:

INVITEACKOPTIONSCANCELBYEREGISTER

Page 11: SIP Tutorial Signaling & Network Control 7 th Semester.

11

Related Protocol: RTP• RTP – Real-time Transport Protocol

Used to transport media packets over IP RTP adds a bit-oriented header containing:

name of media sourcetimestampcodec typesequence number

Defined by H. Schulzrinne et al, RFC 1889. Profiles defined by RFC 1890. RTCP for exchange of participant and quality reports.

Page 12: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

12

Outbound Proxy Server

Inbound Proxy Server

1. INVITE Contact: A SDP A

DNS Server Location Server

1. A “dials” SIP AOR URI sip:[email protected]. User Agent A sends INVITE to outbound Proxy Server.

2. Outbound Proxy sends 100 Trying response.

2. 100 Trying

User Agent B (Not Signed In)

User Agent A

Page 13: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

13

Outbound Proxy Server

Inbound Proxy Server

1. INVITE Contact: A SDP A

DNS Server Location Server

3. Outbound Proxy does DNS query to find proxy server for mci.com domain

4. DNS responds with IP address of mci.com Proxy Server

3. DNS Query: mci.com?

2. 100 Trying

4. Response: 1.2.3.4

User Agent B (Not Signed In)

User Agent A

Page 14: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

14

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

5. Outbound Proxy sends INVITE to Inbound Proxy Server.

6. Inbound Proxy sends 100 Trying response.

3. DNS Query: mci.com?

2. 100 Trying

4. Response: 1.2.3.4

6. 100 Trying

User Agent B (Not Signed In)

User Agent A

1. INVITE Contact: A SDP A

5. INVITE Contact: A SDP A

Page 15: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

15

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

7. Inbound Proxy consults Location Server.

8. Location Server responds with “Not Signed In.”

3. DNS Query: mci.com?

2. 100 Trying

4. Response: 1.2.3.4

6. 100 Trying

7. LS Query: B? 8. Response: Not Signed In

User Agent B (Not Signed In)

User Agent A

1. INVITE Contact: A SDP A

5. INVITE Contact: A SDP A

Page 16: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

16

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

9. Inbound Proxy sends 480 Temporarily Unavailable response.

10. Outbound Proxy sends ACK response.

3. DNS Query: mci.com?

2. 100 Trying

4. Response: 1.2.3.4

6. 100 Trying

7. LS Query: B? 8. Response: Not Signed

In

9. 480 Temporarily Unavailable

10. ACK

User Agent B (Not Signed In)

User Agent A

1. INVITE Contact: A SDP A

5. INVITE Contact: A SDP A

Page 17: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

17

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

11. Outbound Proxy forwards 480 response to A.

12. A sends ACK response.

3. DNS Query: mci.com?

2. 100 Trying

4. Response: 1.2.3.4

6. 100 Trying

7. LS Query: B? 8. Response: Not Signed

In

9. 480 Temporarily Unavailable

11. 480 Temporarily Unavailable

10. ACK

12. ACK

User Agent B (Not Signed In)

User Agent A

1. INVITE Contact: A SDP A

5. INVITE Contact: A SDP A

Page 18: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Presence Example

18

Outbound Proxy Server

Inbound Proxy Server

1. SUBSCRIBE

DNS ServerPresence Server

1. A wants to be informed when B signs on, so sends a SUBSCRIBE

2. Outbound Proxy forwards to Inbound Proxy

3. Inbound Proxy forwards to B’s Presence Server

2. SUBSCRIBE

3. SUBSCRIBE

User Agent B (Not Signed In)

User Agent A

Page 19: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Presence Example

19

Outbound Proxy Server

Inbound Proxy Server

1. SUBSCRIBE

DNS ServerPresence Server

4. Presence Server authorizes subscription by sending a 200 OK.

5. & 6. 200 OK proxied back to A.

6. 200 OK

2. SUBSCRIBE

5. 200 OK

3. SUBSCRIBE 4. 200 OK

User Agent B (Not Signed In)

User Agent A

Page 20: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Presence Example

20

Outbound Proxy Server

Inbound Proxy Server

DNS ServerPresence Server

7. Presence Server sends NOTIFY containing current presence status of B (Not Signed In).

8. and 9. NOTIFY is proxied back to A.

10. A acknowledges receipt of notification with 200 OK.

11. & 12. 200 OK is proxied back to B’s Presence Server.

10. 200 OK

11. 200 OK

7. NOTIFY <Not Signed In> 12. 200 OK

User Agent B (Not Signed In)

User Agent A

8. NOTIFY <Not Signed In>

9. NOTIFY <Not Signed In>

Page 21: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Registration Example

21

Outbound Proxy Server

Outbound Proxy Server

DNS ServerLocation Server

2. Update database:B = [email protected]

1. REGISTER Contact: [email protected]

1. B signs on to his SIP Phone which sends a REGISTER message containing the FQDN URI of B’s User Agent.

2. Database update is sent to the Location Server

User Agent BUser Agent A

Page 22: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Registration Example

22

Outbound Proxy Server

Outbound Proxy Server

DNS ServerLocation Server

2. Update database:B = [email protected] 3. OK

1. REGISTER Contact: [email protected]

4. 200 OK Contact: [email protected]

3. Location Server database update is confirmed.

4. Registration is confirmed with a 200 OK response.

User Agent BUser Agent A

Page 23: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Presence Example

23

Outbound Proxy Server

Inbound Proxy Server

DNS ServerPresence Server

13. Presence Server learns of B’s new status from the Location Server and sends a NOTIFY containing new status of B (Signed In).

14. & 15. NOTIFY is proxied back to A.

16. A acknowledges receipt of notification with 200 OK.

17. & 18. 200 OK is proxied back to Presence Server.

16. 200 OK

17. 200 OK

18. 200 OK

User Agent BUser Agent A

13. NOTIFY <Signed In>

14. NOTIFY <Signed In>

15. NOTIFY <Signed In>

Page 24: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Instant Message Scenario

24

Outbound Proxy Server

Inbound Proxy Server

1. MESSAGE <Can you talk now?>

DNS Server Location Server1. A sends an Instant

Message to B saying “Can you talk now?” in a MESSAGE request.

2., 3. & 4. MESSAGE request is proxied, Location Server queried.

5. Inbound Proxy forwards MESSAGE to B.

6. User Agent B responds with 200 OK.

7. & 8. 200 OK is proxied back to A.

8. 200 OK

7. 200 OK

3. LS Query: B? 4. Response: sip:[email protected]

6. 200 OK

User Agent BUser Agent A

2. MESSAGE <Can you talk now?>

5. MESSAGE <Can you talk now?>

Page 25: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Instant Message Scenario

25

Inbound Proxy Server

Outbound Proxy Server

Location Server DNS Server1. B sends an Instant

Message to A saying “Sure.” in a MESSAGE sent to A’s AOR URI.

2. & 3. DNS Server is queried.

4. Outbound Proxy forwards MESSAGE to Inbound Server.

5. & 6. Location Server is queried.

7. Inbound Proxy forwards to A.

8. User Agent A responds with 200 OK.

9. & 10. 200 OK is proxied back to B.

8. 200 OK

9. 200 OK

10. 200 OK

5. LS Query: A? 6. Response: sip:[email protected]

2. DNS Query: globalipcom.com?

3. Response: 5.6.7.8

User Agent BUser Agent A

7. MESSAGE <Sure.>

4. MESSAGE <Sure.>

1. MESSAGE <Sure.>

Page 26: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Attempt Scenario

26

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

1. to 5. A retries INVITE to B which routes through two Proxy Servers.

6. Location Server responds with the FQDN SIP URI of B’s SIP Phone.

7. Inbound Proxy Server forwards INVITE to B’s SIP Phone.

2. 100 Trying

4. 100 Trying

5. LS Query: B 6. Response: sip:[email protected]

User Agent BUser Agent A

1. INVITE Contact: A SDP A

3. INVITE Contact: A SDP A

7. INVITE Contact: A SDP A

Page 27: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Scenario

27

Outbound Proxy Server

Inbound Proxy Server

10. 180 Ringing

DNS Server Location Server

8. User Agent B alerts B and sends 180 Ringing response.

9. & 10. 180 Ringing is proxied back to A.

9. 180 Ringing

8. 180 Ringing

User Agent BUser Agent A

Page 28: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Scenario

28

Outbound Proxy Server

Inbound Proxy Server

10. 180 Ringing

DNS Server Location Server

11. B accepts call and User Agent B sends 200 OK response.

12. & 13. 200 OK is proxied back to A.

9. 180 Ringing

8. 180 Ringing

User Agent BUser Agent A

11. 200 OK Contact: B SDP B

12. 200 OK Contact: B SDP B

13. 200 OK Contact: B SDP B

Page 29: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Setup Scenario

29

Outbound Proxy Server

Inbound Proxy Server

10. 180 Ringing

DNS Server Location Server

14. ACK is sent by A to confirm setup call bypassing proxies.

Media session begins between A and B!

9. 180 Ringing

8. 180 Ringing

14. ACK

Media (RTP)

User Agent BUser Agent A

11. 200 OK Contact: B SDP B

12. 200 OK Contact: B SDP B

13. 200 OK Contact: B SDP B

Page 30: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Hold (re-INVITE)

30

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

15. B places A on hold by sending a re-INVITE.

16. A accepts with a 200 OK.

17. B sends ACK to A.

No media between A and B.15. INVITE

SDP a=sendonly

17. ACK User Agent BUser Agent A

16. 200 OK SDP A

Page 31: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Transfer Scenario

31

20. NOTIFY <100 Trying>

21. 200 OK

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

18. B transfers A to C using REFER.

19. Transfer is accepted by A with 202 Accepted response.

20. Notification of trying transfer is sent to B in NOTIFY.

21. B sends 200 OK response to NOTIFY

18 REFER Refer-To: sip:[email protected]

19. 202 Accepted

User Agent BUser Agent A

Page 32: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Transfer Scenario

32

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

1. to 5. A sends new INVITE to C which routes through two Proxy Servers.

6. Location Server responds with the FQDN SIP URI of C’s SIP Phone.

7. Inbound Proxy Server forwards INVITE to C’s SIP Phone.

2. 100 Trying

4. 100 Trying

5. LS Query: C? 6. Response: sip:[email protected]

User Agent BUser Agent A

User Agent C

1. INVITE Contact: A Ref-By: B SDP A

3. INVITE Contact: A Ref-By: B SDP A

7. INVITE Contact: A Ref-By: B SDP A

Page 33: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Transfer Scenario

33

Outbound Proxy Server

Inbound Proxy Server

10. 180 Ringing

DNS Server Location Server

8. User Agent C alerts C and sends 180 Ringing response.

9. & 10. 180 Ringing is proxied back to A.

11. C accepts call and sends 200 OK response.

12. & 13. 200 OK is proxied back to A.

14. ACK is sent by A to confirm setup call.

Media session between A and C begins.

9. 180 Ringing

8. 180 Ringing

14. ACK

User Agent CMedia (RTP)

User Agent B

User Agent A

11. 200 OK Contact: C SDP C

12. 200 OK Contact: C SDP C

13. 200 OK Contact: C SDP C

Page 34: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Transfer Scenario

34

Outbound Proxy Server

Inbound Proxy Server

DNS Server Location Server

20. Notification of successful transfer is sent to B in NOTIFY.

21. B sends 200 OK response to NOTIFY

22. B hangs up by sending a BYE.

23. 200 OK response to BYE is sent.

20. NOTIFY <200 OK>

21. 200 OK

22. BYE

23. 200 OK User Agent BUser Agent A

Page 35: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Session Establishment and Call Termination

From the RADVISION whitepaper on SIP

Media Stream

Page 36: SIP Tutorial Signaling & Network Control 7 th Semester.

Call Proxying

From the RADVISION whitepaper on SIP

Page 37: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Call Redirection

From the RADVISION whitepaper on SIP

Page 38: SIP Tutorial Signaling & Network Control 7 th Semester.

38

SIP Requests

SIP Requests (Messages) defined as:– Method SP Request-URI SP SIP-Version CRLF (SP=Space,

CRLF=Carriage Return and Line Feed)

– Example: INVITE sip:[email protected] SIP/2.0

Method Description

INVITE A session is being requested to be setup using a specified media

ACK Message from client to indicate that a successful response to an INVITE has been received

OPTIONS A Query to a server about its capabilities

BYE A call is being released by either party

CANCEL Cancels any pending requests. Usually sent to a Proxy Server to cancel searches

REGISTER Used by client to register a particular address with the SIP server

Page 39: SIP Tutorial Signaling & Network Control 7 th Semester.

39

SIP Requests Example

Required Headers (fields):

– Via: Shows route taken by request.– Call-ID: unique identifier generated by

client.– CSeq: Command Sequence number

• generated by client• Incremented for each successive request

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP host.wcom.com:5060From: Alan Johnston <sip:[email protected]>To: Jean Luc Picard <sip:[email protected]>Call-ID: [email protected]: 1 INVITE

}Uniquely identify this session request

Page 40: SIP Tutorial Signaling & Network Control 7 th Semester.

40

SIP Responses

SIP Responses defined as (HTTP-style):– SIP-Version SP Status-Code SP Reason-Phrase CRLF

(SP=Space, CRLF=Carriage Return and Line Feed)– Example: SIP/2.0 404 Not Found– First digit gives Class of response:

Description Examples

1xx Informational – Request received, continuing to process request.

180 Ringing 181 Call is Being Forwarded

2xx Success – Action was successfully received, understood and accepted.

200 OK

3xx Redirection – Further action needs to be taken in order to complete the request.

300 Multiple Choices 302 Moved Temporarily

4xx Client Error – Request contains bad syntax or cannot be fulfilled at this server.

401 Unauthorized 408 Request Timeout

5xx Server Error – Server failed to fulfill an apparently valid request.

503 Service Unavailable 505 Version Not Suported

6xx Global Failure – Request is invalid at any server. 600 Busy Everywhere 603 Decline

Page 41: SIP Tutorial Signaling & Network Control 7 th Semester.

41

SIP Responses: 1xx-3xx

SIP Response Code Brief Description100 Trying Request received and action is being taken180 Ringing UA received INVITE and is alerting user181 Call Is Being Forwarded Used by proxy to indicate call is being forwarded182 Queued Called party unavailable, call queued183 Session Progress Used in early media and QoS setup200 OK Request successful300 Multiple Choices Address resolved to several choices 301 Moved Permanently User can no longer be found at Req-URI address302 Moved Temporarily Temporarily cannot find user at Req-URI address305 Use Proxy Resource MUST be accessed through proxy.380 Alternative Service Call not successful. Alternatives possible.

Page 42: SIP Tutorial Signaling & Network Control 7 th Semester.

42

SIP Responses: 4xxSIP Response Code Brief Description

400 Bad Request Request not understood due to malformed syntax401 Unauthorized Request requires user authentication402 Payment Required Reserved for future use403 Forbidden UAS understood request and refuses to fulfill it404 Not Found UAS finds that user doesn't exist in the domain 405 Method Not Allowed Method is understood but not allowed406 Not Acceptable Response content not allowed by Accept header407 Proxy Authentication Required Client must first authenticate itself with proxy408 Request Timeout UAS could not produce response in time410 Gone UAS resource unavailable; no forwarding addr.413 Request Entity Too Large Request contains body longer than UAS accepts414 Request-URI Too Long Req-URI longer than server is willing to interpret415 Unsupported Media Type Format of the body not supported by UAS416 Unsupported URI Scheme Scheme of URI unknown to server420 Bad Extension UAS not understand protocol extension 421 Extension Required UAS needs particular extension process request423 Registration Too Brief Contact header field expiration time too small480 Temporarily Unavailable UAS contacted successfully but user unavailable481 Call/Transaction Does Not Exist UAS Rx request not matching any existing dialog 482 Loop Detected UAS has detected a loop483 Too Many Hops UAS received request containing Max-Forwards=0484 Address Incomplete UAS Rx request with incomplete Request-URI 485 Ambiguous The Request-URI was ambiguous486 Busy Here UAS contacted successfully but user busy487 Request Terminated Request terminated by a BYE or CANCEL request488 Not Acceptable Here Same as 606 but only applies to addressed entity491 Request Pending UAS Rx req. & have pending req. for same dialog

493 Undecipherable UAS Rx request with encrypted MIME body & not have decryption key

Page 43: SIP Tutorial Signaling & Network Control 7 th Semester.

43

SIP Responses: 5xx-6xx

SIP Reponse Code Brief Description500 Server Internal Error UAS unexpected condition & cannot fulfill request501 Not Implemented UAS not support functionality to fulfill the request502 Bad Gateway UAS Rx invalid response from a downstream server503 Service Unavailable UAS can't process due to overload or maintenance504 Server Time-out UAS not Rx response from external server505 Version Not Supported UAS not support SIP version in request513 Message Too Large Message length exceeded UAS capabilities600 Busy Everywhere End systems contacted, user busy at all of them603 Decline End systems contacted, user explicitly decline604 Does Not Exist Anywhere UAS has information Req-URI user not exist606 Not Acceptable Some aspects of Session Desc. not acceptable

Page 44: SIP Tutorial Signaling & Network Control 7 th Semester.

44

SIP Responses Example

Required Headers:

– Via, From, To, Call-ID, and CSeq are copied exactly from Request.

– To and From are NOT swapped!

SIP/2.0 200 OKVia: SIP/2.0/UDP host.wcom.com:5060From: Alan Johnston <sip:[email protected]>To: Jean Luc Picard <sip:[email protected]>Call-ID: [email protected]: 1 INVITE

Page 45: SIP Tutorial Signaling & Network Control 7 th Semester.

45

SIP Headers - Partial ListHeader Description Examples

Accept Indicates acceptable formats. Accept: application/ sdp Accept: currency/ dollars

Authorization Contains encryption information Authorization: pgp info…

Call-ID Used to uniquely identify a particular session or registration messages. Should have randomness to ensure overall global uniqueness.

Call-ID: [email protected] Call-ID: Jan-01-1999-1510- [email protected] i: [email protected]

Contact Alternative SIP URL for more direct message routing.

Contact: W. Riker, Acting Captain <[email protected]> Contact: [email protected]; expires=3600 m: [email protected]

Content-Length Octet count in message body. Content-Length: 285

Content-Type Content type of message body Content-Type: application/ sdp c: application/ h.323

CSeq Command Sequence number – used to distinguish different requests during the same session.

CSeq: 1 INVITE CSeq: 1000 INVITE CSeq: 4325 BYE CSeq: 1 REGISTER

Encryption Encryption information. Encryption: pgp info…

Expires Used to indicate when the message content is no longer valid. Can be a number of seconds or a date and time.

Expires: 60 Expires: Thu, 07 Jan 1999 17:00 CST

Page 46: SIP Tutorial Signaling & Network Control 7 th Semester.

46

SIP Headers - Continued

From Required field containing the originating SIP URL. Can also include a display name.

From: Dana Scully <sip:[email protected]> From: sip:[email protected]; tag=1234567 f: sip: [email protected]

Max-Forwards Count decremented by each server forwarding the message. When goes to zero, server sends a 483 Too Many Hops response.

Max-Forwards: 10

Priority Can specify message priority Priority: normal Priority: emergency

Record-Route Added to a request by a proxy that needs to be in the path of future messages.

Record Route: sip.mci.com

Require Indicates options necessary for the session. Require: local.telephony

Response-Key Contains PGP key for encrypted response expected.

Response-Key: pgp info…

Retry-After Indicates when the resource may be available. Can be a number of seconds or a date and time.

Retry-After: 3600 Retry-After: Sat, 01 Jan 2000 00:01 GMT

Page 47: SIP Tutorial Signaling & Network Control 7 th Semester.

47

SIP Headers - Continued

Route Determines the route taken by a message.

Route: orinoco.brooks.net

Subject Can be used to indicate nature of call.

Subject: More about SIP s: You’d better answer!

To Required field containing the recipient SIP URL. May contain a display name.

To: Fox Mulder <sip:[email protected]> To: sip:[email protected]; tag=314 t: sip:[email protected]; tag=52

Unsupported Lists features not supported by server.

Unsupported: tcap.telephony

Via Used to show the path taken by the request.

Via: SIP/ 2.0/ UDP sip.mfs.com Via: SIP/ 2.0/ TCP uunet.com v: SIP/ 2.0/ UDP 192.168.1.1

Warning Contains a code and text to warn about a problem

Warning: 331 Unicast not available

Page 48: SIP Tutorial Signaling & Network Control 7 th Semester.

48

Via Headers and Routing

• Via headers are used for routing SIP messages

• Requests– Request initiator puts address in Via header– Servers check Via with sender’s address,

then add own address, then forward. (if different, add “received” parameter)

• Responses– Response initiator copies request Via

headers.– Servers check Via with own address, then

forward to next Via address

Page 49: SIP Tutorial Signaling & Network Control 7 th Semester.

49

SIP Firewall Considerations

• Firewall Problem– Can block SIP packets– Can change IP addresses of packets

• TCP can be used instead of UDP• Record-Route can be used:

– ensures Firewall proxy stays in path• A Firewall proxy adds Record-Route

header– Clients and Servers copy Record-Route and

put in Route header for all messages

Page 50: SIP Tutorial Signaling & Network Control 7 th Semester.

50

SIP Message Body

• Message body can be any protocol• Most implementations:

– SDP - Session Description Protocol– RFC 2327 4/98 by Handley and Jacobson

• http://www.ietf.org/rfc/rfc2327.txt– Used to specify info about a multi-media

session. – SDP fields have a required order– For RTP - Real Time Protocol Sessions:

• RTP Audio/Video Profile (RTP/AVP) payload descriptions are often used

Page 51: SIP Tutorial Signaling & Network Control 7 th Semester.

51

Authentication & Encryption• SIP supports a variety of approaches:

– end to end encryption– hop by hop encryption

• Proxies can require authentication:– Responds to INVITEs with 407 Proxy-Authentication Required

– Client re-INVITEs with Proxy-Authorization header.

• SIP Users can require authentication:– Responds to INVITEs with 401 Unathorized– Client re-INVITEs with Authorization

header

Page 52: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP Mobility Support

SIP RedirectServer

SIP ProxyServerForeign

Network

MobileHost

HomeNetwork

CorrespondingHost

1 23

6

4

5

1 INVITE

2 302 moved temporarily

3, 4 INVITE

5, 6 OK

7 Data

Global: Wire and wireless

No tunneling required

No change to routing

7

Page 53: SIP Tutorial Signaling & Network Control 7 th Semester.

53

SIP Mobility

Pre-call mobility• Mobile host (MH) can find SIP server via multicast REGISTER• MH acquires IP address via DHCP• MH updates home SIP server

Mid-call mobility• MH->CH: New INVITE with Contact and updated SDP• Re-registers with home registrar

Page 54: SIP Tutorial Signaling & Network Control 7 th Semester.

54

SIP Summary

• SIP is:– Relatively easy to implement– Gaining vendor and carrier acceptance– Very flexible in service creation– Extensible and scaleable– Appearing in products right now

• SIP is not:– Going to make PSTN interworking easy– Going to solve all IP Telephony issues

(QoS)

Page 55: SIP Tutorial Signaling & Network Control 7 th Semester.

Comparison with H.323

• H.323 is another signaling protocol for real-time, interactive• H.323 is a complete, vertically integrated suite of protocols for multimedia

conferencing: signaling, registration, admission control, transport and codecs.

• SIP is a single component. Works with RTP, but does not mandate it. Can be combined with other protocols and services.

• H.323 comes from the ITU (telephony).• SIP comes from IETF: Borrows much of its concepts from HTTP. SIP has a

Web flavor, whereas H.323 has a telephony flavor. • SIP uses the KISS principle: Keep it simple stupid.

Page 56: SIP Tutorial Signaling & Network Control 7 th Semester.

SIP/SS7 MSC Call Flow