<font color='black' size='2' face='arial'>
<div><font face="arial"><font size="2">When I setup a call then cancel the call I am getting a 487 from my gateway that is relayed to the client.</font></font></div>
<div><font face="arial"><font size="2">I don't wish to show the 487 to the client.  Is it possible to drop the reply for the 487?</font></font></div>
<div><font face="arial"><font size="2"><br>
</font></font></div>
<font face="arial"><font size="2">I am hoping someone could let me know if this is </font>possible<font size="2">.</font></font>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; ">I am running opensips 1.7  Here is a copy of my config as well.</div>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div>
<div><font face="arial">debug=4</font></div>
<div><font face="arial">log_stderror=no</font></div>
<div><font face="arial">log_facility=LOG_LOCAL0</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">fork=yes</font></div>
<div><font face="arial">children=4</font></div>
<div><font face="arial">disable_tcp=yes</font></div>
<div><font face="arial">auto_aliases=yes</font></div>
<div><font face="arial">sip_warning=yes</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">listen=udp:10.8.1.139:5060</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">group=nobody</font></div>
<div><font face="arial">user=nobody</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">server_header="ZZZ"</font></div>
<div><font face="arial">server_signature = off</font></div>
<div><font face="arial">user_agent_header="User-Agent: ZZZ"</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">####### Modules Section ########</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">#set module path</font></div>
<div><font face="arial">mpath="/usr/local/lib64/opensips/modules/"</font></div>
<div><font face="arial">loadmodule "db_text.so"</font></div>
<div><font face="arial">loadmodule "signaling.so"</font></div>
<div><font face="arial">loadmodule "sl.so"</font></div>
<div><font face="arial">loadmodule "tm.so"</font></div>
<div><font face="arial">loadmodule "rr.so"</font></div>
<div><font face="arial">loadmodule "maxfwd.so"</font></div>
<div><font face="arial">loadmodule "textops.so"</font></div>
<div><font face="arial">loadmodule "mi_fifo.so"</font></div>
<div><font face="arial">loadmodule "uri.so"</font></div>
<div><font face="arial">loadmodule "domain.so"</font></div>
<div><font face="arial">loadmodule "permissions.so"</font></div>
<div><font face="arial">loadmodule "userblacklist.so"</font></div>
<div><font face="arial">loadmodule "dialog.so"</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">modparam("domain|userblacklist|dialog|</font><span style="font-family: arial; ">permissions</span><span style="font-family: arial; ">", "db_url","text:///zxa/server/opensipsDNC")</span></div>
<div><font face="arial">modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")</font></div>
<div><font face="arial">modparam("rr", "append_fromtag", 0)</font></div>
<div><font face="arial">modparam("uri", "use_uri_table", 0)</font></div>
<div><font face="arial">modparam("domain", "db_mode", 1)   # Use caching</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">####### Routing Logic ########</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"># main request routing logic</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">route{</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>xlog("=== TOP ===");</font></div>
<div><font face="arial">    xlog("%%%% tu= $tu | fu= $fu | od= $od | ReceivedINT: $Ri | SourceIP: $si %%%");</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    if ( $si == "10.8.1.139") && ( $Ri == "10.8.1.139")</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span> </font></div>
<div><font face="arial">    if (!check_address("1","$si","$sp","$proto"))</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">                </span>xlog("=== ACCESS FAILED ===");</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">                </span>xlog("=== $si| $sp | $proto ===");</font></div>
<div><font face="arial">        sl_send_reply("403","Forbidden");</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    if (!mf_process_maxfwd_header("10"))</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>    xlog("=== TOO MANY HOPS ===");</font></div>
<div><font face="arial">        sl_send_reply("483","Too Many Hops");</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>#CANCEL processing</font></div>
<div><font face="arial">    if (is_method("CANCEL"))</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>    xlog("=== CANCEL 76 ===");</font></div>
<div><font face="arial">        if (t_check_trans())</font></div>
<div><font face="arial">            t_relay();</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font face="arial">        </font></span></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>if (is_method("PUBLISH"))</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        sl_send_reply("503", "Service Unavailable");</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    if (has_totag())</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        xlog("=== HAS TO TAG ===");</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">        if (loose_route()) </font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">                </span>{</font></div>
<div><font face="arial">        </font></div>
<div><font face="arial">            </font></div>
<div><font face="arial">            xlog("=== HAS LOOSE ===");</font></div>
<div><font face="arial">            if (is_method("BYE"))</font></div>
<div><font face="arial">            {</font></div>
<div><font face="arial">                 xlog("=== LOOSE BYE ===");</font></div>
<div><font face="arial">                 route(3);</font></div>
<div><font face="arial">                 exit;</font></div>
<div><font face="arial">            } else if (is_method("INVITE")) {</font></div>
<div><font face="arial">                </font></div>
<div><font face="arial">                xlog("=== RE-INVITE LOOSE ===");</font></div>
<div><font face="arial">                record_route();</font></div>
<div><font face="arial">            } </font></div>
<div><font face="arial">            </font></div>
<div><font face="arial">            xlog("In loouse going to Route 1");</font></div>
<div><font face="arial">            route(1);</font></div>
<div><font face="arial">        </font></div>
<div><font face="arial">        } else {</font></div>
<div><font face="arial">            </font></div>
<div><font face="arial">            if ( is_method("ACK") )</font></div>
<div><font face="arial">            {</font></div>
<div><font face="arial">                xlog("=== LOOSE ELSE ACK ===");   </font></div>
<div><font face="arial">                if ( t_check_trans() )</font></div>
<div><font face="arial">                {</font></div>
<div><font face="arial">                    t_relay();</font></div>
<div><font face="arial">                    exit;</font></div>
<div><font face="arial">                } else {</font></div>
<div><font face="arial">                    xlog("=== LOOSE Discard ACK ===");</font></div>
<div><font face="arial">                    exit;</font></div>
<div><font face="arial">                }</font></div>
<div><font face="arial">            }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">                sl_send_reply("404","Not here");</font></div>
<div><font face="arial">        }</font></div>
<div><span class="Apple-tab-span" style="white-space:pre"><font face="arial">                </font></span></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    t_check_trans();</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>if (loose_route()) </font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        xlog("L_ERR","Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");</font></div>
<div><font face="arial">        if (!is_method("ACK"))</font></div>
<div><font face="arial">        {</font></div>
<div><font face="arial">            sl_send_reply("403","Preload Route denied");</font></div>
<div><font face="arial">             exit;</font></div>
<div><font face="arial">        }</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    # record routing</font></div>
<div><font face="arial">    if (!is_method("REGISTER|MESSAGE"))</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>{</font></div>
<div><font face="arial">        record_route();</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    if (!is_uri_host_local())</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        xlog("Not local so lets just see what happens $rd");</font></div>
<div><font face="arial">        route(1);</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    if ($rU==NULL)</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        # request with no Username in RURI</font></div>
<div><font face="arial">        sl_send_reply("484","Address Incomplete");</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial">    <span class="Apple-tab-span" style="white-space:pre">        </span></font></div>
<div><font face="arial">    if (is_method("INVITE") && (!has_totag()) )</font></div>
<div><font face="arial">    {   </font></div>
<div><font face="arial">        xlog("||||||  NEW CALL ||||||");</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    route(2);</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">    send_reply("420", "Invalid Extension");</font></div>
<div><font face="arial">    exit;</font></div>
<div><font face="arial">}</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">route[1] {</font></div>
<div><font face="arial">    #---- RTP Proxy handling ---#</font></div>
<div><font face="arial">    xlog("=== ROUTE 1 ===");</font></div>
<div><font face="arial">    rewritehostport("10.8.1.44:5060");</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    if (is_method("INVITE")) {</font></div>
<div><font face="arial">        </font></div>
<div><font face="arial">        t_on_reply("1");</font></div>
<div><font face="arial">        t_on_failure("1");</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    if (!t_relay())</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        sl_reply_error();</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    exit;</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">}</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">route[2] {</font></div>
<div><font face="arial">    xlog("=== ROUTE 2 ===");</font></div>
<div><font face="arial">    if (!check_blacklist("userblacklist"))</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        xlog('~~~  BLACKLISTED DID Forbidden ~~~');</font></div>
<div><font face="arial">        sl_send_reply("403", "DID Forbidden");</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    route(1);</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">}</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">route[3] {</font></div>
<div><font face="arial">  xlog("=== ROUTE 3 ===");</font></div>
<div><font face="arial">  t_on_reply("1");</font></div>
<div><font face="arial">  t_on_failure("1");</font></div>
<div><font face="arial">  t_relay("udp:10.8.1.44:5060");</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">}</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">branch_route[1] {</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    xlog("new branch at $ru\n");</font></div>
<div><font face="arial">}</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">onreply_route[1] {</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    xlog("=== ON REPLY ROUTE 2  rs= $rs | fu= $fu | si= $si | Ri= $Ri ===");</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial">    if (t_check_status("487")) </font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        xlog("487 at reply route");</font></div>
<div><font face="arial">        t_cancel_branch();</font></div>
<div><font face="arial">        </font></div>
<div><font face="arial">        drop;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">}</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">failure_route[1] {</font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>xlog("=== FAIL ROUTE ===");  </font></div>
<div><font face="arial">  xlog("=== FAIL ROUTE 2  fu= $fu | od= $od | si= $si | Ri= $Ri ===");</font></div>
<div><font face="arial">    </font></div>
<div><font face="arial"><span class="Apple-tab-span" style="white-space:pre">        </span>if (t_was_cancelled())</font></div>
<div><font face="arial">    {</font></div>
<div><font face="arial">        exit;</font></div>
<div><font face="arial">    }</font></div>
<div><font face="arial"><br>
</font></div>
<div><font face="arial">}</font></div>
<div style="color: black; font-family: arial; font-size: 10pt; "><br>
</div>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; ">Here is a call flow that I have a question about.  Sorry if this is over kill.</div>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div style="color: black; ">
<div>
<div><font face="'Courier New', Courier, mono" size="1">| 10.6.3.87         |10.8.1.139         | 10.8.1.44                             |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |                   |                   </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Request: INVITE sip           |                   |SIP/SDP: Request: INVITE </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   ------------------>  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Status: 100 Giving            |                   |SIP: Status: 100 Giving a try</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   <------------------  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Request: INVITE sip           |SIP/SDP: Request: INVITE </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   ------------------>  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Status: 100 Trying            |SIP: Status: 100 Trying</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   <------------------  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Status: 180 Ringing           |SIP: Status: 180 Ringing</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   <------------------  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Status: 180 Ringing           |                   |SIP: Status: 180 Ringing</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   <------------------  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Request: CANCEL sip           |                   |SIP: Request: CANCEL </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   ------------------>  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Status: 200 canceli           |                   |SIP: Status: 200 canceling</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   <------------------  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Request: CANCEL sip           |SIP: Request: CANCEL </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   ------------------>  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Request: ACK sip:18           |                   |SIP: Request: ACK </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   ------------------>  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Request: BYE sip:18           |                   |SIP: Request: BYE </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   ------------------>  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Request: BYE sip:10           |SIP: Request: BYE </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   ------------------>  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Status: 200 OK                |SIP: Status: 200 OK</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   <------------------  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Status: 487 Request           |SIP: Status: 487 Request Terminated</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   <------------------  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Request: ACK sip:18           |SIP: Request: ACK </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   ------------------>  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Status: 487 Request           |                   |SIP: Status: 487 Request Terminated</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   <------------------  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Request: ACK sip:18           |                   |SIP: Request: ACK </font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   ------------------>  (5060)   |                   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |         Status: 200 OK                |SIP: Status: 200 OK</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|                   |(5060)   <------------------  (5060)   |</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|         Status: 200 OK                |                   |SIP: Status: 200 OK</font></div>
<div><font face="'Courier New', Courier, mono" size="1">|(5068)   <------------------  (5060)   |                   |</font></div>
</div>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; ">Thanks,</div>
<div style="color: black; font-size: 10pt; font-family: arial; "><br>
</div>
<div style="color: black; font-size: 10pt; font-family: arial; ">James</div>
</font>