[asterisk-users] A Leg Control on Asterisk Callback

Atis Lezdins atis at iq-labs.net
Tue Oct 30 05:26:44 CDT 2007


Douglas Garstang wrote:
> I'm confused about something.
> It's the way Asterisk handles the A leg (ie the first party dialed) on
> an originate command via the Manager Interface.
> 
> Lets say our originate commands looks like this:
> 
> ACTION: Originate
> Async: yes
> Timeout: 60000
> Exten: callback
> Channel: SIP/5551212 at provider
> Variable: destination=SIP/8675309 at provider
> Callerid: 5551212
> Context: default
> ActionID: 849120
> Priority: 1
> 
> Asterisk first goes and dials the Channel parameter,
> SIP/5551212 at provider. This is where it gets confusing. You have no
> control over what happens here. The actions don't even appear on the
> Asterisk console debug. It isn't until this party has picked up, and
> control jumps to the 'callback' extension, that Asterisk shows you what
> it is doing.
> 
> So, I went and changed the Channel parmeter to Channel:
> Local/5551212 at LegA, and made a LegA context:
> 
> [LegA]
> exten => _X.,1,Dial(SIP/${EXTEN}@provider)
> exten => _X.,n,Playback(tt-monkeys)
> 
> I wanted to have control over the call both before and after it is
> placed. I wanted to be able to play a prompt to the caller before the
> call is placed to the destination number. However, since we've dialled
> the A party already, we have no control over the dial plan anymore after
> they have answered, and I can't play prompts.
> 
> What can I do here?
> 
> Doug.

I would suggest you to dial to Local channel.. From there you can use
Dial() application and macros if you wish to playback something.. So you
would have two call legs - one connected to local channel and second to
specified context/extension/priority in call file. Then in local channel
you can do Answer() - that would mark that as answered and start
executing context/exten/priority from callfile, or don't do answer -
then answer from next subsequent dial would count.

Regards,
Atis



More information about the asterisk-users mailing list