USSD команда GsmComm - PullRequest
       38

USSD команда GsmComm

1 голос
/ 23 февраля 2012

Я использовал библиотеку scampers для отправки и получения SMS через модем GSM.Это работает так, как я хотел.Но проблема, с которой я столкнулся, заключается в том, что я не могу выдать команду, подобную * 101 # или аналогичную, после некоторых исследований я обнаружил, что эти команды называются командой USSD.Итак, мой вопрос: кто-нибудь смог выдать команду USSD через библиотеку Scampers .

Ответы [ 3 ]

6 голосов
/ 27 февраля 2012

USSD - это протокол, отличный от SMS, поэтому вы не можете использовать библиотеку, ориентированную на SMS, для отправки сообщений USMD. Это все равно что пытаться отправлять http-запросы из клиентской библиотеки ftp.

3 голосов
/ 12 ноября 2013

Это сработало для меня, используя 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 "";
    }
0 голосов
/ 18 мая 2017

тип _comm - это GsmCommMain

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

GsmCommMain _comm;
...