Hi, I have a problem with DIAL. The scenario is this: 1. Asterisk will dial a number in a call list 2. called party picks up the call and hears a prompt asking if they want to pick up ( this is done through M(marco) option in DIAL) 3. if called party does not want to pick up, go to the next number (this is done through SET MARCO_RESULT= CONTINUE) 4. if called party decides to take the call, make some conversion, then the call is completed and hanged up by the called party. For 4, when the called party hangs up, I want to hang up on the calling party as well. This works if I use the dialplan by not including the "g" option in DIAL. However, when I do the DIAL in AGI, the calling party does not get hangup automatically at (4). So, it continues to execute the next line in the AGI, which is not what I want. The problem is that the result I can when executing the DIAL command within AGI does not tell me whether the call was picked up or not. So, I have no way of knowing whether to continue executing the AGI program or to issue a HAGNGUP explicitly. Can anyone please help me ? Any suggestion will be greatly appreciated. Thanks, Pete -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080402/b943a0a8/attachment.htm
Tony Mountifield
2008-Apr-02 08:39 UTC
[asterisk-users] How to Hangup after DIAL is completed
In article <7aa8bd9d0804020003r6f9b9417v87fa93209d883166 at mail.gmail.com>, Pete Kay <petedao at gmail.com> wrote:> I have a problem with DIAL. > The scenario is this: > > 1. Asterisk will dial a number in a call list > 2. called party picks up the call and hears a prompt asking if they want to > pick up ( this is done through M(marco) option in DIAL) > 3. if called party does not want to pick up, go to the next number (this is > done through SET MARCO_RESULT= CONTINUE) > 4. if called party decides to take the call, make some conversion, then the > call is completed and hanged up by the called party. > > For 4, when the called party hangs up, I want to hang up on the calling > party as well. > > This works if I use the dialplan by not including the "g" option in DIAL. > However, when I do the DIAL in AGI, the calling party does not get hangup > automatically at (4). So, it continues to execute the next line in the AGI, > which is not what I want. > > The problem is that the result I can when executing the DIAL command within > AGI does not tell me whether the call was picked up or not. So, I have no > way of knowing whether to continue executing the AGI program or to issue a > HAGNGUP explicitly.When you have returned from the Dial command, check the DIALSTATUS channel variable. If the call was picked up, ${DIALSTATUS} will contain ANSWER. Cheers Tony -- Tony Mountifield Work: tony at softins.co.uk - http://www.softins.co.uk Play: tony at mountifield.org - http://tony.mountifield.org
Dear Tony, Thank you very much for your suggestion. The thing is that ${DIALSTATUS} returns ANSWER regardless of whether the called party hangs up or not. For instance, when called party is being asked by Asterisk whether he/she wants to pick the call, ${DIALSTATUS} returns ANSWER. In the case where the called party accepts to take the call and then hangs up after finishing the conversion, I want to stop AGI from jumping to call the next number. On the other hand, if the called party decides not to take the call, I want to let AGI to jump to the next number. It seems like ${DIALSTATUS} does not give me the info that I need. Thank you very much. Is there any other ways you may think of? Thanks, Pete On Wed, Apr 2, 2008 at 3:03 PM, Pete Kay <petedao at gmail.com> wrote:> Hi, > > I have a problem with DIAL. > The scenario is this: > > 1. Asterisk will dial a number in a call list > 2. called party picks up the call and hears a prompt asking if they want > to pick up ( this is done through M(marco) option in DIAL) > 3. if called party does not want to pick up, go to the next number (this > is done through SET MARCO_RESULT= CONTINUE) > 4. if called party decides to take the call, make some conversion, then > the call is completed and hanged up by the called party. > > For 4, when the called party hangs up, I want to hang up on the calling > party as well. > > This works if I use the dialplan by not including the "g" option in DIAL. > However, when I do the DIAL in AGI, the calling party does not get hangup > automatically at (4). So, it continues to execute the next line in the AGI, > which is not what I want. > > The problem is that the result I can when executing the DIAL command > within AGI does not tell me whether the call was picked up or not. So, I > have no way of knowing whether to continue executing the AGI program or to > issue a HAGNGUP explicitly. > > Can anyone please help me ? > > Any suggestion will be greatly appreciated. > > Thanks, > Pete > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >On Wed, Apr 2, 2008 at 4:39 PM, Tony Mountifield <tony at softins.clara.co.uk> wrote:> In article <7aa8bd9d0804020003r6f9b9417v87fa93209d883166 at mail.gmail.com>, > Pete Kay <petedao at gmail.com> wrote: > > I have a problem with DIAL. > > The scenario is this: > > > > 1. Asterisk will dial a number in a call list > > 2. called party picks up the call and hears a prompt asking if they want > to > > pick up ( this is done through M(marco) option in DIAL) > > 3. if called party does not want to pick up, go to the next number (this > is > > done through SET MARCO_RESULT= CONTINUE) > > 4. if called party decides to take the call, make some conversion, then > the > > call is completed and hanged up by the called party. > > > > For 4, when the called party hangs up, I want to hang up on the calling > > party as well. > > > > This works if I use the dialplan by not including the "g" option in > DIAL. > > However, when I do the DIAL in AGI, the calling party does not get > hangup > > automatically at (4). So, it continues to execute the next line in the > AGI, > > which is not what I want. > > > > The problem is that the result I can when executing the DIAL command > within > > AGI does not tell me whether the call was picked up or not. So, I have > no > > way of knowing whether to continue executing the AGI program or to issue > a > > HAGNGUP explicitly. > > When you have returned from the Dial command, check the DIALSTATUS channel > variable. If the call was picked up, ${DIALSTATUS} will contain ANSWER. > > Cheers > Tony > -- > Tony Mountifield > Work: tony at softins.co.uk - http://www.softins.co.uk > Play: tony at mountifield.org - http://tony.mountifield.org > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080402/2a6b716b/attachment-0001.htm