Mojo-
I'm surprised at the replies you received. Normally the people on this group are extremely helpful.
Clearly you've spent significant time thinking about this, and your current system and problem description below is detailed and well-presented, with a clear rationale for using Kamailio.
As you've already successfully installed Kamailio, my suggestion would be to continue configuring that system as a parallel (shadow) system to your existing system and start experimenting with basic call routing. Just take it one step at a time, and as you encounter specific questions, post here and I'm sure you'll get great help.
David -- I'm sorry, but as one of the old guys on here, I have to stand up and say that really was an unfair response. After a new group member writes a multi-page description clearly stating he's already using a legacy commercial SIP proxy, you don't think he's already thought about a consultant and/or commercial software? C'mon.
-Jeff
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!
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users