Как отправить полезное сообщение с помощью DevShock Smpp - PullRequest
0 голосов
/ 09 июля 2019

В одном из старых проектов я сделал интеграцию SMSC с DevShock.Smpp. Теперь поддержка этого инструмента больше не доступна, и я столкнулся с ситуацией, когда мне нужно отправить PayLoad SMS.

Ниже мой код

private static SmppSubmitSmRes Sendbin(byte[] bbin, bool multiMsg, string aNumber, string bNumber, bool isUniCode, long messageType, SmppConnection _mySmppClient)
    {
        SmppSubmitSmReq.BodyPdu reqSubmitSm = new SmppSubmitSmReq.BodyPdu
        {
            EsmClass = multiMsg ? new BitBuilder(Convert.ToByte(0x40)) : new BitBuilder(Convert.ToByte(0x0))
        };

        //Dim ResSubmit_Sm As SmppSubmitSmRes
        // ReqSubmit_Sm.ShortMessage.SetValue(bbin)
        //if it is unicode use 0x08 like for arabic or other unicode lang.
        if (isUniCode)
        {
            reqSubmitSm.ShortMessage.DataCoding = messageType == 1 ? SmppDataCoding.FromValue(24) : SmppDataCoding.Unicode;
            //reqSubmitSm.ShortMessage.DataCoding = SmppDataCoding.Unicode;
            //.FromValue(CByte(&H8))
            reqSubmitSm.SourceAddressNpi = new BitBuilder(1).Value;
        }
        else
        {
            reqSubmitSm.SourceAddressNpi = Convert.ToByte(0);
            reqSubmitSm.ShortMessage.DataCoding = SmppDataCoding.Default;
            reqSubmitSm.ShortMessage.DataCoding = messageType == 1 ? SmppDataCoding.FromValue(240) : SmppDataCoding.Default;
        }
        if (IsNumeric(aNumber))
        {
            reqSubmitSm.SourceAddressTon = isUniCode ? new BitBuilder(2).Value : (byte)0;
        }
        else
        {
            reqSubmitSm.SourceAddressTon = Convert.ToByte(5);
        }
        reqSubmitSm.DestinationAddressTon = Convert.ToByte(1);
        reqSubmitSm.DestinationAddressNpi = Convert.ToByte(1);
        reqSubmitSm.DestinationAddress = bNumber;
        reqSubmitSm.SourceAddress = aNumber;
        reqSubmitSm.ShortMessage.Value = bbin;
        reqSubmitSm.SourceAddress = aNumber;

        if (true)//delivery
        {
            reqSubmitSm.RegisteredDelivery = new BitBuilder(1);
        }
        var submitResponse = _mySmppClient.SubmitSm(new SmppSubmitSmReq(reqSubmitSm));
        return submitResponse;
    }

1 Ответ

0 голосов
/ 16 июля 2019

если можете, переключитесь и используйте INTELAB отличное решение с отличной поддержкой на форуме поддержка inetlab

...