210 likes | 373 Views
Implementation of GRUU in SIP. Vladut-Stefan Paiu vladut.paiu @gmail.com. Bachelor Presentation Session - July 201 1. Content. Introduction to SIP Shortcomings of SIP Solution Description Implementation into OpenSIPS Testing Co nclusions Questions. Introduction to SIP.
E N D
Implementation of GRUU in SIP Vladut-Stefan Paiuvladut.paiu@gmail.com • Bachelor Presentation Session - July 2011
Content • Introduction to SIP • Shortcomings of SIP • Solution Description • Implementation into OpenSIPS • Testing • Conclusions • Questions Bachelor Presentation Session - July2011
Introduction to SIP • Session Initiation protocol handles VoIP signaling • 3GPP standard • Client-server model, heavily inspired from the HTTP protocol Bachelor Presentation Session - July2011
SIP Call Traffic Example Bachelor Presentation Session - July 2011
SIP Addressing Scheme • URI is at the core of the addressing scheme sip:<user>[:<password>]@<host>[:<port>][;<uri-parameters> • An AOR identifies the user • A username can have multiple phones registered in it’s behalf Bachelor Presentation Session - July 2011
Parallel Forking Bachelor Presentation Session - July 2011
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 2011
Scenario where SIP breaks calls Bachelor Presentation Session - July 2011
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 2011
Learning Own GRUU Bachelor Presentation Session - July 2011
Learning Other’s GRUU Bachelor Presentation Session - July 2011
Routing Using GRUU Bachelor Presentation Session - July 2011
OpenSIPS Bachelor Presentation Session - July 2011
Modification to OpenSIPS Core • Parse GRUU URIs • Parse Supported & Required headers • Parse the SIP Instance • Do it FAST Bachelor Presentation Session - July 2011
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 2011
Usrloc Module • Persistence for SIP Instances • Database type independence – DB API Bachelor Presentation Session - July 2011
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 2011
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 2011
Q&A Questions ? Bachelor Presentation Session - July 2011