Monday, December 25, 2017

Merry Christmas and Happy Holidays!

Here we are again approaching another end of the year, the 17th since the project was started. More than ever, the year of 2017 has been full of activity, both development and community interactions. We had two major releases, 5.0 in February and 5.1 few weeks ago in December – likely the year that brought most of new features ready for production from the history of the project. We are grateful to all developers and community members that contributed to all these efforts!
The 5th edition of Kamailio World happened in the spring of 2017, now we prepare for the 6th edition during May 14-16, 2018, in Berlin, Germany. We look forward to meeting many of the community members there!
Merry Christmas and Happy Winter Holidays!
Santa is flying Kamailio!

Tuesday, December 19, 2017

Kamailio v5.0.5 Released

Kamailio SIP Server v5.0.5 stable is out – a minor release including fixes in code and documentation since v5.0.4. The configuration file and database schema compatibility is preserved, which means you don’t have to change anything to update.
Kamailio v5.0.5 is based on the latest version of GIT branch 5.0. We recommend those running previous 5.0.x or older versions to upgrade. There is no change that has to be done to configuration file or database structure comparing with the previous release of the v5.0 branch.
Resources for Kamailio version 5.0.5
Source tarballs are available at:
Detailed changelog:
Download via GIT:
 # git clone https://github.com/kamailio/kamailio kamailio
 # cd kamailio
 # git checkout -b 5.0 origin/5.0
Relevant notes, binaries and packages will be uploaded at:
Modules’ documentation:
What is new in 5.0.x release series is summarized in the announcement of v5.0.0:
Note: the branch 5.0 is the previous stable branch. The latest stable branch is 5.1, at this time with v5.1.0 being released out of it. Be aware that you may need to change the configuration files and database structures from 5.0.x to 5.1.x. See more details about it at:
Check also the details of next Kamailio World Conference, taking place in Berlin, Germany, during May 14-16, 2018. Call for presentations is now open!
Thanks for flying Kamailio!

Monday, December 18, 2017

Kamailio World 2018 – Call For Presentations

Submission of presentation proposals for Kamailio World 2018 is open. Deadline for submission is February 10, 2018, notification of accepted proposals will be done latest on March 01, 2018.
Be aware that interesting proposals can be accepted before the deadline, we plan to have two intermediate review sessions before February 10, 2018, announcing any accepted presentations immediately. Note also that at the previous edition there were more proposals than available slots and we expect to happen again this time. Therefore it is recommended to send your proposal as soon as possible, do not wait till deadline.
To submit the proposal, fill in the web form at:
The main topic of the conference is Real Time Communications, with the majority of the content being about Kamailio and other open source projects in the area. However, like for the past editions, we welcome very interesting presentations beyond those subjects.
If you are interested to look at the agenda from previous edition, visit:
Have a great time during the winter holidays! Looking forward to meeting many of you at the next Kamailio World!

Monday, December 11, 2017

Kamailio v5.1.0 Released

December 11, 2017Kamailio v5.1.0 is out –  a new major release, bringing new features and improvements added during about eigth months of development and more than one and a half month of testing.
In short, this major release brings 9 new modules and enhancements to more than 50 existing modules, plus components of the core and internal libraries as well as exported functions to embedded interpreters (KEMI framework) from more than 100 modules. Detailed release notes are available at:
This is the second major release in the series of 5.x.y versions. Besides adding plenty of new features, a lot of development was directed to export existing config functions to KEMI framework, most of them being now available to be used inside scripts executed by embedded interpreters, respectively by Lua, Python, JavaScript and Squirrel.
Enjoy SIP routing in a secure, flexible and easier way with Kamailio v5.1.0!
Thank you for flying Kamailio and looking forward to meeting you at Kamailio World Conference 2018!

Friday, December 1, 2017

Dispatcher Latency Stats Monitoring With Statsd

Julien Chavanton shared via Kamailio sr-users mailing list a Python script that helps monitoring dispatcher latency stats with statsd.
Latency stats for dispatcher were added by Julien during the development cycle of Kamailio 5.1 (this is the next major release to be out in about one week).
The sample script is attached, it will post data to statsd and is working in cron
The feature can be enabled :
You have to enable the latency stats in dispatcher via the module parameter ds_ping_latency_stats:
This is one use case of this feature, another one will be to load balance based on congestion detected on latency, a follow up on using it is planned for the future.
The Python script is:
#!/usr/bin/python
import subprocess
from time import sleep
import time

# URI: sip:10.10.1.1:5060
#0 FLAGS: AP
#1 PRIORITY: 12
#2 LATENCY: {
#3      AVG: 30.529000
#4      STD: 4.849000
#5      EST: 30.999000
#6      MAX: 1270
#7      TIMEOUT: 0

def server_stats(ip):
   idx = -1
   for line in dlist.splitlines():
      if idx == 5:
         est_latency = line.strip()
      if idx == 7:
         timeout = line.strip()
      if idx >= 0:
         idx = idx + 1
      if line.find("URI: sip:{}".format(ip)) > 0:
         idx = 0

   if timeout[:9] == "TIMEOUT: ":
      timeout_count = timeout[9:]
      cmd = "echo \"fastlink.timeout.{}:{}|g\" | nc -w 1 -u 127.0.0.1 8125".format(ip, timeout_count)
      subprocess.call(cmd, shell=True)
      print(cmd)
   if est_latency[:5] == "EST: ":
      latency = est_latency[5:]
      cmd = "echo \"fastlink.latency.{}:{}|g\" | nc -w 1 -u 127.0.0.1 8125".format(ip, latency)
      subprocess.call(cmd, shell=True)
      print("est latency:{}".format(latency))

servers = ["10.40.5.175", "10.40.2.233", "10.40.1.103"]
interval = 10
it = 0
while it < 6:
# while 1:
   ts = time.time()
   print("[{}]now:{}".format(it,ts))
   next_ts = ts + 10
   it = it + 1
   dlist = subprocess.check_output(["/usr/bin/docker","exec","kamailio","kamcmd","dispatcher.list"])
   for ip in servers:
      print(ip)
      server_stats(ip)
   ts = time.time()
   print("sleeping:{}".format(next_ts - ts))
   wait_ts = next_ts - ts;
   if wait_ts < 0:
      wait_ts = 7
   sleep(wait_ts)
You can see the message on the mailing list as well as the attached Python script at:
Thanks for flying Kamailio!