Alejandro, Try the 'g' option to Dial():
http://www.voip-info.org/wiki/view/Asterisk+cmd+Dial - *g*: When the called party hangs up, continue to execute commands in the current context at the next priority On 25 June 2012 20:17, Alejandro Recarey <alexreca...@gmail.com> wrote: > Hi all, > > I am trying to control the whole call using a FastAGI script. To that > effect I launch a FastAGI script (written with asterisk-java). > > 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. > > 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's, and none of them are saved! I believe this is > because the CDR is already finised. > > It'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. > > Is there any way to get that behaviour? > > Regards, > > Alex > > > > "Entering customer extension" > -- Executing [629999999@customer:2] Verbose("SIP/139255423-0000004c", > "5,"Dialed - 629999999"") in new stack > > "Dialed - 629999999" > -- Executing [629999999@customer:3] Set("SIP/139255423-0000004c", > "origincontext=customer") in new stack > -- Executing [629999999@customer:4] Goto("SIP/139255423-0000004c", > "transform,629999999,1") in new stack > -- Goto (transform,629999999,1) > -- Executing [629999999@transform:1] Goto("SIP/139255423-0000004c", > "customer,0034629999999,transform") in new stack > -- Goto (customer,0034629999999,5) > -- Executing [0034629999999@customer:5] > Verbose("SIP/139255423-0000004c", "5,"New dialnum - 0034629999999"") in new > stack > > "New dialnum - 0034629999999" > -- Executing [0034629999999@customer:6] Set("SIP/139255423-0000004c", > "CDR(server)=7") in new stack > -- Executing [0034629999999@customer:7] Set("SIP/139255423-0000004c", > "CDR(srcip)=") in new stack > -- Executing [0034629999999@customer:8] AGI("SIP/139255423-0000004c", > "agi://localhost/auth") in new stack > AGI Tx >> agi_network: yes > AGI Tx >> agi_network_script: auth > <SIP/139255423-0000004c>AGI Tx >> agi_request: agi://localhost/auth > <SIP/139255423-0000004c>AGI Tx >> agi_channel: SIP/139255423-0000004c > <SIP/139255423-0000004c>AGI Tx >> agi_language: es > <SIP/139255423-0000004c>AGI Tx >> agi_type: SIP > <SIP/139255423-0000004c>AGI Tx >> agi_uniqueid: 1340616655.76 > <SIP/139255423-0000004c>AGI Tx >> agi_version: 10.5.0 > <SIP/139255423-0000004c>AGI Tx >> agi_callerid: 139255 > <SIP/139255423-0000004c>AGI Tx >> agi_calleridname: unknown > <SIP/139255423-0000004c>AGI Tx >> agi_callingpres: 0 > <SIP/139255423-0000004c>AGI Tx >> agi_callingani2: 0 > <SIP/139255423-0000004c>AGI Tx >> agi_callington: 0 > <SIP/139255423-0000004c>AGI Tx >> agi_callingtns: 0 > <SIP/139255423-0000004c>AGI Tx >> agi_dnid: 629999999 > <SIP/139255423-0000004c>AGI Tx >> agi_rdnis: unknown > <SIP/139255423-0000004c>AGI Tx >> agi_context: customer > <SIP/139255423-0000004c>AGI Tx >> agi_extension: 0034629999999 > <SIP/139255423-0000004c>AGI Tx >> agi_priority: 8 > <SIP/139255423-0000004c>AGI Tx >> agi_enhanced: 0.0 > <SIP/139255423-0000004c>AGI Tx >> agi_accountcode: 704741 > <SIP/139255423-0000004c>AGI Tx >> agi_threadid: 1104279872 > <SIP/139255423-0000004c>AGI Tx >> > <SIP/139255423-0000004c>AGI Rx << GET VARIABLE "CDR(src)" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 (139255423) > <SIP/139255423-0000004c>AGI Rx << SET VARIABLE "CDR(accountcode)" "704741" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 > <SIP/139255423-0000004c>AGI Rx << SET VARIABLE "CDR(dest_id)" "507" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 > <SIP/139255423-0000004c>AGI Rx << SET VARIABLE "CDR(routeplan)" "11261" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 > <SIP/139255423-0000004c>AGI Rx << SET VARIABLE "CDR(carrier)" "69" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 > <SIP/139255423-0000004c>AGI Rx << EXEC "Dial" "SIP/100034629999999@x.x.x.x > " > -- AGI Script Executing Application: (Dial) Options: > (SIP/100034629999999@x.x.x.x) > == Using SIP RTP CoS mark 5 > -- Called SIP/100034629999999@193.17.66.71 > -- SIP/193.17.66.71-0000004d is making progress passing it to > SIP/139255423-0000004c > -- SIP/193.17.66.71-0000004d is ringing > -- SIP/193.17.66.71-0000004d is making progress passing it to > SIP/139255423-0000004c > -- SIP/193.17.66.71-0000004d answered SIP/139255423-0000004c > -- Executing [h@customer:1] Set("SIP/139255423-0000004c", > "CDR(q931)=16") in new stack > -- Executing [h@customer:2] Set("SIP/139255423-0000004c", > "CDR(userfield)={"agi":"","a-leg-id":"2118d872-305e-4bb4-8c47-30e1514cb934","b-leg-id":"36b232e73ac326bd0407b1594627c589@y.y.y.y:5060"}") > in new stack > <SIP/139255423-0000004c>AGI Tx >> 200 result=-1 > <SIP/139255423-0000004c>AGI Tx >> HANGUP > <SIP/139255423-0000004c>AGI Rx << GET VARIABLE "HANGUPCAUSE" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 (16) > <SIP/139255423-0000004c>AGI Rx << GET VARIABLE "Q16" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 (0) > <SIP/139255423-0000004c>AGI Rx << SET VARIABLE "AJ_AGISTATUS" "SUCCESS" > <SIP/139255423-0000004c>AGI Tx >> 200 result=1 > -- <SIP/139255423-0000004c>AGI Script agi://localhost/auth completed, > returning 4 > <SIP/139255423-0000004c>AGI Tx >> HANGUP > == Spawn extension (customer, 0034629999999, 8) exited non-zero on > 'SIP/139255423-0000004c' > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > -- David Cunningham, Voisonics http://voisonics.com/ US toll-free: +1 888 842 2720 UK: +44 (0) 20 3298 1642 Australia: +61 (0) 2 8063 9019
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users