ここでアマチュア無線愛好家について、およびDxクラスタとは何かを読むことができます 。
少しの背景:アマチュア無線リフレクターの 1つに一度入ると、SMSをDXクラスターに送信するという考えがすり抜けました。なぜなら、どこでもインターネットがカバーされているわけではないからです。 しかし、このアイデアは、モバイルオペレーターに直接関わっている/直接関係のあるアマチュア無線家によって破棄されました。 これは、機器が非常に高価になるという事実によって動機付けられたので、アイデアは価値がありません。
私はこのトピックに興味を持ち、 smstools 、携帯電話、およびDXクラスターを1つの全体にまとめることにしました。
このスキームは、FreeBSDを実行しているホームサーバーで正常に開始されました。 今、私もすべてを行うことにしましたが、 D-link DIR-620ルーターで
装備品
-Zyxel Keeneticファームウェアを搭載したDir-620ルーター。
-Motorola v360携帯電話(古い妻の電話、予備として横になっている);
-まっすぐな腕と欲望;
smstoolsについては説明しませんが、すでにこの質問はHabréでここで取り上げました 。
そして、Habrの記事、ルーターをフラッシュする方法- こちら 。
そのため、電話を接続し、ルーターがそれを認識していることを確認します。
dmesg
...
...
cdc_acm 1-1.4.3:1.0: ttyACM0: USB ACM device
次に、smstoolsを収集します。 パッケージのビルド方法については、 Zyxmonの こちらをご覧ください 。 smstoolsは標準のOpenWrtユーティリティに含まれていないため、 ここからソースをダウンロードして解凍します。
Keeneticのクロスコンパイラを使用してビルドする必要があります。 これを行うには、smstools3 / src / Makefileファイルに次の行が必要です。
Cc = gcc
クロスコンパイラへのパスを指定します。 私はこれを持っています:
SS = / home / igor / keenetic / staging_dir / toolchain-mipsel_r2_gcc-4.1.2_uClibs-0.9.30.3 / bin / mipsel-openwrt-linux-uclibc-gcc
作ります。 smstools3 / src /にsmsd smsサーバーデーモンファイルを取得し、これを/ media / DISK_A1 / system / usr / binのファイルシステムにコピーします。 同時に、/ media / DISK_A1 / system / etcディレクトリに、smsdを実行するために必要なsmsd.conf構成ファイルを配置します。
私の構成ファイル:
devices = GSM1
logfile = /media/DISK_A1/system/var/log/smstools/smsd.log
loglevel = 7
[GSM1]
device = /dev/ttyACM0
incoming = yes
check_memory_method = 31
smsc = 38097*******
baudrate = 115200
rtscts = no
また、smsdが機能するには、次のディレクトリを作成する必要があります。
mkdir -p / media / DISK_A1 / system / var / log / smstools
mkdir -p / var /スプール/ sms /チェック済み/
mkdir -p / var /スプール/ sms /発信/
mkdir -p / var / spool / sms / incoming /
SMSサーバーを起動します。
# smsd -c /media/DISK_A1/system/etc/smsd.conf
この種の電話にテストSMSメッセージを送信します。
(周波数DX局コメント)
14144.0 UE1WFF WFF !!!
ディレクトリ/ var / spool / sms / incoming /には、次の種類のテキストファイルがあります。
From: 777
From_TOA: 81 unknown, ISDN/telephone
From_SMSC: 380672020000
Sent: 12-03-26 10:06:43
Received: 12-03-26 09:28:39
Subject: GSM1
Modem: GSM1
IMSI: 255030564719214
Report: no
Alphabet: ISO
Length: 57
14144.0 UE1WFF WFF!!!
***
目的の行を取得してDXクラスターに送信するためだけに残ります。 これを行うには、perlで簡単なスクリプトを作成します。 私はperlでプログラムを作成しなかったので、スクリプトをより適切に作成できるとすぐに言わなければなりません...
#!/media/DISK_A1/system/usr/bin/perl
$k=0;
my @curfiles=glob('*.{txt}');
$count=1;
while ($name=glob('*.{txt}')) {
$count++;
}
$count=$count-2;
for ($k=0; $k<=$count; $k++)
{
open FILE,$k.'.gsm.txt';
$i=0;
while ()
{
$i++;
if ($i==12) { $string=};
}
close FILE;.
unlink $k.'.gsm.txt';
use Net::Telnet ();
my $my_call = '******';
my $my_pass = '******';
my $myspot='DX '.$string;
my $t = Net::Telnet->new(Host => '19*.15*.23*.25*', Port => '9****', Timeout => 10);
$t->waitfor('/Callsign : /');
$t->print($my_call);
$t->waitfor('/Password : /');
$t->print($my_pass);
$t->waitfor('/****** de ****** >/');
$t->print($myspot);
print @lines;
$t->print("bye");
$t->close;
}
, . .
sms- ,
, - , :)
!