<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Thanks for the replies.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">First off, I got my scripting languages confused.&nbsp; My intercept script is actually done in perl, not lua (See below).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Also,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Loyd said: “</span><span style="font-family:&quot;Verdana&quot;,&quot;sans-serif&quot;">I use this way and it always works&nbsp;session:execute(&quot;set&quot;,&quot;intercept_unbridged_only=true&quot;)”</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I’m trying to make my intercept script be able to intercept any call that is either ringing, or on hold.&nbsp; I don’t want to be able to intercept a live call.&nbsp; If I set “intercept_unbridged_only” it seems to me
 that&nbsp; I will be unable to pick up a ringing call?&nbsp; Worth a try though…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="color:#1F497D">Chris said:&nbsp;
</span>That channel variable was fetched in the routing state before the lua application was executed. &nbsp; You can either transfer to a new extension to execute the intercept or execute the intercept in the lua script.&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">If I am understanding you correctly, you are referring to the “intercept-uuid” variable I am setting in the perl script.&nbsp; I agree with you regarding the routing state vs. the execute state, but In the pastebin
 that I posted, line 259 shows that the perl script has made its choice of what UUID to “intercept”, and in line 299, the XML dialplan actually calls intercept with the UUID the script suggested.&nbsp; Also,&nbsp; I originally was calling intercept in the perl script,
 but when I couldn’t get it to work, I switched to the combo method below in a desperate attempt for success.&nbsp; Am I misinterpreting this somehow?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">***** XML Dialplan Portion of intercept.... *****<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&lt;include&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; &lt;extension name=&quot;intercept-ext&quot;&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;condition field=&quot;destination_number&quot; expression=&quot;^\*\*(\d{4})$&quot;&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;set&quot; data=&quot;intercept_unbridged_only=false&quot;/&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;set&quot; data=&quot;intercept_unanswered_only=false&quot;/&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;perl&quot; data=&quot;${base_dir}/scripts/myintercept2.pl $1&quot;/&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;answer&quot;/&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;intercept&quot; data=&quot;${intercept-uuid}&quot;/&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action application=&quot;sleep&quot; data=&quot;2000&quot;/&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/condition&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; &lt;/extension&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&lt;/include&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">****&nbsp; Perl Script to find UUID of extension to intercept *****<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use strict;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use Switch;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use Data::Dumper;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use XML::Simple;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">use POSIX qw(strftime);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">our $session;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $debug = &quot;true&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $dest_target = $ARGV[0];<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $api = new freeswitch::API();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $uuid = $session-&gt;getVariable('uuid');<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $detailed_calls = $api-&gt;executeString(&quot;show detailed_calls as xml&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $xml = new XML::Simple;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $chan_xml = $xml-&gt;XMLin($detailed_calls,KeyAttr =&gt; 'row', ForceArray =&gt; ['row']);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my %candidates;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $reTarget = &quot;sofia\/internal\/(sip:)*&quot; . $dest_target . &quot;.*&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; my $result;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; #--------------------------------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; if ($debug eq &quot;true&quot;) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;\n----------intercept debug info-------------\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,$detailed_calls);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;\n----------end intercept debug info-------------\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; #-- Loop through all the rows from show detailed_calls and put em in a hash...<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; #--&nbsp; Ringing lines are our first choice so make sure their hash key is &quot;sortably&quot; lower than a held call<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; #--&nbsp; Since we will sort the hash, and take the first sorted entry as the uuid to snag...<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; foreach my $row (@{$chan_xml-&gt;{row}}) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($row-&gt;{callstate} eq &quot;RINGING&quot; &amp;&amp; $row-&gt;{name} =~ $reTarget ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $candidates{ $row-&gt;{created_epoch} - 1000 }&nbsp; = $row-&gt;{uuid};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($debug eq &quot;true&quot;) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;Found intercept candidate.\nRINGING line for target:&quot; . $dest_target .<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot; uuid:&quot; . $row-&gt;{uuid} . &quot; call-uuid:&quot; . $row-&gt;{call_uuid} . &quot;\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elsif ($row-&gt;{callstate} eq &quot;HELD&quot; &amp;&amp; $row-&gt;{name} =~ $reTarget ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $candidates{ $row-&gt;{b_created_epoch} } = $row-&gt;{b_uuid};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($debug eq &quot;true&quot;) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;Found intercept candidate.\nHELD line for target:&quot; . $dest_target .<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot; b_uuid:&quot; . $row-&gt;{b_uuid} . &quot; b_call-uuid:&quot; . $row-&gt;{b_call_uuid} . &quot;\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elsif ($row-&gt;{b_callstate} eq &quot;HELD&quot; &amp;&amp; $row-&gt;{b_name} =~ $reTarget ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $candidates{ $row-&gt;{created_epoch} } = $row-&gt;{uuid};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($debug eq &quot;true&quot;) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;Found intercept candidate.\n&nbsp; HELD line for target:&quot; . $dest_target .<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot; uuid:&quot; . $row-&gt;{uuid} . &quot; call-uuid:&quot; . $row-&gt;{call_uuid} . &quot;\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; if( keys( %candidates ) == 0) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $result = &quot;[Intercept] No suitable channel to intercept on extension $dest_target.&quot;;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;$result\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; else {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $user = $session-&gt;getVariable('caller_id_name');<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $cid_num = $session-&gt;getVariable('caller_id_number');<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my $winner_uuid;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for my $winner ( sort keys %candidates ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $winner_uuid = $candidates{$winner};<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; last;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $session-&gt;setAutoHangup(0);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch::consoleLog(&quot;INFO&quot;,&quot;INTERCEPT called by Ext:&quot; .$cid_num. &quot; INTERCEPTING Ext:&quot; .$dest_target. &quot; uuid:&quot;.$winner_uuid . &quot;\n&quot;);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $session-&gt;setVariable(&quot;intercept-uuid&quot;,$winner_uuid);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">&nbsp;&nbsp;&nbsp; return 1;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">-F<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:.5in"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> cmrienzo@gmail.com [mailto:cmrienzo@gmail.com]
<br>
<b>Sent:</b> Sunday, August 04, 2013 3:50 AM<br>
<b>To:</b> FreeSWITCH Users Help<br>
<b>Subject:</b> Re: [Freeswitch-users] Call Intercept<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:.5in"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal" style="margin-left:.5in">That channel variable was fetched in the routing state before the lua application was executed. &nbsp; You can either transfer to a new extension to execute the intercept or execute the intercept in the lua script.&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in">Chris<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in">
<br>
On Aug 3, 2013, at 11:51 PM, Frank Busalacchi Jr &lt;<a href="mailto:frankjr@mcpeekdodge.com">frankjr@mcpeekdodge.com</a>&gt; wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="margin-left:.5in">Hi everyone!&nbsp; First and foremost, thanks for a great piece of software, and all the time you guys still put into this program day in and day out.&nbsp; Thank you!<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">I'm having difficulty implementing an &quot;intercept&quot; system, and I'm thinking that I have to be &quot;conceptually&quot; misunderstanding something.&nbsp; Towards those ends, I'm hoping someone can get me back on track, I’m sick
 of banging my head on the wall to try to make this work.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">So here is my scenario:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">1. A call (Call A) comes into the server from my voip provider on a DID.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">2. My XML dialplan transfers the call to an extension in the XML dialplan of 1111.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">3. My XML dialplan recognizes 1111 as a local extension, and executes a LUA script to handle the actual bridging of Call A to the appropriate devices.&nbsp; I use the LUA script because I do some logic to decide whether
 to ring just the user's SIP phone, the user's cell phone, or a combination of both simultaneously.&nbsp; Bottom line is that the LUA script does something like this after building the originate string in dialString:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">session2 = freeswitch.Session(dialString);<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;&nbsp; if session2:answered() == true then<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; freeswitch.bridge(session,session2);<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;&nbsp; else<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;&nbsp; end<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">---All of the above works as expected ---<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">My issue is that when the LUA script starts ringing the sip phone registered as 1111, I want to 'intercept' that call from a different extension.&nbsp; So here is what I do:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">1.&nbsp; Extension 1112 hears that his co-worker's extension 1111 is ringing, and wants to answer it.&nbsp; He dials **1111<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">2.&nbsp; My XML dialplan recognizes the request to pickup/intercept the call ringing at 1111, and calls a LUA script to figure out the uuid of the ringing phone.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">3.&nbsp; The LUA script sets a channel variable with the UUID it choose as the appropriate candidate to intercept, and exits.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">4.&nbsp; The XML dialplan resumes control, and does a &lt;action application=&quot;intercept&quot; data=&quot;${intercept-uuid}&quot;/&gt; .<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">5.&nbsp; The calls aren't intercepted/bridged.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">A pastebin of the log is here: <a href="http://pastebin.freeswitch.org/21267">
http://pastebin.freeswitch.org/21267</a> <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">What am I missing conceptually here?<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Thanks,<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Frank<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">&nbsp;<o:p></o:p></p>
</div>
</blockquote>
</div>
</body>
</html>