[SR-Users] [newbie] questions

Me mojo1736 at privatedemail.net
Mon Jan 30 18:00:24 CET 2012


Apologies if any of the questions below are a bit dumb - I don't pretend 
to be an expert in SIP/VOIP - I am just an ordinary user looking for 
answers.

Our current setup involves processing a small number of internal sip 
accounts (up to 10, no more than that) and one "public" one (with a 
separate registrar) in the following way:

On our server we have three interfaces: eth0, eth1 and tun0. eth0 is our 
entry point to the public internet, eth1 faces our internal network and 
tun0 is a private vpn, which connects all our smartphones to the 
internal network (via Wifi, EDGE/2G/3G etc). This gives us the mobility.

Up until now, we have been routing voip calls via a commercial (closed 
source), very limited, terribly outdated (Pentium code base!) and rather 
buggy sip proxy. I had to employ a lot of hacks on our server in order 
to route calls as this proxy can only listen on a single interface. It 
was also a nightmare to maintain. Unsurprisingly, I decided that enough 
is enough and I am now determined to replace it.

We route calls in the following way: all machines (PCs are all Linux 
based) & smartphones have their own sip/voip client installed on them 
(also using bluetooth). Internal calls are routed via the proxy between 
ourselves either on the internal net (eth1), or between the vpn and eth1 
(eth1<->tun0).

External calls (going out, i.e. outbound) are routed externally to our 
registrar, using a single separate voip account, via eth1<->eth0 or 
tun0<->eth0.

As I am now looking to replace our proxy, I looked at Kamailio, but was 
soon completely overwhelmed by it (no offence intended, it was just too 
much to take at first). I would appreciate if any of you could give me a 
hand, or at least point me in the right direction, with the following 
issues:

I presume I could configure Kamailio to listen on more than one 
interface and act as a proxy. How do I do that, so that it listens on 
all 3 interfaces and proxies requests in the following way:
- calls made to <userX>@ourdomain.net to be routed internally via eth1 
(internal net) or tun0 (private vpn);
- calls made to anybody else to be routed externally via eth0 (public) 
using the separate "public" sip account with our external registrar;
- calls made to the public sip account (from outside - the "public") 
need to be routed to a "nominated" internall account (say 
<user0>@ourdomain.net);
- all other (internal) calls need to be routed depending on which 
interface this account has been registered/logged in - either the 
internal net (eth1) or the private vpn (tun0 - the smartphones).

Obviously, calls need to be received (and routed properly) from all 3 
interfaces.

Is all of this possible with Kamailio?

I want to avoid unnecessary complexities of the setup (as I already 
mentioned above - I am just a user and by no means an expert in 
sip/voip) and do not want to deploy something I do not need - I need to 
keep the memory footprint to a bare minimum, possibly without 
sacrificing performance.

Once this is done, I would then move on to the next phase and use IM & 
ENUM, but this is once the above works.

I looked at other alternatives, but I got very confused there as well - 
I couldn't figure out what exactly is the difference between, say, 
OpenSER, Kamailio, OpenSIPS and SIP-Router even? What is the best 
software to use in order to achieve the above setup?

One last thing - I am a developer by trade and I am not afraid of 
"tweaking" things when needed. I was successful in compiling Kamailio 
from source (I use Fedora on all our machines) and I was pleased that I 
could exclude from the RPM .spec file the modules I think I did not need.

I also made some modification of my own to make the database modules 
(mysql, postgresql and unixodbc) configurable in the same way the rest 
of the modules are. I could submit patches, if needed, so that these are 
incorporated into future releases - how do I do that?

I could not do the same with OpenSIPS, however (which I also tried - out 
of curiosity!) - everything there seems to be lumped and compiled 
together regardless of whether it is needed or not.

Any help as to helping me with the above issues is greatly appreciated, 
many thanks in advance for taking the time!



More information about the sr-users mailing list