[SR-Users] Routing between 2 domains

kai.ohnacker at cbc.de kai.ohnacker at cbc.de
Wed Oct 21 11:42:50 CEST 2015


Hello Daniel,

thanks for the reply. I try out your suggestion, but this is not working. There is no sound transmitted and the connection ended after 23 seconds (I think a timer is expired).
Scenario is:
Kamailio route all internal calls only internal (external vice versa)
Kamailio route all internal to external through rtpproxy (also vice versa)

INT_IP: 203.207.111.58
EXT_IP: 193.16.163.58

Here my code:
request_route {
        if(is_method("REGISTER")) {
                if(dst_ip==203.207.111.58){
                        setbflag(20);
                }else{
                        setbflag(21);
                }
        }
}

Route [NATMANAGE]


        if(dst_ip==203.207.111.58 && isflagset(20)){
                        rtpproxy_manage("coii");
        }else if(dst_ip==203.207.111.58 && isflagset(21)){
                        rtpproxy_manage("coie");
        }else if(dst_ip==193.16.163.58 && isflagset(20)){
                        rtpproxy_manage("coei");
        }else if(dst_ip==193.16.163.58 && isflagset(21)){
                        rtpproxy_manage("coee");
        }

Alternative try

if(from_uri=~".*@203.207.111.58" && isflagset(20)){
                        rtpproxy_manage("coii");
        }else if(from_uri=~".*@203.207.111.58" && isflagset(21)){
                        rtpproxy_manage("coie");
        }else if(from_uri=~".*@193.16.163.58" && isflagset(20)){
                        rtpproxy_manage("coei");
        }else if(from_uri=~".*@193.16.163.58" && isflagset(21)){
                        rtpproxy_manage("coee");
        }

Another try


        if(from_uri=~".*@203.207.111.58" && isflagset(20)){
                        rtpproxy_manage("coii");
        }else if(from_uri=~".*@203.207.111.58" && isflagset(21)){
                        rtpproxy_manage("coie");
        }else if(from_uri=~".*@193.16.163.58" && isflagset(20)){
                        rtpproxy_manage("coei");
        }else if(from_uri=~".*@193.16.163.58" && isflagset(21)){
                        rtpproxy_manage("coee");
        }

RTPproxy config

EXTRA_OPTS="-l 203.207.111.58/193.16.163.58 -m 20000 -M 20100 -d WARN:LOG_LOCAL1"

Some debugging information are in the txt file. TCPdump debugging does not shows interesting informations...

Has somebody a good idea which could be helpful? Do you need some more information?


Cheers,
Kai


Von: sr-users [mailto:sr-users-bounces at lists.sip-router.org] Im Auftrag von Daniel-Constantin Mierla
Gesendet: Montag, 12. Oktober 2015 14:26
An: Kamailio (SER) - Users Mailing List <sr-users at lists.sip-router.org>
Betreff: Re: [SR-Users] Routing between 2 domains

Hello,

the src_ip is not a local IP, so do not match it with INT_IP or EXT_IP. The dst_ip is local ip, but the one on which the interface was received.

You can test the $fs to see what socket is going to be used for sending out.

Or set some branch flag for each interface when the registration is processed and check that in branch route

if(is_method("REGISTER")) {
if(dst_ip==INT_IP){
   setbflag(20);
}else{
   setbflag(21);
}
}

then in route[NATMANGE] have conditions like:

if(src_ip==INT_IP && isflagset(20)) {
   # internal to internal
} else if(src_ip==INT_IP && isflagset(21)) {
   # internal to external
} else if ...


Cheers,
Daniel
On 08/10/15 11:14, kai.ohnacker at cbc.de<mailto:kai.ohnacker at cbc.de> wrote:

Hello community,



I work with Kamailio 4.2.0 which is placed between two networks (with two interfaces) and RTPproxy in bridge mode.

The task from Kamailio is to handle the calls from internal networks to internal networks only on the internal Interface without bridging. For external networks vice versa. If the call comes from external to internal, then the RTPproxy should work in bridge mode and vice versa. I adapt the example with IPv4 and IPv6 routing, but this is not working for internal to external calls and vice versa (http://kb.asipto.com/kamailio:kamailio-mixed-ipv4-ipv6). Only external calls and only internal calls works. I think the cause of this behavior is the routing which I implemented to the RTPmanage part in the Kamailio config.

The error message is given by the internal device. (call from external to internal)

If I make a call from internal to external, the RTP stream is only in one direction.



Internal Interface IP: 203.207.111.58

External Interface IP: 193.16.163.58



The RTPproxy config is:

CONTROL_SOCK=udp:127.0.0.1:9000

EXTRA_OPTS="-l 203.207.111.58/193.16.163.58 -d WARN:LOG_LOCAL1"



Kamailio.cfg:

#!define INT_IP 10.96.0.0/14

#!define EXT_IP 193.0.0.0/8



# RTPProxy control and singaling updates for NAT traversal

route[NATMANAGE] {

#!ifdef WITH_NAT

        if (is_request()) {

                if(has_totag()) {

                        if(check_route_param("nat=yes")) {

                                setbflag(FLB_NATB);

                        }

                }

        }

        if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))

                return;



#       rtpproxy_manage("co");



# Start Test routing



        if((src_ip==INT_IP && dst_ip==EXT_IP)){

                        rtpproxy_manage("cowie");

                        }

        if((src_ip==EXT_IP && dst_ip==INT_IP)){

                        rtpproxy_manage("cowei");

                        }



        if (is_request()) {

                if (!has_totag()) {

                        if(t_is_branch_route()) {

                                add_rr_param(";nat=yes");

                        }

                }

        }

        if (is_reply()) {

                if(isbflagset(FLB_NATB)) {

                        if(is_first_hop())

                                set_contact_alias();

                }

        }

#!endif

        return;

}

Can someone help me with the right routing? Do you need some more debugging information?

Cheers,
Kai





_______________________________________________

SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list

sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>

http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



--

Daniel-Constantin Mierla

http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

Book: SIP Routing With Kamailio - http://www.asipto.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20151021/de8ee443/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Debugging from one client.txt
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20151021/de8ee443/attachment.txt>


More information about the sr-users mailing list