Hi Kenneth,
As has been said before there are many ways to do this. We do something similar for 100+
customers with a freepbx instance each. It has taken us a lot of experimentation and
trial and error to get this working reliably… and I’ve done the Kamailio Advanced training
course too.
A simplified version of our architecture would have:
1 Kamailio + RTPEngine acting as a gateway to PSTN, with1 public IP
1 Kamailio +RTPEngine acting as a proxy for all customer devices, with 1 public IP
1 nginx proxying the web connections to the customer freepbx GUI, with 1 public IP
1 shared database for all the sip devices and credentials, using multi-domain to map the
customer registration uri (see below)
n container running freepbx, one for each of your customers, no public IP's
You can then configure your SIP devices to use the registrar proxy as their OutboundProxy.
e.g.
<http://sip.knudsen-nordic.com/>.
You can then give each customer unique subdomain in the registration uri e.g.
<http://sip.knudsen-nordic.com/>. These subdomains
do not have to be in any public DNS record, but you do have to edit your kamailio.cfg to
parse the uri and then route the packets to the relevant PBX.
When you have that working you might then want to introduce some resilience…
By the time you’ve done that lot you will either be a Kamailio consultant, or have hired a
Kamailio consultant!
Hopefully this gives you some more insight into an approach that does work, and also the
complexity of what you are trying to do.
Good luck.
--
Paul Smith
Technical Director, Voxbit Ltd
PaulSmith(a)VoxBit.net <mailto:PaulSmith@voxbit.net>
On 17 Jul 2017, at 17:10, Kenneth Knudsen
<kenneth(a)knudsen-nordic.com> wrote:
Hi Joel
Your scenario was spot on the one I was thinking about.
If we can have Kamilio handle all the traffic that would be the best approach I think.
But do I need a public IP for each PBX server to handle the RTP traffic?
We would definitely not expose the PBX server to the internet, for the same reason you
write below.
I think one way to separate A, B and C from each other if I used different port numbers
for every customer? Sip 5065 for A, 5066 for B and 5067 for C?
As far as I have read in the cook book it seems that Kamilio can share DB with the PBX
server(s) and that way handle registrations for any given PBX server?
It gets a little more cloudy for me when we get to the handling of traffic and connection
to the PBX server…
If I only had residential customers with 1 line it would be easier as they could all go
to the same PBX or a cluster of them. But I need to have individual settings for my
different business customers so they can have their own rules, ring groups and such.
Kind regards,
From: sr-users [mailto:sr-users-bounces@lists.kamailio.org] On Behalf Of Joel Serrano
Sent: Friday, July 14, 2017 2:55 PM
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org>
Subject: Re: [SR-Users] Kamilio new user - help get going
Hi Kenneth,
What you are talking about is a pretty common installation. As a starting point, you will
need a way to differentiate your clients so you can send them to the correct PBX.
For example:
You have customers A, B, C and PBX servers 1, 2, 3 respectively. (A1, 2B, 3C). Your
domain name is
sip.knudsen-nordic.com <http://sip.knudsen-nordic.com/>.
Say A wants to register to their PBX, how would you make sure that Kamailio forwards that
request to PBX1 instead of PBX2? Then C wants to register and Kamailio has to send the
request to PBX3 this time, etc. There are countless ways to do this, and any can be
correct or wrong. This is why the big picture matters a lot, Kamailio can handle and
manage all registrations by himself, or it can relay them for each PBX to manage their own
registrations, etc.... Would the PBXs have public IPs (with traffic restricted by a
firewall or similar) or would they have private IPs and you have to deal with NAT, etc.?
There are lots of variables here.
Regarding having the PBX exposed directly to internet, I would strongly suggest to avoid
that, fraud attempts in the SIP worldWILL HAPPEN literally minutes after you expose the
PBX, and, it is quite common for config mistakes to cause huge fraud carrier bills.
On Fri, Jul 14, 2017 at 11:02 AM, Kenneth Knudsen <kenneth(a)knudsen-nordic.com
<mailto:kenneth@knudsen-nordic.com>> wrote:
Hi Joel,
Thx for your reply.. I see your point, and you are already throwing me off with the
dispatcher group…
Let me try and explain what I would like to do (if possible):
I want one single public IP assigned to a domain name(for now), to be the contact point
for all VoIP phones, with all our different customers, from there the SIP Proxy (Kamilio)
would be the master and make sure the customers phones are connected with their FreePBX
(one FreePBX for every customer) behind the SIP Proxy.
I want to hide the topology behind the SIP Server for security reasons.
I don’t know what the best approach is to the above goals, as we get more customers we
would most likely get a SIP Proxy cluster for uptime and redundancy purposes. But first we
need to show we can get it going before we can bring on any customers. The FreePBX as a
standalone service I have figured out, and no problem connecting phones over the internet
and such.
Is the best approach to expose the SIP Server directly to the internet (avoiding fw
issues and nat confusion) or am I going down the wrong road here?
Kind regards,
From: sr-users [mailto:sr-users-bounces@lists.kamailio.org
<mailto:sr-users-bounces@lists.kamailio.org>] On Behalf Of Joel Serrano
Sent: Friday, July 14, 2017 9:14 AM
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org>>
Subject: Re: [SR-Users] Kamilio new user - help get going
My 2cents:
- Agree, Kamailio training makes your life easier. Specially because even if you know SIP
(if you don't that complicates everything), you need to understand how Kamailio works
internally, what are dialogs, transactions, branches, etc, the different route blocks,
blablabla, what goes where... To be honest, once you understand that, you can do literally
whatever you want. If you don't know something, you can ask and someone will give you
some help, and when you read it, you will actually understand what whoever is trying to
say. Why I'm saying this? Because I could answer your questions to the point, and
still you would get a system running but you would have no idea of why or how it works, so
what happens when you run into an issue?
- To the point, you probably need different sets of domains and dispatcher groups, and
then depending on where the call is going to, route to a specific dispatcher group? This
is just an initial suggestion, as you haven't given many details, there are just so
many ways of doing things that we would need a little more information on how EXACTLY do
you need things to work...
On Fri, Jul 14, 2017 at 4:59 AM, David Villasmil <david.villasmil.work(a)gmail.com
<mailto:david.villasmil.work@gmail.com>> wrote:
I also took this training, it's worth it.
On Fri, Jul 14, 2017 at 11:00 AM Daniel Tryba <d.tryba(a)pocos.nl
<mailto:d.tryba@pocos.nl>> wrote:
On Thu, Jul 13, 2017 at 09:46:03PM +0000, Kenneth Knudsen wrote:
Thanks, but then I’m missing the next step, how
do we configure the
connection between Kamilio and the FreePBX servers ?
How do we configure the routes, public ip, internal FreePBX servers.
This make no sense to me at all:
Look at you question business wise: how many hours are you willing to
spend on getting this setup (on a trail by error kind of way) and the
costs of those hours. Is hiring a consultant for 20 hours to get a ready
made solution really more expensive? Maybe you could get the consultant
to spend a day with you to get the grips on kamailio instead of having
them build the solution?
You may get all your questions answered here if people feel inclined to
answer them in their spare time. You might get better answer if you ask
smaller more to the point questions.
BTW I had the same kind of problems getting my head around understanding
kamailio. I saw the potential but wasn't really understanding it. My
solution was to take the Kamailio Advanced Training
https://www.asipto.com/sw/trainings/
<https://www.asipto.com/sw/trainings/>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users