77 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
####### Asterisk Telephony Server
if [ -a /usr/sbin/asterisk ]
then
ASTBIN=/usr/sbin/asterisk
else
ASTBIN=$(which asterisk)
fi
if [ "$ASTBIN" != "" ]
then
echo '<<<app-asterisk>>>'
astcmd () {
#asterisk -rx "$1" | grep -v "Asterisk ending" | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g'
$ASTBIN -rx "$1" | sed -r 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g'
}
#CORECHANNELS=$(astcmd 'core show channels' | tail -3)
CORECHANNELS=$($ASTBIN -rx 'core show channels' | tail -3)
ACTIVECHAN=$(echo "$CORECHANNELS" | grep -o '[0-9]* active channel' | cut -d' ' -f1)
ACTIVECALL=$(echo "$CORECHANNELS" | grep -o '[0-9]* active call' | cut -d' ' -f1)
IAXCHANNELS=$(astcmd 'iax2 show channels' | tail -1 | cut -d' ' -f1)
SIPCHANNELS=$(astcmd 'sip show channels' | tail -1 | cut -d' ' -f1)
SIPPEERS=$(astcmd 'sip show peers' | tail -1)
SIPTOTALPEERS=$(echo "$SIPPEERS" | cut -d' ' -f1)
SIPONLINE=$(echo "$SIPPEERS" | grep -o '[0-9]* online' | head -1 | cut -d' ' -f1)
IAXPEERS=$(astcmd 'iax2 show peers' | tail -1)
IAXTOTALPEERS=$(echo "$IAXPEERS" | cut -d' ' -f1)
IAXONLINE=$(echo "$IAXPEERS" | grep -o '[0-9]* online' | head -1 | cut -d' ' -f1)
PJSIPCHANNELS=$($ASTBIN -rx 'pjsip show channels' | grep -c "Channel: PJSIP")
PJSIPONLINE=$($ASTBIN -rx 'pjsip show endpoints' | grep 'Contact: ' | grep -c -v '<Aor')
PJSIPTOTAL=$($ASTBIN -rx 'pjsip show endpoints' | grep 'Endpoint: ' | grep -c -v '<Endpoint')
re='^[0-9]+$'
ASTSIPCHANNELS=0
ASTSIPTOTALPEERS=0
ASTSIPONLINE=0
if [[ $SIPCHANNELS =~ $re ]] ; then
ASTSIPCHANNELS=$(($ASTSIPCHANNELS + $SIPCHANNELS))
fi
if [[ $PJSIPCHANNELS =~ $re ]] ; then
ASTSIPCHANNELS=$(($ASTSIPCHANNELS + $PJSIPCHANNELS))
fi
if [[ $SIPTOTALPEERS =~ $re ]] ; then
ASTSIPTOTALPEERS=$(($ASTSIPTOTALPEERS + $SIPTOTALPEERS))
fi
if [[ $PJSIPTOTAL =~ $re ]] ; then
ASTSIPTOTALPEERS=$(($ASTSIPTOTALPEERS + $PJSIPTOTAL))
fi
if [[ $SIPONLINE =~ $re ]] ; then
ASTSIPONLINE=$(($ASTSIPONLINE + $SIPONLINE))
fi
if [[ $PJSIPONLINE =~ $re ]] ; then
ASTSIPONLINE=$(($ASTSIPONLINE + $PJSIPONLINE))
fi
echo "activechan:$ACTIVECHAN"
echo "activecall:$ACTIVECALL"
echo "iaxchannels:$IAXCHANNELS"
#echo "sipchannels:$SIPCHANNELS"
#echo "sippeers:$SIPTOTALPEERS"
#echo "sippeersonline:$SIPONLINE"
echo "sipchannels:$ASTSIPCHANNELS"
echo "sippeers:$ASTSIPTOTALPEERS"
echo "sippeersonline:$ASTSIPONLINE"
echo "iaxpeers:$IAXTOTALPEERS"
echo "iaxpeersonline:$IAXONLINE"
fi