Hi guys,<div><br></div><div>In a nut shell, it appears that when attempting to perform a blind transfer under certain conditions (explained below), mod_xml_curl does not expose the originating domain in a clean format.</div>
<div><div><br></div><div><div>My initial plan was to find the point where these variable were being generated, look at what was available, then add an extra variable for the domain and submit a patch.</div></div><div><br>
</div><div>Sadly my C isn't great and I hit a brick wall, so if anyone can help out, I will ensure the mod_xml_curl documentation is updated and/or assist with any patching/testing required.</div><div><div><br></div></div>
<div>Please take the following scenario;</div><div><br></div><div>* Extension 2000 calls an external number via a gateway (i.e. bridge sofia/gateway/name/e164_number_here).</div><div>* Call connects fine, audio stays good, no disconnection problems etc.</div>
<div>* Call is blind transferred to another extension</div><div><br></div><div>As a result, the following is determined;</div><div><br></div><div>* User initiating the blind transfer is 2000</div><div>* Domain initiating the blind transfer is <a href="http://c1881.voiceflare.co.uk">c1881.voiceflare.co.uk</a></div>
<div>* Destination number of the call is 447866123456</div><div>* Number to blind transfer to is 2001</div><div>* Call to mod_xml_curl is made</div><div><br></div><div>It makes reference to the User in the following 'clean' variables (by clean, I mean variables that just contain 2000 and don't require mangling to extract the info);</div>
<div><br></div><div><div> u'Caller-ANI': u'2000',</div></div><div><div> u'Caller-Username': u'2000',</div></div><div><div> u'Caller-Caller-ID-Number': u'2000',</div></div><div>
<div> u'Hunt-ANI': u'2000',</div></div><div><div> u'Hunt-Caller-ID-Number': u'2000',</div></div><div><div> u'Hunt-Username': u'2000',</div></div><div><div> u'variable_last_sent_callee_id_number': u'2000',</div>
</div><div><div><div> u'variable_sip_from_user': u'2000',</div><div></div></div><div><br></div><div>It also has the User in the following unclean variables;</div><div><br></div><div> u'variable_bridge_channel': u'sofia/external/<a href="http://2000@c1881.voiceflare.co.uk:5060">2000@c1881.voiceflare.co.uk:5060</a>',</div>
<div></div></div><div><div> u'variable_sip_from_uri': <a href="mailto:u%272000@89.238.182.137">u'2000@89.238.182.137</a>',</div><div> u'variable_sip_full_from': u'"foxx" <<a href="mailto:sip%3A2000@89.238.182.137">sip:2000@89.238.182.137</a>>;tag=XryjFQp3rB2NF',</div>
</div><div><div> u'variable_sip_h_Referred-By': u'"foxx" <<a href="http://sip:2000@c1881.voiceflare.co.uk:5060">sip:2000@c1881.voiceflare.co.uk:5060</a>>',</div></div><div><br></div><div>However, it only references the domain in the following unclean variables;</div>
<div><br></div><div> u'variable_bridge_channel': u'sofia/external/<a href="http://2000@c1881.voiceflare.co.uk:5060">2000@c1881.voiceflare.co.uk:5060</a>',</div><div> u'variable_sip_h_Referred-By': u'"foxx" <<a href="http://sip:2000@c1881.voiceflare.co.uk:5060">sip:2000@c1881.voiceflare.co.uk:5060</a>>',</div>
<div> u'variable_sip_refer_to': u'<<a href="http://sip:2001@c1881.voiceflare.co.uk:5060">sip:2001@c1881.voiceflare.co.uk:5060</a>>',</div><div><br></div><div>Lets say that we want to determine the user/domain that has initiated this transfer, doing so would mean mangling with one of those above variables, which seems a bit dirty (plus it is not clear which is the correct one to use).</div>
<div><br></div><div>I have attached the SIP trace of the entire blind transfer event, and the full mod_xml_curl request being sent.</div><div><br></div><div><div>If anyone could answer the following, it'd be much appreciated;</div>
<div><br></div><div>* Should there be an improvement patch that exposes the domain of the user that originated the blind transfer?</div><div>* Are there better/alternative ways to extracting the domain of the user that originated the blind transfer?</div>
</div><div><br></div><div>Many thanks</div><div><br>Cal</div><div><br></div></div>