sip and services 1 blindsiders may 99 lucent technologies - proprietary sip a platform for providing...
TRANSCRIPT
SIP and Services1Blindsiders May 99
Lucent Technologies - Proprietary
SIP A Platform for Providing Integrated Services
Jonathan Rosenberg
Bell LaboratoriesMay 27, 1999
http://www.dnrc.bell-labs.com/~jdrosen/papers/blindsiders99_sip.ppt
SIP and Services2Blindsiders May 99
Lucent Technologies - Proprietary
Talk Outline• SIP Overview
– History
– Technology
• SIP Server as a Service Platform
• Example integrated services
• SIP CGI for service creation
• CPL for service creation
• Future Directions
SIP and Services3Blindsiders May 99
Lucent Technologies - Proprietary
Introducing - Session Initiation Protocol (SIP)• Developed in mmusic group in IETF
– Proposed standard RFC2543, Feb. 1999– Work began 1995– Part of Internet Multimedia Conferencing
Suite
• Main functions– Invitation of users to sessions
• Find the users current location to deliver invitation
• Carry opaque session descriptions
– Modification of sessions– Termination of sessions
• Main Features– Personal mobility services
– Wide area operation
– Session independence• voice, video, games, chat,
virtual reality, etc.
– Leverages other Internet protocols
SIP and Services4Blindsiders May 99
Lucent Technologies - Proprietary
Protocol Components• User Agent Client (UAC)
– End systems
– Send SIP requests
• User Agent Server (UAS)– Listens for call requests
– Prompts user or executes program to determine response
• User Agent– UAC + UAS
• Redirect Server– “Network” server; redirects users to
try other server
• Proxy Server– “Network Server” Proxies request to
another server Can “fork” request to multiple servers, creating a search tree
• Registrar– receives registrations regarding
current user locations
SIP and Services5Blindsiders May 99
Lucent Technologies - Proprietary
SIP Architecture
1
2
3
45
67
8
9
1011
12
SIP Client
SIP RedirectServer
SIP Proxy SIP Proxy
SIP Client(User AgentServer)
Location Service
Request
Response
13
14
Media
SIP and Services6Blindsiders May 99
Lucent Technologies - Proprietary
SIP Message Syntax• Many header fields
from http
• New ones (Also, Replaces, Via) are SIP specific
• Payload contains a media description
• SDP - SessionDescription Protocol
INVITE sip:[email protected] SIP/2.0From: J. Rosenberg <sip:[email protected]>Subject: SIP will be discussed, tooTo: A. Netravali <sip:[email protected]>Call-ID: [email protected]: application/sdpCSeq: 4711 INVITEContent-Length: 187
v=0o=user1 53655765 2353687637 IN IP4 128.3.4.5s=Mbone Audioi=Discussion of Mbone Engineering [email protected]=IN IP4 224.2.0.1/127t=0 0m=audio 3456 RTP/AVP 0
SIP and Services7Blindsiders May 99
Lucent Technologies - Proprietary
Why SIP on the Internet?• Wide Area Scalability
– Stateless to call-state aware servers
– Single UDP port to TCP connection per transaction
– Simplicity = faster processing
• Interoperability– Textual encoding– “parsimonious on sending, gracious
on receiving”– Simplicity
• UAC assigned as HW project
– 18 implementations at bakeoff
• Extensibility– Textual encoding– Extension feature negotiation– Distributed development
SIP and Services8Blindsiders May 99
Lucent Technologies - Proprietary
Services, services, services!• IP telephony cost
benefits to consumer declining
• Must be differentiators– higher quality
– ease of use - UI
– new services and features
• Key is new services– integration services
• email, web, presence, IM, chat part of telephony
– control services• allow parameters to be
defined by consumer
– presentation services• new look and feel for old
friends
SIP and Services9Blindsiders May 99
Lucent Technologies - Proprietary
SIP Server• Primary place for SIP
services
• Service Classes– routing services
– rejection/redirection services
– logging/notification services
• Integration– add web, email, chat, to all
of the above
SIP Server
Service Logic
Requests Requests
Responses Responses
Service Logic Interface
SIP and Services10Blindsiders May 99
Lucent Technologies - Proprietary
Why SIP for Integration?• MIME
– Uses MIME types as payloads
– Can carry anything• HTML, VXML…
• URI’s– Uniform Resource
Identifiers
– Internet mechanism for naming resources
• http://www.bell-labs.com• mailto:[email protected]• tel:5551212
– SIP uses URI’s for all addresses
• DNS– Uses DNS SRV records for
server resolution
– Same mechanism as email routing
SIP and Services11Blindsiders May 99
Lucent Technologies - Proprietary
Interactive Web Response• user calls a number
• SIP server fetches content, returns to caller
• web page “answers”
• use hyperlinks instead of keypresses to navigate– much easier than voice
• final link makes phone call
INVITE http
content
Web Page
INVITE
OK
SIP and Services12Blindsiders May 99
Lucent Technologies - Proprietary
Interactive Content Response• IWR: what if its not a PC?
• Use SIP MIME handling– Gateways indicate support
for VXML
– PC’s indicate support for HTML
– Server returns based on client capabilities
• Cross platform
INVITEhttp
content
Web Page
ICR Service
INVITE
VXML
PSTN
GW
SIP and Services13Blindsiders May 99
Lucent Technologies - Proprietary
Personalized Web Agents (PWA)• A calls B• B is not home• After N rings, A gets web
page instead– possibly dynamically created
for caller• “Thanks, Joe, for calling
regarding Sales Deal”
– lists alternate contact information/times
• email, voicemail URL’s
INVITE INVITE
Web Page
SIP and Services14Blindsiders May 99
Lucent Technologies - Proprietary
Web Caller ID• Calling Party Service
– When A calls B, B’s homepage appears in A’s browser
– “homepage” dynamically generated for A perhaps
• Called Party Service– When A calls B, A’s
homepage appears in B’s browser
– Traditional direction
SIP INVITE
http GET
A’s page
A B
200 OK
Web Server
SIP and Services15Blindsiders May 99
Lucent Technologies - Proprietary
Transfer To Web• A calls B• A and B talk
– subject of conversation is some web page
• B hangs up, transfers A to page
• A’s browser jumps to page
SIP INVITEA
B
200 OK
Web Server
Transfer http://….http GETW
eb page
SIP and Services16Blindsiders May 99
Lucent Technologies - Proprietary
Email• E-mail not good for
interactive communications
• Great for notification related services!– Type of information
unbounded
• Notification possibilities– call information
– subscriber information• monthly bill
– network information• special offer!
– Messaging• emails contain URLs to
streaming media controls
SIP and Services17Blindsiders May 99
Lucent Technologies - Proprietary
Email Ringback• A calls B• Server checks access lists
– A is on “email ringback list”
• Server converts SIP INVITE to email, places A’s SIP URL there
• Server rejects call– includes text in body saying B alerted
by email
• B gets email, can call back A by clicking on link
• Can also use IM!SI
P INVIT
E40
0 w/ t
ext
SMTP
A
B
IMAPSIP INVITE200 OK
SIP Server
MailServer
SIP and Services18Blindsiders May 99
Lucent Technologies - Proprietary
Email Call Logs• A calls B
• server rings B, B not home
• server returns error to A
• server generates email call log for B– time, date of call
– caller, subject, priority
– URL for returning callSI
P INVIT
E40
0 no
t hom
e
SMTP
A
B
SIP Server
MailServer
SIP IN
VIT
E
SIP and Services19Blindsiders May 99
Lucent Technologies - Proprietary
Redirect to Email• A calls B• server notices A is on
access list for service• Redirects caller to
mailto URL• Caller’s mail tool
starts, with To, Subject filled in
INVITE
SIP Server
300 Send emailContact: mailto:[email protected]
Check accesslist
SIP and Services20Blindsiders May 99
Lucent Technologies - Proprietary
Call Filtering to Email• Similar to previous• Server lets some calls proceed
– based on priority– based on caller– based on time of day
• Others are redirected to email– personal email for personal calls– business email for others
INVITE
SIP Server
300 Send
Check accesslist
INV
ITE
INVITE
Caller A
Caller B
CalledParty
SIP and Services21Blindsiders May 99
Lucent Technologies - Proprietary
Presence• ICQ concept
– “buddy lists” and subscriptions
– know who is online
– normally for instant messages
• Big idea:
• Users can subscribe to each other, and learn:– when they pick up and hang
up the phone– when they are available to
talk or not– when they are in the office or
not• chair sensor!
– when the cell-phone is on or not
Presence propagates information abouta users willingness, ability, and desire to communicate using a variety of mediums
SIP and Services22Blindsiders May 99
Lucent Technologies - Proprietary
Example Presence Service• Phone status subscription
– A subscribes to B’s phone– When B’s phone state changes
• hook state• willingness to talk
– Notification sent to A• email, instant message,
presence notification
– A can then• call B• unsubscribe to B
SUBSCRIBEhangup
NOTIFY
Presenceserver
SIP and Services23Blindsiders May 99
Lucent Technologies - Proprietary
SIP and Presence• SIP Server = Presence
Server!– SIP server knows user’s
location• SIP REGISTER method
• Any URL - email, http, pager
– Presence namespace = SIP namespace
– Presence service can be transparent
REGISTER
NOTIFY
SIP/PresenceServer
SIP and Services24Blindsiders May 99
Lucent Technologies - Proprietary
Presence Standards• Instant Messaging and
Presence Protocol (IMPP) Working Group– IETF wg– currently doing
requirements
• Internet Standard for IMPP
• SIP is a proposal for the presence protocol
SIP and Services25Blindsiders May 99
Lucent Technologies - Proprietary
Caller Controls• In PSTN, caller has little
control on call handling
• SIP Caller Preferences– Service Preferences
– Routing Preferences
• Service Prefs– line hunt vs. ring all
– forward vs. redirect
• Routing preferences– reach home address
– reach cell phone
– reach line where English spoken
– reach line with voicemail
• Caller and callee preferences combined– feature interaction!
SIP and Services26Blindsiders May 99
Lucent Technologies - Proprietary
Challenge - Service Programmability
• Where do services live?
• What controls do the programs have?
• When can the program execute controls?
• What information are the programs provided?
• What resources do the programs have access to?
• Who can create the programs?
• How are the programs instantiated?
SIP and Services27Blindsiders May 99
Lucent Technologies - Proprietary
Location of logic• SIP User Agents
– trust issues
– heterogeneity of platforms
– always on problem
• SIP servers– natural place for routing,
screening, pre-call services
• External devices to SIP servers– SCP/SSP model in IN
• safety, load balancing, good for third parties
• latency issues in IP
– what replaces INAP?• DIAMETER? COPS?
MGCP+?
• SIP (same syntax, wrong semantics)
SIP and Services28Blindsiders May 99
Lucent Technologies - Proprietary
Nature of C/I• Highest level
– “new call from Joe to Bob”
– forward call
– can be SP independent
• Medium level– state machine transitions
+ basic data (caller, callee, etc.)
• Lowest level– Full messages
• Not a single answer!– Fundamental tradeoffs:
• simplicity vs. flexibility
• safety vs. flexibility
SIP and Services29Blindsiders May 99
Lucent Technologies - Proprietary
Who can write them?• Creator determines
tradeoff operating point
• Three principals– Administrator
– Third party provider
– End user
• Lines can be blurry• Real operating point
depends largely on trust
SIP and Services30Blindsiders May 99
Lucent Technologies - Proprietary
Other issues• Access to resources
– What else can program do besides control
– General purpose program - anything
– Java script - lots, but not everything
– configuration script - very limited
• How does it get there?– Linked in (API model)
• server must be taken down, recompiled
• not clean
– separate process (CGI)
– data read in (servlet model)
SIP and Services31Blindsiders May 99
Lucent Technologies - Proprietary
CGI Model• Server receives request
• Server spawns separate process
• Request passed to script– headers in env. Variables
– body on stdin
• Script generates body of response– sends on stdout
• Script terminates
• Server sends response
WebServer
ScriptProcess
HTTP GET
200 OK
ENV +stdin
stdout
SIP and Services32Blindsiders May 99
Lucent Technologies - Proprietary
SIP CGI• Benefits of CGI as a
basis– programming language
independence
– full control over headers/messages
– leverage existing tools
– SIP similar to HTTP
• What’s different from HTTP CGI– persistence model
– multiple actions per script output
– response naming
– request naming
SIP and Services33Blindsiders May 99
Lucent Technologies - Proprietary
Example OutputINVITE sip:[email protected] SIP/2.0To: sip:[email protected]: sip:[email protected]: 10Cseq: 0 INVITEContent-Length: 0
PROXY_REQUEST_TO sip:[email protected] SIP/2.0Max-Forwards:
SIP/2.0 180 Ringing User
CGI_SCRIPT_COOKIE aoi988ans0naa SIP/2.0
SIP and Services34Blindsiders May 99
Lucent Technologies - Proprietary
Status• Draft 1 submitted to
IETF Dec98, draft 2 May 21, 1999
• No wg to do it– likely we will submit as
informational
• Two known implementations
SIP and Services35Blindsiders May 99
Lucent Technologies - Proprietary
Solution II: CPL• Call Processing
Language– targeted for end user
service creation
– controls at high level
– information available at high level
– Describes basic service
• Model: SIB’s from IN– service = DAG
– Two types of nodes• action nodes: outputs =
results
• decision nodes: ouputs = possible values
– Safety
– Bounds on compute time
SIP and Services36Blindsiders May 99
Lucent Technologies - Proprietary
Example DAG
String Switchfield = “From”
Proxy [email protected]
Proxy tovoicemail
Proxy to555-1212
otherwise
No answer
Busy
Busy
No an
swerCall
SIP and Services37Blindsiders May 99
Lucent Technologies - Proprietary
Representation• Use XML
– links = subtags– parameters = attributes– extensibility
mechanisms useful– easy transport– generation/parsing by
tools• GUI for creation
<call> <string-switch field=“from”> <string is=“[email protected]”> <location url=“sip:[email protected]”> <proxy> <busy> <location url=“tel:5551212”> <proxy> <busy> <location url=“sip:[email protected]” link=“vm”> <proxy/> </location> </busy> <noanswer> <link id=“vm”/> </noanswer> </proxy> </location> </busy> <noanswer> <link id=“vm”/> </noanswer> </proxy> </location> </string> <otherwise> <link id=“vm”/> </otherwise> </string-switch></call>
SIP and Services38Blindsiders May 99
Lucent Technologies - Proprietary
Implementation Status• gosSIP server platform
– SIP server
– CGI, CPL, other programming interfaces
– Access to other IP services (planned)
• http, smtp, ldap, diameter
– Platform for integrated service creation
gossip Server
MailServices
IM andPresence Services
DirectoryServices
ConferenceServices
WebServices
SIP and Services39Blindsiders May 99
Lucent Technologies - Proprietary
Conclusions• Integrated Services key
• Many ways in which email, web, presence, IM, chat can work with voice
• SIP a natural platform– IP friendly - URI’s, MIME
– Scalable, interoperable, simple
• CPL/CGI for service creation
• Future work– New Programmability
models• Java servlets
• DIAMETER
– Presence and IM
– SIP to IN call model mappings (w/ INU)