📄 smsevent
字号:
#!/bin/sh# This is an example how to use an eventhandler with smsd.# $1 is the type of the event wich can be SENT, RECEIVED, FAILED or REPORT.# $2 is the filename of the sms.# $3 is the message id. Only used for SENT messages with status report.#The next line changes the file attributes so that everybody can read#received SM#if [ "$1" = "RECEIVED" ]; then# chmod a+r $2#fi#This sends all received SM to an eMail receiver:#if [ "$1" = "RECEIVED" ]; then# /usr/sbin/sendmail username@localhost <$2#fi#This sends all received SM to eMail receiver. The recipient address #must be the first word of the SM.#if [ "$1" = "RECEIVED" ]; then# receiver=`cat $2 | grep '^.*@.*' | sed -n 1p | cut -f1 -d' '`# if [ $receiver ]; then# /usr/sbin/sendmail $receiver < $2# fi#fi#This forwards all received SM to another mobile phone:#if [ "$1" = "RECEIVED" ]; then# FROM=`formail -zx From: <$2`# formail -f -I "To: 491721234567" <$2 >$2.forward# echo "from $FROM" >> $2.forward# mv $2.forward /var/spool/sms/outgoing#fi#The following code concatenates multipart text messagesif [ "$1" = "RECEIVED" ]; then if grep "UDH-DATA: 05 00 03" $2 >/dev/null; then if grep "Alphabet: ISO" $2 >/dev/null || grep "Alphabet: GSM" $2 >/dev/null; then # This is a multipart text message FROM=`formail -zx From: <$2` UDHDATA=`formail -zx UDH-DATA: <$2` # Extract information from UDH using awk to convert hex to dec MSGID=`echo "$UDHDATA" | awk '{printf "%d",strtonum("0x"$4)}'` PARTS=`echo "$UDHDATA" | awk '{printf "%d",strtonum("0x"$5)}'` PART=`echo "$UDHDATA" | awk '{printf "%d",strtonum("0x"$6)}'` # Rename the file mv $2 "$FROM.$MSGID.$PART" # Check if all parts have been received received=`ls -1 "$FROM.$MSGID.*" | wc -l` if [ "$PARTS" -eq "$received" ]; then # Concatenate all parts # copy header from last part into a new file formail -X "" <$FROM.$MSGID.$PART >$2.concatenated echo "" >>$2.concatenated # add the text of each part counter=1 while [ "$counter" -le "$PARTS" ]; do sed -e '1,/^$/ d' <$FROM.$MSGID.$counter >>$2.concatenated rm $FROM.$MSGID.$counter counter=`expr $counter + 1` done fi fi fifi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -