An interesting article by Emmanuel Schmidbauer


Staff member
Much, I'm initially doing this project on Digital Ocean as many people seem to be using that, its accessible in most places in the world but crucially, it gives you private networking and floating IPs for free
Realtime OpenSIPS - FreeSWITCH Integration

OpenSIPS is used a SIP server - users are registering with it, it routes calls, etc - while the purpose of FreeSWITCH is to provide a full set of media services - like voicemail, conference, announcements, etc.
It is a realtime integration because both OpenSIPS and FreeSWITCH are provisioned in the same time when comes to user accounts - when creating a new OpenSIPS user, automatically FreeSWITCH will learn about it an provide and configure all necessary media services for it.
Saw my name mentioned here, thought I'd chime in.
Unfortunately you have to compile Kamailio in order to use the nsqd module as of now (even in the 5.x releases).
This is because some of the nsq dependency libraries aren't packaged for linux distributions. You need to compile and install these libraries manually: libevbuffsock and libnsq
That being said-- I'm looking at using the xhttp module to replace some of the functionality in that blog post you mentioned.
I've already successfully swapped out jannson-rpc (for performing authentication) with xhttp. I wrote a simple go-app for the xhttp module to hit for authentication, you can find that here.
It's important to leverage Kamailio's htable so you aren't hammering your http server for authentication requests, if you do this properly it works amazingly well (you can easily scale into the 100,000s of users).
The 2nd part of that blog post talks about using nsqd for presence... my next experiment is to replace nsqd with xhttp. The xhttp module allows inbound http requests to Kamailio and executes an event-route for each request. This is very similar to how the nsqd module executes an event-route on receiving an nsq message, so it should not be too difficult to swap it out.
Once i have some more time, I'll post a tutorial on all this.