Добавочный номер в IVR через транк Elastix / FreePBX

Предположим, что у нас есть 2 АТС Elastix / FreePBX объединенные через SIP/IAX2 транк с номерными планами 3XX и 4XX соответственно. Назовем их АТС1 и АТС2. Необходимо чтобы, попадая в голосовое меню IVR АТС1, можно было сделать донабор 4XX и попасть на номера АТС2.

Стандартными возможностями, на сколько мне известно, это сделать не возможно. Но можно легко обойти это ограничение. Итак, открываем файл конфигурации /etc/asterisk/extestions_custom.conf на АТС1 и/или добавляем в него контекст:

[from-did-direct-ivr-custom]
exten  => _4XX,1,Goto(outbound-allroutes,${EXTEN},1)

Сохраняемся и даем команду на рестарт:

[email protected]/etc# asterisk -rx "reload"

Статические маршруты в macos при поднятии VPN

По-умолчанию, при поднятии VPN соединения, Mac OS X пропишет только один статический маршрут, соответствующий создаваемому туннелю. Но бывают ситуации когда необходимо прописать несколько маршрутов для подсетей или хостов. Решить данный вопрос в GUI Mac OS X невозможно. Но возможно через консоль(терминал).

Итак, открываем терминал. Для решения данной задачи создадим файл /etc/ppp/ip-up, и сделаем его исполняемым:

sudo touch /etc/ppp/ip-up
sudo chmod a+x /etc/ppp/ip-up

Открываем созданный файл для редактирования

sudo vim /etc/ppp/ip-up

и пропишем в нем:

#!/bin/sh
ifname=$1        # имя интерфейса pppd (например, ppp3)
ttyname=$2       # имя tty устройства
speed=$3         # скорость tty устройства
localip=$4       # локальный ip адрес
remoteip=$5      # удаленный ip адрес
ipparam=$6       # текущий ip адрес перед установлением VPN соединения

case "$remoteip" in
#IP 1 филиала
    192.168.20.1)
	/sbin/route add -net 192.173.0.0/24 -interface $ifname
        ;;
#IP 2 филиала
    192.168.1.239)
	/sbin/route add -net 192.168.1.0/24 -interface $ifname
        ;;
esac
exit 0;

В данном примере 192.168.20.1 и 192.168.1.239  это ip-адреса VPN-серверов после установления соединения. 192.173.0.0/24 и 192.168.1.0 подсети которые нам необходимо прописать в статичных маршрутах. IP-адрес сервера можно посмотреть после установления VPN соединения командой ifconfig и найти интерфейс ppp0.

ppp0: flags=8051<up,pointopoint,running,multicast> mtu 1448
 inet 192.168.20.57 --> 172.24.48.116 netmask 0xffffff00

Аналогично можно сделать скрипт для удаления маршрутов /etc/ppp/ip-down, который будет вызываться при остановке VPN туннеля:

/sbin/route delete -net 192.0.2.0/24 -interface $ifname
/sbin/route delete -host 192.168.12.54 -interface $ifname