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.

Gone for a while…

gone from blogging, but not from working πŸ˜‰

I’ll, eventually, explain these projects with more detail, but for now, I will just enumerate them so people can have a clue of what I’ve been working on:

1. cnxcc: this is a credit control module for Kamailio which deals with customers credit information to monitor the calls and hang them up if necessary.

2. cnxcc-db-sync: a php script to query the previous module (via xmlrpc) in order to feed a database with information coming directly from the module’s internal memory, really fresh and real time information.

3. cnxcc-web: a web based management interface for cnxcc.

4. webrtc + websockets: I’ve been reading a lot about this subject. I’ve even bought a book πŸ˜€