Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 1 Advanced services with SIP
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 2 Index What is a service? What do we need to implement a service? Exemplary services –Call forwarding –Buddy list management How to introduce new services in an existing VoIP network?
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 3 What is meant by service? In this context, applications of communications that go beyond simple one-to-one voice calls –Call forwarding –Conference call –Messenger –... and any other you might yet invent!
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 4 To develop a new SIP-based service, you need... A good idea A design Some programming work A way to introduce the code into the SIP devices
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 5 To develop a new SIP-based service, you need... A good idea A design –The functionality of your service –The architecture of your service Some programming work –The logic of your application –SIP only solves the session control! Maybe some SIP extensions –SIP does not cover everything! A way to introduce your code into the SIP devices
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 6 SIP Device? There are several entities where a service can run –Caller –Callee –SIP server Proxy Relocation Server Registrar –New server, special for the service Existing servers do not cover everything
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 7 SIP extensions revisited Introduced to implement new services –SIP is extensible! –H.323 tried to foresee everything INFO mid-call signaling COMET preconditions met PRACK provisional reliable responses ACK SUBSCRIBE/NOTIFY/MESSAGE instant messaging REFER call re-direction UPDATE update call state
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 8 Introducing new services (I) How to bring new application logic in an existing VoIP network? –Operator: Bring out a new software release for your client and hope that everybody will download it Deploy the new proxy software network-wide –Ineffective –Interworking issues
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 9 Introducing new services (II) How to bring new application logic in an existing VoIP network? –User: Patch your client at home –Works only for you –Interworking issues –Sometimes, there is no other way than substituting the application E.g., to go from MS-DOS to WinXP
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 10 Introducing new services (III) There has to be a way to introduce new functionality –Securely, –Easily, –And in a controlled way This is what we are talking about! Remember: A SIP entity ignores what it does not understand! –Simplifies interworking –Easier to introduce new functionality
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 11 Services implemented by extensions New methods and headers –Proxy servers - simply treat unknown methods as an OPTION request, unless there is a Proxy-Require header. –User Agents return: 405 Method Not Allowed if the method is recognized, but not supported 500 Bad Request if it does not recognize the method 420 Bad Extension if the UAS does not support the requested feature –All standardized SIP extensions must document how the extension interacts with elements that don’t understand this extension
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 12 Services implemented by extensions Extensions should not extend the scope of SIP (it’s not suitable to make an extension to handle HTTP functionality - HTTP exists already) –Goal is to keep SIP simple and manageable
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 13 4 ways to introduce new functionality Based on the way we introduce services to the web Call Processing Language (CPL) SIP Common Gateway Interface (CGI) Servlets Voice XML There are more...
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 14 Let’s try to design a service Buddy list management –Every user has a list of its buddies (friends) –Server keeps database with all lists –Users register at server and become “online”: Event –Buddies are informed (through a Notify) because they subscribed to the service Buddies can now chat
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 15 Messenger scenario (I) Watcher Buddy Proxy/Presence server “Tell me about Bob”
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 16 Messenger scenario (II) Watcher Buddy Proxy/Presence server “I am online under the address
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 17 Messenger scenario (III) Watcher Buddy Proxy/Presence server “Bob just went online at
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 18 Messenger scenario (IV) Watcher Buddy Proxy/Presence server “Hi Bob. Do you want to marry me?”
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 19 What you have to do In groups of 2-3 people, write down: –Call flow –A draft of the most relevant message content The service will be implemented: –In the caller (?) –In the proxy –In the callee You got min. I'm here to help...
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 20 Now let's check on the board...
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 21 Home exercise Call forwarding –If the callee does not answer at a certain address after x seconds, send the call to a voic server (voice mailbox) Users have registered all their SIP addresses at the server –Also the voic server's –Obviate the database queries
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 22 Call forwarding scenario Caller Callee Proxy or Redirect Voic Server
Lab Telemàtica II: VoIP 2008/2009 Anna Sfairopoulou Page 23 What you have to do Each one write down: –Call flow –A draft of the most relevant message content Send it to me by next Friday 22 January: