<div dir="ltr">Hi All,<div><br></div><div>I am trying to have a failover route where if a initial relay fails , i can forward the same request to a second provider.</div><div><br></div><div>I am using a certain set of headers that help to authenticate over my providers.  I am trying to update those headers. However update and removal both fail. The headers are still present. Please help me understand if i am wrong. Here's the code.</div><div><br></div><div><br></div><div><br></div><div><div><span class="" style="white-space:pre">    </span>.....</div><div><span class="" style="white-space:pre">      </span>route(GET_CREDENTIALS);</div><div><span class="" style="white-space:pre">    </span>}</div><div><br></div><div><br></div><div><span class="" style="white-space:pre">        </span>remove_hf_re("X-*");</div><div><span class="" style="white-space:pre">     </span>append_hf("X-Src-IP: Trusted\r\n", "Call-ID");</div><div><span class="" style="white-space:pre"> </span>append_hf("X-Identity: $hdr(X-Calling-User)\r\n", "Call-ID");</div><div><span class="" style="white-space:pre">  </span>append_hf("X-Auth-ID: $avp(siptrunk_username)\r\n", "Call-ID");</div><div><br></div><div><span class="" style="white-space:pre">       </span>$avp(realm) = $fd;</div><div><span class="" style="white-space:pre"> </span>$rd = $avp(siptrunk_domain);</div><div><span class="" style="white-space:pre">       </span>$var(duri) = "sip:"+$rU+"@"+$avp(siptrunk_proxy);</div><div><span class="" style="white-space:pre">      </span></div><div><span class="" style="white-space:pre">   </span>$du = $var(duri);</div><div><span class="" style="white-space:pre">  </span>t_on_failure("UAC_AUTH");</div><div><span class="" style="white-space:pre">        </span>if(!t_relay()) {</div><div><span class="" style="white-space:pre">           </span>sl_reply_error();</div><div><span class="" style="white-space:pre">          </span>exit;</div><div><span class="" style="white-space:pre">      </span>}</div><div><br></div><div>}</div><div><br></div><div>failure_route[UAC_AUTH] {</div><div><br></div><div><span class="" style="white-space:pre">       </span>if(t_check_status("(4|5)[0|8][0|2|3|4|6|8]")){</div><div>    <span class="" style="white-space:pre">     </span>xlog("L_INFO","failover testing");</div><div><span class="" style="white-space:pre">             </span>revert_uri();</div><div><br></div><div><span class="" style="white-space:pre">             </span>route(FAILOVER);</div><div>    }</div><div><br></div><div><span class="" style="white-space:pre">    </span>if (t_check_status("40[17]")) {</div><div><span class="" style="white-space:pre">          </span>xlog("got challenged \n");</div><div><span class="" style="white-space:pre">               </span>uac_auth();</div><div><span class="" style="white-space:pre">                </span>xlog("L_INFO", "Return code is $retcode");</div><div><span class="" style="white-space:pre">             </span>$rd = $avp(siptrunk_proxy);</div><div><span class="" style="white-space:pre">                </span>t_on_failure("UAC_AUTH");</div><div><span class="" style="white-space:pre">                </span>t_relay();</div><div><span class="" style="white-space:pre"> </span>}</div><div><br></div><div>}</div><div><br></div><div><br></div><div>route[FAILOVER]{</div><div><span class="" style="white-space:pre">        </span>xlog("L_INFO","doing failover now.. ");</div><div><br></div><div><span class="" style="white-space:pre">       </span>if($avp(failover_routing_id)!=$null) {</div><div><br></div><div><span class="" style="white-space:pre">            </span>$avp(outbound_routing_id)=$avp(failover_routing_id);</div><div>        xlog("L_INFO","Failover carrier credentials are..");</div><div>        route(GET_CREDENTIALS);</div><div><br></div><div><span class="" style="white-space:pre">         </span>#not adding headers now</div><div><span class="" style="white-space:pre">            </span>remove_hf_re("X-*");</div><div><span class="" style="white-space:pre">             </span>append_hf("X-Src-IP: Trusted\r\n", "Call-ID");</div><div><span class="" style="white-space:pre">         </span>append_hf("X-Identity: $hdr(X-Calling-User)\r\n", "Call-ID");</div><div><span class="" style="white-space:pre">          </span>append_hf("X-Auth-ID: $avp(siptrunk_username)\r\n", "Call-ID");</div><div><span class="" style="white-space:pre">                </span></div><div><span class="" style="white-space:pre">           </span></div><div><span class="" style="white-space:pre">           </span>$avp(realm) = $fd;</div><div><span class="" style="white-space:pre">         </span>$rd = $avp(siptrunk_proxy);</div><div><span class="" style="white-space:pre">                </span>$var(duri) = "sip:"+$rU+"@"+$avp(siptrunk_proxy);</div><div><span class="" style="white-space:pre">              </span></div><div><span class="" style="white-space:pre">           </span>$du = $var(duri);</div><div><span class="" style="white-space:pre">          </span>xlog("L_INFO","Destination Uri from failover is : $du");</div><div><span class="" style="white-space:pre">               </span>t_on_failure("UAC_AUTH2");</div><div><span class="" style="white-space:pre">               </span>if(!t_relay()) {</div><div><span class="" style="white-space:pre">                   </span>sl_reply_error();</div><div><span class="" style="white-space:pre">                  </span>exit;</div><div><span class="" style="white-space:pre">              </span>}</div><div><br></div><div>        exit;</div><div><br></div><div><span class="" style="white-space:pre">        </span>}</div><div><br></div><div>}</div><div><br></div><div>failure_route[UAC_AUTH2] {</div><div><br></div><div><span class="" style="white-space:pre">      </span>if(t_check_status("(4|5)[0|8][0|2|3|4|6|8]")){</div><div><span class="" style="white-space:pre">           </span>xlog("L_INFO","Failover failed. cancelled call ");</div><div><span class="" style="white-space:pre">             </span>exit;</div><div><span class="" style="white-space:pre">      </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>if (t_check_status("40[17]")) {</div><div><span class="" style="white-space:pre">          </span>xlog("got challenged \n");</div><div><span class="" style="white-space:pre">               </span>uac_auth();</div><div><span class="" style="white-space:pre">                </span>xlog("L_INFO", "Return code is $retcode");</div><div><span class="" style="white-space:pre">             </span>$rd = $avp(siptrunk_proxy);</div><div><span class="" style="white-space:pre">                </span>t_relay();</div><div><span class="" style="white-space:pre"> </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>exit;</div><div>}</div></div><div><br></div><div><br clear="all"><div><div class="gmail_signature"><div dir="ltr">Thanking You,<br>Sunil More<br><br></div></div></div>
</div></div>