<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    <br>
    <br>
    Thanks a lot for your response!<br>
    <br>
    I've been thinking about it and there's something abnormal. Firs,
    the RLS is suppose to send the initial SUBSCRIBE to the S-CSCF
    instead of sending it to the I-CSCF. Then, I don't know why the
    S-CSCF translates the SUBSCRIBE URI (<a
      class="moz-txt-link-freetext" href="sip:testuser02@open-ims.test">sip:testuser02@open-ims.test</a>)
    to <a class="moz-txt-link-rfc2396E"
      href="sip:testuser01@155.54.190.245:8060;rinstance=9b7761b4bcaa4bd0">"sip:testuser01@155.54.190.245:8060;rinstance=9b7761b4bcaa4bd0"</a>.
    All the routing is the default configuration of both cscfs and rls.<br>
    <br>
    How can I change the routing of the RLS in order it to send the
    SUBSCRIBE messages to the S-CSCF?<br>
    <br>
    Here's the configuration file:<br>
    <i><small><br>
        route {<br>
        <br>
        &nbsp;&nbsp;&nbsp; # per request initial checks<br>
        &nbsp;&nbsp;&nbsp; route(REQINIT);<br>
        <br>
        &nbsp;&nbsp;&nbsp; # NAT detection<br>
        &nbsp;&nbsp;&nbsp; route(NAT);<br>
        <br>
        &nbsp;&nbsp;&nbsp; # handle requests within SIP dialogs<br>
        &nbsp;&nbsp;&nbsp; route(WITHINDLG);<br>
        <br>
        &nbsp;&nbsp;&nbsp; ### only initial requests (no To tag)<br>
        <br>
        &nbsp;&nbsp;&nbsp; # CANCEL processing<br>
        &nbsp;&nbsp;&nbsp; if (is_method("CANCEL"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (t_check_trans())<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; t_check_trans();<br>
        <br>
        &nbsp;&nbsp;&nbsp; # authentication<br>
        &nbsp;&nbsp;&nbsp; route(AUTH);<br>
        <br>
        &nbsp;&nbsp;&nbsp; # record routing for dialog forming requests (in case they
        are routed)<br>
        &nbsp;&nbsp;&nbsp; # - remove preloaded route headers<br>
        &nbsp;&nbsp;&nbsp; remove_hf("Route");<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE|SUBSCRIBE"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; record_route();<br>
        <br>
        &nbsp;&nbsp;&nbsp; # account only INVITEs<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(FLT_ACC); # do accounting<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # dispatch requests to foreign domains<br>
        &nbsp;&nbsp;&nbsp; route(SIPOUT);<br>
        <br>
        &nbsp;&nbsp;&nbsp; ### requests for my local domains<br>
        <br>
        &nbsp;&nbsp;&nbsp; # handle presence related requests<br>
        &nbsp;&nbsp;&nbsp; route(PRESENCE);<br>
        <br>
        &nbsp;&nbsp;&nbsp; # handle registrations<br>
        &nbsp;&nbsp;&nbsp; route(REGISTRAR);<br>
        <br>
        &nbsp;&nbsp;&nbsp; if ($rU==$null)<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # request with no Username in RURI<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("484","Address Incomplete");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # dispatch destinations to PSTN<br>
        &nbsp;&nbsp;&nbsp; route(PSTN);<br>
        <br>
        &nbsp;&nbsp;&nbsp; # user location service<br>
        &nbsp;&nbsp;&nbsp; route(LOCATION);<br>
        <br>
        &nbsp;&nbsp;&nbsp; route(RELAY);<br>
        }<br>
        <br>
        <br>
        route[RELAY] {<br>
        #!ifdef WITH_NAT<br>
        &nbsp;&nbsp;&nbsp; if (check_route_param("nat=yes")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setbflag(FLB_NATB);<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; if (isflagset(FLT_NATS) || isbflagset(FLB_NATB)) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(RTPPROXY);<br>
        &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        <br>
        &nbsp;&nbsp;&nbsp; /* example how to enable some additional event routes */<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #t_on_branch("BRANCH_ONE");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_reply("REPLY_ONE");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_failure("FAIL_ONE");<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (!t_relay()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; exit;<br>
        }<br>
        <br>
        # Per SIP request initial checks<br>
        route[REQINIT] {<br>
        #!ifdef WITH_ANTIFLOOD<br>
        &nbsp;&nbsp;&nbsp; if(src_ip!=myself)<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($sht(ipban=&gt;$si)!=$null)<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # ip is already blocked<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xdbg("request from blocked IP - $rm from $fu
        (IP:$si:$sp)\n");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!pike_check_req())<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xlog("L_ALERT","ALERT: pike blocking $rm from $fu
        (IP:$si:$sp)\n");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $sht(ipban=&gt;$si) = 1;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header("10")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("483","Too Many Hops");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; if(!sanity_check("1511", "7"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xlog("Malformed SIP message from $si:$sp\n");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        }<br>
        <br>
        # Handle requests within SIP dialogs<br>
        route[WITHINDLG] {<br>
        &nbsp;&nbsp;&nbsp; if (has_totag()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # sequential request withing a dialog should<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # take the path determined by record-routing<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (loose_route()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("BYE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(FLT_ACC); # do accounting ...<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(FLT_ACCFAILED); # ... even if the
        transaction fails<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(RELAY);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("SUBSCRIBE") &amp;&amp; uri == myself)
        {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # in-dialog subscribe requests<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(PRESENCE);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( is_method("ACK") ) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( t_check_trans() ) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # no loose-route, but stateful ACK;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # must be an ACK after a 487<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # or e.g. 404 from upstream server<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # ACK without matching transaction ...
        ignore and discard<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404","Not here");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        }<br>
        <br>
        # Handle SIP registrations<br>
        route[REGISTRAR] {<br>
        &nbsp;&nbsp;&nbsp; if (is_method("REGISTER"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(isflagset(FLT_NATS))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setbflag(FLB_NATB);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # uncomment next line to do SIP NAT pinging <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ## setbflag(FLB_NATSIPPING);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!save("location"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        }<br>
        <br>
        # USER location service<br>
        route[LOCATION] {<br>
        <br>
        #!ifdef WITH_ALIASDB<br>
        &nbsp;&nbsp;&nbsp; # search in DB-based aliases<br>
        &nbsp;&nbsp;&nbsp; alias_db_lookup("dbaliases");<br>
        #!endif<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (!lookup("location")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch ($rc) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -1:<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -3:<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_newtran();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_reply("404", "Not Found");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; case -2:<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("405", "Method Not Allowed");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # when routing via usrloc, log the missed calls also<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(FLT_ACCMISSED);<br>
        &nbsp;&nbsp;&nbsp; }<br>
        }<br>
        <br>
        # Presence server route<br>
        route[PRESENCE] {<br>
        <br>
        &nbsp;&nbsp;&nbsp; if(!is_method("PUBLISH|SUBSCRIBE"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>
        <br>
        #!ifdef WITH_PRESENCE<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (!t_newtran())<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; };<br>
        <br>
        &nbsp;&nbsp;&nbsp; if(is_method("PUBLISH"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; handle_publish();<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_release();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; else if( is_method("SUBSCRIBE"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $var(ret_code)= rls_handle_subscribe();<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if($var(ret_code)== 10) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; handle_subscribe();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_release();<br>
        <br>
        &nbsp;&nbsp;&nbsp; }else if(method=="NOTIFY")<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rls_handle_notify();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; exit;<br>
        #!endif<br>
        &nbsp;&nbsp;&nbsp; # if presence enabled, this part will not be executed<br>
        &nbsp;&nbsp;&nbsp; if (is_method("PUBLISH") || $rU==$null)<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404", "Not here");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; return;<br>
        }<br>
        <br>
        # Authentication route<br>
        route[AUTH] {<br>
        return;<br>
        #!ifdef WITH_AUTH<br>
        &nbsp;&nbsp;&nbsp; if (is_method("REGISTER"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # authenticate the REGISTER requests (uncomment to
        enable auth)<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!www_authorize("$td", "subscriber"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; www_challenge("$td", "0");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($au!=$tU)<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Forbidden auth ID");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; } else {<br>
        <br>
        #!ifdef WITH_IPAUTH<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(allow_source_address())<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # source IP allowed<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # authenticate if from local subscriber<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (from_uri==myself)<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!proxy_authorize("$fd", "subscriber")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; proxy_challenge("$fd", "0");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("PUBLISH"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($au!=$tU) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Forbidden auth ID");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($au!=$fU) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Forbidden auth ID");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; consume_credentials();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # caller authenticated<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # caller is not local subscriber, then check if it
        calls<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # a local destination, otherwise deny, not an open
        relay here<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!uri==myself)<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Not relaying");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        &nbsp;&nbsp;&nbsp; return;<br>
        }<br>
        <br>
        # Caller NAT detection route<br>
        route[NAT] {<br>
        #!ifdef WITH_NAT<br>
        &nbsp;&nbsp;&nbsp; force_rport();<br>
        &nbsp;&nbsp;&nbsp; if (nat_uac_test("19")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (method=="REGISTER") {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_register();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(FLT_NATS);<br>
        &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        &nbsp;&nbsp;&nbsp; return;<br>
        }<br>
        <br>
        # RTPProxy control<br>
        route[RTPPROXY] {<br>
        #!ifdef WITH_NAT<br>
        &nbsp;&nbsp;&nbsp; if (is_method("BYE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; unforce_rtp_proxy();<br>
        &nbsp;&nbsp;&nbsp; } else if (is_method("INVITE")){<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; force_rtp_proxy();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; if (!has_totag()) add_rr_param(";nat=yes");<br>
        #!endif<br>
        &nbsp;&nbsp;&nbsp; return;<br>
        }<br>
        <br>
        # Routing to foreign domains<br>
        route[SIPOUT] {<br>
        &nbsp;&nbsp;&nbsp; if (!uri==myself)<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; append_hf("P-hint: outbound\r\n");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(RELAY);<br>
        &nbsp;&nbsp;&nbsp; }<br>
        }<br>
        <br>
        # PSTN GW routing<br>
        route[PSTN] {<br>
        #!ifdef WITH_PSTN<br>
        &nbsp;&nbsp;&nbsp; # check if PSTN GW IP is defined<br>
        &nbsp;&nbsp;&nbsp; if (strempty($sel(cfg_get.pstn.gw_ip))) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xlog("SCRIPT: PSTN rotuing enabled but pstn.gw_ip not
        defined\n");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # route to PSTN dialed numbers starting with '+' or '00'<br>
        &nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp; (international format)<br>
        &nbsp;&nbsp;&nbsp; # - update the condition to match your dialing rules for
        PSTN routing<br>
        &nbsp;&nbsp;&nbsp; if(!($rU=~"^(\+|00)[1-9][0-9]{3,20}$"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return;<br>
        <br>
        &nbsp;&nbsp;&nbsp; # only local users allowed to call<br>
        &nbsp;&nbsp;&nbsp; if(from_uri!=myself) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403", "Not Allowed");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; $ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);<br>
        <br>
        &nbsp;&nbsp;&nbsp; route(RELAY);<br>
        &nbsp;&nbsp;&nbsp; exit;<br>
        #!endif<br>
        <br>
        &nbsp;&nbsp;&nbsp; return;<br>
        }<br>
        <br>
        # XMLRPC routing<br>
        #!ifdef WITH_XMLRPC<br>
        route[XMLRPC]<br>
        {<br>
        &nbsp;&nbsp;&nbsp; # allow XMLRPC from localhost<br>
        &nbsp;&nbsp;&nbsp; if ((method=="POST" || method=="GET")<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &amp;&amp; (src_ip==127.0.0.1)) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # close connection only for xmlrpclib user agents (there
        is a bug in<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # xmlrpclib: it waits for EOF before interpreting the
        response).<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($hdr(User-Agent) =~ "xmlrpclib")<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; set_reply_close();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; set_reply_no_connect();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dispatch_rpc();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; send_reply("403", "Forbidden");<br>
        &nbsp;&nbsp;&nbsp; exit;<br>
        }<br>
        #!endif<br>
        <br>
        # Sample branch router<br>
        branch_route[BRANCH_ONE] {<br>
        &nbsp;&nbsp;&nbsp; xdbg("new branch at $ru\n");<br>
        }<br>
        <br>
        # Sample onreply route<br>
        onreply_route[REPLY_ONE] {<br>
        &nbsp;&nbsp;&nbsp; xdbg("incoming reply\n");<br>
        #!ifdef WITH_NAT<br>
        &nbsp;&nbsp;&nbsp; if ((isflagset(FLT_NATS) || isbflagset(FLB_NATB))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &amp;&amp; status=~"(183)|(2[0-9][0-9])") {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; force_rtp_proxy();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; if (isbflagset("6")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        }<br>
        <br>
        # Sample failure route<br>
        failure_route[FAIL_ONE] {<br>
        #!ifdef WITH_NAT<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE")<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &amp;&amp; (isbflagset(FLB_NATB) ||
        isflagset(FLT_NATS))) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; unforce_rtp_proxy();<br>
        &nbsp;&nbsp;&nbsp; }<br>
        #!endif<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (t_is_canceled()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        }<br>
      </small></i><br>
    <br>
    Regards,<br>
    &nbsp; Andr&eacute;s.<br>
    <br>
    <br>
    <br>
    El 21/12/10 10:22, Klaus Darilion escribi&oacute;:
    <blockquote cite="mid:4D1071CE.2020103@pernau.at" type="cite">Am
      16.12.2010 13:36, schrieb "Andr&eacute;s S. Garc&iacute;a Ruiz":
      <br>
      <blockquote type="cite">
        <br>
        B.5) P-CSCF ---- SUBSCRIBE ----&gt; Presentity???
        <br>
        <br>
        SUBSCRIBE
        <a class="moz-txt-link-freetext" href="sip:testuser01@155.54.190.245:8060;rinstance=9b7761b4bcaa4bd0">sip:testuser01@155.54.190.245:8060;rinstance=9b7761b4bcaa4bd0</a>
        <br>
        SIP/2.0
        <br>
        Record-Route: <a class="moz-txt-link-rfc2396E" href="sip:mt@pcscf.open-ims.test:4060;lr">&lt;sip:mt@pcscf.open-ims.test:4060;lr&gt;</a>
        <br>
        Record-Route: <a class="moz-txt-link-rfc2396E" href="sip:mt@scscf.open-ims.test:6060;lr">&lt;sip:mt@scscf.open-ims.test:6060;lr&gt;</a>
        <br>
        Via: SIP/2.0/TCP
        155.54.210.134:4060;branch=z9hG4bK07df.baa7cf24.0
        <br>
        Via: SIP/2.0/UDP
        <br>
155.54.210.135:6060;received=155.54.210.135;rport=6060;branch=z9hG4bK07df.8a35e4f3.0
        <br>
        <br>
        Via: SIP/2.0/UDP 155.54.210.136;branch=z9hG4bK07df.3688b985.0
        <br>
        Via: SIP/2.0/UDP 155.54.190.245;branch=z9hG4bK07df.964e0ba7.0
        <br>
        To: <a class="moz-txt-link-freetext" href="sip:testuser01@open-ims.test">sip:testuser01@open-ims.test</a>
        <br>
        From:
        <br>
<a class="moz-txt-link-freetext" href="sip:restricted_areas@open-ims.test;tag=533cb9e91f4b999cf76861cbb9ed54ed-32d5">sip:restricted_areas@open-ims.test;tag=533cb9e91f4b999cf76861cbb9ed54ed-32d5</a>
        <br>
        <br>
        CSeq: 10 SUBSCRIBE
        <br>
        Call-ID: <a class="moz-txt-link-abbreviated" href="mailto:7fd8dfdd-21694@127.0.0.1">7fd8dfdd-21694@127.0.0.1</a>
        <br>
        Content-Length: 0
        <br>
        User-Agent: kamailio (3.2.0-dev1 (i386/linux))
        <br>
        Max-Forwards: 14
        <br>
        Event: presence
        <br>
        Contact: <a class="moz-txt-link-rfc2396E" href="sip:155.54.190.245:5060;transport=udp">&lt;sip:155.54.190.245:5060;transport=udp&gt;</a>
        <br>
        Expires: 10810
        <br>
        Max-Forwards: 70
        <br>
        Support: eventlist
        <br>
        P-Called-Party-ID: <a class="moz-txt-link-rfc2396E" href="sip:testuser01@open-ims.test">&lt;sip:testuser01@open-ims.test&gt;</a>
        <br>
        <br>
        <br>
        The step B.5 is sent directly to the presentity testuser01.
        Instead of
        <br>
        that, I thought that message was suppose to be sent to the
        presence
        <br>
        server in the URI that is shown in Contact header.
        <br>
      </blockquote>
      <br>
      <br>
      If the P-CSCF is not forwarding the request as supposed, I guess
      you have to fix the routing on the P-CSCF.
      <br>
      <br>
      klaus
      <br>
    </blockquote>
    <br>
  </body>
</html>