Как отправлять сообщения WAP SI с помощью JSMPP

Я хочу отправить сообщение wap-push через smpp, используя библиотеку jsmpp. Я нашел кое-какой материал, но он не работает. Кто-нибудь может мне объяснить, что за технология отправки wap-push сообщения?


person totali    schedule 26.05.2011    source источник


Ответы (2)


в jsmpp вам нужно установить esmclass на 64 и datacoding на 245.

person Jasonw    schedule 31.05.2011
comment
@Jasonw, я делаю это, но я не знаю, где я могу написать текст и гиперссылку? Я знаю правильный формат PDU. Как я могу отправить этот PDU в JSMPP? - person totali; 01.06.2011
comment
если у вас есть правильный PDU, то текст и URL находятся внутри pdu, и метод submitShortMessage должен иметь возможность отправить этот pdu. - person Jasonw; 01.06.2011
comment
@Jasonw, извини, я не совсем тебя понимаю. Пример, [код] String pdu = 060504{ans so}; session.submitShortMessage(CMT,TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN,1111, TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, +994111111111, new ESMClass(64), (byte) 0, (byte) 1, timeFormatter.format(new Date( )), нуль, зарегистрированная доставка, (байт) 0, новый GeneralDataCoding (245), (байт) 0, pdu); [/код] Это правильно? - person totali; 01.06.2011
comment
Нет. а) ваш пример pdu неверен. б) шестнадцатеричную строку pdu необходимо преобразовать в byte[]. есть класс HexUtil и метод convertHexStringToBytes. Вы можете использовать это и преобразовать шестнадцатеричную строку в байтовую. - person Jasonw; 02.06.2011
comment
Строка messageId = session.submitShortMessage(CMT, TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, 55662, TypeOfNumber.ALPHANUMERIC, NumberingPlanIndicator.UNKNOWN, your_phone_number, new ESMClass(64), (byte)0, (byte)1, timeFormatter.format(new Date()), null, new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), (byte)0, new GeneralDataCoding(245), (byte)0, HexUtil.convertHexStringToBytes(0605040B8423F025060803AE81EAAF82B48401056A0045C60D036578616D706C652E636F6D0007010377656C636F6D6520746F207761702073697465000101)); - person Jasonw; 02.06.2011
comment
У меня есть такая ошибка: stackoverflow.com/questions/68473714/, есть идеи? пожалуйста - person Fernando Pie; 22.07.2021

Для GeneralDataCoding(245) нет допустимого конструктора, поэтому я добавил фрагмент кода в GenrealDataCodin.java, чтобы решить эту проблему.

public GeneralDataCoding(int i) {
    this.directvalue = (byte)i;
    directValueFlag = true;

    this.alphabet = Alphabet.ALPHA_DEFAULT;
    this.messageClass = MessageClass.CLASS0;
    this.compressed = true;
}

public byte toByte() {
    if(directValueFlag == true){
        value = directvalue;
    }
    else{
        byte value = compressed ? DataCodingFactory00xx.MASK_COMPRESSED : 0;
        value |= alphabet.value();
        if (messageClass != null) {
            value |= DataCodingFactory00xx.MASK_CONTAIN_MESSAGE_CLASS;
            value |= messageClass.value();
        }
    }  
person FIDIL    schedule 14.06.2013
comment
Есть ли другой способ установить кодировку данных на 245, потому что я думаю, что вы перекомпилировали исходный код, чтобы добавить этот конструктор, поэтому - person Fernando Pie; 15.07.2021
comment
открытый байт toByte () { если (directValueFlag == true) { значение = прямое значение; } else{ значение байта = сжато? DataCodingFactory00xx.MASK_COMPRESSED: 0; значение |= алфавит.значение(); if (messageClass != null) { value |= DataCodings.MASK_CONTAIN_MESSAGE_CLASS; значение |= messageClass.value(); } возвращаемое значение; } Действительно работает? - person Fernando Pie; 19.07.2021