それは、昨年夏にグランド付きの棚にバックアップインターネットチャネルを整理するために購入したhuaweiE1550 USBモデムを掘り出したという事実から始まりました。 彼はそれから長く働きませんでした、そして、不必要なように、より良い時まで「バンカー」に移されました。 私が最初にしたことは、MTSを操作するためにロックを解除することでした(歴史的に、この特定のオペレーターを好むようになりました)。 最初は、メールではなくNagiosから警告付きのSMSを送信するというアイデアを思いつきました。 インターネットをすばやく実行した後、私はsmsdデーモンに出会い、smstoolsパッケージからsms-okを送受信しました。 この獣に関するドキュメントを読んだ後、サーバー用のコマンドを使用して、必要な電話からメッセージを受信できるという考えに思いつきました。 したがって、アイデアは「SMSを介したサーバーの管理」から生まれました。これは、サーバーの再起動、電源のオフ、デーモンの再起動、キャッシュのリセット、sshを介したリモート接続用のファイアウォールのポートのオープンなど、あらゆる用途に使用できます。
モデムを構成します
まず、私たちのモデムとLinuxを友達にする必要があります(ちなみに、私はCentos 5.5を使用しています)。 空きusbポートの1つにモデムを接続します。 最初に対処する必要があるのは、モデムがCD-ROMとして定義されていることですが、ご存知のように、SMSメッセージを送信せず、さらには受信しません。 この問題を解決するには、モデムに次のコマンドを
送る必要があります:
AT ^ U2DIAG = 0 (0-モデムのみ、1-モデム+ cd-rom、255-モデム+ cd-rom +カードリーダー、256-モデム+カードリーダー) Windowsがインストールされているコンピューターがある場合は、ハイパーターミナルを開いてモデムに接続し、コマンド
AT ^ U2DIAG = 0を入力して、次の手順をスキップします。
そのため、モデムをLinuxでのCD-ROMではなく、モデムに強制します。 最初に
usb_modeswitchおよび
minicom yum --enablerepo=rpmforge install usb_modeswitch minicom
、次に
/etc/usb-modeswitch.confを作成/編集する
必要があります。
DefaultVendor = 0x12d1
DefaultProduct = 0x1446
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000000000000000"
そして、モデムを別のポートにドロップします
usb_modeswitch
秒待つ必要があり(モデムがCD-ROMとして定義される必要があります)、ルートから
usb_modeswitch
を実行し、以下について確認します。
Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 004 on bus 007 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("usb-storage")
OK, driver "usb-storage" detached
SCSI inquiry data (for identification)
-------------------------
Vendor String: HUAWEI
Model String: Mass Storage
Revision String: 2.31
-------------------------
USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Device is gone, skipping any further commands
-> Run lsusb to note any changes. Bye.
新しいttyUSBデバイスが表示されるはずです
ls /dev | grep ttyUSB
ls /dev | grep ttyUSB
:
ttyUSB0
ttyUSB1
ttyUSB2
minicom –s
を起動します。/dev/ttyUSB0で動作するようにシリアルポート
minicom –s
構成します。
設定を終了し、ターミナルが起動したら、コマンド
AT ^ U2DIAG = 0を入力し、応答して
OKを取得する必要があります。
モデムをモデムに変更する手順は完了しました。smstoolsをインストール/構成します。
Smstools
奇妙なことに、巨大なrpmforgeリポジトリには、smstoolsのような最も有用なパッケージを置く場所がありませんでした。 しかし、それは問題ではありません。インターネットや
メーカーのウェブサイトでは十分です。 パッケージ:smstools-3.0.10-4.el5.i386.rpmを見つけて、それをrpm –i smstools-3.0.10-4.el5.i386.rpmで「使用」しました。 smstools、ファイル
/etc/sms.confを構成します。
devices = huaweiE1550
logfile = /var/log/smsd.log
loglevel = 2
[huaweiE1550]
device = /dev/ttyUSB0
baudrate = 115200
rtscts = no
init = at+cpms="sm","sm",""
incoming = yes
incoming = high
設定は
service smsd start
明確で、デーモンを起動し、
service smsd start
してこの奇跡を確認します:
smssend 9128141111 'test message'
(キリル文字を理解していない、
UCS-2BEに変換する必要がある、この記事は考慮しない)、携帯電話でSMSメッセージを待つ 切望されたメッセージが来なかった場合、構成に
loglevel = 7を入れて、タンバリンに行きます。 すべてが初めて私から生まれました。
smsctrlデーモン
だから私たちは話すことができます、私たちは聞くことを学ばなければなりません!
モデムのSIM番号にSMSを送信すると、しばらくするとsmsdが/var/spool/sms/incoming/huaweiE1550.*に次の内容のファイルを作成します。
From: 79128141111
From_TOA: 91 international, ISDN/telephone
From_SMSC: 79126313431
Sent: 11-03-02 08:05:46
Received: 11-03-02 08:08:09
Subject: huaweiE1550
IMSI: 2500XXXXXXXXXXX
Report: no
Alphabet: ISO
UDH: false
Test message
したがって、サーバーを管理するためのコマンドが存在するかどうか、これらのファイルを確認します。 これを行うには2つの方法があります。bashの最初の小さなデーモン、smsdの2番目の組み込みイベントハンドラーです。
第一の方法
COMMAND_CHAR="#" –
INCOMING_DIR=/var/spool/sms/incoming – -
ALLOW_PHONES="79128141111 79128141112" –
SEND_BACK_REPORT=YES – -
あらゆる種類のパスフレーズなどを気にしないために 特定の番号からのコマンドのみを受け入れ(SMSが代替番号からどのように見えるかを確認しませんでした)、ランダムSMSから隔離するためにチームの前に特殊文字の存在を確認することにしました。
デーモンを
/etc/init.d/smsctrl、chkconfig chkconfig --add smsctrl
、
service smsctrl start
保存します
第二の方法
/etc/smsd.confに追加し
ます :
eventhandler = /root/bin/sms_event.sh
/root/bin/sms_events.shを作成し
ます
確認する
次の内容のファイル
/root/bin/test.shを作成します。
次に、電話を取り、テキスト
#/root/bin/test.sh sms
を含む
#/root/bin/test.sh sms
を切望の番号に送信し、
tail –f /var/log/smsctrl.log
ログを調べます。すべてが正常であれば、フォームのSMSが応答で届きます:
smsd.conf
おわりに
私はこの解決策を持っています、SMSによって着信接続のためにsshポートを開きます。 これが唯一のアプリケーションではなく、ちょっとした想像力を含んでいると思います。
Huawei E1550およびsmsdのセットアップに役立つリンク
1:
SMSTools 3-SMSを送信するためのゲートウェイ2:
Huawei E1550モデムを備えたSMSセンターに関する記事が必要ですか?3:
MTSモデムHuawei E1550を「飼いならす」方法あなたのコメントを楽しみにしてくれてありがとう。
UPD私の親友の発言によると、私はsmsdを使用してSMSメッセージを処理する実装を追加しました。