Hello Everyone,
I've been resolved the problem.
It was the setflag(FLT_ACC) at the beginning of the block  if 
(is_method("INVITE")) {

setflag(FLT_ACC); <-----

using instead following function now the dialog is correctly created.

setflag(FLT_DIALOG);

Best Regards
Angelo




Da: Angelo Colucci 
Inviato: giovedì 8 febbraio 2018 18:33
A: 'sr-users@lists.kamailio.org' <sr-users@lists.kamailio.org>
Oggetto: [SR-Users] - w_ro_ccr(): Unable to find dialog and cannot do Ro 
charging without it

Hello Everyone,
I'm new in Kamailio environment. We trying to setup a  IMS Credit Control 
Client as per RFC 4006. 
We've trying to implement the suggesting configuration in ims_charging module 
doc.
The Kamailio version is 5.1.1 Stable.
The Server is configured with two local users (A and B) registered on local 
mysql database.

The scenario is the following:
1. In the request_route object we trying to intercept the first INVITE and 
trigger
a diameter credit control request using Ro_CCR function.
2. When A calls B without triggering mechanism the call is fine.
3. When A calls B with credit control triggering, the calls failed and the 
diamater request is not generated.

In the debug we find the following error:

exec: *** cfgtrace:request_route=[DEFAULT_ROUTE] c=[/etc/kamailio/kamailio.cfg] 
l=540 a=25 n=xlog
ERROR: <script>: Individuato primo INVITE: generata nuova transazione
exec: *** cfgtrace:request_route=[DEFAULT_ROUTE] c=[/etc/kamailio/kamailio.cfg] 
l=541 a=63 n=assign
exec: *** cfgtrace:request_route=[DEFAULT_ROUTE] c=[/etc/kamailio/kamailio.cfg] 
l=541 a=29 n=Ro_CCR
DEBUG: ims_charging [ims_charging_mod.c:494]: w_ro_ccr(): Ro CCR initiated: 
direction:orig, reservation_units:30, route_name:CHARGING_CCR_REPLY, 
incoming_trunk_id:1 outgoing_trunk_id:1
DEBUG: ims_dialog [dlg_hash.c:926]: internal_get_dlg(): no dialog 
callid='yH5kdBGSrM6CowdkkRHTUw..' found
DEBUG: ims_dialog [dlg_hash.c:956]: get_dlg(): no dialog 
callid='yH5kdBGSrM6CowdkkRHTUw..' found
DEBUG: ims_dialog [dlg_handlers.c:1950]: dlg_get_msg_dialog(): dlg with callid 
'yH5kdBGSrM6CowdkkRHTUw..' not found
ERROR: ims_charging [ims_charging_mod.c:511]: w_ro_ccr(): Unable to find dialog 
and cannot do Ro charging without it

The error indicates that w_ro_ccr function doesn't find any dialog.
Following you can find the relative configuration of kamailio.cfg. The 
request_route block is equal to default configuration except the following 
command:

#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_DEBUG

loadmodule "cdp"
loadmodule "cdp_avp"
loadmodule "ims_charging"
loadmodule "ims_dialog"


modparam("ims_charging", "origin_host", 
"kcc-t-lu-03.mnc049.mcc222.3gppnetwork.org") 
modparam("ims_charging", "origin_realm", "mnc049.mcc222.3gppnetwork.org")
modparam("ims_charging", "destination_realm", "mnc049.mcc222.3gppnetwork.org")
modparam("ims_charging","interim_update_credits",30)
modparam("ims_charging","timer_buffer",5)
# -- ims_dialog params --
modparam("ims_dialog", "dlg_flag", FLT_DIALOG)

request_route {

...
       if (is_method("INVITE")) {
              setflag(FLT_ACC); # do accounting
            t_newtran();
            $var(cc_ret) = Ro_CCR("CHARGING_CCR_REPLY", "orig", 30, "1", "1");
            if ($var(cc_ret) < 0) {
                xlog("Chiamata a Ro_CCR() fallita\n");
                sl_send_reply("402","Payment required");
                exit;
            }
     }  
...
}

route[CHARGING_CCR_REPLY]{
    xlog("cca_return code is $avp(s:cca_return_code): 
$avp(s:cca_result_code)\n");
    switch ($avp(s:cca_return_code)){
        case 1: #success
            break;
        case -1: #failure
            switch ($avp(s:cca_result_code)){
                case 4010:
                    send_reply("402", "Payment required - Unsufficient funds");
                    break;
                case 5006:
                    send_reply("486", "Line limit exceeded");
                    break;
                default:
                    send_reply("402","Payment required 
($avp(s:cca_result_code))");
                    break;
            }
        default:
            xlog("L_ERR", "Unknown return code from CCR: 
[$avp(s:cca_return_code)] \n");
            send_reply("500", "Charging Error");
            break;
        }
}

What's goes wrong?
Thanks in advance
Angelo Colucci



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to