Hi,
I’m just starting with Kamailio, and trying to validate a possible solution design.
I started offering hosted PBXs (FreePBX or Elastix as customer wish), each one with a public IP, connected with SIP trunks from Net2Phone provider. RTP from/to customers calls is going in and out through PBX, and not directly customer ßà sip trunk provider. Billing is provided by SIP trunk provider, so with just CDR from freepbx/Elastix is enough.
But, I would like to introduce 2 main changes. First a sip router/proxy in front of PBXs like kamailio, and doing just a basic domain based routing to each PBX. Kamailio with 2 interfaces (1 public, 1 internal) and change PBXs to internal IPs. Second, to know if would be possible to redirect RTP from/to customer-net2phone provider directly, not going through PBXs. Net2phone has public IPs for RTP, customer normally in their homes behind NAT with a SOHO router. Elastix 2.5 using Asterisk 11, and FreePBX using Asterisk 12 (could be 11 or 13 too tbe o reach this).
I would like to kamilio be as simple and static as possible, not handling REGISTER or LOCATION. Just to route all traffic based on each domain to each corresponding PBX. My idea will be to pre-provide all subdomains to each internal IP using subdomains like “customer0001.domain.com, customer0002.domain.com…” and customers would login as 100@customer0001.domain.com, 101@customer0001.domain.com to PBX0001 and 100@customer0002.domain.com, 101@customer0002.domain.com to PBX0002 for example. Just using as it was a firewall doing NAT and Asterisk (freepbx/elastix) behinds handles everything as they are doing already. Maybe kamailio could check/filter some malicious packets like I’m doing now with fail2ban on PBXs.
Can be this possible?
In that case where do I need to setup SIP trunk? On kamailio or on internal PBXs as I have it now?
For second part, just to know and understand if would be possible customer “talks” RTP directly to Net2phone SIP trunk provider on doing or receiving external calls. Not going to my DC to save BW.
How I could do that?
Thanks a lot in advance!
Regards,
elkato