[SR-Users] TOPOS (5.5) answers '404 Not Here' when b side send BYE

张 阳 buzhaodi at hotmail.com
Wed Mar 3 10:24:13 CET 2021


Dear Daniel:
When I was using the topos module, I found that if a bye message was sent from side B, kamailio would return a 404 message. When I remove the topos module, the call is normal, attached is sip pcap.
172.18.67.50:5060 and 172.18.67.40:55066  Are different ports monitored by the same kamailio
Looking forward to your reply!



My cfg is too long,I will key information for cfg:

modparam("ndb_redis", "server", "name=srv8;addr=127.0.0.1;port=6381;db=2")
modparam("topos", "storage", "redis")
modparam("topos", "db_url", "redis://127.0.0.1:6381/2")
modparam("topos_redis", "serverid", "srv8")
modparam("topos", "rr_update", 1)
/*……*/
request_route {

        xlog("L_DBG","request_route message: $mb\n");

        if (is_method("UPDATE")) {
                t_on_reply("UPDATE_SELF");
                #t_on_branch("UPDATE_OUT");
        }


        # per request initial checks
        route(REQINIT);

        #!ifdef PBX_OUTMODE
        route(MESSAGE);
        #!endif

        # handle requests within SIP dialogs
        route(WITHINDLG);

        route(CANCEL);
        # route(CHECK_REG);

        route(REGISTER);

        if (is_method("OPTIONS")) {
                route(REPLAY_OPTIONS);
                exit;
        }

        t_check_trans();

        # /andle methods that don't make any sense in this environment
        if (!is_method("INVITE")) {
                xlog("L_INFO","Call $ci: Anomalous method $rm received from $si:$sp, relaying just in case\n");
                sl_reply_error();
                exit;
        }
        if(is_method("INVITE")){
                dlgs_init("$fu","$tu","FusionSBC");
                dlg_manage();
        }
        if ($rU==$null) {
                # request with no Username in RURI
                sl_send_reply("484","Address Incomplete");
                exit;
        }

        #From now on only INVITES

        #check if it's registered PBX user
        #!ifdef ASBCBROKER
                route(INVITE_PBX);
        #!else
                #!ifdef ASBC
                        route(INVITE_PBX);
                #!endif
        #!endif

        route(INVITE_AUTHENTICATE);

        route(GET_RG_INFO);

        route(GET_NUMBERS);

        route(SHOW_CALL_INFO);

        #Manipulate IN ANI (Number and NOA)
        route(ANI_MANIPULATION);

        #Manipulate IN DNIS
        route(DNIS_MANIPULATION);

        route(SDP);

        # record routing for dialog forming requests (in case they are routed)
        # - remove preloaded route headers

        xlog("L_DEBUG","Adding Record-Route header\n");
        # NVF changed this 4/22/2014 - why remove the incoming route headers?
        #remove_hf("Record-Route");
        record_route();

        route(ROUTING);

        route(SEND);
}

/*……*/
route[WITHINDLG] {
        if (has_totag()) {
        # sequential request withing a dialog should
        # take the path determined by record-routing
                xlog("L_INFO","yang yangyang testin to not here");
                if (loose_route()){
                        if(is_method("INFO")){
                                route("INFO_SELF");
                        }

                        route(BYE);
                        route(REINVITE);
                        route(ACK);
                        route(RELAY);
                } else {
                        if ( is_method("ACK")) {
                                if ( t_check_trans() ) {
                                # no loose-route, but stateful ACK;
                                # must be an ACK after a 487
                                # or e.g. 404            $var(obj) = $sht(call_objects=>$ci);
                                        xlog("L_INFO","Call $ci: ACK received in A-Leg, $fU@$si:$sp -----> $rU@$Ri:$Rp relaying downstreamrouteWITHINDLG\n");
                                        t_relay();
                                        exit;
                                } else {
                                # ACK without matching transaction ... ignore and discard
                                        exit;
                                }
                        }
                        xlog("L_INFO","yang in to not here");
                        sl_send_reply("404","Not here");
                }
                exit;
        }
}




发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210303/132ffe90/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fail.pcap
Type: application/octet-stream
Size: 22220 bytes
Desc: fail.pcap
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210303/132ffe90/attachment.obj>


More information about the sr-users mailing list