Do you remember the times when service providers didn’t think about issues such as being a pipe versus media company? When media consumers could easily identify which device is used for video and which for audio? When content creators had to buy equipment in millions and millions of dollars just to create one minute of moving picture - and distribute it?

Well, these times are long gone. Today, technology is disrupting the whole industry - and its value chain. Content creators are making new innovative media products for a fraction of the cost, and distribute it independently. Availability of high bandwidth across networks poses a dilemma to service provider regarding their role in the market place, and which infrastructure will support an unclear future. Users consume media in various shapes and forms - often with intrusive content protection methods that affect their rights.

IMTC Forum will discuss these issues and more, with thought leaders from companies such as Radvision, Cisco, AT&T, BEA, Avaya, RealNetworks, FWD, and independent content creators. Panels cover perspectives of each industry player - vendors, users, content creators, service providers, and the link between content delivery and unified communication.

The event, a Fall VON pre-conference, is taking place in Boston on the 29th of October. Come to say Hello, and be a part of a controversial and insightful conversation.

(Cross posted here)

Technorati Tags: , , , , , , , , ,

By Tsahi Levent-Levi

I came across an interesting comparison between H.323 and SIP in a Cisco related blog. They make a pretty good technical analysis, but the comparison lacks in its completeness.

Both H.323 and SIP are used today for VoIP, and they are considered interchangeable solutions. The comparison made covers the following issues:

  • Philosophy – H.323 does calls, SIP does sessions
  • Reliability – H.323 reliable by design, SIP by responsible user agents
  • Message Definition – H.323 uses ASN.1, SIP uses ABNF
  • Message Encoding – H.323 is binary, SIP is mostly textual
  • Media Transport – both use RTP/RTCP and SRTP
  • Extensibility – H.323 extensible by design, SIP breaks interoperability with extensibility
  • Scalability – H.323 scalable by design, SIP by implementation or by additional IETF standards
  • Addressing – H.323 supports multiple addressing schemes, SIP has only URIs
  • Billing – H.323 has billing by design, SIP by implementation

And the list goes on to other issues. It seems strange to me that in all, H.323 either excels or does as good as SIP. This being the case, why does every new developer looking for SIP?

I have been working with H.323 and SIP for several years now, and I can say that both have their advantages and both are broken in some places. H.323 is a lot better today in issues of interoperability – a lot of it can be easily attributed to the IMTC’s work in this area. I also have a warm place in my heart for this particular protocol – I have been working and dealing with it for many years. That said, the comparison above lacks two main points:

IMS

The 3GPP’s next generation network, which has been adopted by the Tispan and CableLabs (making it the de-facto network in the world in the future). This happened as the 3GPP added interfaces scenarios and call flows to SIP, giving more advantages to it.

H.323 is not part of IMS and is irrelevant for IMS.

SIP is at the core of IMS.

Market

H.323 is dominant today and has large deployments around the world. It is a lot better where it comes to video conferencing, and can be found a lot more in the enterprise.

SIP is the protocol of choice for most developers today – it is quite strong in the consumer and service provider markets. If you are a company about to develop a communication product, you will probably be selecting SIP. It is not as good for video conferencing, but it is getting there.

Services

There is another parameter that is important, and that is what services are part of the protocol and what new services can be offered easily?

H.323 focuses on multimedia calls in all of their flavors. Voice only, video, data collaboration, conferences and a rich set of telephony services.

SIP doesn’t seem to focus on anything in particular. You can use sessions to make calls with it (voice, video – whatever), you use it for presence and instant messaging, and you can use it for a large array of additional services as well.

That said, these services can be added to H.323 as well – this statement would be true to trying to add new services to SS7 though…

Now, if you opened a company now, which protocol would you decide use? What would be your decision looking only on technical aspects, and what would it be looking only on market aspects?

Technorati Tags: , , , , , , ,

.

By Oren Libis

MONA is a call setup time reduction technique used in 3G-324M. In the past several weeks I have noticed that a lot of handset developers and operators out there – not members of the IMTC, are a bit confused at what MONA is and how it really works.

The 3G-324M Activity Group in the IMTC is working hard in the past year on MONA. We’re doing interoperability testing whenever we can and we are going to meet again during October 8-12 for a face-to-face interoperability event with MONA as one of the main items.

What is MONA?

MONA is a call setup time reduction specification for 3G-324M. It is a set of 3 different techniques: MPC, SPC and ACP. I won’t go into the technical aspects of each, but it is important to understand the following points:

  1. Each of these techniques alone can reduce call setup time to below 1 second.
  2. Each of these techniques has its advantages and disadvantages – this is why MONA specifies three different techniques and not only one.

MONA Classes

3G-324M MONA specifies in addition to these 3 techniques, 3 different classes. 3G-324M products need to support only one of these classes. Each class indicates which of the 3 techniques (MPC, SPC and ACP) need to be implemented:

  • Class 1, which requires MPC, SPC and ACP
  • Class 2, which requires MPC and ACP
  • Class 3, which requires SPC and ACP

The different MONA classes are interoperable with each other. For example, if two handsets support MONA, one supporting class 1 and the other supporting class 2, the call that will be established will either end up using MPC or ACP; if one supports class 2 and the other supports class 3, the call will simply use ACP.

What does is mean to you?

  • If you are a developer, you should choose to develop the class that makes the most sense to you in terms of resources, footprint, memory and time to market.
  • If you are a mobile operator, you should not force vendors to support a specific class – let your vendors choose their own class – in the end result, you will still get below 1 second of call setup time and you will be giving the vendors some flexibility.

Technorati Tags: , , , ,

.

By Oren Libis

Last time, I tried to explain my view on the GCF test cases. As these are test cases that you need to pass before deploying your product (by going to GCF test labs), no matter how farfetched they are, you need to handle them. But there are another important interoperability issues that the GCF doesn’t handle. These are the real deployments out there today.

There are a large and growing number of 3G handsets out there and they are coming from several handset vendors. Each one has its own behavior and quirks. You’d be amazed how much effort it takes when you develop a 3G-324M stack to handle all of these quirks and how much you need to invest on the codec level and application level to get things done right.

Difference in behavior

This difference in behavior happens due to the complexity and richness of 3G-324M. Granted – it does only a video call, in a straightforward enough scenario, but the amount of options that this single scenario has is almost unlimited:

  • It supports multiple types of codecs each with its own set of configurable parameters
  • There are H.245 messages flowing
  • Media quality needs to be handled differently by the various media systems out there
  • Different developers have implemented 3G-324M, each one understanding the standard in his own way

Server side equipment

There are also servers on the network. These most of the time are using circuit switched networks in front of the handsets, where they are running 3G-324M, but they are also using IP based standards such as H.323 and SIP on the network side, when interacting with media servers for example. They have a different kind of behavior than handsets and they have a different decision making processes designed into them, bringing in more interoperability issues to bear.

What do you do?

The most important suggestion I can give developers of 3G-324M products is to do the GCF test cases that they must in order to get validated, but to focus and invest a lot on the handsets and servers interoperability. Try to get your hands on as much information as possible during your development regarding the differences in behavior of the handsets and servers and make sure you test against as many handsets as possible before you try to deploy your product through an operator.

Technorati Tags: , , , ,

 

.

By Oren Libis

Managing interoperability for 3G-324M is not easy if you are a handset developer. There’s a lot to be done and some of it doesn’t always make sense.

What happens when a handset manufacturer finish developing and testing his 3G handset and wants to go sell it through an operator?

This seems like a straightforward enough process: you take the handset, you make sure you test it properly in your labs with a professional QA team and you’re done. That may be the case for things long supported by 3G handsets, such as audio calls over GSM or sending SMS messages, but for 3G-324M this is usually a bit more complex.

3G-324M testing has several different test phases: there are the IMTC, which does interoperability events – and publishes test cases, you have the GCF test labs, which validate handsets using a subset of the IMTC test cases, and then you have handsets and servers that are already deployed.

I have been working for a long time now with handset manufacturers and I have come to the conclusion that sometimes the focus is on the wrong kind of tests.

It might take a bit of time, so let me start by focusing on the GCF.

Take the GCF selected test cases for example. Since most of them are important when you validate your handset – they are all mandatory. But from analyzing them closely you can easily split them up into 3 distinct groups:

  1. Important test cases
  2. “Nice to have” test cases
  3. Unnecessary test cases

I’ll give an example of each. By the way, as the GCF test cases are simply references to the IMTC, you can find all of these test cases here, separated into two distinct documents: interoperability and compliance.

Important test case
An example of an important test case is test case 54. It deals with master slave conflicts – a situation that is common when you have a call between two handsets from different vendors. A few years ago, a lot of handsets on the market and those developed by IMTC companies were unable to pass this test case. As this one deals with a plausible and common scenario, it is important to test it.

“Nice to have” test case
A “Nice to have” test case is test case 47. It checks to see if a handset is capable of accepting a change in media transmission rate because the other terminal/server requested him to do so. I have never quite seen this kind of a scenario happen in real life (it might, I just never saw it). You can take my word for it that this procedure is not that necessary and effective when video is presented on a small screen like the one used in 3G handsets. So this is a “nice to have” test case in my view – it’s a good enough feature, but the problem it comes to fix is just not there most of the time.

Unnecessary test case
An unnecessary test case is test case 45 (and 45u). In this test case, you need to respond to a RequestMultiplexEntry message – either by acknowledging it and sending the entry’s information or rejecting it. If someone is sending it to you, it means that he is already in a lot of trouble, as he didn’t remember what you told him (there are only 16 entries, so this must make him a senile). Let’s assume you reject it – this makes him unable to do a thing about it but drop the call. So we have a test case where the one you are working against is faulty/senile – you choose, and you can decide you don’t support this feature, hence causing a disconnection (and you are still validated by the GCF!). I have never seen a real handset acting in this kind of a way when the terminal he was working against was doing his part of the job. This means that developers need to handle this test case (and a few others similar to it) although their handsets will never actually be in this scenario.

Distinguishing between the different test cases is not easy and requires some knowledge in 3G-324M and in what different products, both handsets and server, are doing. At the IMTC’s 3G-324M Activity Group each company gets to work against a large variety of companies and products with the actual QA and development teams of these companies. This provides important information that can assist any handset vendor to pass his interoperability tests once he gets to that point.

Technorati Tags: , , , , ,

 

.

By Tsahi Levent-Levi

Remember my post about IMS access?

I talked about how a user is authenticated on the network using a key exchange mechanism (AKA-MD5 or IKE) and IPSec to ensure privacy.

We were left with this one nagging issue derived from the fact that IPSec is used differently with different types of access. These are:

  1. Transport mode, when we use IPSec with AKA-MD5, and we have a USIM.
  2. Tunnel mode, when we use IPSec with IKE, and we don’t have a USIM.
  3. Transport over tunnel mode, when we use IPSec twice, since we’re outside an operator network.

Why is there a difference? Why not have IPSec in a single mode (like IP VPN) and be done with it?

Well, let’s start with tunnel mode. In tunnel mode, the data that you want to send is going to be passed “as is”, with the key exchange done using either IKE or MOBIKE. That’s not good enough for our USIM (the one that requires AKA-MD5, as it makes more sense to manage the data in front of the operator’s HSS). AKA requires exchanging keys and tweaking some internal parameters of IPSec. So we need to use a different mode for IPSec in this case. The problem is, some of the operating systems most commonly used in mobile handsets do not support this mode. So there is no real solution today for developers. Hopefully, solutions will become available soon.

Doing IPSec twice is sort of like peeling the layers of an onion. The external layer is tunnel mode, where you use IKE in front of your wireless network’s access, but then tunnel the IPSec packets generated using transport mode, which were generated with AKA-MD5 to authenticate the USIM you have with the mobile network (since you don’t have direct access to it) inside it.

So IPSec alone is also an issue.

Do you think this post was written just to make you developers despair? Nah… I know you guys. I am one of you. We developers love challenges. We thrive on them. And IMS is a doozie!

Technorati Tags: , , ,

.

IMS and access

June 11, 2007

By Tsahi Levent-Levi

Let’s explore the issue of access (how IMS clients register on the network and gain access to services) in the world of IMS. Today, the way this is done over UMTS is simply by using the USIM (that small card hiding behind the battery of your handset. You know; the little bugger that falls out of the phone and onto the floor sometimes).

The USIM card is what holds the information that links your identity with the mobile operator’s database. And that’s what it does on an IMS network too.

So what do we need to do? Connect a mobile handset that has a USIM to the network. The technique used is asymmetric keys, exchanged in SIP, using a procedure called AKA-MD5. And since we want the actual exchange of the information to be secure, we send everything on top of IPSec, in a mode called transport mode.

Sounds OK. But that’s the 3GPP way of doing things. IMS has been adopted by all sorts of networks, and all types of Wireless LANs (WLANs) will now used as access to IMS infrastructure.

But wait – WLAN devices don’t have USIMs. And no asymmetric keys you can use directly. And you still need authentication. Maybe the solution is to use IKE! — not AKA-MD5. And why not use IPSec – we have that already. And once we are doing that, we should use a different mode of IPSec (tunnel mode if you’re really into details).

Let’s see… can we make it even more complicated? What about all those mobile devices that have both USIM and WLANs. OK, here’s a neat solution. Let’s do IPSec twice (yes – twice!) on each and every packet we send. One will provide access to our WLAN network, and this will tunnel IPSec packets that are targeted directly at the IMS core of the mobile operator. So lo and behold, now we are going to have transport level over tunnel for IPSec!

Confused? Well, so am I.

And as if all this wasn’t enough, I haven’t even gotten into all the veritable alphabet soup of other issues like MOBIKE, EAP-AKA or EAP-SIM. Ouch!

To make a long story short, this may sound and look unwieldy. But it works.

When you are developing new products, don’t forget that gaining access to IMS can be quite a complex task. It depends on which transport you are using and what network you are trying to access. So roll up your sleeves, get out your acronym glossary and get to work!

Technorati Tags: , , , ,

.

By Tsahi Levent-Levi

In my last post, I discussed SigComp and how it relates to the wonderful world of IMS. SigComp though is only part of the IMS compression story. There is more. Much more.

Just in case you forgot – messages are big. We would all like to shrink them so that they use less of operators’ precious bandwidth. We tackled the big message problem by compressing the content using SigComp.

But there is one “minor” issue I left out last time – the issue of IP. IP is a nice enough protocol, and is required for IMS (you remember the IP Multimedia Subsystem…).

SIP messages are sent over TCP or UDP, which in turn are sent over IP. RTP packets (you know, that media we want to see or use) are sent over UDP, which again means it is over IP.

Last time, we dealt with the SIP message issue. But what about the IP, UDP, TCP and RTP?

All these have their own headers that add lots of overhead to the messages themselves. We’re talking about 40 bytes for an IPv4 packet sent over RTP (UDP and IP included). And if we have to send 50 of those packets every second just to keep our audio running, we have some pretty heavy packets to deal with!

The solution to this problem is ROHC (Robust Header Compression). It is defined in various RFCs, with different modes of operation. I won’t delve into the technical details, but would like to point out one very interesting thing: it’s in the operating system.

Since ROHC is used to tweak the size of IP, UDP and TCP headers and compress them to be 1 or 3 bytes, it requires support from the operating system itself. By operating system, I mean your “average” IP stack that you get for free with it.

What all this means to us, is very simple. To implement IMS – and on a client no less – requires not only application implementation but also an operating system with support for all the architecture’s special needs.

Technorati Tags: , , , , ,

.

By Tsahi Levent-Levi

I have been promising to touch on the different aspects of technology related to IMS, and if there is one thing I am good at – it is keeping promises! This time I will start with one of these – compression.

For all you history buffs, let me take you back in time a bit. Once upon a time, there was a great protocol named SIP. It was simple (yeah, sure!) and easy to use. It was text based (Look Mom… you can see messages!), so it was easy to implement, maintain and debug. Many people started to use it and promote it big time. And it did have some great routing and filtering criteria capabilities. So at some point, the 3GPP decided to adopt it for IMS.

So the world was a better place with a nice, simple, text-based protocol, used for signaling purposes over mobile networks. And since it’s signaling, and you don’t have a lot of information you need to convey, it should work. But as time went on, people saw that the messages and the amount of information were actually quite large. When you start adding routing information, authentication and authorization information, billing information and some more – each message becomes REALLY big.

At the end of the day, we had a text-based protocol, with large messages, running over mobile networks. Our problem: mobile networks have lower bandwidths than fixed IP networks (mostly). Also operators out there have to actually pay for the bits you use. For them, more bandwidth required per user for simple calls means less capacity in their cells… and more power consumed by the handset which means a shorter battery life. What to do?

Zip!

You take those messages; you somehow “zip” them and then send them on their way when they take up less space. Since it’s text, it zips quite well.

The secret behind this “zipping” is with a compression protocol called SigComp (RFC 3220, and more) – Signaling Compression.

Everyone agrees: SigComp is nice. It’s general purpose, and it can use different compression algorithms. You can optimize it for the exact messages and scenarios you use. But it’s complex…

By complex I mean that SigComp actually uses bytecode methodology. When you compress messages, you can send along the code that is used to uncompress the messages with the compressed data. This is done using the predefined UDVM (Universal Decompressor Virtual Machine) instructions set (hence bytecode) that outlines the different atomic operations allowed in SigComp.

The process is fairly easy. To compress, you choose an algorithm, use it for your compression, send the compressed data along with the algorithm, and the other side uses the algorithm you sent to decompress.

To make things even more interesting, there’s also a dynamic version of SigComp, which lets you update the SigComp states used in mid-session to provide optimized compression as well.

But then, what could you use as a compression algorithm? Would you go for an LZSS or a Deflate one? Would you do the dynamic optimizations with it? Do you go to patented compressions? Have you thought how much MIPS will this thing take on your mobile???

Lots of questions, huh?

So we have the IMS (3GPP that is). 3GPP means mobile networks. It also means limited bandwidth and the need to compress.

Remember though… there are other standards bodies that do not necessarily need compression, but have adopted IMS architecture. TISPAN and PacketCable, for example, are focused on the wireline and cable telephony networks. So our efforts in this area really are a wider attempt to build a single paradigm for all types of telephony and services! A virtual Utopia! Where everything looks the same.

But our friends who are adopting TISPAN and Packet Cable took a peek at our SigComp in IMS and said, “Sorry. We don’t need it.” Their networks can handle large messages, for them, adding SigComp just adds complexity and requires even more resources.

So, on top of everything else, you are faced with the million dollar compression question: Do you need SigComp or not?

Oh yeah… and what about WiMAX?

So you see, SigComp is only part of the compression story. Next time, we’ll discuss other IMS compression issues.

By Tsahi Levent-Levi

In my first post on this blog, I started to explain the real difference between real IMS and “IMS-ready” or “IMS-lite”. In the context of SIP, which is what IMS is all about on the client side, this comes down to an exhaustive, daunting list of features. I know, I know… it is not all SIP. You also need IPSec, XCAP and other such curses. Don’t worry, I won’t forget them.

So to be sure I have enough to write about here, and because I feel that we really do need to understand the difference, I’ll be going over this feature list according to subject: compression, security, quality of service, billing, etc.

Because this is going to take some time, I will try to cover one concept in each post – so stay tuned!

I’d like to wish all our Christian readers, a Happy Easter and all our Jewish readers a Happy Passover. And to the rest of you… try not to work too hard while everyone else is celebrating!