Автоматический выбор канала на исходящии
Доброго времени суток Всем!
Может кому и пригодит этот код.
Допустим, у нас есть несколько каналов для исходящих вызовов. Например: городская линия, GSM шлюз с оператором МТС и Sipnet.
Нам нужно чтобы московские номера набирались через городскую линию, Номера сотового оператора МТС набирались через шлюз GSM? а все остальное через Sipnet.
Создадим два текстовых документа в которых перечислены кода городов, например:
------------ moskow.txt--------------------
495
499
-------------------------------------------
----------------MTS.txt--------------------
917
919
-------------------------------------------
Вы можите дописать свои кода городов.
Создаем скрипт, который будет обрабатывать набранные номера
----------------chanels.sh------------------------------------------------
#!/bin/sh
sleep 1
NUMBER=$1
Chan1='SIP/Moskow/8' #переменная канала городской линии
Chan2='SIP/MTS/8' #переменная канала для GMS шлюза
Chan3='SIP/Sipnet/8' #переменная канала для Sipnet
Mos='/ваш путь/moskow.txt' #пути до текстового документа
MTS='/ваш путь/MTS.txt' #
NUM=${NUMBER:0:3} #отсекаем от номера код города
ChanX=$Chan3 #по умолчанию присваиваем канал для исходящих Sipnet
#Если кода городов московские то присваиваем канал на исходящие городскую линию
grep -q "$NUM" "$Mos"
if [[ $? -eq $SUCCESS ]]
then
ChanX=$Chan1
fi
#Если кода городов мобильные МТС то присваиваем канал на исходящие GSM шлюз
grep -q "$NUM" "$MTS"
if [[ $? -eq $SUCCESS ]]
then
ChanX=$Chan2
fi
#Передаем переменную канала в asterisk
echo "SET VARIABLE DOW $ChanX"
#eof
-----------------------------------------------------------------------------
Далее в extensions.conf добавляем
exten => _9.,1,AGI(/ваш путь/chanels.sh|${EXTEN:2})
exten => _9.,2,Dial(${DOW}${EXTEN:2})
exten => _9.,3,Congestion
Готово!
|