Sounds like you would really benefit from hiring a consultant.
On 1/30/12 12:00 PM, Me wrote:
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>(a)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>(a)ourdomain.net)n.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(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users