VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

FreePBX: Monitor Trunk Failures Script

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Ответить
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

FreePBX: Monitor Trunk Failures Script

Сообщение gaspaarr »

Хотелось бы использовать функцию запуска скрипта при сбоях на транке.

Нашел такой скрипт:

Код: Выделить всё

#!/bin/bash
 
declare -a array
while read -e ARG && [ "$ARG" ] ; do
array=(` echo $ARG | sed -e 's/://'`)
export ${array[0]}=${array[1]}
done
 
EMAIL=my@email.com
 
DATE=`date "+%m-%d-%Y %H:%M"`
 
HOST=`hostname`
 
CID=`echo $agi_callerid`
CIDNAME=`echo $agi_calleridname`
EXTENSION=`echo $agi_extension`
DNID=`echo $agi_dnid`
STATUS=`echo $agi_dialstatus`
CHANNEL=`echo $agi_channel`
CAUSE=`echo $agi_causecode`
CODEC=`echo $agi_causecode`
HANGUPREASON=`echo $agi_hangupcause`
REASON=${REASON}
 
REPORT=$EXTENSION
 
if [ "$EXTENSION" = "s-CHANUNAVAIL" ]
then
REPORT="Channel Unavailable"
fi
 
# Message Formating
 
MSG="\n\n A call from channel [$CHANNEL] \n"
MSG="$MSG With CID : [$CIDNAME] - [$CID] \n\n"
MSG="$MSG has failed on host [$HOST] at $DATE \n\n"
MSG="$MSG Number that was dialed : [$DNID] on trunk [VITELITY] \n\n"
MSG="$MSG with error : [$STATUS] and hangup cause is : [$REASON] \n\n"
# log
 
 
echo >> /var/log/asterisk/trunkfailure.log
echo -e "$MSG" >> /var/log/asterisk/trunkfailure.log
 
# Send an email
 
echo -e "$MSG" | mail -s " VITELITY - Failed call on host [$HOST] - dialing [$DNID] - " "$EMAIL"
Но в 12 версии FPBX и 11 версии * он не передает error и hangup cause, так же изначально отсутствует получение переменной с именем транка. Если же пытаться запускать скрипт с параметром (например trunk_failure.agi trunk-name1 то файл не найден, а прописать trunk_failure.agi "trunk-name1" вэб-морда не дает, т.к. меняет кавычки...

Может у кого-то есть действующий скрипт?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX: Monitor Trunk Failures Script

Сообщение ded »

Там надо прописать просто ваш trunk_failure.agi и всё. Имя транка freePBX сама подставит, ибо Вы же прописываете в окошечке на конкретном транке - Monitor Trunk Failures Мониторить ЭТОТ транк при помощи скрипта!
Следить за отказами транка?
Если отмечено, выполняется скрипт AGI чтобы журналировать, сообщать по email или предпринимать другие действия при отказах, которые не являются причинами NOANSWER или CANCEL.: Включить
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: FreePBX: Monitor Trunk Failures Script

Сообщение gaspaarr »

А в какую переменную она подставит имя транка? И можно ли как-то получить ответ транка, по какой причине он не смог выполнить вызов?

Насчет "NOANSWER или CANCEL", в форумах обсуждалось еще и BUSY, хотя и в моем описании этого нет, неужели и при BUSY будут валиться репорты?
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: FreePBX: Monitor Trunk Failures Script

Сообщение SolarW »

gaspaarr писал(а):А в какую переменную она подставит имя транка?
Судя по

Код: Выделить всё

MSG="$MSG Number that was dialed : [$DNID] on trunk [VITELITY] \n\n"
и по

Код: Выделить всё

mail -s " VITELITY - Failed call on host [$HOST] - dialing [$DNID] - "
наверное VITELITY?
Но не совсем ясно почему эта переменная в отличии от других в вашем скрипте не начинается с символа $

Немного позже.
Погуглил по кусочку вашего скрипта, нашел ссылки, содержимое которых выглядит интересным.
http://pbxinaflash.com/community/index. ... rts.12566/
http://pbxinaflash.com/community/index. ... alerts.18/
http://pbxinaflash.com/community/index. ... lure.1968/
http://striker24x7.blogspot.com/2011/05 ... t-via.html
http://issues.freepbx.org/browse/FREEPBX-2529
Посмотрите, может найдете решение вашей проблемы.
Имя транка похоже нигде не передается, похоже берется откуда-то из CHANNEL
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: FreePBX: Monitor Trunk Failures Script

Сообщение gaspaarr »

VITELITY это вообще не переменная... это попытка под каждый транк использовать отдельный скрипт, но это совсем каменный век какой-то...

На форуме том читал, но там кроме констатации факта о том, что работает не так как должно, больше никаких предположений и решений нет... по этому и задал вопрос здесь.
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: FreePBX: Monitor Trunk Failures Script

Сообщение SolarW »

Ну тогда попробуйте вставит в диалплан команду DumpChan, она вам покажет доступные переменные в момент вызова...
gaspaarr
Сообщения: 217
Зарегистрирован: 17 сен 2014, 21:20

Re: FreePBX: Monitor Trunk Failures Script

Сообщение gaspaarr »

Видимо это максимум, что может быть:

Variables:
DIALSTATUS=CONGESTION
custom=SIP/SIPNET-1234567


Однако $agi_dialstatus в опробованном скрипте есть, и в письме он приходит пустой... или это не та переменная?
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH