[asterisk-users] Dial an extension to modify dialplan

Frank Vanoni mailinglist at linuxista.com
Mon May 8 09:35:40 CDT 2017


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.

Here is what I did...

In extensions.conf:

------ snip -----
[mynicecontext]
#include "ringdevice.conf

exten => 2000,1,GoTo(ringdevice,ring,1)

exten => 4000,1,System(/bin/cat /etc/asterisk/twodevices.txt
> /etc/asterisk/ringdevice.conf)
exten => 4000,2,Wait(3)
exten => 4000,3,System(/usr/sbin/asterisk -rx "dialplan reload")
exten => 4000,4,Playback(service&de-activated)

exten => 4001,1,System(/bin/cat /etc/asterisk/alldevices.txt
> /etc/asterisk/ringdevice.conf)
exten => 4001,2,Wait(3)
exten => 4001,3,System(/usr/sbin/asterisk -rx "dialplan reload")
exten => 4001,4,Playback(service&activated)
------ end snip -----

twodevices.txt contains 
exten => ring,1,Dial(SIP/deviceA&SIPdeviceB)

alldevices.txt contains 
exten => ring,1,Dial(SIP/deviceA&SIPdeviceB&SIP/deviceC)

By dialing 4000 or 4001, the dialplan is modified and reloaded
accordingly.

Is there a better solution? 

Frank




More information about the asterisk-users mailing list