<p></p>
<p dir="auto">Dear Gang</p>
<p dir="auto">Possibly <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/oej/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/oej">@oej</a> could provide more in-depth information as he has witnessed this issue.</p>
<p dir="auto">Usually the user of the from URI is the phone number displayed at the destination. There are situations where this phone number is translated.<br>
As example. In Switzerland, the user is used to see numbers in a local format. National number starting with 0 and international numbers with 00 but on interconnection between telcos, e164 is used.<br>
So basically when a call is sent to a customer '+41' is replaced by '0' and '+' is replaced by '00'.</p>
<p dir="auto">Let's start with an example From: header:</p>
<p dir="auto"><code class="notranslate">From: "Maurice Moss" <sip:+41991234567@example.com>;user=phone</code></p>
<p dir="auto">So shortly before the call is sent out to the location of the registered CPE, this is done:</p>
<pre class="notranslate"><code class="notranslate">if ($fU =~ "^\+41") {
   $fU = "0" + $(fU{s.substr,3,0});
} else if ($fU = ~ "^\+") {
   $fU = "00" + $(fU{s.substr,1,0});
}
</code></pre>
<p dir="auto">What is sent to the CPE now looks like this:</p>
<p dir="auto"><code class="notranslate">From: "Maurice Moss" <sip:0991234567@example.com>;user=phone</code></p>
<p dir="auto">Now we hit an error like 486 BUSY and the destination has call forwarding active to a mobile phone on another TSP. So we have to send the call out back the IC and numbers need to be translated back to e164.</p>
<p dir="auto">We handle this in a failure route, which in turn could trigger a branch route.</p>
<p dir="auto">So we revert the number back to e164:</p>
<p dir="auto"><code class="notranslate">$fU = "+41" + $(fU{s.substr,1,0});</code></p>
<p dir="auto">Expected outcome:</p>
<p dir="auto"><code class="notranslate">From: "Maurice Moss" <sip:+41991234567@example.com>;user=phone</code></p>
<p dir="auto">Observed outcome:</p>
<p dir="auto"><code class="notranslate">From: "Maurice Moss" <sip:0991234567+41991234567@example.com>;user=phone</code></p>
<p dir="auto">So setting $fU more than once is appending to the user element of the From header URI.</p>
<p dir="auto">This behavior has not been found in any documentation.</p>
<p dir="auto">I have been working around most of the issues by making sure I change $fU (and $tU) at the latest possible time and only once. But in the case described above, I have not been able to come up with a work-around yet.</p>
<p dir="auto">I also can't think of any benefit of the way those PV are handled or any harm that could be done, to handle them differently and make the last 'write' overwrite and previous value, instead of appending.</p>
<p dir="auto">Thank you for looking into this.</p>
<p dir="auto">-BenoĆ®t-</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/issues/3165">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABO7UZNHIUYJW2VMZN4TCKTVRFK23ANCNFSM5Z5PREGA">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/ABO7UZMEECPP732L2JYLS3LVRFK23A5CNFSM5Z5PREGKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4TE5LHLQ.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><kamailio/kamailio/issues/3165</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/issues/3165",
"url": "https://github.com/kamailio/kamailio/issues/3165",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>