Hello, I have a problem with Kamailio and a setup with two network interfaces (eth0 and eth1) Devices on eth0 CANNOT see devices on eth1 and vice versa, there is no route between both interfaces. Only Kamailio and the media proxy can access both.
+--------------------------+ | kamailio + rtpproxy | eth0 | + openvpn | eth1 +---------+ +-----------+ | | | | | +--------------------------+ | +-+----+ +----+-+ | A | | B | | | | | +------+ +------+
A user connected at eth0 shall be able to get the presence status of users on eth1 and users shall be able to call each other.
What I did so far: I added listen statements for both interfaces to the Kamailio config file: -listen=udp:eth0_IP:5060 -listen=udp:eth1_IP:5060
What's not working: When I try to make a call from user in A domain to another user in B domain, the call established correctly, but no stream running. On B device I see an incoming call from 'sip:user@A_Domain'. B user doesn't have route for A Domain, so that doesn't work.
Is what I want technically possible with Kamailio. If yes, what do I have to change in my config? Do you have any suggestions?
Thanks in advance.
On Tue, Nov 4, 2014 at 6:17 PM, Julien julien.linphone@gmail.com wrote:
A user connected at eth0 shall be able to get the presence status of users on eth1 and users shall be able to call each other.
What I did so far: I added listen statements for both interfaces to the Kamailio config file: -listen=udp:eth0_IP:5060 -listen=udp:eth1_IP:5060
Have you done similar configuration for the RTP proxy? Since Kamailio will setup the call, but will not "carry" the audio. If your RTP proxy has been configured, have you updated the kamailio config to use the RTP proxy?
See example 1.14 on this page: http://kamailio.org/docs/modules/4.2.x/modules/rtpproxy.html#idp84376
On 04/11/14 20:04, Glenn Larsen wrote:
On Tue, Nov 4, 2014 at 6:17 PM, Julien julien.linphone@gmail.com wrote:
A user connected at eth0 shall be able to get the presence status of users on eth1 and users shall be able to call each other.
What I did so far: I added listen statements for both interfaces to the Kamailio config file: -listen=udp:eth0_IP:5060 -listen=udp:eth1_IP:5060
Have you done similar configuration for the RTP proxy? Since Kamailio will setup the call, but will not "carry" the audio. If your RTP proxy has been configured, have you updated the kamailio config to use the RTP proxy?
See example 1.14 on this page: http://kamailio.org/docs/modules/4.2.x/modules/rtpproxy.html#idp84376
A tutorial I wrote for bridging IPv4 and IPv6 can be useful to go through:
- http://kb.asipto.com/kamailio:kamailio-mixed-ipv4-ipv6
It show bridging of sip and rtp between not directly routable networks.
Instead of doing kamailio.cfg rtpproxy_manage() decisions on af (address family), it has to be done on dst_ip (local ip on which the packet was received) and rtp proxy started with "-l ip1/ip2" instead of "-l ip1 -6 /ip2".
Cheers, Daniel
Hi, I tried to follow your instructions : Change rtpProxy config to bridge the 2 interfaces with ADDR_PRIVATE as first interface. I copy pasted the config file given in the ipv4/v6 tutorial, adapting listen interfaces. I also replaced
if(isbflagset(FLB_V4V6)) { if(af==INET6) { rtpproxy_manage("FAEI"); } else { rtpproxy_manage("FAIE"); } } else { if(af==INET6) { rtpproxy_manage("FAEE"); } else { rtpproxy_manage("FAII"); } }
with
#!define ADDR_PRIVATE 192.168.15.58 #!define ADDR_VPN 10.8.0.1 ... xlog("L_ALERT","ALERT: route_uri: $route_uri\n "); xlog("L_ALERT","ALERT: dst_ip: $Ri\n "); xlog("L_ALERT","ALERT: src_ip: $si\n "); ... if (dst_ip==ADDR_PRIVATE){ if (src_ip=~"10.8.0.*"){ xlog("L_ALERT","ALERT: in dst=ADDR_PRIVATE && src=10.8.0.*\n "); rtpproxy_manage("FAIE"); }else{ xlog("L_ALERT","ALERT: in dst=ADDR_PRIVATE && src!=10.8.0.*\n "); rtpproxy_manage("FAII"); } } else{ if (src_ip=~"10.8.0.*"){ xlog("L_ALERT","ALERT: in dst=ADDR_VPN && src=10.8.0.*\n "); rtpproxy_manage("FAEE"); }else{ xlog("L_ALERT","ALERT: in dst=ADDR_VPN && src!=10.8.0.*\n "); rtpproxy_manage("FAEI"); } }
where 10.8.0.* represent the regex to match the external network address (which is a VPN address). The call is established, but audio and video streams are sent to the wrong IP address of the proxy (ex : should have been sent to 192.168.15.58, but were sent to 10.8.0.1). What traces should I look up for further debug? Any other ideas/suggestions?
Thanks. Le 04/11/2014 21:41, Daniel-Constantin Mierla a écrit :
On 04/11/14 20:04, Glenn Larsen wrote:
On Tue, Nov 4, 2014 at 6:17 PM, Julienjulien.linphone@gmail.com wrote:
A user connected at eth0 shall be able to get the presence status of users on eth1 and users shall be able to call each other.
What I did so far: I added listen statements for both interfaces to the Kamailio config file: -listen=udp:eth0_IP:5060 -listen=udp:eth1_IP:5060
Have you done similar configuration for the RTP proxy? Since Kamailio will setup the call, but will not "carry" the audio. If your RTP proxy has been configured, have you updated the kamailio config to use the RTP proxy?
See example 1.14 on this page: http://kamailio.org/docs/modules/4.2.x/modules/rtpproxy.html#idp84376
A tutorial I wrote for bridging IPv4 and IPv6 can be useful to go through:
-http://kb.asipto.com/kamailio:kamailio-mixed-ipv4-ipv6
It show bridging of sip and rtp between not directly routable networks.
Instead of doing kamailio.cfg rtpproxy_manage() decisions on af (address family), it has to be done on dst_ip (local ip on which the packet was received) and rtp proxy started with "-l ip1/ip2" instead of "-l ip1 -6 /ip2".
Cheers, Daniel