800 likes | 822 Views
Learn about the Session Initiation Protocol (SIP), its overview, characteristics, functions, and architecture, as well as the concept of session mobility in communication networks. Explore the SIP messaging syntax, call flows, and key components such as User Agents, Proxies, and Servers.
E N D
SIP/Session mobility 陳旻秀 中華大學資訊工程學系
Outline • What’s SIP • SIP Overview • Session Mobility • Split Session
What’s SIP • Session Initiation Protocol • Application-layer control protocol • Main function -User Location Service -Session establishment -Session participant management -Limited feature establishment
What is SIP ? • Session Initiation Protocol • MMUSIC working group: RFC 2543 • SIP working group: RFC 3261 • SIP enable Internet endpoints (User agents) to discover one another and to agree on a characterization of a session they would like to share • All kind of real-time multimedia types, such as voice, video or text messages
Characteristic of SIP • Open - 如同HTTP以代碼表示服務狀況並採用和SMTP 同樣的帳號模式 • Extensible - 可以像DNS一樣利用上下游關係進行擴充
SIP Function and Property • A signaling protocol (application-layer control protocol) • For creating, modifying, and terminating sessions • Separate signaling and media streams End-to-End transmission
Location Server SIP Architecture request SIP Redirect Server 3 response 4 non-SIP protocol 2 5 7 8 SIP Proxy 6 9 1 14 13 12 SIP Proxy SIP Proxy 11 10 RTP SIP User Agent Client (Caller) SIP User Agent Server (Callee)
Network Entities • UA (User Agent) • UAC (User agent client) • Initiate SIP request • UAS (User agent server) • Receive request, return a response • SIP Proxy Server • Forwards requests to the next any kind of SIP servers or UA
Network Entities (cont.) • SIP Redirect Server • Map SIP address into new address and return to the client • SIP Registrar Server • Accept user register requests to update user address location database • Location Server • A database to obtain information about a callee's possible location
Location Server UA Registrar Store Query Response Register Proxy Registrar Server
SIP Addressing • SIP URI • E-mail like • user@host • sip:Alice@taipei.com
Response Code • 1xx --- Provisional • 100 Trying • 2xx --- Successful • 200 OK • 3xx --- Redirection • 302 Moved Temporarily • 4xx --- Request Failure • 486 Busy Here • 5xx --- Server Failure • 501 Not Implemented • 6xx --- Global Failure • 604 Does Not Exist Anywhere
1 INVITE INVITE INVITE 2 3 100: Trying 100: Trying 4 5 6 180: Ringing 180: Ringing 180: Ringing 7 8 9 200: OK 200: OK 200: OK 10 11 12 ACK BYE 13 200: OK 14 Basic Call Flow UAC (Caller) Alice’s softphone taipei.com proxy tainan.com proxy UAS (Callee) Bob’s SIP phone RTP
1 ACK ACK INVITE INVITE INVITE ACK 2 3 100: Trying 100: Trying 4 11 9 7 5 6 8 486: Busy 486: Busy 486: Busy 10 Busy Call Flow UAC (Caller) Alice’s softphone taipei.com proxy tainan.com proxy UAS (Callee) Bob’s SIP phone
12 9 9 12 9 1 12 ACK ACK ACK INVITE CANCEL CANCEL INVITE INVITE CANCEL 2 3 100: Trying 100: Trying 4 5 6 180: Ringing 180: Ringing 180: Ringing 7 8 487: RT 200: OK 487: RT 200: OK 200: OK 487: RT 11 11 10 10 10 11 Cancel Call Flow UAC (Caller) Alice’s softphone taipei.com proxy tainan.com proxy UAS (Callee) Bob’s SIP phone
SIP Message Syntax Overview • Text-based • Use the UTF-8 charset (RFC 2279) • Syntax similar to HTTP/1.1 (RFC 2616) generic-message = start-line *message-header CRLF [message-body]
Start Line start-line = Request-line | Status-line Request-Line = Method SP Request-URI SP SIP-VersionCRLF Ex: INVITE sip:Alice@taipei.com SIP/2.0 Status-Line = SIP-Version SP Status-Code SP Reason-PhraseCRLF Ex: SIP/2.0 200 OK
Message Header • General Header • Be applied to both request and response messages • Entity Header • Define information about the message body • Request Header • Allow the client to pass additional information about the request • Response Header • Allow the server to pass additional information about the response message-header= ( general-header | request-header | response-header | entity-header)
1 INVITE INVITE INVITE 2 3 100: Trying 100: Trying 4 5 6 180: Ringing 180: Ringing 180: Ringing 7 8 9 200: OK 200: OK 200: OK 10 11 12 ACK BYE 13 200: OK 14 Basic Call Flow UAC (Caller) Alice’s softphone taipei.com proxy tainan.com proxy UAS (Callee) Bob’s SIP phone RTP
Start-line Message-header Blank-line Message-body An Example of SIP Request INVITE sip:bob@tainan.com SIP/2.0 Via: SIP/2.0/UDP pc33.taipei.com:5060 From: Alice <sip:alice@taipei.com> To: Bob <sip:bob@tainan.com> Call-ID: a84b4c76e66710@taipei.com CSeq: 1 INVITE Contact: <sip:alice@100.101.102.103> Content-Type: application/sdp Content-Length: 147 v=0 o=UserA 2890844526 2890844526 IN IP4 here.com s=Session SDP c=IN IP4 100.101.102.103 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
Start-line Message-header If no body in message, there is no Content-Type and Content-Length = 0 An Example of SIP Response SIP/2.0 100 Trying Via: SIP/2.0/UDP pc33.taipei.com:5060 From: Alice <sip:alice@taipei.com> To: Bob <sip:bob@tainan.com> Call-ID: a84b4c76e66710@taipei.com CSeq: 1 INVITE Content-Length: 0
SIP Extensions • SIP has attracted enormous interest • Simple • Easy to implement • Easy to add functions • A large number of extensions to SIP has been proposed • INFO Method • REFER Method
SIP INFO Method • Specified in RFC 2976 • For transferring information during an ongoing session • The transfer of mid-call signaling information
SIP REFER Method • Specified in RFC 3515 • To enable the sender of the request to instruct the receiver to contact a third party • For Call Transfer applications • New header fields • Refer-to • Refer-by
SIP for Instant Messaging • The IETF working group – • SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE)
Four mobile issue of SIP • Terminal Mobility • Personal Mobility • Session Mobility • Service Mobility
Limitation of mobile IP • Triangle routing • Triangle registration • Encapsulation overhead • Need for home address • ISP must offer home agent service
MIP v.s. SIP • Mobility IP bind a IP address to a temporary care-of address (ex 140.126.5.2) • SIP bind a user-level identifier to a temporary IP address (ex sip:ant@ant.csie.chu.edu.tw)
Session Mobility • Session mobility allows a user to maintain a media session even while changing terminals Alice@mobile Alice@fixed Bob@fixed phone pc pc
Service Mobility • Services setting bind with SIP identified • “home” server • Call Processing Language (CPL) Contact: Carol <sip:carol@example.com> ;language="en,es,de" ;media="audio,video,application/chat" ;duplex="full" ;priority="urgent"
Types of session mobility • Third-party call control RFC 3725 • REFER RFC 3515
Related work • K. Kaneko, H. Morikawa, and T. Aoyama:"Session Layer Mobility Support for 3C Everywhere Environments," In Proceeding of the 6th International Symposium on Wireless Personal Multimedia Communications (WPMC 2003), vol.2, pp.347-351, Yokosuka, Japan, October 2003.
3. Notify B Media Stream BSD socket BSD socket Port 1234 Port 5678 4. Create New Socket 1. Migration Message 2. Create New Socket Media Stream BSD socket BSD socket Port 2468 Port 1357 Migration mechanism A B SL Middleware SL Middleware C SL Middleware
Related work (cond.) • Ohta, K.; Yoshikawa, T.; Nakagawa, T.; Isoda, Y.; Kurakake, S.; NTT DoCoMo,Inc.“Adaptive terminal middleware for session mobility ” ,Distributed Computing Systems Workshops, 2003. Proceedings. 23rd International Conference on , 2003 Pages:394 - 399
Adaptive terminal middleware • Session management • Reliable virtual socket • Proactive soft handoff
Resolution 300x400 Resolution 300x400 Media Stream Resolution 1024x768 Resolution 1024x768 Resolution 1024x768 What middle layer can’t do? B A C Middle layer can’t modify the application layer. So, if we use middle layer for session mobility, we must use resolution 300x400 here.
Session Mobility using SIP • H. Schulzrinne and E. Wedland, “Application-layer mobility using SIP”,ACM SIGMOBILE Mobile Computing and Communications Review,Vol. 4, Number 3, July 2000, pp.47-57 • RFC 3515The Session Initiation Protocol (SIP) Refer Method. R. Sparks. April 2003. • draft-ietf-sipping-3pcc-06
REFER Mechanism B1 3 BYE A 1 A REFER A Referred-By:B1 2 INVITE A Referred-By:B1 B2
Party A Party B Controller Third Party Call Control • Third party call control refers to the ability of one entity to create a call in which communication is actually between other parties
Third Party Call Control (Cond.) • Third Party Call Control (3pcc) is often used for operator services and conferencing • Click-to-dial allows a user to click on a web page when they wish to speak to a customer service
200: OK Offer/Answer Model • RFC 3264 • Two entities can use SDP to arrive at a common view of a multimedia session between them UAC (Caller) Offerer UAS (Callee) Answerer INVITE Offer : audiovideo Answer : audio ACK Audio RTP
3PCC- Flow I Controller A B 1. INVITE no SDP 2. 200 offer1 3. INVITE offer1 4. 200 OK answer1 5. ACK 6. ACK answer1 RTP
Property of Flow I • Advantage • The call flow is easy • Disadvantage • Retransmission time out • Suitable for the callee is a server • The response time of server is short
3PCC- Flow IV Controller A B 1. INVITE offer1 no m 2. 200 answer1 no m 3. ACK 4. INVITE no SDP 5. 200 OK offer2 6. INVITE offer2’ 7. 200 answer2’ 8. ACK answer2 9. ACK RTP