Есть тема "Nagios + smstools3" , загляните и віскажите умные умозаключения . И да прибудет с вами deamon

Код: Выделить всё
2010-10-25 14:27:29,7, GSM1: -> AT+CMGS=18
2010-10-25 14:27:29,7, GSM1: Command is sent, waiting for the answer
2010-10-25 14:27:30,7, GSM1: <- >
2010-10-25 14:27:30,7, GSM1: -> 0011000B919791016587F10000FF04F4F29C0E
2010-10-25 14:27:30,7, GSM1: Command is sent, waiting for the answer
2010-10-25 14:27:32,7, GSM1: <- +CMS ERROR: 535
Код: Выделить всё
usb_alloc_device: set address 2 failed (USB_ERR_STALLED, ignored)
usb_alloc_device: getting device descriptor at addr 2 failed, USB_ERR_STALLED
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored)
usbd_req_re_enumerate: getting device descriptor at addr 2 failed, USB_ERR_STALLED
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_STALLED, ignored)
usbd_req_re_enumerate: getting device descriptor at addr 2 failed, USB_ERR_STALLED
ugen0.2: <(null)> at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
Код: Выделить всё
2010-11-11 17:47:38,7, GSM1: -> AT
2010-11-11 17:47:38,7, GSM1: Command is sent, waiting for the answer
2010-11-11 17:47:38,7, GSM1: <- OK
2010-11-11 17:47:39,7, GSM1: -> AT+CSQ
2010-11-11 17:47:39,7, GSM1: Command is sent, waiting for the answer
2010-11-11 17:47:39,7, GSM1: <- +CSQ: 9,99 OK
2010-11-11 17:47:39,6, GSM1: Signal Strength Indicator: (9,99) -95 dBm (Marginal), Bit Error Rate: not known or not detectable
2010-11-11 17:47:39,6, GSM1: Checking if Modem is registered to the network
2010-11-11 17:47:39,7, GSM1: -> AT+CREG?
2010-11-11 17:47:39,7, GSM1: Command is sent, waiting for the answer
2010-11-11 17:47:39,7, GSM1: <- +CME ERROR: 4 (operation not supported)
2010-11-11 17:47:39,6, GSM1: Ignoring that modem does not support +CREG command.
2010-11-11 17:47:39,6, GSM1: Selecting PDU mode
2010-11-11 17:47:40,7, GSM1: -> AT+CMGF=0
2010-11-11 17:47:40,7, GSM1: Command is sent, waiting for the answer
2010-11-11 17:47:40,7, GSM1: <- +CMS ERROR: 305 (Invalid Text mode parameter)
Код: Выделить всё
[GSM1]
device = /dev/cuaU1
queues = ks
pin = ignore
pre_init = no
#verify_pdu = yes
baudrate = 9600
rtscts = no
Код: Выделить всё
#!/bin/sh
FILE=`mktemp /tmp/smsd_XXXXXX`
if [ ! `grep '[А-Яа-я]' $1 > /dev/null` -o `grep 'Alphabet:\s*U' $1 > /dev/null` ]
then exit 0
fi
strnum=`cat $1 | wc -l | bc`
let strnum=strnum+1 > /dev/null # Добавляется одна строка с Alphabet
cat $1 | awk '{
if (NF==0) {
s=1
}
if (s==0 && NF>0 && $0!~/Alphabet:[ \t]*U/) {
print
}
}' > $FILE
echo "Alphabet: Unicode" >> $FILE
cat $1 | awk -v sn="$strnum" '{
if (NF==0) {
s=1
}
if (s==1) {
printf $0
if (NR!=sn) {
printf "\n"
}
}
}' | iconv -f KOI8-R -t UCS-2BE >> $FILE
mv $FILE $1
chmod 664 $1
не понял вопросаAlex Keda писал(а):кстати, если ребутнуть машину - у всех русский остаётся?
в freebsd нет `formail -I "nm11 писал(а):в скриптах есть файл покопай его sms2htmlradius писал(а):Всем здравствуйте!
Я настроил себе GSM-модем MC35i и программу smstools3 для отсылки сообщений. Исходящие сообщения приходит в нормальном виде.
Однако до сих пор не могу настроить декодирование входящих сообщений на русском языке.
Кто-нибудь сталкивался с таким скриптом?
Я пробывал переделать скрипт которые перекодирует исходящие сообщения, не получилось.
я себе сделал так
Код: Выделить всё
if [ "$1" = "RECEIVED" ]; then usr/local/bin/sms/scripts/sms2html $2 |recode HTML_4.0..ms-cyrl|mail nik
Код: Выделить всё
text=`formail -I "" < $1`
Код: Выделить всё
while read line; do
if [ $start ] ; then
echo "$line<br>"
fi
if [ -z "$line" ]; then
start=1
fi
done < $1
Код: Выделить всё
# cat grabsms
#!/usr/local/bin/php
<?php
$srcdir = '/var/spool/sms/incoming/*';
$dstdir = '/root/sms/sms.lst';
$flst = fopen($dstdir, 'a');
foreach (glob($srcdir) as $filename) {
if (isset($data) == true) unset($data);
$data = array();
$fhdl = fopen($filename, 'r');
$flag = false;
$data['msg'] = '';
while ( !feof($fhdl) ) {
$str = fgets($fhdl);
if (!($flag)) {
$flag = (strlen($str) == 1);
if (preg_match('/^(From: ((\w)+))/',$str,$regs) > 0) { $data['from'] = $regs[2];}
if (preg_match('/^(Sent: (([\d-\:\ ])+))/',$str,$regs) > 0) { $data['sent'] = $regs[2];}
if (preg_match('/^(Received: (([\d-\:\ ])+))/',$str,$regs) > 0) { $data['received'] = $regs[2];}
if (preg_match('/^(Alphabet: ((\w)+))/',$str,$regs) > 0) { $data['alphabet'] = $regs[2];}
} else {
if (strlen($str) > 0) $data['msg'] .= $str;
}
}
if ($data['msg'] <> '') {
$dec_to = 'KOI8-R//TRANSLIT';
switch ($data['alphabet']) {
case 'ISO': $dec_from = 'ISO_8859-1';
break;
case 'UCS2': $dec_from = 'UCS-2';
break;
default:
$dec_from = 0;
}
if ($dec_from != false) {
$data['msg'] = iconv($dec_from, $dec_to, $data['msg']);
}
} else $data['msg'] = '[no message]';
fwrite($flst, 'Message from '.$data['from'].' received on '.$data['received'].PHP_EOL.$data['msg'].PHP_EOL.'-'.PHP_EOL);
fclose($fhdl);
unlink($filename);
}
fclose($flst);
?>
Код: Выделить всё
eventhandler = /root/scripts/smshndl
Код: Выделить всё
# cat smshndl
#!/usr/local/bin/php
<?php
$f = fopen('/tmp/log','a');
fwrite($f,'Arguments count: '.$argc.PHP_EOL);
foreach ($argv as $val){
fwrite($f,' Arg: '.$val.PHP_EOL);
}
fwrite($f,'---'.PHP_EOL);
fclose($f);
?>
Код: Выделить всё
# cat /tmp/log
Arguments count: 3
Arg: /root/scripts/smshndl
Arg: RECEIVED
Arg: /var/spool/sms/incoming/UMHUAWEY.9rQY6Q
---
Сообщение UMHUAWEY.TlEh9C:Arguments count: 4
Arg: /root/scripts/smshndl
Arg: SENT
Arg: /var/spool/sms/checked/send_g30phj
Arg: 21
---
Arguments count: 3
Arg: /root/scripts/smshndl
Arg: REPORT
Arg: /var/spool/sms/incoming/UMHUAWEY.TlEh9C
---
Ну и в smsd.conf для модема:From: 1234567890
From_TOA: 91 international, ISDN/telephone
From_SMSC: 79219909090
Sent: 10-12-16 00:59:52
Received: 10-12-16 01:06:05
Subject: UMHUAWEY
Modem: UMHUAWEY
IMSI: 250021044487188
Report: no
Alphabet: ISO
Length: 118
SMS STATUS REPORT
Message_id: 21
Discharge_timestamp: 10-12-16 00:59:56
Status: 0,Ok,short message received by the SME
Код: Выделить всё
report = yes
Код: Выделить всё
FreeBSD 8.1-RELEASE FreeBSD 8.1-RELEASE #1: Thu Dec 16 19:18:06 MSK 2010 root@ :/usr/obj/usr/src/sys/kern-20101216 i386
Код: Выделить всё
device ucom
Код: Выделить всё
bcp# kldstat -v | grep com
374 nfs_common
314 uhub/uvscom
312 uhub/uslcom
311 uhub/uplcom
Код: Выделить всё
bcp# kldload ucom
kldload: can't load ucom: File exists
с проблемой не сталкивался, всё работаетalukard404 писал(а):Кто работал с такой проблемой?
да, не только для русских, а для любых юникодных сообщенийВеря документации, "тело сообщения" с русскими буквами не более 70 символов.
нет, всё не так.Чуть дальше в доке, написано о "склеивании" сообщений. smstools склеивает сообщения с русскими буквами??
Соответственно, только за сегодня навалило лога на 4 метра. Да и просматривать лог не удобно, нужно юзать grep.DSFLOWRPT:000037AA,00000046,00000034,00000000003A2B67,0000000002993BE2,000AFC80,00107AC0