In a previous article, I talked about how SIP itself has evolved into a sphagetti protocol. Now add to that, a complex IMS network and you have more confusion. In addition, you have hundreds of ‘talkers’ who really have no hands-on experience with IMS making confusing and extreme statements like ‘IMS-SIP breaks non IMS-SIP’ , or, ‘Oh ! I just need to plug in my wireline SIP application server to a CSCF and bingo ! We have a system working. Isn’t SIP so great’ ? Both the statements are typically made by people who read a web tutorial on the IMS and make their own conclusions. So I thought it would be nice to put up a small status update on the IMS and 3GPP , as I see it. What is the IMS, really ? IMS is an all-IP based network architecture for the mobile world. The ‘IMS’ is not a new protocol ! Neither is ‘IMS-SIP’ – there is no such thing. Here is how you should look at it: the IMS (IP Multimedia Subsystem) is a network architecture. It uses SIP in addition to a variety of other protocols to specify an architecture that is suitable for use in a mobile deployment. To achieve a mobile deployment network requirement, it may be necessary to ‘extend’ protocols to support certain scenarios that do not apply to other networks (as an example, in the mobile world, you need to worry about going in and out of cell coverage and what that does to your voice call, while this is not an issue with fixed wireline phones). Therefore, IMS had made several extensions to SIP messages and headers and more importantly, have specified procedures that tackle these special scenarios. This is what marketing calls ‘IMS-SIP’. In reality, it is SIP with relevant extensions. This distinction is important – ‘SIP with relevant extensions’ follows the basic RFC 3261 principles of ‘those who do not need to understand these extensions can pass them down/upstream without breaking anything’ while ‘IMS-SIP’ implies it is a fundamentally altered protocol from the perspective of principles. What is the difference between 3GPP and IMS ? This is important. IMS (and SIP) is just one part of 3GPP. 3GPP specifies a multi-level architecture which covers Radio Access, IP Connectivity, Session Management and Services. Out of this, IMS kicks in only for Session Management and Services. Within the IMS, SIP is only one (but important) protocol. There are many other protocols in use for different purposes (authentication, user profile, billing etc.) What are the design goals of 3GPP ? If I were to put it succintly (people say I have a hard time saying anything succintly):
I remember back in 2000s, every show you went to, people had large billboards saying ‘SIP’. At that time, H.323 proponents would make snide comments about ‘Oh it is just a marketing ploy. SIP is too immature. It is just not ready’. And they were right, then. I recently attended CTIA wireless in Vegas, and in 2006, I noticed that 3 lettered acronyms are still favored, but its not SIP. Its ‘IMS’. And this time, ‘wireline SIP vendors’ are making snide comments about ‘Oh it is just a marketing ploy. IMS SIP is too immature. It is just not ready’. And they are right, partially, at least for now. It is all really a cycle. Technology takes time to mature. In a previous
- Access Independence: The architecture should work over any access (UMTS, CDMA2000, WCDMA etc)
- Service Independence: The architecture deployed to bring users new services should not be closely tied to the mechanics of the underlying network so that 3rd party application vendors can use the ‘underlying network’ as an ‘SDK’ to build new services. As a corollary, the core IMS network should not need to be aware of the exact service it is executing. This enables scalability at the core and full control at the services layer
- Strong identity and authentication: Cell phones are used for critical business operations. This is a multi-billion dollar revenue model. Fraud, identity theft, rogue operations and similar is serious business here.
- Conform to the essential principles of SIP – the IETF has worked very hard with 3GPP to ensure that the usage of SIP is in line with the architectural goals of the protocol.
Has 3GPP succeeded in its goals ? Access Independence: When you start designing a 3G network, you will see that a lot of procedures are repeated. For example, when a phone first switches on, there is encryption and authentication at the radio level. Then, there is authentication at the IP Connectivity level (where your phone gets an IP address). Finally there is authentication again, at the SIP level. When you think about it, the only way to achieve ‘layer independence’ is do not assume that any layer below you will perform any critical functions that you need at your level. While Release 5 of the 3GPP system had some dependencies with GPRS being the access layer, subsequent releases fixed these holes. Today, Release 7 & 8 of the 3GPP/IMS architecture does a good job of access independence. The same architecture can be deployed over a variety of access mechanisms (including WLAN, xDSL etc.) Service Independence: If you see how the IMS subsystem of the 3GPP model is architected, they have done a good job of isolating ‘service’ from ‘core’. Any ‘service’ is hosted by an application server, which talks to a ‘core router’ called S-CSCF via SIP. If the application server needs to talk another protocol (like Parlay), then an adaptation gateway is deployed which coverts from Parlay-SIP. The core routers do the job of reaching the messages to and fro without knowing that the message really is for a ‘presence based conference service’ for example. In addition, the entire charging architecture of the IMS is very generic:
- Several nodes in the IMS are capable of generating CDRs
- There is a well defined mechanism for the IMS to communicate with the ‘IP Connectivity’ layer to correlate billing records. (For example, if you are doing a voice chat, the IMS level only sees the signalling, while the voice is streamed via a node called the GGSN which is part of the IP Connectivity layer. So how do you ensure that the provider can charge by media content, if required ? You do it by defining a well defined mechanism for different layers to communicate with each other)
Strong Identity and Authentication: 3GPP has detailed procedures for strong identity and authentication. When a device registers, it is securely authenticated and verified at multiple levels, including at Radio level as well as IMS-SIP level. In addition, there is a wonderful concept of associating more than one identity to a user. For example, “Bob” may have bought a subscription from a 3GPP operator, but may want to ‘login’ from his desktop PC or his mobile. Depending on which device he logs in from, certain features may be enabled or disabled (example, his mobile phone may not support wideband codecs). Conformity to the basic principles of SIP: This ofcourse is a lofty goal and a continuous target. I have been tracking IMS since release 5, and with every subsequent release, they have inched closer to this goal. There will be certain differences, based on the network in question (for example, IETF would like SIP architectures to be oblivious of the service defined and rely solely on primitives. 3GPP on the other hands wants to ‘specifically identify a service’ so that it is easier to map QoS and priority to the service in question by the operator). Also, by the time a message leaves the core IMS boundary (from the S-CSCF to the AS, for example) several of the proprietary headers are stripped off – and only a few headers remain, which external agents still have to process, but atleast not in the scores ! Are there any issues with 3GPP/IMS ? Of course there are. Specification of an all-IP based system for the mobile world is much harder than for a wireline fixed world. People who think otherwise have probably never designed a mobile network. There are several issues still pending with 3GPP/IMS which have not yet been adressed. For example:
- All IP emergency handling is still work in progress
- Mapping of basic supplementary services to an all IP mechanism is still being defined
- Several interworking situations are not yet addressed (for example, if a user is roaming in a circuit switched network, how does he participate in a PoC session and try to control the floor ? Who maps TBCP to something else ? )
- User/service provisioning is still somewhat adhoc – even though there is an HSS, most providers use proprietary provisioning mechanisms. Even though 3GPP has a ‘generic user profile’ reccomendation out, very few actually use it.
- Interworking IMS entities with non IMS entities is only address at a high level. Several details are ‘TBD’ (here is an example: an IMS UE should perform a local ringing alert only when the remote party signifies QoS commit has been approved, via UPDATE. A wireline SIP endpoint will start local ringing the moment it gets an INVITE. In other words, if wireline SIP endpoints do not support this flow negotation, some mediation will have to do it. There are many other nuances)
Conclusion All in all, 3GPP and the IMS archtecture has made great strides in creating a multi-level heirarchy which ensures architecture isolation and distribution as well as offers existing mobile operators a mechanism of protecting their investments. When several ‘p2p’ proponents call out 3GPP as a ‘walled garden’, really, it is an operator who chooses to deploy 3GPP with walled garden administration policies. The architecture, by itself, I believe, is as neat as it could get, considering the challenges it is trying to solve. More often than not, the people I meet are either: a) Wireline folks who have little idea about the mobile world and love to talk about the simplicity of 'migrating to a wireless world' with a simple addition of some 'magical converter' b) Paranoid folks who think the IMS is such a complex beast that it will take eternity and a few more weeks to realize it. The truth, really, is somewhere between the two.