The way in which communication standards are implemented is usually done through protocol stacks. Companies will usually acquire such stacks from third parties and not implement and maintain on their own. How does one select a protocol stack? What makes a protocol stack of one vendor better than that of another?
Support is definitely the most important aspect of a protocol stack. VoIP products are complex – developers building such products will need all the help they can get when it comes to utilizing complex protocols through protocol stacks and dealing with the customization required by their customers. Without strong support for the protocol stack selected you should expect delays and complications.
Support to me can be split into 3 aspects:
- Documentation – you must have good, detailed documentation for the protocol stack.
- Customer support – when you have questions, you should have a point of contact to ask, with a structured support contract in place to meet your needs.
- Patches and upgrades – as standards evolve, and requirements change, you should be able to grow your product and for that you need a protocol stack that is being maintained and enhanced accordingly.
Protocols are put in place for a very specific purpose – to make products from different vendors work together (interoperate). Interoperability is not easy to achieve and requires a lot of effort – from the protocol stack vendor as well as the product developer. You must make sure you have a protocol stack that is interoperable.
Make sure that:
- The protocol stack vendor in question does interoperability testing in the relevant interoperability events.
- See that the vendor has track record in providing interoperable solutions.
- An advantage would be a vendor that sits in the standardization organizations – this way, you will get the latest interoperable solutions.
- Does the vendor have a testing tool? If he does, it means he places a lot of importance to testing and interoperability. You might even consider getting that vendor’s testing tool.
Using a protocol stack? Make sure it’s flexible enough not only to meet your current needs but also for other purposes you might have in the future. If you’re developing a videophone today, and you might need to build a small gateway later or a home PBX – make sure the solution you get is flexible enough to meet your needs. Otherwise, you’ll need to get another protocol stack or product and then learn, design and implement your next product from scratch.
Flexibility also means having a portable protocol stack. Doing a Windows Mobile phone today? Once you go for an embedded linux one – will you need a new stack or will you be able to reuse the same stack?
- You need a protocol stack or a call control logic layer that is flexible enough to fit the needs inside your company as a whole (or at least in your group). Don’t settle for a stack that is too specific.
- Make sure the protocol stack you get has the features you need and is generic enough to enhance.
- Make sure that it is portable. Either by the vendor providing it or by yourself when required.
Performance is important but it comes last in my list. You will need it. It will make a difference. But first make sure the other 3 characteristics are met first.
Performance is needed for all kinds of products – terminals and servers alike.
- For terminals, memory and footprint will be the main issue.
- For servers, memory and calls per second will be the main issue.