<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Helvetica Neue";
        panose-1:2 0 5 3 0 0 0 2 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">One thing that was unclear is whether this is currently working and you are just concerned about the error or whether it doesn’t work at all.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I believe it should work and the key to why you are getting errors is in the error message itself:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“provisional or positive final replies”<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Are you validating prior to attempting to change the reply status that it is a 302 reply? Most servers will send at least a 100 Trying response and sometimes other responses. When you arm the reply route, all replies will be delivered to
 it, not just the final reply. Although I’m not sure if that is the case for 100 Trying responses.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">At any rate, I would do a trace to see if the server is only returning a 302, or if it is also returning some other provisional or final reply when the errors occur. If so, you should add code to only attempt to change the reply status
 when it is the expected reply (302).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Ben Newlin<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">Users <users-bounces@lists.opensips.org> on behalf of mwb via Users <users@lists.opensips.org><br>
<b>Reply-To: </b>mwb <mwbazdarich@yahoo.com>, OpenSIPS users mailling list <users@lists.opensips.org><br>
<b>Date: </b>Thursday, September 14, 2017 at 3:02 PM<br>
<b>To: </b>"users@lists.opensips.org" <users@lists.opensips.org><br>
<b>Subject: </b>[OpenSIPS-Users] Changing Reply Response Code<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">Hello and thanks in advance for the help.</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">I have an OpenSIPS process that is set up to send routing responses back to a few SBCs we have. When the SBC sends an INVITE w/o
 RN or NPDI in the RURI, OpenSIPS passes the INVITE along to another server which returns a 302 response with the RN and NPDI information in a contact header. The RN/NPDI info is then incorporated into the response sent back to the SBC. We have a few different
 SBCs that expect different response codes, some 300 and some 302. (we are adding steering digits into the contact header).</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">If the SBC expects a 300 and the call comes through without RN/NPDI we use the below code in the "reply" route for the INVITE that
 OpenSIPS sends to the other server in order to accomodate the 300 (the $avp is filled when the SBC initiating the call is recognized).</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47961">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">switch($avp(sip_response_code)){</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47964">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">case "300":</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47967">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">change_reply_status("300","Multiple Choices");</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47970">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">break;</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47973">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">case "302":</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47976">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">change_reply_status("302","Moved Temporarily");</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47979">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">break;</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47982">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">default:</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47985">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">change_reply_status("302","Moved Temporarily");</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47988">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">}</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47991">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47730">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">We am receiving the following error message from OpenSIPS when the above is executed:</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47736">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">"ERROR:sipmsgops:change_reply_status_f: the class of provisional or positive final replies cannot be changed"</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47736">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_47736">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">If the INVITE we receive from the SBC has the RN/NPDI information in it then we DO NOT need to send the call on to another server
 and thus, after building our response we can use the following code:</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48261">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">switch($avp(sip_response_code)){</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48264">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">case "300":</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48267">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">sl_send_reply("300","Multiple Choices");</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48270">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">break;</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48273">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">case "302":</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48276">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">sl_send_reply("302","Moved Temporarily");</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48279">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">break;</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48282">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">default:</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48285">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">sl_send_reply("302","Moved Temporarily");</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48288">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">}</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">This works without issue, I assume because we are generating a fresh reply rather than proxying the reply from the RN/NPDI server.</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">Is there a way to avoid the "the class of provisional or positive final replies cannot be changed" error? </span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">Are we going about this in the wrong way when we need to send an INVITE to the other server in order to get the RN/NPDI information?</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div id="yui_3_16_0_ym19_1_1505337780799_48291">
<p class="MsoNormal" style="background:white"><span style="font-size:10.0pt;font-family:"Helvetica Neue",sans-serif;color:black">thanks!</span><span style="font-size:7.5pt;font-family:"Helvetica Neue",sans-serif;color:black"><o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>