Hi Guys,
I'm new on Kamailio and this list, so be patient with me :)

I've built an almost "complete" working SIP server on Ubuntu 14.04 LTS.
I told almost complete because my problem is with carrierroute module because 
I'm not understanding the routing file and where I should put the code to use 
function cr_route

I would like to allow SIP calls/video between users for free and send calls to 
different external Gateways / Switches, etc based on the dialled destination.

In particular, I can send outbound calls a prepaid platform that will allow to 
bill calls based on CLI validation, but in all my tests, it seems that calls 
are going out always to the IP address of the remote gateway found into the 
carrierroute table ignoring the SIP user I'm calling.....what is the correct 
routing?

I'm finding some docs around there, but some refer to very old versions of 
Kamailio and some others are not clear to me.

What's wrong with my routing logic?

Thank you so much!
Max







route {

        # per request initial checks
        route(REQINIT);

        # NAT detection
        route(NAT);

        # handle requests within SIP dialogs
        route(WITHINDLG);

        ### only initial requests (no To tag)

        # CANCEL processing
        if (is_method("CANCEL"))
        {
                if (t_check_trans())
                        t_relay();
                exit;
        }

        t_check_trans();

        # authentication
        route(AUTH);

        # record routing for dialog forming requests (in case they are routed)
        # - remove preloaded route headers
        remove_hf("Route");
        if (is_method("INVITE|SUBSCRIBE"))
                record_route();

        # account only INVITEs
        if (is_method("INVITE"))
        {
                setflag(FLT_ACC); # do accounting
        }
                
        # dispatch requests to foreign domains
        route(SIPOUT);

        ### requests for my local domains

        # handle presence related requests
        route(PRESENCE);

        # handle registrations
        route(REGISTRAR);

        if ($rU==$null)
        {
                # request with no Username in RURI
                sl_send_reply("484","Address Incomplete");
                exit;
        }

        # dispatch destinations to PSTN
        #route(PSTN);
                
        
        # CARRIERROUTE MODULE routing logic
        # check table for carrier default and domain default
        if(!cr_route("default", "default", "$rU", "$rU", "call_id")){
                sl_send_reply("403", "Not allowed");
        } else {
                # In case of failure, re-route the request
                t_on_failure("1");
                # Relay the request to the gateway
                t_relay();
        }                       
 
        
        
        # user location service
        route(LOCATION);

        route(RELAY);
}


_______________________________________________
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

Reply via email to