2013 January

January 2013


I’ve been working with SIP for over 10 years, and the starting point was the SIP Express Router by IPtel.org. That server has evolved, the project has both forked and merged back and is now named Kamailio. It’s the SIP server I use for enhanced security, for load balancing, for scalability, for all kinds of fixes of broken SIP implementations and much more. This is also the focus of my SIP training classes.

kamailio-4-0Major Kamailio upgrade

Kamailio is soon about to release a major new release, with over 15 new modules, with extended support of IMS, with web sockets and much more. This is the first release where I have contributed actual code. Previously, I’ve focused on making sure that the documentation is covering everything, is readable and correct. For version 4.0, I have done the same, touched almost all module documentation files.

Lear more about Kamailio in a short presentation!

Here’s a quick introduction to Kamailio – the Open Source SIP server – and how it compares to an IP Pbx like Asterisk or FreeSwitch.

A new Asterisk is being worked on. I look forward to it!

A new Asterisk is being worked on. I look forward to it!

I must say that I’m impressed with the new project leader for Asterisk, Matt Jordan. There are big changes happening under his leadership and I don’t think everyone has understood the huge tasks he’s taken on with his team. I’m not sure I’ve understood all of it either.

Here’s a list of things I’ve seen on the mailing lists:

  • Dialog with the community is much improved. Brainstorms happen in the open and things are developed in the open. This is a big change. I just hope I had more time to engage, but that’s my problem. The community seems a bit surprised too. I expected much more participation. We need to relearn how to contribute and discuss, now that we’re allowed to do that again.
    Digium had to re-learn how to interact with the community – but that goes two ways. The community needs to stand up to the challenge. Get involved.
  • Old issues that we wanted to forget are attacked and fixed. Like Masquerade and bridging – it’s all about to change. When I worked with Terry Wilson on the SIP transfer code in 1.2 we learned to hate Masquerade. That’s years ago and the masquerade is still around, annoying all Asterisk developers. It’s a complex operation that, well, causes a lot of issues. Time to get rid of it and get a modern multichannel bridge active in every call.
  • Manager is being changed dramatically.  Manager is getting an overhaul into something more logical for the current design of Asterisk and languages and methods used to build AMI applications. Yes, this will affect everyone’s 3rd party applications. Applications needs to move on, sometimes we just can’t be backwards compatible. Most applications doesn’t support punch cards and output exceed 80 characters per line quite often… Asterisk is ten years old and it’s time for some new designs. Asterisk 11 is a LTS that will live for a long time, giving developers time to adopt to the new Asterisk.
  • The SIP Channel is rewritten. This is a gigantic project and has been needed for almost ten years. I never thought we could get funding for a complete rewrite, so I opted for remaking the current code in my old Codename Pineapple project that never got fully funded at the time. I have tons of opinions about a new SIP channel, but have no resources to really participate, just add a comment here and there like a grumpy old grandpa…
    I wish the developers follow my SIP2012 efforts (soon to be renamed SIP2014) and learn modern SIP and have the new SIP functions as part of the design. I do hope that they DO NOT base it on the current SIP channel that lacks transaction support, has poor ideas on SIP branching and forking and… You know. The new SIP implementation is required to work in larger SIP networks with proxies, unlike the old SIP channel. We need domain support, we need SIP URI support, we need security that works. That means that the developers need a better understanding of SIP than has been the tradition in the Asterisk development team. They’re always free to contact me with questions, which would be a positive change too.
  • New APIs are developed. Manager and AGI and ExternIVR are things that have happened and evolved but was never part of a consolidated effort to create a good unified API to Asterisk. We’ve discussed this at many Astridevcons under different names – PineMango was one of them. For Asterisk to survive, we need a modern API.
  • Realtime is changing. Josh Colp is working on a new object handling system, again something discussed many times that finally happens. We do need a replacement of the poor realtime architecture that has been extended beyond control. We need to be able to use an API to manage in-memory objects in real time. It seems to me that this is exactly what File is working on.

Doing all of this at the same time sounds to me like someone wanting to make a stand. If all of these project will be completed we will have a brand new Asterisk coming out. Kevin changed almost all the internals for the better . Matt and his team will change a lot on this list (and propably much more), things that change the functionality for the better, not just improve stability. Both are needed, but from a marketing standpoint all these changes are big things that can make a real splash at product release.
In the future I hope we can have time to spend on innovation, new things that will amaze all of us, that fits into this new Asterisk. Not just rewrites and stabilization.

The Matt Jordan challenge – what’s the community response?

Inspiration for this new stuff needs to come from the community. We expect too much work being done by Digium – even though they keep showing us that they still invest heavily in Asterisk, even in bad times. Can the community step up and assist in the redesign of our good old Asterisk? There are so many companies out there getting their living out of Asterisk. Fund a developer, contribute with resources, test, participate. The Matt Jordan challenge is on!

Thank you Digium

A big thank you to Digium and Matt and your team for all this work. It sounds like you are having fun. We did need more fun in Asterisk. We did need more open communication with the community, improved interaction – and I’m very happy to see the changes happen. The next step is a vision for Asterisk – that’ll be the OEJ challenge. Where is Asterisk going?

 

SIPitSIPit is one part of the SIP development. IETF develops new proposed standards and additions to existing standards – but they need to be tested for interoperability. Just writing documents is not enough. We need code and we need agreements that the standards actually work and deliver interoperability to the users. One implementation following the standards should be able to interoperate fully with another implementation of the same standards. If not, we have a huge problem.

The SIP Interoperability Testbed

SIPit is organized by the SIP forum and lead by Robert Sparks, one of the engineers in the IETF. Robert has organized 29 SIPit events around the world and the next one, SIPit 30, will be hosted by Cisco Systems in Raleigh-Durham, North Carolina, USA. At SIPit we test both the base SIP standard, as documented in RFC 3261, and the new additions, like SIP Outbound, SIP identity, GRUU and ICE. We have phones, proxys, conference bridges, session border controllers and all kinds of devices as well as SIP stacks under development. We have a gentleman’s agreement not to reveal anything else than generic test results. I can’t use Facebook and say “ha ha, Saul’s new SIP server sucks!“. This leads to a very open and helpful environment. We teach each other, wants everyone to succeed and learn a lot in the process.

Here’s a presentation with a few bullet points to explain to you and your employer why you need to register now! The company will earn on it, get a better product. You will learn more. See you at SIPit!