Author(s) Politehnica University of Bucharest Automatic Control and Computers Faculty Computer Science Department Implementation of GRUU in SIP Vladut-Stefan Paiu Bachelor Presentation Session - July 2011
Content Introduction to SIP Shortcomings of SIP Solution Description Implementation into OpenSIPS Testing Conclusions Questions Bachelor Presentation Session - July 20112
Introduction to SIP Session Initiation protocol handles VoIP signaling 3GPP standard Client-server model, heavily inspired from the HTTP protocol Bachelor Presentation Session - July 20113
SIP Call Traffic Example Bachelor Presentation Session - July 20114
SIP Addressing Scheme URI is at the core of the addressing scheme sip: [: [: ][; sip: [: [: ][;<u ri-parameters An AOR identifies the user A username can have multiple phones registered in it’s behalf Bachelor Presentation Session - July 20115
Parallel Forking Bachelor Presentation Session - July 20116
Shortcomings of SIP Multiple phones registered on behalf of same user is COOL Not being able to address only a single phone within the set of contacts registered for an AOR is BAD Using the IP address to contact a phone is not a solution because of NAT Bachelor Presentation Session - July 20117
Scenario where SIP breaks calls Bachelor Presentation Session - July 20118
GRUU Globally Routable User Agent URIs (RFC 5627) – Routes to a specific UA instance – It can be successfully dereferenced by any user agent on the Internet Requires collaboration between the clients and servers Clients provide Uniquely Identifying info, servers will use it to route back to them Bachelor Presentation Session - July 20119
Learning Own GRUU Bachelor Presentation Session - July
Learning Other’s GRUU Bachelor Presentation Session - July
Routing Using GRUU Bachelor Presentation Session - July
OpenSIPS Bachelor Presentation Session - July
Modification to OpenSIPS Core Parse GRUU URIs Parse Supported & Required headers Parse the SIP Instance Do it FAST Bachelor Presentation Session - July
Registrar Module Detect GRUU supporting phones and assign GRUUs Implement GRUUs that expose the underlying AOR, as well as GRUUs that hide it, for user privacy Bachelor Presentation Session - July
Bachelor Presentation Session - July
Bachelor Presentation Session - July
Usrloc Module Persistence for SIP Instances Database type independence – DB API Bachelor Presentation Session - July
Testing New standard – October 2009 First GRUU implementation in an open-source SIP Proxy Chicken or the egg ? Open-source SIP phone developers have started to use OpenSIPS for GRUU integration Bachelor Presentation Session - July
Conclusions SIP can now properly handle cases where it previously failed (conferencing and call transfering ) Reference GRUU implementation for SIP soft-phone developers Bachelor Presentation Session - July
Q&A Questions ? Bachelor Presentation Session - July