Monday, July 29, 2013

IETF87 in Berlin

This week is the 87th IETF meeting in Berlin, Germany, with over 1500 participants looking to move one step further the standardisation specifications for Internet related protocols.
A part of it is related to real time communications, including SIP as signaling protocol, IPv6 or DNSSEC/DANE as technologies everyone rely on for the future, and of course, not the last one, the WebRTC and WebSocket. These are topics close to Kamailio project and we want to stay up to date and involved in their evolution process.
Among our project developers, I and Olle E. Johansson are at the event, if anyone is around as well and is interested in getting an update about what’s up lately with Kamailio, hunt them in the area or ping them on the mailing lists.

Sunday, July 28, 2013

Kamailio – five years later

Five years ago we had to rename OpenSER to Kamailio and we continue with it since then. It’s very unlikely that a new rename or other similar disturbance will happen, we own the trademark and the domain names within a solid group of developers.
Although we lost the former project name domain, meaning that we had to start more or less from scratch with reputation, all developers loyal to the project together with the community of users succeeded to bring Kamailio quickly to a world wide recognized brand, keeping it as the leading open source SIP signaling server, offering flexibility and robustness along with a fast innovation process.
It was a really great cycle of 5 years. We started at major release Kamilio v1.4.0, getting out six other major release series v1.5.0v3.0.0v3.1.0v3.2.0v3.3.0v4.0.0 (click on version number to see details for each release series). The next one is just few months away, it is planed to bev4.1.0.
Managing to go through two forks over the time, Kamailio became stronger than ever. The development team is at its peak so far and year over year activity is continuously increasing, as shown by the Ohloh project. To quote a bit of the Ohloh statistics, one person would need 217 years to develop Kamailio from scratch (so hurry up if you want to do it…) or a budget next to 12 millions dollars.
A list of what were the new features added along the past releases is available on the wiki. To point some of them: asynchronous transport layer for TCP and TLS, raw socket UDP (30% faster than system UDP), full SCTP implementation, asynchronous SIP message processing in routing script, DNS caching for proper NAPTR+SRV load balancing and fail over, DNSSEC, WebSocket transport layer for WebRTC, over a dozen of IMS-related modules, embedded XCAP server and MSRP relay for rich presence services and instant messaging, prepaid engine, embedded interpreters for Lua, Perl, Python, Java, C#, F# and other managed code languages … and hundreds of other new features.
On the other side, not strictly related to writing code, among variety of important milestones and achievements in the evolution of the project:
  • full integration of the ancestor project SIP Express Router (SER) into Kamailio
  • running our own standalone conference – Kamailio World
  • a healthy business environment around project with a diversity of companies, sprung from developers or community members
  • continuous participation with reference implementations, demos, workshops and presentations at events around the world such as Fosdem, Astricon, Cluecon, LinuxTag, SIPit, SIPNoc, Mobile World Congress, IT Expo, UC Expo, VoIP2Day, WebRTC World, OSCon, DevCon, a.s.o.
  • winning of Best of Open Source Networking Software Award and ITSPA Members’ Pick Award
Looking back, it was a lot of work, hard work – only that can result in high quality outcome. But even hard work cannot succeed alone, it has to be done by a capable development team collaborating closely with a fantastic user community. And Kamailio project is fortunate to rely on such people. At the core of the project are people that operate daily platforms serving millions of active users or routing billions of minutes per month, people that were involved in the design and deployment of early stage Internet or defining communication standards, people tackling multi-billion corporates to redefine telephony vendor market and real time communication services, people with consistent expertise beyond SIP and VoIP. The evolution during the past and current state ensure a great future for the project!
At the end, it’s yet another opportunity to express the gratitude to everyone contributing to the project, not matter how much, everything as a whole is what counts in the end — do not hesitate to come on board, it is an open and friendly community.
For the rest of this year, watch us closely for release of v4.1.0 and come to meet with our members at events around the world such as ClueconAstricon, ElastixWorld, VoIP2Day and several dedicated workshops or trainings coming out in the fall.

Monday, July 22, 2013

Details on charging in IMS with Kamailio

Carsten Bock has published an article about how billing is done in IMS. It is available here:
They are working on integrating Kamailio with the Mobicents Charging Server, the connection between the two systems will be done using Diameter protocol.

Thursday, July 18, 2013

Cluecon – August 6-8, 2013 in Chicago

This year at Cluecon conference, August 6-8, in Chicago, USA, two of the Kamailio Development team will present about specific features of our project. Other people from community have presentations that will touch Kamailio in a way or another.
You can see more details about Cluecon, including the full schedule at:

Wednesday, July 17, 2013

DNS operations in Kamailio configuration file

Several functions and a new pseudo-variable class were added to ipops module, allowing to do operations with DNS directly from configuration file.
One functionality is related to matching an IP address to a hostname. The hostname is resolved via a DNS query and then the IP is matched against the result set. There are two versions of this function, one using the system resolver and the other using the internal dns resolver, see:
Another enhancement is the possibility to store the result of a system dns query in a variable container and access the values from the config file – the function for the query is dns_query(hostname, pvid):
The result is stored in $dns(pvid=>key) variable – you can see details about what keys can be used as well as an example at:
The system DNS queries use getaddrinfo() C function, resolving both to IPv4 and IPv6.
Among use cases of the new functions:
  • Detect that among addresses behind a host name are some in IPv4 or IPv6, giving the option to force a specific address family
  • Check if the From header domain is matching the source IP, allowing tighter restrictions for peering even without TLS or IP list restrictions
  • IP whitelisting/blacklisting checks before creating complex structures like transactions or dialogs

Tuesday, July 16, 2013

New Kamailio Developer: Lucian Balaceanu

Kamailio project is pleased to announce a new developer for the Kamailio project: Lucian Balaceanu.

Lucian works in 1&1 AG office in Bucharest, he worked on several internal projects with our
Kamailio stack and will contribute some fixes to the sipcapture and carrierroute module. He will also probably commit to other components from time to time.
His GIT commit user ID is: lbalaceanu
A warm welcome and looking forward to his contributions!

Tuesday, July 9, 2013

New RTPProxy Control Protocol

Richard Fuchs, from Sipwise, has committed on a personal branch a version of rtpproxy control module for Kamailio that tries to follow the discussions held way back to develop a NG version that is more flexible and extensible:
The protocol use bencode instead of json as the format of the messages. A RTP relay application using this protocol is already available, developed by SIPwise.
You can see the full announcement at:
If you want to send your comments, join the discussion on sr-dev mailing list.