Infrastructure #4: Better communication (VoIP & Jabber)

by Michael Tremer, January 3, 2014

Do you like what you are reading? Subscribe to our newsletter and don't miss out on the latest...   Join Now

The IPFire developers and the team is usually working very closely together. That requires that we are all able to contact each other very easily. For that we used to use IRC and Asterisk. Recently, we got rid of both in favour of some new things:

VoIP via SIP/IAX2 and other protocols

Since we are spread over multiple countries, we cannot use the POTS for voice communication. The Asterisk server that we operated turned out to be not that reliable. Especially for conferencing, an external module had to be manually compiled and configured, because the internal one does not work if you don’t have the required hardware. On top of that, the quality of Asterisk is constantly decreasing and we got more and more segmentation faults on various occasions. That’s not want to do instead of talking to my team mates: debugging Asterisk.

So, I had a look at the alternatives that were out there. I installed some of them, but none of them really convinced me. Finally, YATE – Yet Another Telephony Engine is the software of choice that is now running all IPFire voice services.

Why YATE? Yate comes with a really cool design concept and it does its job really well. It is easily extensible and with that extension interface, we connected it to our LDAP server and the PostgreSQL database. So it is well integrated in the IPFire infrastructure and provides important services with minimal configuration and maintenance effort.

Every developer got an own account to which multiple SIP devices can be configured. There are conference rooms available at any time, so that a group of people can create conferences when ever they need them. It is also possible to dial in from land line from various countries, so that if you cannot use your account, you can still join a conference with your mobile phone.

YATE supports encrypted phone calls with SIP and IAX2 and is of course available via IPv6.

This has become a very essential service for us and we are happy that it is running so well now.

Jabber/XMPP

YATE also comes with a XMPP module, but after a couple of days, we found out that it was not that stable that we could use it. But as Jabber comes with so many advantages, we decided that we need to have a Jabber server in this project.

The IRC channel that we used was always a bit messy and it felt like an outdated technology. Jabber is much nicer with its statuses, offline messages, file transfer and encryption among so many other things. You are able to log in to your account from multiple devices at the same time and all of that makes communication much easier.

ejabberd is the server software we use now instead of YATE. It is the most deployed jabber server and also very well extensible so that we could connect it to our LDAP database which we use to control all user accounts, too.


Attention: We still need some help to do the finishing touches on this new services until we open them for everyone. If you are an expert with ejabberd and/or YATE please get in touch. I also added a job to the Job Exchange section of the forums, where I am searching for a volunteer who helps us with monitoring ejabberd.