Hello all,
we are are a small network-provider and selling internet via FTTC and FTTH. To complete the portfolio we also sell telephony via a rented ClassV Service with provisioning API, but its not our system and not in our network. To get more informations about Registration-Status and calls I have now installed a kamailio as a statefull proxy between the subscriber and the softwitch:
|----------| |subscriber|\ --------- |----------| \ /| Mobile| \ -------------- / --------- |----------| \ ------------ | Class V | / -------- |subscriber|---------| Kamailio |--------| Softswitch |-------| PSTN | |----------| / ------------ | | \ -------- / -------------- \ --------- |----------| / | World | |subscriber|/ --------- |----------|
I am really new in kamailio, so I just use the configuration named "Edge Proxy Configuration" shown in the documentation to the outbound module, see http://kamailio.org/docs/modules/4.2.x/modules/outbound.html example 1.1. We dont need NAT and STUN because all our subscribers get official IPv4 addresses.
Outgoing calls (subscriber -> PSTN) are working fine, all SIP messages pass the Kamailio Proxy. But incoming Calls (World -> subscriber) miss the proxy and will be routed directly from the Softwitch to the subscriber. I think because of the Contact-Header in the subscriber REGISTER:
Contact: sip:49xxxxxxyyyyyy@134.xx.yy.zz;uniq=E41120B46C92D3818E72B
This is the IP of the subscriber FritzBox.
So I just added some lines to replace the Contact-Header in the REGISTER to get all incoming Calls from the Softswitch to the Kamailio:
if (is_method("REGISTER")) {
if (src_ip==CUSTOMER_NET) { remove_hf("Route"); add_path(); $du = "sip:REGISTRAR_IP:REGISTRAR_PORT";
if ($ct != $null) {
subst('/^Contact:(.*)@[a-zA-Z0-9.]+(.*)$/Contact:\1@KAMAILIO_IP\2/ig'); } } }
and now the Contact-Header looks better:
Contact: sip:49xxxxxxyyyyyy@KAMAILIO_IP;uniq=E41120B46C92D3818E72B
Now the subscriber is registered on the Softswitch with the IP from the Kamailio. And now the Kamailio get the incoming Call, but directly route it back to the Softwitch and the call failed.
Now my questions:
- Is the "Edge Proxy Configuration" right for this setup? - How the Kamailio keep all registered IPs and Lines to route an incoming Call to the right subscriber? - Why the Kamailio route an incoming call directly back to the Softswitch?
Thanks a lot.
Regards Thomas