Hi all,<div><br></div><div>I am trying to control the whole call using a FastAGI script. To that effect I launch a FastAGI script (written with asterisk-java).</div><div><br></div><div>Basically, I want to DIAL from within the FastAGI script. When the call ends I want to control the hangup (if executed at the remote end), and depending on the cause, dial again, play a message, or hang up. This is a pretty standard telephony scenario. I did it before by executing the AGI, setting variables, calling the DIAL command from the dialplan, and then executing a second AGI script for the cleanup logic. However, now that I am using FastAGI it seems like a better idea to keep the AGI script alive during the duration of the call. This gives me a lot of control and fexibility on reporting.</div>

<div><br></div><div>However, as far as I can tell, once the called party hangs up, the CDR is generated and posted, _even though my script is still in execution_! As you can see from the sample below, the called party hangs up, and dialplan execution starts immediately at the h extension, even though my script is still running. In fact, I have quite a bit of cleanup to do, adding variables to the CDR&#39;s, and none of them are saved! I believe this is because the CDR is already finised. </div>

<div><br></div><div>It&#39;s like if once you call the DIAL aplication, the dialplan forks off and your script is running in a different place. I do not understand it. I assumed when I called DIAL from within a script, that the script execution would suspend, but be resumed once the DIAL command returned, but this is not what is happening.</div>

<div><br></div><div>Is there any way to get that behaviour?</div><div><br></div><div>Regards,</div><div><br></div><div>Alex</div><div><br></div><div><br></div><div><div><br></div><div>&quot;Entering customer extension&quot;</div>

<div>   -- Executing [629999999@customer:2] Verbose(&quot;SIP/139255423-0000004c&quot;, &quot;5,&quot;Dialed - 629999999&quot;&quot;) in new stack</div><div>      &gt; &quot;Dialed - 629999999&quot;</div><div>   -- Executing [629999999@customer:3] Set(&quot;SIP/139255423-0000004c&quot;, &quot;origincontext=customer&quot;) in new stack</div>

<div>   -- Executing [629999999@customer:4] Goto(&quot;SIP/139255423-0000004c&quot;, &quot;transform,629999999,1&quot;) in new stack</div><div>   -- Goto (transform,629999999,1)</div><div>   -- Executing [629999999@transform:1] Goto(&quot;SIP/139255423-0000004c&quot;, &quot;customer,0034629999999,transform&quot;) in new stack</div>

<div>   -- Goto (customer,0034629999999,5)</div><div>   -- Executing [0034629999999@customer:5] Verbose(&quot;SIP/139255423-0000004c&quot;, &quot;5,&quot;New dialnum - 0034629999999&quot;&quot;) in new stack</div><div>      &gt; &quot;New dialnum - 0034629999999&quot;</div>

<div>   -- Executing [0034629999999@customer:6] Set(&quot;SIP/139255423-0000004c&quot;, &quot;CDR(server)=7&quot;) in new stack</div><div>   -- Executing [0034629999999@customer:7] Set(&quot;SIP/139255423-0000004c&quot;, &quot;CDR(srcip)=&quot;) in new stack</div>

<div>   -- Executing [0034629999999@customer:8] AGI(&quot;SIP/139255423-0000004c&quot;, &quot;agi://localhost/auth&quot;) in new stack</div><div>AGI Tx &gt;&gt; agi_network: yes</div><div>AGI Tx &gt;&gt; agi_network_script: auth</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_request: agi://localhost/auth</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_channel: SIP/139255423-0000004c</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_language: es</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_type: SIP</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_uniqueid: 1340616655.76</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_version: 10.5.0</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_callerid: 139255</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_calleridname: unknown</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_callingpres: 0</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_callingani2: 0</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_callington: 0</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_callingtns: 0</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_dnid: 629999999</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_rdnis: unknown</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_context: customer</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_extension: 0034629999999</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_priority: 8</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_enhanced: 0.0</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_accountcode: 704741</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; agi_threadid: 1104279872</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; </div><div>

&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; GET VARIABLE &quot;CDR(src)&quot;</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1 (139255423)</div><div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; SET VARIABLE &quot;CDR(accountcode)&quot; &quot;704741&quot;</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1</div><div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; SET VARIABLE &quot;CDR(dest_id)&quot; &quot;507&quot;</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; SET VARIABLE &quot;CDR(routeplan)&quot; &quot;11261&quot;</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1</div><div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; SET VARIABLE &quot;CDR(carrier)&quot; &quot;69&quot;</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1</div><div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; EXEC &quot;Dial&quot; &quot;SIP/100034629999999@x.x.x.x&quot;</div><div>   -- AGI Script Executing Application: (Dial) Options: (SIP/100034629999999@x.x.x.x)</div>

<div> == Using SIP RTP CoS mark 5</div><div>   -- Called SIP/<a href="mailto:100034629999999@193.17.66.71">100034629999999@193.17.66.71</a></div><div>   -- SIP/193.17.66.71-0000004d is making progress passing it to SIP/139255423-0000004c</div>

<div>   -- SIP/193.17.66.71-0000004d is ringing </div><div>   -- SIP/193.17.66.71-0000004d is making progress passing it to SIP/139255423-0000004c</div><div>   -- SIP/193.17.66.71-0000004d answered SIP/139255423-0000004c</div>

<div>   -- Executing [h@customer:1] Set(&quot;SIP/139255423-0000004c&quot;, &quot;CDR(q931)=16&quot;) in new stack</div><div>   -- Executing [h@customer:2] Set(&quot;SIP/139255423-0000004c&quot;, &quot;CDR(userfield)={&quot;agi&quot;:&quot;&quot;,&quot;a-leg-id&quot;:&quot;2118d872-305e-4bb4-8c47-30e1514cb934&quot;,&quot;b-leg-id&quot;:&quot;36b232e73ac326bd0407b1594627c589@y.y.y.y:5060&quot;}&quot;) in new stack</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=-1</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; HANGUP</div><div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; GET VARIABLE &quot;HANGUPCAUSE&quot;</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1 (16)</div><div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; GET VARIABLE &quot;Q16&quot;</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1 (0)</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Rx &lt;&lt; SET VARIABLE &quot;AJ_AGISTATUS&quot; &quot;SUCCESS&quot;</div><div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; 200 result=1</div><div>   -- &lt;SIP/139255423-0000004c&gt;AGI Script agi://localhost/auth completed, returning 4</div>

<div>&lt;SIP/139255423-0000004c&gt;AGI Tx &gt;&gt; HANGUP</div><div> == Spawn extension (customer, 0034629999999, 8) exited non-zero on &#39;SIP/139255423-0000004c&#39;</div></div>