<div dir="ltr">Thanks for responding!<div><br></div><div>Below is a bit more code to fill in the gaps.  I'm passing the destination_number from the XML as a third argument.  When I test out the code below, the console_log does in fact print out a "correct" Diversion header line.   If I use the exact same Diversion header, set in my XML dialplan, it shows up in the SIP packet and the VOP software reads it.  When I set it using session.execute in javascript, then no Diversion header, even an incorrect one, gets added to the SIP packet.  </div><div><br></div><div>I don't think it is in the variable substitution or anything like that.  I've also tried not passing a variable to session.execute and just putting the string in the command, as well as just hard coding a test number.  In all cases, no Diversion header ever shows up.  Either I'm not setting it right for javascript or there is something different about setting it in Javascript vs XML that I haven't figured out.</div><div><br></div><div>Here is more expanded code:</div><div><br></div><div><div><br></div><div>var $extension  = argv[0];</div><div>var $pbx_domain = argv[1];</div><div>var $destination_number = argv[2];</div></div><div><br></div><div><div>var diversionHeader = 'sip_h_Diversion=<sip:' + $destination_number + '@<a href="http://pbx.example.org">pbx.example.org</a>>;privacy=off;reason=unconditional;counter=1;screen=no';</div><div><br></div><div>session.execute('set',diversionHeader);<br></div><div>session.execute('export','sip_h_Diversion');</div><div><br></div><div>onsole_log("notice","Trying receptionist");</div><div>console_log("notice",session.state);</div><div>console_log("notice",diversionHeader);</div><div>session.execute('set', 'call_timeout=15');</div><div><br></div><div>var logic = '{ignore_early_media=true}user/1003@' + $pbx_domain;</div><div>session.execute('bridge', logic);</div><div><br></div><div>console_log("notice","Trying Kim");</div><div>console_log("notice",session.state);</div><div>session.execute('set', 'call_timeout=10');</div><div>session.execute('bridge', 'user/2741@' + $pbx_domain);</div><div><br></div><div>// No one answered, send to IVR</div><div><br></div><div> console_log("notice","No one is answering");</div><div> console_log("notice",session.state);</div><div>if (session.state == "CS_EXECUTE")</div><div> {</div><div>      console_log("notice","Trying IVR");</div><div>      session.execute('transfer', 'ivr');</div><div> }</div></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 21, 2018 at 6:57 PM, Branden Jordan <span dir="ltr"><<a href="mailto:BJordan@e-teleco.com" target="_blank">BJordan@e-teleco.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_-3362428851143636225WordSection1">
<p class="MsoNormal">Not sure if you still need help with this but could you post some more of your javascript code? Something about this line is off to me but maybe it makes sense in the grander scheme of things.
<u></u><u></u></p><span class="">
<p class="MsoNormal">    var diversionHeader = 'sip_h_Diversion=<sip:' + $destination_number + '@<a href="http://pbx.example.org" target="_blank">pbx.example.org</a>>;privacy=<wbr>off;reason=unconditional;<wbr>counter=1;screen=no';<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</span><p class="MsoNormal">I have not used javascript with freeswitch in a little while, so I might be totally wrong but did you declare $destination_number? Because its possible its undefined if you didn’t declare that specifically equal to the value you passed
 in via args and thus javascript does you a solid and makes the whole string undefined which sets the sip_h_Diversion to null which is why it isn’t exporting. Maybe try argv[3] or argv[2] (console them out I am not sure which one it’ll be) instead of $destination_number
 in your concatenation? <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">If that isn’t it and you are still having an issue we can try some other stuff.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal">Branden Jordan<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><b>From:</b> FreeSWITCH-users <<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" target="_blank">freeswitch-users-bounces@<wbr>lists.freeswitch.org</a>>
<b>On Behalf Of </b>Preston Hagar<br>
<b>Sent:</b> Friday, May 18, 2018 8:55 AM<br>
<b>To:</b> FreeSWITCH Users Help <<a href="mailto:freeswitch-users@lists.freeswitch.org" target="_blank">freeswitch-users@lists.<wbr>freeswitch.org</a>><br>
<b>Subject:</b> [Freeswitch-users] Adding SIP Headers in Javascript<u></u><u></u></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">Quick Version:  Is there some special way to set custom SIP headers when you are bridging a call from Javascript instead of XML?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Full Details:<u></u><u></u></p>
</div>
<p class="MsoNormal">We am using Voice Operator Panel (VOP) as a receptionist console.  We have multiple external numbers that all funnel into a few receptionist desks.  If I add a SIP Diversion header, then VOP will use that to show the receptionist which
 number the caller dialed to reach them, which would help things out a lot.<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">If I add it in an XML dialplan and then do a direct bridge to one of the receptionist numbers, it works great (snip of working direct dialplan):<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><action application="set" data="sip_h_Diversion=<sip:${<a href="mailto:destination_number%7D@pbx.example.org" target="_blank">d<wbr>estination_number}@pbx.<wbr>example.org</a>>;privacy=off;<wbr>reason=unconditional;counter=<wbr>1;screen=no"/><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><action application="bridge" data="user/<a href="mailto:1000@pbx.example.org" target="_blank">1000@pbx.example.<wbr>org</a>"/><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">The problem is I need a bit of advanced logic to figure out which receptionist are online and then ring those, then fail over to other numbers and ultimately IVR if no one answers, so I instead pass calls to them off to javascript, so the
 bridge line above becomes something link:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><action application="javascript" data="${jslib}/frontdesk.js ${dialed_extension} ${domain_name} ${destination_number}" /><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I've tried setting the SIP header in the XML above the javascript line and then exporting it<u></u><u></u></p>
</div>
<div>
<div>
<p class="MsoNormal">    <action application="set" data="sip_h_Diversion=<sip:${<a href="mailto:destination_number%7D@pbx.example.org" target="_blank">d<wbr>estination_number}@pbx.<wbr>example.org</a>>;privacy=off;<wbr>reason=unconditional;counter=<wbr>1;screen=no"/>                         
                                                         <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">        <action application="export" data="sip_h_Diversion" /><u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">and setting it in the Javascript:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<div>
<p class="MsoNormal">    var diversionHeader = 'sip_h_Diversion=<sip:' + $destination_number + '@<a href="http://pbx.example.org" target="_blank">pbx.example.org</a>>;privacy=<wbr>off;reason=unconditional;<wbr>counter=1;screen=no';<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">    session.execute('set',<wbr>diversionHeader);<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">    session.execute('export','sip_<wbr>h_Diversion');<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">but in both cases (or with both in place), the SIP header is never written.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Is there some magic to setting SIP headers in Javascript?  I can't seem to find any examples or documentation about it.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Thanks!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div></div></div>
</div>

<br>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.<wbr>freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.<wbr>org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.<wbr>freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/<wbr>mailman/listinfo/freeswitch-<wbr>users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.<wbr>freeswitch.org/mailman/<wbr>options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>