Thanks, Wes, G was just what I needed.  Here's where I am:
 
[macro-stdexten]
exten => s,1,Set(cname=${CALLERID(number)[EMAIL PROTECTED])
exten => s,n,Set(CALLERID(number)=${cname})
exten => s,n,Dial(${ARG2},20,gtTwWG(OnAnswer,1,1))
exten => s,n,Set(savestatus=${DIALSTATUS})
exten => s,n,Goto(s-${savestatus},1);ANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER
exten => s-CHANUNAVAIL,1,VoiceMail(u${ARG1})
exten => s-CONGESTION,1,VoiceMail(u${ARG1})
exten => s-NOANSWER,1,Voicemail(u${ARG1})
exten => s-BUSY,1,Voicemail(b${ARG1})
exten => h,1,Macro(OnHangup)
 
[OnAnswer]
exten => 1,1,NoOp(IN POSTDIAL 1)
exten => 1,2,NoOp(IN POSTDIAL 2)
exten => h,1,Macro(OnHangup)
 
[macro-OnHangup]
exten => s,1,NoOp(IN ONHANGUP)
 
Unanswered calls stay in macro-stdexten and so get handled as desired.  When a call is answered, I do see that control has passed to OnAnswer. From the available evidence in the CLI, I'm guessing that having grabbed control from Dial() with the G switch, it is incumbent on me to do whatever it is Asterisk would have done if I hadn't grabbed the wheel.  I do notice that OnHangup gets called for both, which is good.  Here's the CLI log for "dave" calling "andrea", showing how both channels hit OnAnswer and time out.  I just need to figure out what to do there in order for the two to talk.
 
    -- SIP/dave-06e2 is ringing
    -- SIP/dave-06e2 answered SIP/Andrea-7837
  == Channel 'SIP/Andrea-7837' jumping out of macro 'stdexten'
    -- Executing NoOp("SIP/Andrea-7837", "IN POSTDIAL 1") in new stack
     -- Executing NoOp("SIP/Andrea-7837", "IN POSTDIAL 2") in new stack
    -- Executing NoOp("SIP/dave-06e2", "IN POSTDIAL 2") in new stack
May 10 08:50:37 WARNING[8722]: pbx.c:2412 __ast_pbx_run:  Timeout, but no rule 't' in context 'OnAnswer'
     -- Executing Macro("SIP/Andrea-7837", "OnHangup") in new stack
     -- Executing NoOp("SIP/Andrea-7837", "IN ONHANGUP") in new stack
May 10 08:50:37 WARNING[8725]: pbx.c:2412 __ast_pbx_run:  Timeout, but no rule 't' in context 'OnAnswer'
    -- Executing Macro("SIP/dave-06e2", "OnHangup") in new stack
    -- Executing NoOp("SIP/dave-06e2", "IN ONHANGUP") in new stack
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to