Я хочу отправить сообщение wap-push через smpp, используя библиотеку jsmpp. Я нашел кое-какой материал, но он не работает. Кто-нибудь может мне объяснить, что за технология отправки wap-push сообщения?
Как отправлять сообщения WAP SI с помощью JSMPP
Ответы (2)
в jsmpp вам нужно установить esmclass на 64 и datacoding на 245.
person
Jasonw
schedule
31.05.2011
@Jasonw, я делаю это, но я не знаю, где я могу написать текст и гиперссылку? Я знаю правильный формат PDU. Как я могу отправить этот PDU в JSMPP?
- person totali; 01.06.2011
если у вас есть правильный PDU, то текст и URL находятся внутри pdu, и метод submitShortMessage должен иметь возможность отправить этот pdu.
- person Jasonw; 01.06.2011
@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
Нет. а) ваш пример pdu неверен. б) шестнадцатеричную строку pdu необходимо преобразовать в byte[]. есть класс HexUtil и метод convertHexStringToBytes. Вы можете использовать это и преобразовать шестнадцатеричную строку в байтовую.
- person Jasonw; 02.06.2011
Строка 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
У меня есть такая ошибка: 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
Есть ли другой способ установить кодировку данных на 245, потому что я думаю, что вы перекомпилировали исходный код, чтобы добавить этот конструктор, поэтому
- person Fernando Pie; 15.07.2021
открытый байт 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