Kannel SMS Gatewayの使用を開始する

先史時代



当局は、組織の構造単位の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

配信メッセージのタイプとその数値も表示されます。

私はそれらをここに追加することの意味がわかりません。

それだけです、ご清聴ありがとうございました。



All Articles