2013-02-26 2 views
0

мы используем Java 1.6 и logica_smpp.1.3.7.jarКак получить UDH из DeliverSM (Logica SMPP) и Java

Моя проблема с каскадными сообщениями. Мы всегда использовали метод hasSarMsgRefNum в классе DeliverSM, чтобы указать, что это часть нескольких сообщений.

Однако это было изменено, и теперь мы получаем данные пользователя службы коротких сообщений GSM как часть DeliverSM.

Я могу получить esm_class из DeliverSM, который указывает мне, что это часть конкатенированного сообщения. Мне трудно получить фактическую информацию заголовка данных пользователя, которая находится в начале поля shortMessage.

Это, как я получаю UDHI:

byte udhi = (byte)Data.SM_UDH_GSM; 

    if (del.getEsmClass() == udhi) { 
     log.debug("This is a concatenated message part!"); 
    } 

Это, как я получаю shortMessage:

byte[] bytes = del.getShortMessage().getBytes(); 

Однако при конвертировании, что в строку выглядит следующим образом:

^E^@^C�^B^This is part one of a test message... 

Мне нужно знать, как преобразовать эту первую часть.

ответ

0

Я решил это.

Я получаю первые 5 символов (информация заголовка).

int char1 = del.getShortMessage().charAt(1); 
    int char2 = del.getShortMessage().charAt(2); 

и т.д ..

3-й символ является ссылкой номер сообщения. 4-й символ - это общая часть. Пятый символ - текущая часть.

Я надеюсь, что это поможет кому-то в будущем :)