380 likes | 546 Views
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.
E N D
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 High level idea on how to build a SIP-based infrastructure Intro to SIP/Columbia Univ
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
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
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
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
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
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
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
Basic call setup • Encoded audio packets sent over RTP office.com alice bob home.com Intro to SIP/Columbia Univ
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
Alice (9) (8) (10) (13) (7) (6) (6) (5) (4) (3) (12) (6) (11) (2) Bob Advanced scenario (1) Intro to SIP/Columbia Univ
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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