Greetings,
I think this is a better solution:
I've created a simular solution for our main incoming line. Extentions
can add/remove themselfs from
the distrubuting extention.
I used the DATABASE functions of Asterisk to accomplish this following.
my example:
first create a few Database/Keys in the Asterisk CLI to express which
phones may use this feature
and how the extention will actually be dialed. Like I have two phones on
differant hardware that
BOTH act as "169" and both get called by "169" but need special
intrustions to be dialed.
In Asterisk CLI
DATABASE put zentrale 111 0: SIP/111a&SIP/111b
DATABASE put zentrale 115 0:SIP/114&SIP/115
DATABASE put zentrale 118 0:SIP/118
DATABASE put zentrale 298 1:DAHDI/r1/298
DATABASE put zentrale 168 1:SIP/168&DAHDI/r1/169
add these lines to
extentions.conf
[macro-SetZentrale]
exten => s,1,Set(OPER=${DB_KEYS(zentrale)})
exten => s,n,Set(DailOut=)
exten => s,n,While($["${SET(XXX=${SHIFT(OPER)})}"!=""])
exten => s,n,GotoIf($["${DB(zentrale/${XXX}):0:2}"!="1:"]?skp)
exten => s,n,Set(DailOut=${DailOut}&${DB(zentrale/${XXX}):2})
exten => s,n(skp),EndWhile
exten => s,n,Set(DailOut=${DailOut:1})
exten => s,n,Set(DB(zentrale/ist)=${DailOut})
[SIP-Phones]
;incoming call for "0" --> Operator
exten = 0,1,GotoIfTime(07:45-17:05,mon-fri,*,*?inhours)
same = n,Dial(${DB(zentrale/ist)},10,txk)
same = n,GoTo(SIP-Phones,300,1)
same = n(inhours),Dial(${DB(zentrale/ist)},10,txk)
same = n,SIPAddHeader(Alert-Info:\;info=abwurf)
same = n,Dial(SIP/297&${DB(zentrale/ist)},30,txk)
same = n,GoTo(SIP-Phones,300,1)
same = n,HangUp()
exten = 300,1,Answer()
same = n,Wait(1)
same = n,VoiceMail(300)
same = n,HangUp()
exten = 301,1,Set(OPER=${DB_KEYS(zentrale)})
same = n,Answer()
same = n,PlayBack(/etc/asterisk/wav/301-zentrale)
same = n,PlayBack(/etc/asterisk/wav/500-nbstl)
same = n,While($["${SET(XX=${SHIFT(OPER)})}"!=""])
same = n,GotoIf($["${DB(zentrale/${XX}):0:2}"!="1:"]?skp)
;same = n,SayNumber(${XX})
same = n,SayPhonetic(${XX})
same = n,Wait(1)
same = n(skp),EndWhile
same = n,Wait(1)
same = n,PlayBack(vm-goodbye)
same = n,HangUp()
exten = 302,1,Answer()
same = n,Set(CDR(accountcode)=${CALLERID(number):-3})
same =
n,GotoIf($["${DB_EXISTS(zentrale/${CALLERID(number)})}"="0"]?301,1)
same =
n,GotoIf($["${DB(zentrale/${CALLERID(number)}):0:2}"="1:"]?off)
same =
n,Set(DB(zentrale/${CALLERID(number)})=1${DB(zentrale/${CALLERID(number)}):1})
same = n,macro(SetZentrale)
same = n,PlayBack(beep)
same = n,PlayBack(beep)
same = n,PlayBack(/etc/asterisk/wav/500-nbstl)
;same = n,SayNumber(${CALLERID(number)})
same = n,SayPhonetic(${CALLERID(number)})
same = n,PlayBack(/etc/asterisk/wav/302-hinzu)
same = n,Goto(bye)
same =
n(off),Set(DB(zentrale/${CALLERID(number)})=0${DB(zentrale/${CALLERID(number)}):1})
same = n,macro(SetZentrale)
same = n,PlayBack(beep)
same = n,PlayBack(/etc/asterisk/wav/500-nbstl)
;same = n,SayNumber(${CALLERID(number)})
same = n,SayPhonetic(${CALLERID(number)})
same = n,PlayBack(/etc/asterisk/wav/302-hinab)
same = n(bye),Wait(1)
same = n,PlayBack(vm-goodbye)
same = n,HangUp()
;END
Incoming calls to "0" --> Dial all phones listed via "302"
---> Dial(${DB(zentrale/ist)})
"300" - VoiceMail-Box
"301" - "reads off" the list of phones registered via "302"
"302" - if extention not registered, adds calling extention (database
entry must exist) to Dial-List
DATABASE entry "zentrale/ist" is created or modified by this
methode
"302" - if extention registered, removes calling extention from Dial-List
${DB(zentrale/ist)
I hope this may interest and help you along ....
my best regards,
Stefan Becker
On Mon, May 8, 2017 at 4:35 PM, Frank Vanoni <mailingl...@linuxista.com>
wrote:
Hello
I have the following scenario:
[mynicecontext]
exten => 2000,1,Dial(SIP/deviceA&SIP/deviceB&SIP/deviceC)
As expected, by dialing 2000, all three devices will ring. And that's
fine.
However, there are situations where I only want "deviceA" and "deviceB"
to ring. I would like to have an extension to dial in order to modify
the dialplan.
.........
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
Check out the new Asterisk community forum at: https://community.asterisk.org/
New to Asterisk? Start here:
https://wiki.asterisk.org/wiki/display/AST/Getting+Started
asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users