In article <[EMAIL PROTECTED]>,
Pete Kay <[EMAIL PROTECTED]> wrote:
>
> 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.
Ah, I see. It's not just whether the call was answered, but you want what
happens on the called channel to govern future behaviour on the calling
channel.
> Thank you very much. Is there any other ways you may think of?
The only way I can think of to do that is by using the Asterisk database
as a communication mechanism, combined with channel variable inheritance.
Before calling Dial, generate a unique key. This can be based on ${UNIQUEID}
for example. Store this in a variable with inheritance to dependent
channels (invoked by adding a leading underscore): e.g.
Set(_KEY=${UNIQUEID})
or in AGI
SET VARIABLE _KEY "${UNIQUEID}"
Then write an entry to the Asterisk database with a suitable family, this key
and an arbitrary value:
Set(DB(dial/${KEY})=0)
or in AGI
SET VARIABLE DB(dial/${KEY}) "0"
In the answer macro, you should be able to read ${KEY} (due to inheritance),
and if the user accepts the call, you delete the database entry:
NoOp(${DB_DELETE(dial/${KEY})})
In the calling channel, on return from the Dial, you check to see if the entry
still exists. If it does, then either the call was not answered, or else it
was answered and not accepted. You can then either try another dial (using the
same DB entry) or give up and delete the entry at that point.
Deleting the entry in AGI would be (I think):
GET FULL VARIABLE DB_DELETE(dial/${KEY})
Or you could do GET VARIABLE if you substituted the value of ${KEY} yourself.
> Thanks,
> Pete
Hope this helps (and that it works!)
Cheers
Tony
> On Wed, Apr 2, 2008 at 3:03 PM, Pete Kay <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
> wrote:
>
> > In article <[EMAIL PROTECTED]>,
> > Pete Kay <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] - http://www.softins.co.uk
> > Play: [EMAIL PROTECTED] - 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
> >
>
> -=-=-=-=-=-
> [Alternative: text/html]
> -=-=-=-=-=-
> -=-=-=-=-=-
>
> _______________________________________________
> -- 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
> -=-=-=-=-=-
--
Tony Mountifield
Work: [EMAIL PROTECTED] - http://www.softins.co.uk
Play: [EMAIL PROTECTED] - 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