質問
複数のSMSC SMPP接続を作成しました。
構成後、SMSを送信しましたが、SMSはランダムSMSCで送信されます。
Kannelを制御してSMSを送信して送信するにはどうすればよいですか。
解決
たとえば、Kannelサーバーへの送信で送信するSMSCを指定できます。
GET /cgi-bin/sendsms?smsc=$smsc&username=$user&password=$password&to=$receipient&text=$text&dlr-mask=$dlrMask&dlr-url=$dlrUrl
どこ $smsc
Aが一致する必要があります smsc-id
あなたはあなたのkannel.confにあります
ここのドキュメント, 、「表6-16。SMSプッシュ(SENDSMS)CGI変数」の下。
他のヒント
デフォルトでは、Kannelは、接続されたすべてのSMSC間のラウンドロビン方法でメッセージをルーティングします。
特定のSMSCへのルーティングを制御する3つのSMSCパラメーターがあります。
拒否-SMSC-ID このリストのIDSのいずれかに等しいSMSC IDを持つSMSメッセージは、このSMSCにルーティングされることはありません。複数のエントリがセミコロンで分離されています( ';')
許可-SMSC-ID このリストは以前とは反対です。このリストにSMSC IDを持つSMSメッセージのみがこのSMSCにルーティングされます。複数のエントリがセミコロンで分離されています( ';')
優先-SMSC-ID このリストからSMSC IDを備えたSMSメッセージは、そのIDが望ましいIDなしでSMSCではなく、このSMSCに送信されます。複数のエントリがセミコロンで分離されています( ';')
これらの変数をジャグリングすることで、非常にシンプルなものから非常に複雑なルーティングシナリオから作成できます。
これが非常に基本的な例です:
2つのSMSCがあるとします。 smsc1
と smsc2
また、SMSメッセージを2つのSMSCのいずれかにルーティングしたいと考えています。カンネル構成ファイルでは、次の行を追加します。
group = smsc
smsc-id = smsc1
allowed-smsc-id = smsc1
group = smsc
smsc-id = smsc2
allowed-smsc-id = smsc2
これで、Kannel SendsMSインターフェイスへのリクエストで送信するSMSCを指定できます。
GET /kannel/sendsms?smsc=SMSC_ID&to=TO&text=TEXT
SMSC_IDはその1つになる可能性があります smsc1
また smsc2
.
この例では、GETリクエストでSMSCを指定しない場合、SMSはのルールのいずれも一致しません smsc1
また smsc2
送信されません。これは、次のすべての発信メッセージで使用されるデフォルトのSMSCを設定することにより、これを回避できます。 sendsms-user グループ変数:
- デフォルトSMSC 文字列http要求にsmsc idが指定されていない場合は、これをすべてのプッシュメッセージのデフォルトルートとして使用します。
group = sendsms-user
default-smsc = smsc1
別のオプションは、を使用することです denied-smsc-id
変数:
group = smsc
smsc-id = smsc1
denied-smsc-id = smsc2
group = smsc
smsc-id = smsc2
denied-smsc-id = smsc1
この構成により、HTTPリクエストでSMSCを指定すると、SMSはそのIDでSMSCにルーティングされますが、そうでない場合、Kannelはラウンドロビンに戻ります。 smsc1
と smsc2
.
より高度な用途について:
Kannelのルーティングとより複雑なシナリオをより詳細に理解するには、このスレッドをチェックすることもできます。