1

私は、GSMモデムを介してSMSを送受信するためにscampersライブラリを使用しています。それは私が望んでいたようにほとんど機能しています。しかし、私がこだわった問題は、* 101#などのコマンドを発行できないことです。調査を行った結果、これらのコマンドはUSSDコマンドと呼ばれていることがわかりました。だから私の質問は、誰もがScampersライブラリを介してUSSDコマンドを発行することができたということです。

4

3 に答える 3

6

USSDはSMSとは異なるプロトコルであるため、SMS中心のライブラリを使用してUSMDメッセージを送信することはできません。これは、ftpクライアントライブラリからhttpリクエストを送信しようとするようなものです。

于 2012-02-27T08:15:17.623 に答える
4

これは、GsmCommを使用して私にとって非常にうまく機能しました:

    public string SendUssdRequest(string request)
    {
        string data = TextDataConverter.StringTo7Bit(request);

        var asPDUencoded = Calc.IntToHex(TextDataConverter.SeptetsToOctetsInt(data));
        try
        {
            IProtocol protocol = _comm.GetProtocol();
            string gottenString = protocol.ExecAndReceiveMultiple("AT+CUSD=1," + asPDUencoded + ",15");
            var re = new Regex("\".*?\"");
            int i = 0;
            if (!re.IsMatch(gottenString))
            {
                do
                {
                    protocol.Receive(out gottenString);
                    ++i;
                } while (!(i >= 5
                            || re.IsMatch(gottenString)
                            || gottenString.Contains("\r\nOK")
                            || gottenString.Contains("\r\nERROR")
                            || gottenString.Contains("\r\nDONE"))); //additional tests "just in case"
            }
            string m = re.Match(gottenString).Value.Trim('"');
            return PduParts.Decode7BitText(Calc.HexToInt(m));
        }
        catch { }
        finally
        {
            _comm.ReleaseProtocol();
        }
        return "";
    }
于 2013-11-12T10:33:31.863 に答える
0

_commのタイプはGsmCommMainです

using GsmComm.GsmCommunication;
using GsmComm.PduConverter;
using GsmComm.PduConverter.SmartMessaging;

GsmCommMain _comm;
于 2017-05-18T13:24:23.997 に答える