VUC: Kamailio

VUC is a very famous conference for VOIP users that is streamed every week on Friday. Today, a great group of Kamailio developers were gathered together for an update regarding the upcoming release of Kamailio 4.1.

For me, it was the first time meeting most of the guys in the conference although I know them through the interactions in the SR-DEV mailing list. It was a great experience indeed.

My participation was mostly related to the cnxcc module that I contributed some months ago, and that will be released along with some other modules for the 4.1 version.

There’s a video of the session that you can watch. The important part of me talking about the module starts here.

After watching it I noticed my pronunciation needs some major improvements (well, my English in general :D), specially with the words ending with consonants. Bear with me please, English is my third language ;).

I leave you with the video link below, in case you want to watch very smart people talking about Kamailio 😉

Three months at ng-voice

ng-voiceFor those who follow me and didn’t notice my new job, it has been 3 months already. Three great months :). I switched from a regular commuted job at Conexion, to a full-time telecommuting job for a company located in Hamburg, Germany, which is 6 hours away from my timezone.

Timezone was never a problem. When I am about to start here, they are about to have lunch. It sounds rough but it is not when a perfectly built schedule and task list is given to you, and when you work with very talented and disciplined professionals.

And speaking about talented people, well, I work with the best in the industry. No exaggeration.

My work is very diverse and exciting and although it’s been only 3 months, I already worked with:

  1. Mobicents: I wrote an Online Charging Server based on Mobicents OCS following the Diameter Credit Control Application specs.
  2. Kamailio IMS modules: I bug fixed and extended the ims_charging module.
  3. CSipsimple: I created a custom version of the famous Android SIP phone which can be found here.

Three different VoIP related technologies in three months, and it’s getting better every day :).

DWG2000 API Windows demo

Finally a full-featured and executable demo is available for downloading and testing.

It runs on any Windows box with dotNet framework 2.0 installed on it. Personally, I tested the app on Windows XP and Windows 7.

To try it, decompress the zip file and paste the only two DLL files into %windir%System32 folder. Then, run the executable file.

This is a very early demo application and it may contain bugs. In case of that, please report it to my personal email so I can fix it.

dwg2000-demo

Dinstar SMS API update #2

A few updates has been committed to the main github repository a few weeks ago:

– Support for USSD messages

– Several bug fixes

– Windows support is now available upon request via email.

– Updated sample applications.

I can count more than a dozen of people reporting that they have been using the library successfully.

If you are planning to use it, please don’t forget to report bugs or to give general feedback :).

 

Kamailio developer

My module just gained acceptation of the Kamailio management board and now it is part of the development version!

I was also appointed Kamailio developer and got write access to git repository. This was specially awesome and deserved great celebration :D.

I want to give special thanks to Carsten Bock who illuminated the path for me and to Daniel-Constantin Mierla for appointing me as new developer :).

Kamailio: modifying “expires” attribute

Have you ever needed to change the expires attribute of the Contact header in a REGISTER message because you don’t use usrloc or registrar modules? Well, if that is your case, this code snippet may be helpful for you:

But why so complicated? Two things.

– We use a custom module for registration. It’s written in C and the expires attr is generated by the Authorization authority.
– Save(“location”) of usrloc module automatically sends the 200 OK with the correct headers. We do not have this in hand for usage.

This might not be the easiest way of doing it, but it works, serves the purpose and could be used as an alternative 🙂

Click to Call application using webrtc2sip + asterisk

I’ve been working on this for the last few days and I pleased to say that I managed to get through the series of problems that the learning curve entails and now the app is finally working.

My intention was to learn the fundamentals of webRTC and SIP over websockets and I haven’t found a better solution than the one offered by Doubango Telecom. Their impressive job is transforming the way we communicate and I want to be part of that transformation when it finally hit the “standard technology” label.

The purpose of the application is to demonstrate a new way of doing a click to call service. There are a variety of similar solutions with different approaches being the Java applet the most commonly used amongst them.

Well, although this app doesn’t bring any new thing into the world, it certainly serves the purpose of demonstrating a new way of making things. It’s entirely made using HTML5 with the javascript library that made SIPML5 possible.

The app connects to my lab’s Asterisk, via webrtc2sip which deals with the SIP over WS on one side, and SIP over UDP in the other part. The media is also handled by webrtc2sip by translating the SDP profiles and making transcoding on demand.

You can try it here. It is necessary the latest version of Chrome stable or Firefox Nightly. If you don’t meet the minimum needs, the page will just stay there doing nothing. In case you get an error message it’s probably because my server crashed. Please let me know if that happen.

You can browse the javascript code to see how simple it is. I’m planning to turn the project into something more elaborated and then publish the code. By now, it’s too simple to bother 😉

UPDATE:

For some reason, behind very restrictive firewalls the audio is not working properly. I’m working on this to fix it ASAP. Please let me know if that’s your case.

UPDATE 2:

I temporarily deactivated the demo because my server suffered large amounts of hacking attempts. I knew this was possible but I wasn’t expecting this volume.