<div>To get outgoing caller id to work I have to change my FROM header to a trunk-specific format. While this is ugly, it works, unless I try to do it more then once. Using gateway lists in drouting this scenario can happen as the routing script is run for each gateway on failure.</div>

<div><br></div><div>Is there another way for me to do this? Either by only using uac_replace_from once, or by alternating the FROM header in another way?</div><div><br></div><div>With the below script I end up with duplicates:</div>

<div>From: &quot;123456789&quot;&quot;34123456789&quot; &lt;sip:123456789@4.4.4.4sip:<a href="mailto:34123456789@4.4.4.4">34123456789@4.4.4.4</a>&gt;;tag=as0ab5e31d.</div><div><br></div><div>if(do_routing()) {</div><div>
    route(111);</div>
<div>    exit;</div><div>}</div><div><br></div><div>#...</div><div><br></div><div>route[111] {</div><div>    # Do gateway-specific processing</div><div>    switch($rd) {</div><div>        case &quot;1.1.1.1&quot;:</div><div>

            route(callid1);</div><div>            break;</div><div>        case &quot;2.2.2.2&quot;:</div><div>            route(callid2);</div><div>            break;</div><div>        case &quot;3.3.3.3&quot;:</div><div>

            route(callid3);</div><div>            break;</div><div>        default:</div><div>            route(callid1);</div><div>    }</div><div>    t_on_failure(&quot;1&quot;);</div><div>    if (!t_relay()) {</div><div>

        sl_reply_error();</div><div>    };</div><div>    exit;</div><div>}</div><div><br></div><div>route[callid1] {</div><div>    if(avp_db_query(&quot;select call_id from subscriber_extras where username = &#39;$fU&#39;&quot;, &quot;$avp(s:cid)&quot;)) {</div>

<div>        uac_replace_from(&quot;34$avp(s:cid)&quot;, &quot;sip:34$avp(s:cid)@$td&quot;);</div><div>    }</div><div>}</div><div><br></div><div>route[callid2] {</div><div>    if(avp_db_query(&quot;select call_id from subscriber_extras where username = &#39;$fU&#39;&quot;, &quot;$avp(s:cid)&quot;)) {</div>

<div>        uac_replace_from(&quot;+34$avp(s:cid)&quot;, &quot;sip:+34$avp(s:cid)@$td&quot;);</div><div>    }</div><div>}</div><div><br></div><div>route[callid3] {</div><div>    if(avp_db_query(&quot;select call_id from subscriber_extras where username = &#39;$fU&#39;&quot;, &quot;$avp(s:cid)&quot;)) {</div>

<div>        uac_replace_from(&quot;$avp(s:cid)&quot;, &quot;sip:$avp(s:cid)@$td&quot;);</div><div>    }</div><div>}</div><div><br></div><div>failure_route[1] {</div><div>    if(use_next_gw()) {</div><div>        t_on_failure(&quot;1&quot;);</div>

<div>        route(111);</div><div>        exit;</div><div>    }</div><div>}</div>