mirror of https://github.com/sipwise/vmnotify.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.8 KiB
85 lines
1.8 KiB
#!/bin/bash
|
|
|
|
########################################################################
|
|
# vmnotify - An Asterisk-VoiceMail compatible MWI notification script
|
|
# (c) 2007 Sipwise. All rights reserved.
|
|
#
|
|
# Author: Andreas Granig <agranig@sipwise.com>
|
|
#
|
|
# Usage: vmnotify <context> <user> <messages>
|
|
#
|
|
########################################################################
|
|
|
|
|
|
CONFFILE="/etc/ngcp-vmnotify/vmnotify.conf"
|
|
LOGGER="/usr/bin/logger -i -t vmnotify"
|
|
|
|
function debug
|
|
{
|
|
LOG_ARGS="-p daemon.debug"
|
|
if [ "x$CONSOLE_DEBUG" = "x1" ]; then
|
|
LOG_ARGS="$LOG_ARGS -s"
|
|
fi
|
|
echo "$@" | $LOGGER $LOG_ARGS
|
|
}
|
|
|
|
function error
|
|
{
|
|
LOG_ARGS="-p daemon.err"
|
|
if [ "x$CONSOLE_DEBUG" = "x1" ]; then
|
|
LOG_ARGS="$LOG_ARGS -s"
|
|
fi
|
|
echo "$@" | $LOGGER $LOG_ARGS
|
|
exit 1
|
|
}
|
|
|
|
|
|
test -f $CONFFILE || error "Config file not found"
|
|
. $CONFFILE
|
|
|
|
test -f $SIPSAK || error "sipsak command not found"
|
|
test -f $UUIDGEN || error "uuidgen command not found"
|
|
|
|
|
|
debug "Arguments: $@"
|
|
|
|
if [ "x$SERVER" = "x" ]; then
|
|
error "Config parameter SERVER not specified"
|
|
fi
|
|
|
|
CONTEXT=$1
|
|
USER=$2
|
|
MESSAGES=$3
|
|
|
|
if [ "x$CONTEXT" = "x" ]; then
|
|
error "Usage: $0 <context> <cli> <messages>"
|
|
fi
|
|
if [ "x$USER" = "x" ]; then
|
|
error "Usage: $0 <context> <cli> <messages>"
|
|
fi
|
|
if [ "x$MESSAGES" = "x" ]; then
|
|
error "Usage: $0 <context> <cli> <messages>"
|
|
fi
|
|
|
|
URI="sip:$USER@$SERVER"
|
|
|
|
if [ "x$MESSAGES" = "x0" ]; then
|
|
MW="no"
|
|
else
|
|
MW="yes"
|
|
fi
|
|
|
|
NEW=$MESSAGES
|
|
OLD="0" # asterisk doesn't send number of old messages!
|
|
|
|
BODY_MW="Messages-Waiting: $MW"
|
|
BODY_VM="Voice-Message: $NEW/$OLD"
|
|
BODYLEN=$((${#BODY_MW}+2+${#BODY_VM}+2))
|
|
CALL_ID=$($UUIDGEN)@voip.sipwise.local
|
|
MBID=$USER
|
|
BRANCH=$($UUIDGEN)
|
|
|
|
nohup $SIPSAK -S -i -k $LOCAL_IP -l 5081 -f $SIPFILE \
|
|
-G -g "!BODY_MW!$BODY_MW!BODY_VM!$BODY_VM!BODYLEN!$BODYLEN!CALL_ID!$CALL_ID!MBID!$MBID!BRANCH!$BRANCH!" \
|
|
$VERBOSE -E udp -s $URI 1>/dev/null 2>/dev/null &
|