先史時代
当局は、組織の構造単位のSMSメーリングを編成するタスクを設定します。 sms配布会社はsmppプロトコルを提供します。 配信レポートを受信するには、smppを介した短いテキストメッセージの送信を整理する必要がありました。 KannelはSMSゲートウェイとして選択されました。
この記事はKannelによる「クイックスタート」であり、ゲートウェイの基本設定とコード例が含まれています。これらに基づいて、独自のSMS配信システムを作成できます。
Fedoraがインストールと設定を説明します。
発言
この記事は、このhttp://habrahabr.ru/post/124302およびこのhttp://habrahabr.ru/post/123380の記事のクローンではありません。
私はそれらに精通しており、作業中にそれらを使用しました、私の記事とこれらの記事には多くの共通点がありますが、作業中に蓄積されたすべての情報を何らかの方法で体系化し、作業でさらに使用したいと考えました。
インストールとセットアップ
kannel
パッケージをインストールします。
yum install kannel
ユーザーkannelを作成する
useradd kannel
ファイル/etc/kannel.confの編集
group = core admin-port = 13000 smsbox-port = 13001 admin-password = 1 log-file = "/var/log/kannel/kannel.log" log-level = 0 dlr-storage = internal store-file = "/home/kannel/kannel.store" group = smsbox bearerbox-host = "127.0.0.1" sendsms-port = 13003 group = sendsms-user username = foo password = bar concatenation = true max-messages = 20 group = smsc smsc = smpp smsc-id = id host = domain.com port = 3700 transceiver-mode = 1 smsc-username = "login" smsc-password = "password" system-type = "VMA" address-range = "" log-file = "/var/log/kannel/smsc-operator.log" log-level = 0
カネルを始める
/etc/init.d/kannel start
すべてが機能することを確認するには、次のアドレスに移動します。
mydomain.com:13000/status
SMS送信
最も単純な場合にSMSを送信するには、アドレスバーに入力する必要があります。
domain.com:13003/cgi-bin/sendsms?user=foo&pass=bar&from=Test&coding=0&to=38050000000000&text=Test1
この手法はテストに使用できますが、実際の状況では適切ではありません。 はい、SMSを音訳ではなくロシア語で送信したいと思います。 この場合、次のコードで実行できます。
function send_sms($from, $to, $mytext) { $mytext=urlencode(iconv("utf-8","ucs-2be",$mytext)); $url = "http://domain.com:13003/cgi-bin/sendsms?user=foo&pass=bar&from=$from&coding=2&to=$to&text=$mytext"; file_get_contents($url); }
文字変換(または完全に英語)で送信する場合は、テキストを変換する必要はなく、アドレスバーでパラメーターコーディング= 0が使用されます。
function send_sms_translit ($from, $to, $mytext) { $mytext=urlencode($mytext); $url = "http://domain.com:13003/cgi-bin/sendsms?user=foo&pass=bar&from=$from&coding=0&to=$to&text=$mytext"; file_get_contents($url); }
このような画像の長いsmsが正しく送信され、まったく問題が発生しないことは注目に値します。
配信レポート
配信レポートを受信するには、各SMSのIDを割り当て、配信レポートを受信するときに彼が呼び出す必要があるアドレスをKannelに渡す必要があります。
まず、コードをあげます
function send_sms($from, $to, $mytext, $smd_id) { $mytext=urlencode(iconv("utf-8","ucs-2be",$mytext)); $dlrurl=urlencode("http://domain.com/smsdeliv.php?smsid=$sms_id&type=%d"); $url = "http://domain.com:13003/cgi-bin/sendsms?user=foo&pass=bar&from=$from&coding=2&to=$to&dlr-mask=1&dlr-url=$dlrurl&text=$mytext"; file_get_contents($url); }
dlr-url
パラメーターでは、配信レポートの受信時に呼び出されるアドレスを渡します。
dlr-mask
パラメーターは、受信する配信メッセージのタイプを決定します。
この回路の動作メカニズムは、ページで詳細に説明されています
www.kannel.org/download/kannel-userguide-snapshot/userguide.html#DELIVERY-REPORTS 。
配信メッセージのタイプとその数値も表示されます。
私はそれらをここに追加することの意味がわかりません。
それだけです、ご清聴ありがとうございました。