1 / 38

Introduction to Session Initiation Protocol (SIP)

Introduction to Session Initiation Protocol (SIP). Xiaotao Wu and Kundan Singh {xiaotaow,kns10}@cs.columbia.edu Columbia University October 24, 2002. What is SIP? Basic call setup IM and presence Conferencing Services Unified messaging PSTN inter-working Columbia test-bed. Agenda.

rberg
Download Presentation

Introduction to Session Initiation Protocol (SIP)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Session Initiation Protocol (SIP) Xiaotao Wu and Kundan Singh {xiaotaow,kns10}@cs.columbia.edu Columbia University October 24, 2002

  2. What is SIP? Basic call setup IM and presence Conferencing Services Unified messaging PSTN inter-working Columbia test-bed Agenda High level idea on how to build a SIP-based infrastructure Intro to SIP/Columbia Univ

  3. SIP is …, SIP is not … • SIP = core protocol for establishing sessions in the Internet (peer-to-peer) • Transports session description information from initiator (caller) to callee • Allows change of parameters in mid-session • Terminate session • NOT for distribution of multimedia data • NOT suitable for media gateway control Intro to SIP/Columbia Univ

  4. Basic call setup • E-mail like identifier: <sip:alice@home.com> • Alice’s phone registers with home.com REGISTER home.com SIP/2.0 To: sip:alice@home.com Contact: sip:alice@m2.home.com … office.com Registrar alice m2.home.com bob home.com alice@home.com => alice@m2.home.com Intro to SIP/Columbia Univ

  5. Basic call setup • E-mail like identifier: <sip:alice@home.com> • Alice’s phone registers with home.com • Bob dials alice@home.com; Phone does DNS office.com alice DNS lookup for sip.udp.home.com Resolve to pc4.home.com pc4.home.com m2.home.com bob home.com Intro to SIP/Columbia Univ

  6. Basic call setup • E-mail like identifier: <sip:alice@home.com> • Alice’s phone registers with home.com • Bob dials alice@home.com; Phone does DNS • Phone sends INVITE; acts as UAC INVITE sip:alice@home.com … To: sip:alice@home.com From: “Bob” <sip:bob@office.com> … c=IN IP4 128.59.19.60 m=audio 8000 RTP/AVP 0 5 8 office.com alice pc4.home.com m2.home.com bob home.com User agent client Intro to SIP/Columbia Univ

  7. Basic call setup • Phone sends INVITE; acts as UAC • Server can proxy the call to current location INVITE sip:alice@m2.home.com … To: sip:alice@home.com From: “Bob” <sip:bob@office.com> … office.com alice pc4.home.com m2.home.com bob home.com Proxy Intro to SIP/Columbia Univ

  8. Basic call setup • Phone sends INVITE; acts as UAC • Server can proxy the call to current location • Alice’s phone rings; acts as a UAS SIP/2.0 180 Ringing office.com alice pc4.home.com m2.home.com bob home.com Proxy User agent server Intro to SIP/Columbia Univ

  9. Basic call setup • Phone sends INVITE; acts as UAC • Server can proxy the call to current location • Alice’s phone rings; acts as a UAS • When Alice picks up, call is accepted and bob’s phone sends ACK to complete the setup SIP/2.0 200 OK … c=IN IP4 135.180.144.32 m=audio 9000 RTP/AVP 0 8 office.com alice pc4.home.com m2.home.com bob home.com Intro to SIP/Columbia Univ

  10. Basic call setup • Encoded audio packets sent over RTP office.com alice bob home.com Intro to SIP/Columbia Univ

  11. Basic call setup • Encoded audio packets sent over RTP • When either party hangs up BYE is sent office.com alice BYE sip:bob@office.com bob home.com Intro to SIP/Columbia Univ

  12. Alice (9) (8) (10) (13) (7) (6) (6) (5) (4) (3) (12) (6) (11) (2) Bob Advanced scenario (1) Intro to SIP/Columbia Univ

  13. Highlights of SIP • Addressing • Naming sip:president@whitehouse.gov • Contacts sip:bob@128.59.19.60:5060 • More ;mobility=mobile • Robustness • Stateless proxy • Security (authentication/encryption) • Digest, TLS, … Intro to SIP/Columbia Univ

  14. Advanced services • Fits in basic SIP model or defined as extensions • presence, instant messaging, caller preference, callee capabilities, ... • Integration of web, email, IM • Programmability of services. • SIP-CGI, CPL, SIP-servlet • SIP conferencing Intro to SIP/Columbia Univ

  15. Presence and instant messaging • General event notification method for Internet • presence, conferencing, device control • Presence extensions • SUBSCRIBE to request notifications • NOTIFY when event occurs • Instant messaging • MESSAGE with text body Intro to SIP/Columbia Univ

  16. SIP Conferencing • Different conference models (centralized, distributed) • Basic task: join/leave conference • Dial in, Refer dial in • Dial out, Refer dial out INVITE INVITE REFER INVITE server REFER Intro to SIP/Columbia Univ

  17. Conference control • Conference control (SIP + SOAP) • Access control • Pre-authorized to join • Consult a user with appropriate privileges to join • Different privileges (chair, floor chair) • Floor control • safe and mutually exclusive access to shared resource • audio channel (right to talk; typically, one) • video (limited by bandwidth, screen) • pointer and input focus for whiteboard and shared applications (one, but also multiple pointers) Intro to SIP/Columbia Univ

  18. Conference state notification • SUBSCRIBE to conference, receive NOTIFY • State • Participant : active, departed, booted, failed • dialog state, floor state • Media • sending: received-by-all, muted • receiving: receiving-all, anchor-only <conference-info version="0" state="full" entity=“meeting@example.com"> <user uri="sip:alice@home.com" display-name=“Alice"> <status>active</status> <media-status> <media-stream media-type="audio"/> </media-status> </user> <user uri="sip:bob@office.com" display-name=“Bob Wilson"> <status>departed</status> </user> </conference-info> Intro to SIP/Columbia Univ

  19. SIP Services Double ringing sound when boss calls… Enter your authentication PIN for billing… • Common gateway interface (CGI) • Call processing language (CPL) • SIP servlet Use finger for locating user… B2BUA Endpoint Make call when boss is online … Proxy/registrar Endpoint Forward to office phone during day, and home phone during evening… • Endpoint service markup language (ESML) Intro to SIP/Columbia Univ

  20. Endpoint call control • Today’s endpoint • Processing ability • Graphical rendering • Storage capacity • SIP promotes end system services • Two SIP UAs can talk to each other directly. • Service-related information is explicitly contained in SIP headers. • The simplicity of SIP makes it easier for end system to perform services. Intro to SIP/Columbia Univ

  21. Endpoint Service Markup Language (ESML) • Language for endpoint service creation • Direct user interaction, direct media control • Handle converged information, e.g., call, presence, email • Example: when buddy is online, make a call <esml name="online_call" require="generic presence ui"> <notification status="online" priority="0.5"> <address-switch field="origin"> <address is=“alice@office.com"> <call /> <alert sound=“ring.au" text="Calling …" /> </address> </address-switch> </notification> </esml> Intro to SIP/Columbia Univ

  22. SIP CGI • Programming language independent • Maintains state via an opaque token • For SIP proxies and endpoints: • call routing • controlling forking • call rejection • call modification (Priority, Call-Info) • RFC 3050 Priority.pl SIP_FROM SIP_TO stdin CGI-PROXY-REQUEST stdout Intro to SIP/Columbia Univ

  23. SIP CGI contd. • Block *@anonymous.com: if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ "sip:*@anonymous.com") { print "SIP/2.0 600 I can't talk right now\n\n"; } • Make calls from boss as urgent: if (defined $ENV{SIP_FROM} && $ENV{SIP_FROM} =~ /sip:boss@mycompany.com/) { foreach $reg (get_regs()) { print "CGI-PROXY-REQUEST $reg SIP/2.0\n"; print "Priority: urgent\n\n"; } } Intro to SIP/Columbia Univ

  24. XML-based; interpreted Control Restricted to branching and subroutines no variables, no loops structured tree describing actions performed on call setup event Event incoming and outgoing events Switch address, language, time, priority Action Proxy, redirect, reject (busy) Graphical tools Protocol-independent SIP, H.323 Extensions CPL for presence Logging Email not match Call match actions CPL Intro to SIP/Columbia Univ

  25. CPL contd. <?xml version="1.0" ?> <!DOCTYPE cpl PUBLIC "-//IETF//DTD RFC2824 CPL 1.0//EN" "cpl.dtd"> <cpl> <incoming> <time-switch> <time dtstart="20020830T140000Z" dtend="20020830T150000Z"> <reject status="reject" reason=“Busy" /> </time> </time-switch> </incoming> </cpl> Intro to SIP/Columbia Univ

  26. SIP servlet • Java-based • Runs in SIP server • Receives SIP objects and processes them public class RejectServlet extends SipServletAdapter { public boolean doInvite(SipRequest req) { SipResponse res = req.createResponse(); res.setStatus(603); res.send(); return true; } } Intro to SIP/Columbia Univ

  27. Unified messaging • Answering machine and voice mail • Centralized vs. distributed • Existing protocols • RTSP, SIP, E-mail • Integration with other services • E-mail, web, video, fax, instant messaging and presence Intro to SIP/Columbia Univ

  28. Voicemail • Design alternatives: • Your phone redirects the call to voice mail after 10 seconds • The SIP proxy is configured to forward the call to voicemail if busy or no response • Voice mail server pretends as another phone but delays the “pick up” by 10 seconds • Advanced: • Integration with E-mail, VPIM • Multimedia mail • Issues • Call reclaiming • Retrieval and deletion: • Web interface, media server (rtsp://…), SIP (sip:…), PSTN (press 1 to listen…) Intro to SIP/Columbia Univ

  29. Internet End user VXML Voice gateway HTML • Voice and telephony functions • VoiceXML browser Web server • Service logic (CGI, servlet, JSP) VoiceXML Gateway SipVXML PSTN End user IVR platform • Voice and telephony functions • (ASR, TTS, DTMF) • Service logic (application specific) Intro to SIP/Columbia Univ

  30. VoiceXML contd. <form> <field name=‘id’> <prompt> Your ID, please. </prompt> </field> <block> <submit next=“url”/> </block> </form> <form action=“url”> Enter your Id: <input name=‘id’> <input type=‘submit’> </form> Telephony, speech synthesis or audio output, user input and grammar, program flow, variable and properties, error handling, … Intro to SIP/Columbia Univ

  31. VoiceXML contd. • Unified messaging access • Email by phone • Event notification and scheduling • Audio volume control for conference • Advanced conference control Intro to SIP/Columbia Univ

  32. PSTN interworking sip:bob@home.com +1 212 9397063 • Translating audio (PCMU/PCMA) • Translating signaling (PRI/T1,ISUP) • Overlap signaling • Advanced features in SIP are lost in PSTN • Translating identifiers (phone number) • Determining transition points Telephone network Telephone subscriber SIP/PSTN gateway SIP server IP endpoint Intro to SIP/Columbia Univ

  33. PSTN to IP • Gateway knows the SIP server • <sip:7063@conductor.cs.columbia.edu;user=phone> • ENUM • DNS • +1 212 9397042 => 2.4.0.7.9.3.9.2.1.2.1.e164.arpa => sip:hgs@cs.columbia.edu • Suitable for relatively “static” contacts Intro to SIP/Columbia Univ

  34. IP to PSTN • Static mapping • 1-212-939xxxx => @itgw1.cs.columbia.edu • ITGW information is dynamic: • Overlapping networks • Multiple providers • Load balancing • TRIP • Route advertisement • Can be implemented in outbound proxy • Suitable for current hierarchical network +1 @service.mci.com at 4¢/min +1212 @nyc.gw.com at 1¢/min +1212939 @itgw1.columbia.edu free Intro to SIP/Columbia Univ

  35. Web server Columbia SIP servers (CINEMA) Telephone switch Local/long distance 1-212-5551212 rtspd: media server Quicktime Single machine RTSP sipconf: Conference server RTSP clients Department PBX sipum: Unified messaging Internal Telephone Extn: 7040 713x sipd: Proxy, redirect, registrar server SQL database SIP/PSTN Gateway Web based configuration SNMP (Network Management) Extn: 7134 H.323 Extn: 7136 siph323: SIP-H.323 translator NetMeeting xiaotaow@cs Intro to SIP/Columbia Univ

  36. Columbia SIP user agent (sipc) • Media • Audio, video, text, white board • Screen sharing • Shared web browsing • Advanced • Presence, instant messaging • Programmable call handling • Conference control • Emergency notification and handling • Device control Intro to SIP/Columbia Univ

  37. SIP beyond telephony DO sip:lamp@cs.columbia.edu SIP/2.0 ….. <Control> <Action>turn lamp on</Action> </Control> lamp serial port X10 device Intro to SIP/Columbia Univ

  38. SIP based IP telephony infrastructure Basic call Registration Addressing Proxy Advanced services Instant messaging Presence Conferencing Programmability Voice/video mail Interactive voice response PSTN interworking Summary SIP: http://www.cs.columbia.edu/sip Servers: http://www.cs.columbia.edu/IRT/cinema Client: http://www.cs.columbia.edu/IRT/sipc Intro to SIP/Columbia Univ

More Related