[asterisk-users] understanding what h extension does

2007-04-03 Thread Alan Chandler
I am trying to make a dialplan that when I dial 90 I can go round a 
whole set of extensions and leave them a short message, hangup and go 
on the next one.

I use the M facility of dial, with something like this 

[messages]

exten = 90,n(calcnextchan),Set(DIALCHAN=...)
exten = 90,n,Dial(${DIALCHAN},30,M(domessage))
exten = 90,n,Goto(calcnextchan)

[macro-domessage]

exten = s,1,Playback(message)
exten = s,n,Set(MACRO_RESULT=CONTINUE)

[There is actually more logic to check for busy dial channels and retry 
them later]

This seems to work fine until one of the callees hangs up before the 
message is played. at which point my call is terminated.

I was wondering if I should user the h extension here to pickup the 
hungup call from the callee and continue.  However I am worried that I 
might end up looping if I hang up my end of the call - since I want it 
to stop if I do that.

I can't find a definitive explanation of what causes the h extension to 
be called.  Can someone explain what what happen if I added something 
like

exten = h,1,Goto(90,calcnextchan)

to the [messages] context

-- 
Alan Chandler
http://www.chandlerfamily.org.uk
___
--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


Re: [asterisk-users] understanding what h extension does [ISSUE SOLVED]

2007-04-03 Thread Alan Chandler
On Tuesday 03 April 2007 07:48, Alan Chandler wrote:
 I am trying to make a dialplan that when I dial 90 I can go round a
 whole set of extensions and leave them a short message, hangup and go
 on the next one.

 I use the M facility of dial, with something like this

 [messages]

 exten = 90,n(calcnextchan),Set(DIALCHAN=...)
 exten = 90,n,Dial(${DIALCHAN},30,M(domessage))
 exten = 90,n,Goto(calcnextchan)

 [macro-domessage]

 exten = s,1,Playback(message)
 exten = s,n,Set(MACRO_RESULT=CONTINUE)

 [There is actually more logic to check for busy dial channels and
 retry them later]

 This seems to work fine until one of the callees hangs up before the
 message is played. at which point my call is terminated.


OK, its a logic problem.  If the caller hangs up before playback is 
complete MACRO_RESULT has not been set, so the call is bridged and then 
hung up.  If I set MACRO_RESULT as the first action of the call macro, 
then any interruption from the far end hanging up means that the 
dialplan just continues without the call having been bridged.
-- 
Alan Chandler
http://www.chandlerfamily.org.uk
___
--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