<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">session.setVariable(var, val);<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On May 23, 2018, at 1:46 PM, Preston Hagar <<a href="mailto:prestonh@gmail.com" class="">prestonh@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I figured out my issue.  I had left out part of my code in previous emails to try to make it simpler, and left out the part that was messing things up.<div class=""><br class=""></div><div class="">So after I set the sip Diversion header:</div><div class=""><div class=""><br class=""></div><div class="">var diversionHeader = 'sip_h_Diversion=<<a href="sip:'" class="">sip:'</a> + $destination_number + '@<a href="http://pbx.example.org/" class="">pbx.example.org</a>>;privacy=off;reason=unconditional;counter=1;screen=no';</div><div class=""><br class=""></div><div class="">session.execute('set',diversionHeader);</div><div class=""><br class=""></div></div><div class=""><br class=""></div><div class="">I would set a timeout:</div><div class=""><br class=""></div><div class="">session.execute('set', 'call_timeout=45');</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Then I would ring all three receptionist stations at once with a bridge command:</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class=""> var logic = '{ignore_early_media=true}user/1000@' + $pbx_domain + ':_:user/1001@'</div><div class="">                + $pbx_domain + ':_:user/1002@' + $pbx_domain;</div><div class="">    session.execute('bridge', logic);</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">The problem ended up stemming from me ringing all three at once using the :_:  to join the extensions.  I switched it over to commas:</div><div class=""><br class=""></div><div class=""><div class=""> var logic = '{ignore_early_media=true}user/1000@' + $pbx_domain + ',user/1001@'</div><div class="">                + $pbx_domain + ',user/1002@' + $pbx_domain;</div><div class="">    session.execute('bridge', logic);</div></div><div class=""><br class=""></div><div class="">and now the Diversion header shows up as  expected.  We shouldn't have multiple registrations for any of those numbers, so it shouldn't be an issue.</div><div class=""><br class=""></div><div class="">Thanks everyone for taking a look.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Out of curiosity, what is the "direct method" for setting the SIP header (instead of using session.execute)?   I can't seem to find anything in the documentation.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks again,</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, May 23, 2018 at 10:26 AM, Michael Jerris <span dir="ltr" class=""><<a href="mailto:mike@jerris.com" target="_blank" class="">mike@jerris.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space" class="">I’d avoid using the bridge function like this, but worthwhile to set the variable using the direct method instead of session execute for set application.<div class=""><div class="h5"><div class=""><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On May 22, 2018, at 5:01 PM, Branden Jordan <<a href="mailto:BJordan@E-Teleco.com" target="_blank" class="">BJordan@E-Teleco.com</a>> wrote:</div><br class="m_-3575020198842683695Apple-interchange-newline"><div class=""><div class="m_-3575020198842683695WordSection1" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">I don’t see any reason why that wouldn’t work but maybe there is something weird going on with the javascript session object where it isn’t getting/setting the exported variables from the session when you are doing the bridge? Have you tried making a new session object and setting your variables for that session object instead of doing a session.execute? I found something like this on the Wiki that you might be able to do, small example below.<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-family:"Droid Sans Mono";color:rgb(51,51,51)" class="">var anotherSession = new Session(session,<span class="m_-3575020198842683695Apple-converted-space"> </span></span><span style="font-family:"Droid Sans Mono"" class="">'{ignore_<wbr class="">early_media=true}user/1003@' + $pbx_domain</span><span style="font-family:"Droid Sans Mono";color:rgb(51,51,51)" class="">);<u class=""></u><u class=""></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-family:"Droid Sans Mono";color:rgb(51,51,51)" class="">anotherSession.execute(‘set’,<wbr class="">diversionHeader);<u class=""></u><u class=""></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-family:"Droid Sans Mono";color:rgb(51,51,51)" class="">bridge(session, anotherSession);<u class=""></u><u class=""></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><span style="font-family:"Droid Sans Mono";color:rgb(51,51,51)" class="">anotherSession.hangup();</span><span style="font-family:"Droid Sans Mono"" class=""><u class=""></u><u class=""></u></span></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Like I said earlier I am a bit rusty on the Javascript side, (no idea if bridge blocks or if you have to do a loop) but I know that would work on the LUA side which is where I am more familiar. I know Javascript examples are a little light on the wiki but you might be able to get the gist of what is going on in the LUA side and then mimic that in Javascript. <a href="https://freeswitch.org/confluence/display/FREESWITCH/Lua+example+Bridging+two+calls+with+retry" style="color:purple;text-decoration:underline" target="_blank" class="">https://<wbr class="">freeswitch.org/confluence/<wbr class="">display/FREESWITCH/Lua+<wbr class="">example+Bridging+two+calls+<wbr class="">with+retry</a><u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Thanks,<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Branden Jordan<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><b class="">From:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>FreeSWITCH-users <<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" target="_blank" class="">freeswitch-users-bounces@<wbr class="">lists.freeswitch.org</a>><span class="m_-3575020198842683695Apple-converted-space"> </span><b class="">On Behalf Of<span class="m_-3575020198842683695Apple-converted-space"> </span></b>Preston Hagar<br class=""><b class="">Sent:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>Monday, May 21, 2018 6:53 PM<br class=""><b class="">To:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>FreeSWITCH Users Help <<a href="mailto:freeswitch-users@lists.freeswitch.org" target="_blank" class="">freeswitch-users@lists.<wbr class="">freeswitch.org</a>><br class=""><b class="">Subject:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>Re: [Freeswitch-users] Adding SIP Headers in Javascript<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Thanks for responding!<u class=""></u><u class=""></u></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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.  <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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.<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Here is more expanded code:<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">var $extension  = argv[0];<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">var $pbx_domain = argv[1];<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">var $destination_number = argv[2];<u class=""></u><u class=""></u></div></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">var diversionHeader = 'sip_h_Diversion=<<a class="">sip:'</a> + $destination_number + '@<a href="http://pbx.example.org/" style="color:purple;text-decoration:underline" target="_blank" class="">pbx.example.org</a>>;privacy=<wbr class="">off;reason=unconditional;<wbr class="">counter=1;screen=no';<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">session.execute('set',<wbr class="">diversionHeader);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">session.execute('export','sip_<wbr class="">h_Diversion');<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">onsole_log("notice","Trying receptionist");<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">console_log("notice",session.<wbr class="">state);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">console_log("notice",<wbr class="">diversionHeader);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">session.execute('set', 'call_timeout=15');<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">var logic = '{ignore_early_media=true}<wbr class="">user/1003@' + $pbx_domain;<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">session.execute('bridge', logic);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">console_log("notice","Trying Kim");<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">console_log("notice",session.<wbr class="">state);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">session.execute('set', 'call_timeout=10');<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">session.execute('bridge', 'user/2741@' + $pbx_domain);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">// No one answered, send to IVR<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> console_log("notice","No one is answering");<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> console_log("notice",session.<wbr class="">state);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">if (session.state == "CS_EXECUTE")<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> {<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">      console_log("notice","Trying IVR");<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">      session.execute('transfer', 'ivr');<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> }<u class=""></u><u class=""></u></div></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><u class=""></u> <u class=""></u></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">On Mon, May 21, 2018 at 6:57 PM, Branden Jordan <<a href="mailto:BJordan@e-teleco.com" style="color:purple;text-decoration:underline" target="_blank" class="">BJordan@e-teleco.com</a>> wrote:<u class=""></u><u class=""></u></div><blockquote style="border-style:none none none solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt" class=""><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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.<span class="m_-3575020198842683695Apple-converted-space"> </span><u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">    var diversionHeader = 'sip_h_Diversion=<<a class="">sip:'</a> + $destination_number + '@<a href="http://pbx.example.org/" style="color:purple;text-decoration:underline" target="_blank" class="">pbx.example.org</a>>;privacy=<wbr class="">off;reason=unconditional;<wbr class="">counter=1;screen=no';<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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 class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">If that isn’t it and you are still having an issue we can try some other stuff.<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Thanks,<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Branden Jordan<u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><b class="">From:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>FreeSWITCH-users <<a href="mailto:freeswitch-users-bounces@lists.freeswitch.org" style="color:purple;text-decoration:underline" target="_blank" class="">freeswitch-users-bounces@<wbr class="">lists.freeswitch.org</a>><span class="m_-3575020198842683695Apple-converted-space"> </span><b class="">On Behalf Of<span class="m_-3575020198842683695Apple-converted-space"> </span></b>Preston Hagar<br class=""><b class="">Sent:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>Friday, May 18, 2018 8:55 AM<br class=""><b class="">To:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>FreeSWITCH Users Help <<a href="mailto:freeswitch-users@lists.freeswitch.org" style="color:purple;text-decoration:underline" target="_blank" class="">freeswitch-users@lists.<wbr class="">freeswitch.org</a>><br class=""><b class="">Subject:</b><span class="m_-3575020198842683695Apple-converted-space"> </span>[Freeswitch-users] Adding SIP Headers in Javascript<u class=""></u><u class=""></u></div><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Quick Version:  Is there some special way to set custom SIP headers when you are bridging a call from Javascript instead of XML?<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Full Details:<u class=""></u><u class=""></u></div></div><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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 class=""></u><u class=""></u></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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 class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><action application="set" data="sip_h_Diversion=<<a class="">sip:$</a>{<a href="mailto:destination_number%7D@pbx.example.org" style="color:purple;text-decoration:underline" target="_blank" class="">d<wbr class="">estination_number}@pbx.<wbr class="">example.org</a>>;privacy=off;<wbr class="">reason=unconditional;counter=<wbr class="">1;screen=no"/><u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><action application="bridge" data="user/<a href="mailto:1000@pbx.example.org" style="color:purple;text-decoration:underline" target="_blank" class="">1000@pbx.example.<wbr class="">org</a>"/><u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">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 class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""><action application="javascript" data="${jslib}/frontdesk.js ${dialed_extension} ${domain_name} ${destination_number}" /><u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">I've tried setting the SIP header in the XML above the javascript line and then exporting it<u class=""></u><u class=""></u></div></div><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">    <action application="set" data="sip_h_Diversion=<<a class="">sip:$</a>{<a href="mailto:destination_number%7D@pbx.example.org" style="color:purple;text-decoration:underline" target="_blank" class="">d<wbr class="">estination_number}@pbx.<wbr class="">example.org</a>>;privacy=off;<wbr class="">reason=unconditional;counter=<wbr class="">1;screen=no"/>                                                                                  <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">        <action application="export" data="sip_h_Diversion" /><u class=""></u><u class=""></u></div></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">and setting it in the Javascript:<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">    var diversionHeader = 'sip_h_Diversion=<<a class="">sip:'</a> + $destination_number + '@<a href="http://pbx.example.org/" style="color:purple;text-decoration:underline" target="_blank" class="">pbx.example.org</a>>;privacy=<wbr class="">off;reason=unconditional;<wbr class="">counter=1;screen=no';<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">    session.execute('set',<wbr class="">diversionHeader);<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">    session.execute('export','sip_<wbr class="">h_Diversion');<u class=""></u><u class=""></u></div></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">but in both cases (or with both in place), the SIP header is never written.<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Is there some magic to setting SIP headers in Javascript?  I can't seem to find any examples or documentation about it.<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> <u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class="">Thanks!<u class=""></u><u class=""></u></div></div><div class=""><div style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif" class=""> </div></div></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div></div></blockquote></div></div></div></blockquote></div></body></html>