<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 18, 2017 at 12:39 AM, Yasin CANER <span dir="ltr"><<a href="mailto:yasin.caner@netgsm.com.tr" target="_blank">yasin.caner@netgsm.com.tr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    Hello,<br>
    After chan_pjsip is added in asterisk  channels and asterisk improvement  goes to chan_sip to chan_pjsip , i tried to move my network to chan_pjsip. one feature has chan_sip but not chan_pjsip that i use   , exclamation mark in Dial to change to uri number part.<br>
    So i added a function to solve this problem or missing feature in res_pjsip_session.<br>
    Why did i use the DNID in Callerid. in wiki asterisk it has a explanation that dialed party number. so it suits me and has a variable/struct in asterisk channel, it makes easy to use. In addition it is kinda changin Callerid number part.<br>
<br>
    if i cant add this feature or solve this problem , i cant update my network , soon or later , i have to change my asterisk to another because i know that chan_sip gonna stop to improve in a day.<br>
<br>
<br>
    Why i need it. Because some FXS devices like Dinstar waits Request Uri number and To uri number must be same. if not , it declines or drop the calls.<br>
<br>
    How does it work that in here with .jpeg <a href="https://issues.asterisk.org/jira/browse/ASTERISK-26957" rel="noreferrer" target="_blank">https://issues.asterisk.org/ji<wbr>ra/browse/ASTERISK-26957</a><br>
<br>
    i tried to so many way to solve this issue with Matt Jordan and others.<br>
    here;<br>
 <a href="https://community.asterisk.org/t/way-to-get-toheader-name-or-number/68717/6" rel="noreferrer" target="_blank">https://community.asterisk.or<wbr>g/t/way-to-get-toheader-name-<wbr>or-number/68717/6</a><br>
 <a href="https://community.asterisk.org/t/asterisk-13-pjsip-manipulate-to-header-on-dial/67550" rel="noreferrer" target="_blank">https://community.asterisk.or<wbr>g/t/asterisk-13-pjsip-manipula<wbr>te-to-header-on-dial/67550</a><br>
<br>
    my commit<br>
    <a href="https://gerrit.asterisk.org/#/c/5545/" rel="noreferrer" target="_blank">https://gerrit.asterisk.org/#/<wbr>c/5545/</a></blockquote><div><br></div></div>The Dialed Number IDentifier (DNID) is defined as an incoming value which<br>represents the dialed number to reach the server.  Making it do something<br>different for outgoing channels overloads its meaning and is likely to<br>break something.<br><br>I think the dialplan function PJSIP_HEADER could be extended to work on<br>outgoing channels to read/construct the To header string from the channel<br>dialog remote information and also set/modify the To header in a limited<br>manner to get what you need.  The To header would be an exception to the<br>normal header processing done by the dialplan function.<br><br>Its use in dialplan would be something like below:<br><br>; ------------------------------------------<br>exten = _X.,1,NoOp()<br>same = n,Dial(PJSIP/endpoint,,b(pre_dial,1))<br>same = n,Hangup()<br><br>exten = pre_dial,1,NoOp()<br>;<br>; PJSIP_HEADER extended to read the To header out of the session->inv_session<br>; dialog for outgoing channels because it otherwise isn't available.<br>;<br>same = n,Set(TO_HEADER_VALUE=${PJSIP_HEADER(read,to)})<br>;<br>; PJSIP_HEADER extended to set limited fields of a To header into the<br>; session->inv_session dialog for outgoing channels because it otherwise<br>; isn't available to modify.<br>; To: "test-name" <sip:testuser@remote-address[:remote-port]><br>;<br>same = n,Set(PJSIP_HEADER(update,to)=${TO_HEADER_VALUE})<br>same = n,Return()<br>; ------------------------------------------<br><br>Only the read and update actions would support doing anything with the To<br>header in an outgoing channel situation.  The read and update actions must<br>first check if the To header is in the list of headers to guard against<br>trying to manipulate the To header on an incoming channel.  I'm fairly<br>sure that an incoming channel has the To header stored in its list of<br>headers automatically.<br><br>Helpful functions that could make the patch easier to implement.<br><br>pjsip_uri_print() - Use this C function to create the To header string for<br>the read.<br><br>pjsip_parse_hdr() - Use this C function to parse the set To header.  You<br>then need to update the session->inv_session dialog with new data that is<br>allowable to be changed.  Allowing unrestricted modification of the To<br>header is not a good thing as it would defeat what has already been done<br>and may interfere or get overwritten with what may still be done.<br><br>Richard<br><br></div></div>