2011-12-30 6 views
1

@ charを含むkannelにメッセージを送信するときに問題があります。 たとえば、 "@ Test"を送信しましたが、電話には "i Test"のような何か が届きました。@ charをkannelに送信するためのバグ

このkannelのバグですか?もしそうなら、それに誰かがパッチを当てていますか?

答えて

9

GSMのこの文字にASCIIまたはUTF-8の0x40の代わりに0x00のコードがあるため、@記号の問題はSMSでかなり一般的です。このおよび他のいくつかの文字が正しくKannelを介してメッセージを送信するときに、以下のパラメータを言及することをお勧めのプロセスに

コーディング
  • - (あなたがUnicode文字を送信する場合)0(デフォルトGSM)または2を
  • 文字セット - 文字列の文字セットあなたは(もしKannel

Kannelは、それ自身で文字を変換します。この場合に送りますlibiconvで構築されています)。

例:あなたはSMPP経由でSMSCに接続する場合

http://127.0.0.1:13013/cgi-bin/sendsms?...&coding=0&charset=utf-8&[email protected]+sign 

別の問題も発生します。プラットフォームの中には、標準とは異なる文字セットを使用するものがあります。例えば、ASCIIであってもよい。このあなたは=適切グループの設定ファイルのSMSCセクションALT-文字セットパラメータを使用することができます解決するには

:これをデバッグするには

group = smsc 
smsc = smpp 
... 
alt-charset = "ASCII" 

を私はSMSCの接続ログレベルのログを追加することをお勧めします= 0およびプロトコルダンプを調べて、KannelからSMSCに送信された内容を確認します。通常は、@ signの0x00文字にする必要があります。

+0

+1 alt-charsetスイッチ用です。私はコーディングを使用していました:ISOとGSMで異なる_などの文字を調整するには '1'です。ただし、バイナリには同じ1が使用されます。受信側ではエンコードフィールドはバイナリに設定されていましたが、私はasciiを期待していました。コーディングを0に設定すると、それをasciiに調整し、_や@などの文字を除いて正しく値を転送します – fayyazkl

関連する問題