[asterisk-users] Find me macro - calling multiple people to get a hold of one
Wiebe Cazemier
wiebe at halfgaar.net
Fri Nov 6 10:16:18 CST 2015
----- Original Message -----
> From: "Wiebe Cazemier" <wiebe at halfgaar.net>
> To: "Asterisk Users Mailing List - Non-Commercial Discussion" <asterisk-users at lists.digium.com>
> Sent: Friday, 6 November, 2015 10:54:48 AM
> Subject: Re: [asterisk-users] Find me macro - calling multiple people to get a hold of one
>
> It appears that [1] lucked out in that it may sometimes work. WaitExten()
> doesn't work in a macro and has no option to supply the context it runs in.
> The '1' extension defined there is never called.
>
> You can use Background() instead, but you have to play something that is long
> enough so people have time to press a button; then you don't need
> WaitExten(). Background() has documented behavior with regards to macros. It
> calls extensions in the calling context, except if you give the context as
> option:
>
> exten =>
> s,n,Background(emergency&lines-complaining-customers&press-1&press-1&press-1&press-1&press-1&press-1&press-1,,,macro-screen)
>
> But then still, more problems. The 1 and 4 extensions work, but 2 doesn't; it
> hangs up. I really don't get that.
>
> =====================================
> exten => 1,1,Verbose(0,"1 pressed")
> exten => 1,n,NoOp(Caller accepted) ; Do not set MACRO_RESULT to anything to
> connect the caller
>
> exten => 4,1,Verbose(0,"4 pressed")
> exten => 4,n,NoOp(Caller accepted) ; Do not set MACRO_RESULT to anything to
> connect the caller
>
> ; This doesn't seem to work. It goes to hangup, in the default context
> exten => 2,1,Verbose(0,"2")
> exten => 2,n,Set(MACRO_RESULT=CONTINUE)
> =====================================
>
> And I still have the problem that if I hang up instead of pressing 1, the
> caller gets connected to that disconnected line. There doesn't seem to be
> any extension I can put in my macro that responds to the hangup. Not e
> (exception), i (invalid), h (hangup), etc.
>
> Normally, Background() restarts the current context with the result on the
> stack. But when you hang up, it just SEEMS to return with a non-zero exit
> code, yet not continue with the 's' extension. Is it possible to make it
> continue with the dial plan?
I got it working. I set the MACRO_RESULT to CONTINUE in the start extension, and then set it to something else when I don't want to connect the caller:
[globals]
WIEBE_MOBILE = 10digitnr
ANOTHER_MOBILE = 10digitnr
[default]
exten => _9999XXXXXXXXXX,1,Dial(SIP/sip2phoneprovider/${EXTEN:4},40,M(screen))
exten => _9999XXXXXXXXXX,2,Hangup
[macro-screen]
exten => s,1,Set(MACRO_RESULT=CONTINUE) ; default action -> not connecting
exten => s,n,Wait(2)
exten => s,n,Background(emergency&lines-complaining-customers&press-1&press-1&press-1&press-1&press-1&press-1&press-1&press-1&press-1&press-1&press-1&press-1&press-1,,,macro-screen)
exten => 1,1,Verbose(0,"1 pressed")
exten => 1,n,Set(MACRO_RESULT=SANTA)
[findme]
exten => s,1,Set(CALLERID(all)="Bla" <123456789>)
same => n,Playback(please-wait-connect-oncall-eng)
same => n,Dial(LOCAL/9999${WIEBE_MOBILE}&LOCAL/9999${ANOTHER_MOBILE})
same => n,Playback(vm-nobodyavail)
exten => t,1,Playback(vm-nobodyavail)
More information about the asterisk-users
mailing list