<p dir="ltr">You could check, if you can send the announcement as early media (183 Session progress) and afterwards decline the call from FreeSwitch. In this case, you should not get a 200 Ok from FreeSwitch,  but another SIP reply, which you could mofify in yout Kamailio config...</p>

<p dir="ltr">Carsten</p>
<div class="gmail_quote">Am 24.11.2013 20:44 schrieb "Oliver Roth" <<a href="mailto:oliver.roth@triotel.ch">oliver.roth@triotel.ch</a>>:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






<div lang="DE-CH" link="#0563C1" vlink="#954F72">
<div>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">Sorry – I do not understand what you mean …<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">I added the following code at the end of the failure_route – seems to work
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">        if (t_grep_status("404")){<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">                xlog("L_INFO", "ORO Status 404 - not found");<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">                t_reply("404", "not found");<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">                exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">        }<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><a name="1428ba416da87d9e__MailEndCompose"><span lang="EN-GB" style="color:#1f497d"><u></u> <u></u></span></a></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="DE">Von:</span></b><span lang="DE"> <a href="mailto:sr-users-bounces@lists.sip-router.org" target="_blank">sr-users-bounces@lists.sip-router.org</a> [mailto:<a href="mailto:sr-users-bounces@lists.sip-router.org" target="_blank">sr-users-bounces@lists.sip-router.org</a>]
<b>Im Auftrag von </b>Brandon Armstead<br>
<b>Gesendet:</b> Sonntag, 24. November 2013 20:41<br>
<b>An:</b> Kamailio (SER) - Users Mailing List<br>
<b>Cc:</b> Kamailio (SER) - Users Mailing List<br>
<b>Betreff:</b> Re: [SR-Users] error handling<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Acc_db_request<br>
<br>
Sent from my iPhone<span style="font-size:12.0pt"><u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
On Nov 24, 2013, at 11:20 AM, Oliver Roth <<a href="mailto:oliver.roth@triotel.ch" target="_blank">oliver.roth@triotel.ch</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Hi all<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">Question about error handling with kamailio.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">We send call to carrier and get back error 404.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">In carrierfailureroute we catch up this error and send call to an internal freeswitch that plays a voiceprompt saying: “destination not available”</span><u></u><u></u></p>

<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">In accounting this calls is collected like a “normal” call – cause the internal freeswitch did the connection.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">I would like to play the voiceprompt but get the error 404 and see the call in the missed calls acc table.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">With 486 (busy) it is simple because we do not need an rtp response … just fast busy.</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB" style="color:#1f497d">How can we handle this for errors we need to play a voiceprompt?</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">What we do in failure route:</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">failure_route[MANAGE_FAILURE] {</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        sip_trace();</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        setflag(22);</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        if (t_grep_status("486")){</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                xlog("L_INFO", "Status 486 - busy");</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                t_reply("486", "Busy");</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                exit;</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        }</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        revert_uri();</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        route(NATMANAGE);</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        if (t_is_canceled()) {</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                exit;</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        }</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        xlog("L_INFO", "failure_route rd: $rd replCode:  $T_reply_code trunk_in: $avp(s:trunk_in) Tree: $avp(s:tree), rU:  $rU, todirection $avp(s:todirection) fu: $fu\n");</span><u></u><u></u></p>

<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        if(!cr_next_domain("$avp(s:cr_pref_carr)", "$avp(s:tree)", "$rU", "$avp(s:trunk_in)", "$T_reply_code", "$avp(s:tree)" )){</span><u></u><u></u></p>

<p class="MsoNormal"><span lang="EN-GB">                xlog("cr_next_domain failed");</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                exit;</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        }</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        if(!cr_route("$avp(s:cr_pref_carr)", "$avp(s:tree)", "$rU", "$rU", "call_id", "$avp(s:todirection)" )){</span><u></u><u></u></p>

<p class="MsoNormal"><span lang="EN-GB">                xlog("cr_route failed");</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                exit;</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        }</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        xlog("L_INFO", "failure_route rd: $rd replCode:  $T_reply_code trunk_in: $avp(s:trunk_in) Tree: $avp(s:tree), rU:  $rU, todirection $avp(s:todirection) fu: $fu \n");</span><u></u><u></u></p>

<p class="MsoNormal"><span lang="EN-GB">        $avp(s:trunk_out) = $avp(s:todirection);</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        xlog(, "L_INFO", "RELAY - FailureRoute: Outbound sent via $avp(s:trunk_out) rU $rU -------------------------------------------------------- ");</span><u></u><u></u></p>

<p class="MsoNormal"><span lang="EN-GB">        if (is_method("INVITE"))</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        {</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                setflag(FLT_ACC); # do accounting</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                setflag(FLT_ACCMISSED); # oro 28.10.13</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        }</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        route(ALTERHEADER);</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        </span><span lang="FR-CH">t_on_failure("MANAGE_FAILURE");</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="FR-CH">        </span><span lang="EN-GB">#append_branch();</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        if (!t_relay()) {</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                xlog("failureroute t_relay failed");</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">                exit;</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">        }</span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB"> </span><u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-GB">}</span><u></u><u></u></p>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif"">_______________________________________________<br>
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<br>
<a href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><u></u><u></u></span></p>
</div>
</blockquote>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt;font-family:"Times New Roman","serif"">
<hr size="1" width="100%" noshade style="color:#a0a0a0" align="center">
</span></div>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman","serif"">E-Mail ist virenfrei.<br>
Von AVG überprüft - <a href="http://www.avg.de" target="_blank">www.avg.de</a><br>
Version: 2014.0.4158 / Virendatenbank: 3629/6863 - Ausgabedatum: 24.11.2013 <u></u>
<u></u></span></p>
</div>
</div>

<br>_______________________________________________<br>
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<br>
<a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
<br></blockquote></div>