AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

уведомление на e-mail о пропущенных звонках

Newbies/FAQ Forum 10 сообщений -
#1

Всем приветы! вопросец есть, как сделать уведомление о пропущенном вызове?
Буду благодарен любым ответам..
#2

что то типа етого

exten => NOANSWER,1,System(/opt/fax/status2mail --email ${CALLERID(RDNIS}@mydomen.ru --from ${CALLERID(num)})


скрипт satus2mail нужно написать и использовать там лубой мейлер, ну или сам мейлер вызывать без скрипта
Shocked

_________________
нанотехнолигии в области Asterisk
#3

или настроить автоответчик Wink он тоже мыло шлет.
#4

нее автоответчик не пойдет...
вот такой скриптик - кто чего думает?
Цитата:
#$1 email address
#$2 callerid num
#$3 callerid name
#$4 dial status
#$5 vm status

#Store command line args in nice variables
EMAIL=$1
CALLERIDNUM=$2
CALLERIDNAME=$3
DIALSTATUS=$4
VMSTATUS=$5

LOGFILE="/var/log/processCallEmail.log"

MAILCMD="mailx -s"
SUBJECT="call"
SENDMAIL=1 #Set to 1 if you want it to email the alert. 0 is useful for debugging.
DEBUG=0 #Set to 0 for standard operation. 1 will log inputs and mail commands for debugging.

#log mail command
if [ $DEBUG -eq 1 ]; then
echo $1 $2 \"${3}\" $4 $5 >> $LOGFILE
fi

#Check we have an email address if not quit
if [ "$EMAIL" == "" ]; then
exit 0
fi

#check for call canceled. ex. 1 ring then hangup
if [ $DIALSTATUS == "CANCEL" ]; then
BODY="${CALLERIDNAME} (${CALLERIDNUM}) hung up quickly."
fi

#check for answered call. ex. someone picks up
if [ $DIALSTATUS == "ANSWER" ]; then
# BODY="$CALLERIDNAME ($CALLERIDNUM) was answered by $PEERNAME."
# Use the above line if you want alerts about answered calls.
# At work this is not useful but at home it is. Smile
exit 0
fi

#check for unanswered call. ex. phone rang and no one picked up
if [ $DIALSTATUS == "NOANSWER" ]; then
BODY="${CALLERIDNAME} (${CALLERIDNUM}) hung up."

#check for hangup in vm menu. ex call went to vm and user hung up
if [ $VMSTATUS == "USEREXIT" ]; then
BODY="$CALLERIDNAME ($CALLERIDNUM) hung up on vm."
fi
#check for hangup in vm menu. ex call went to vm and user hung up
if [ $VMSTATUS == "FAILED" ]; then
BODY="$CALLERIDNAME ($CALLERIDNUM) hung up on vm."
fi
#if they left a vm we already would get an email. Don't need a 2nd
if [ $VMSTATUS == "SUCCESS" ]; then
exit 0
fi
fi

#log mail command
if [ $DEBUG -eq 1 ]; then
echo $BODY $MAILCMD $SUBJECT $EMAIL >> $LOGFILE
fi

#send email
if [ $SENDMAIL -eq 1 ]; then
`echo $BODY | $MAILCMD $SUBJECT $EMAIL`
fi

exit 0
#5

extensions.conf
exten => s,1,Set(CALLERID(num)
exten => s,2,Set(num={EXTEN})
exten => s-BUSY,1,System(/opt/status/dialstatus ${CALLEID(num) ${num})

Создал скрипт(dialstatus):

#!/bin/sh
file=/opt/status/email
number=$1
from=$2
subject=Call
message=Пропустили вызов
email=`cat $file | grep $number |awk '{print $3}'`
echo $email

/usr/local/bin/sendEmail -t $email -u $subject -m $message $from

где файл email содержит:

внутрений номер => email@domain.com

но получает уведомление человек который набирал абонента. Где я не прав?
#6

проблема решена.
#7

каким образом?
#8

не ту переменную подставлял при выполнении команды команды "cat"
скрипт на данный момент:

#!/bin/sh
file=/opt/status/email
DATE=`date +%d.%m.%Y-%H:%M:%S`
callerid=$1
dest=$2
email=`cat $file | grep $dest |awk '{print $3}'`
/usr/local/bin/sendEmail -f (от кого) -t $email -u (тема ссобщения) $callerid -m (тело письма)

и очень прекрасно работает.
#9

вообще прекрасно поднять jabber-сервер и на него слать статусы ))
также проверять статусы на jabber типа (ушел умер закопан) и говрить это абоненту
Very Happy

_________________
нанотехнолигии в области Asterisk
#10

Cache писал(а):
вообще прекрасно поднять jabber-сервер и на него слать статусы ))
также проверять статусы на jabber типа (ушел умер закопан) и говрить это абоненту
:D


А как такое можно сделать? Как раз о статусах думаю.