Description

Kamailio sending HELD request with broken sip uri when the INVITE message contains a display name or display name with special character "&".

P-Asserted-Identity: "User &" <sip:+12001112233@206.147.236.78:5060>

or

P-Asserted-Identity: "User" <sip:+12001112233@206.147.236.78:5060>

For the first case, HELD request body looks like

<?xml version="1.0" encoding="UTF-8"?>
<locationRequest xmlns="urn:ietf:params:xml:ns:geopriv:held" responseTime="5000">
   <locationType exact="true">geodetic locationURI</locationType>
   <device xmlns="urn:ietf:params:xml:ns:geopriv:held:id">
      <uri />
   </device>
</locationRequest>

Here uri element is empty.

For the second case, HELD request body looks like (ident formatted)

<?xml version="1.0" encoding="UTF-8"?>
<locationRequest xmlns="urn:ietf:params:xml:ns:geopriv:held" responseTime="5000">
   <locationType exact="true">geodetic locationURI</locationType>
   <device xmlns="urn:ietf:params:xml:ns:geopriv:held:id">
      <uri>"User" &lt;sip:+12001112233@206.147.236.78:5060&gt;</uri>
   </device>
</locationRequest>

In HELD schema the 'uri' element specified as

<xs:element name="uri" type="xs:anyURI"/>

For me looks like here display name cannot be used.
Moreover, if an inbound call does not contain P-Asserted-Identity header then lost properly extracts uri from the From header.
For me look like need to improve P-Asserted-Identity parsing in the lost module and properly extract uri from header value.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/3426@github.com>