Hello!
I went through your letters and start as following:
------------------------------------------------------- root@ubuntu:/home/yeti/rtpproxy# /etc/init.d/kamailio restart Restarting kamailio: kamailioloading modules under /usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/ Listening on udp: 192.168.124.158:5060 udp: FEC0:0:0:0:0:0:0:2:5060 tcp: 192.168.124.158:5060 tcp: FEC0:0:0:0:0:0:0:2:5060 Aliases: tcp: ubuntu:5060 udp: ubuntu:5060
root@ubuntu:/home/yeti/rtpproxy# kamctl restart
INFO: Stopping Kamailio : INFO: stopped
INFO: Starting Kamailio : INFO: started (pid: 7597) root@ubuntu:/home/yeti/rtpproxy# rtpproxy restart -------------------------------------------------------
So I guess everything is starting fine. The users can register and call each other. Their data are in the mysql database`s location table. I put this into the kamailio.cfg file:
-------------------------------------------------------- # RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")) { if (af == inet) { if ( $(rU{s.substr,0,1}) == "6") { force_rtp_proxy("ie"); } else { force_rtp_proxy("ee"); } } else { if ( $(rU{s.substr,0,1}) == "4") { force_rtp_proxy("ei"); } else { force_rtp_proxy("ii"); } } } else if (is_method("200OK")) { if (af == inet) { if ( $(rU{s.substr,0,1}) == "6") { force_rtp_proxy("ei"); } else { force_rtp_proxy("ee"); } } else { if ( $(rU{s.substr,0,1}) == "4") { force_rtp_proxy("ie"); } else { force_rtp_proxy("ii"); } } } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
----------------------------------------------------------
But, unfortunately there is no RTP traffic yet. :( What do you thing guys, what can be the problem?
Regards, Peter
Am 02.12.2010 13:06, schrieb Komáromi Péter:
Hi!
So if you say it is possible to solve the problem with the only location table, the location_inet4 and location_inet6 is not certainly necessary... do I _have to_ use the 4to6.cfg file from the source of kamailio, or not?
When you call force_rtp_proxy() then you have to provide the i/e flags to tell rtpproxy how it should bridge the call. Therefore you need to know for every call: - is the caller IPv4 or IPv6? - is the callee IPv4 or IPv6?
Finding out the protocol version of the caller is rather easy:
if (af == inet) { # caller ipv4 ... } else { # caller ipv6 ... }
But finding out if the callee is v4 or v6 is difficult. Actually it may even be that the callee is registered with 2 clients at the same time - one using v4 and v6. As far as I know this multi-registration scenario can not be handled currently - only single-registrations or multi-registrations which use the same protocol version are supported.
Anyway - there are several approaches how to detect the IP version of the callee.
- fixed mapping: for example if you know that all usernames starting with 1 are IPv4 clients, and all usernames starting with 2 are IPv6 clients, then you can detect the callee's protocol version manually, e.g:
if ( $(rU{s.substr,0,1}) == "1") { # callee ipv4 ... } else { # callee ipv6 ... }
- check destination URI if it contains a IPv4 or IPv6 address, e.g. use http://www.kamailio.org/dokuwiki/doku.php/transformations:devel#resubst_expr... to test if $dd contains '.' which would indicate a ipv4 address.
- use dedicated location tables
(Because it uses them, for instance here: if (method == "REGISTER") { if (af == inet) { save("location-inet4"); } else if (af == inet6) { save("location-inet6");...)
If I do not have to use it, I do not need to merge it with my kamailio.cfg file, the steps I have to do are: install rtpproxy, start it with the appropriate parameters and set the forcing in the kamailio.cfg file?!
The more I think about it I prefer the approach with separated location tables. It should be rather easy to integrate the 2 location tables into your existing config.
regards Klaus
Hello!
I forgot from my previous letter to following information: my IPv4 users` name starts with `4`, and the iv6s` starts with `6`. I start the rtpproxy like this: rtpproxy -F -l 192.168.124.165 -6 /fec0::2
Regards, Peter ---
Previous letter:
Hello!
I went through your letters and start as following:
------------------------------------------------------- root@ubuntu:/home/yeti/rtpproxy# /etc/init.d/kamailio restart Restarting kamailio: kamailioloading modules under /usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/ Listening on udp: 192.168.124.158:5060 udp: FEC0:0:0:0:0:0:0:2:5060 tcp: 192.168.124.158:5060 tcp: FEC0:0:0:0:0:0:0:2:5060 Aliases: tcp: ubuntu:5060 udp: ubuntu:5060
root@ubuntu:/home/yeti/rtpproxy# kamctl restart
INFO: Stopping Kamailio : INFO: stopped
INFO: Starting Kamailio : INFO: started (pid: 7597) root@ubuntu:/home/yeti/rtpproxy# rtpproxy restart -------------------------------------------------------
So I guess everything is starting fine. The users can register and call each other. Their data are in the mysql database`s location table. I put this into the kamailio.cfg file:
-------------------------------------------------------- # RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")) { if (af == inet) { if ( $(rU{s.substr,0,1}) == "6") { force_rtp_proxy("ie"); } else { force_rtp_proxy("ee"); } } else { if ( $(rU{s.substr,0,1}) == "4") { force_rtp_proxy("ei"); } else { force_rtp_proxy("ii"); } } } else if (is_method("200OK")) { if (af == inet) { if ( $(rU{s.substr,0,1}) == "6") { force_rtp_proxy("ei"); } else { force_rtp_proxy("ee"); } } else { if ( $(rU{s.substr,0,1}) == "4") { force_rtp_proxy("ie"); } else { force_rtp_proxy("ii"); } } } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
----------------------------------------------------------
But, unfortunately there is no RTP traffic yet. :( What do you thing guys, what can be the problem?
Regards, Peter
Hello,
run kamailio and rtpproxy in debug mode to see what happens when a call that comes for ipv4/ipv6 traslation. Also, what the sip traffic to see if the sdp of INVITE/200ok is updated properly.
Cheers, Daniel
On 12/3/10 11:16 AM, Komáromi Péter wrote:
Hello!
I forgot from my previous letter to following information: my IPv4 users` name starts with `4`, and the iv6s` starts with `6`. I start the rtpproxy like this: rtpproxy -F -l 192.168.124.165 -6 /fec0::2
Regards, Peter
Previous letter:
Hello!
I went through your letters and start as following:
root@ubuntu:/home/yeti/rtpproxy# /etc/init.d/kamailio restart Restarting kamailio: kamailioloading modules under /usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/ Listening on udp: 192.168.124.158:5060 udp: FEC0:0:0:0:0:0:0:2:5060 tcp: 192.168.124.158:5060 tcp: FEC0:0:0:0:0:0:0:2:5060 Aliases: tcp: ubuntu:5060 udp: ubuntu:5060
root@ubuntu:/home/yeti/rtpproxy# kamctl restart
INFO: Stopping Kamailio : INFO: stopped
INFO: Starting Kamailio : INFO: started (pid: 7597) root@ubuntu:/home/yeti/rtpproxy# rtpproxy restart
So I guess everything is starting fine. The users can register and call each other. Their data are in the mysql database`s location table. I put this into the kamailio.cfg file:
# RTPProxy control route[RTPPROXY] { #!ifdef WITH_NAT if (is_method("BYE")) { unforce_rtp_proxy(); } else if (is_method("INVITE")) { if (af == inet) { if ( $(rU{s.substr,0,1}) == "6") { force_rtp_proxy("ie"); } else { force_rtp_proxy("ee"); } } else { if ( $(rU{s.substr,0,1}) == "4") { force_rtp_proxy("ei"); } else { force_rtp_proxy("ii"); } } } else if (is_method("200OK")) { if (af == inet) { if ( $(rU{s.substr,0,1}) == "6") { force_rtp_proxy("ei"); } else { force_rtp_proxy("ee"); } } else { if ( $(rU{s.substr,0,1}) == "4") { force_rtp_proxy("ie"); } else { force_rtp_proxy("ii"); } } } if (!has_totag()) add_rr_param(";nat=yes"); #!endif return; }
But, unfortunately there is no RTP traffic yet. :( What do you thing guys, what can be the problem?
Regards, Peter
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Dear Everybody!
Many thanks for your help in the past couple of months. Finally I was able to finish my work with SIP between IPv4 and IPv6 agents. My diplomawork is ready, and evaluated with the best mark.
So thank you all!
Best wishes, Peter
On Tuesday 25 January 2011, Komáromi Péter wrote:
Dear Everybody!
Many thanks for your help in the past couple of months. Finally I was able to finish my work with SIP between IPv4 and IPv6 agents. My diplomawork is ready, and evaluated with the best mark.
So thank you all!
Hi Komáromi,
great, sounds really good. :-) By the way, is your thesis perhaps available for download somewhere?
Cheers,
Henning