Fixed extraction of UDH header from original buffer rather than from encoded message as CSMS reference / values number greater than 0x7F were not decoded properly.
This commit is contained in:
+4
-12
@@ -368,18 +368,10 @@ function longSms(pduObj) {
|
||||
// reference number is of one octet otherwise it consists of 2 octets. Other fields can
|
||||
// be found from below reference.
|
||||
// reference: https://en.wikipedia.org/wiki/Concatenated_SMS
|
||||
var encodedMessage = utils.encodeMsg(pduObj.params.short_message),
|
||||
udhSize = encodedMessage[0];
|
||||
var smsGroupId, smsParts, partNr;
|
||||
if(udhSize === 0x05) {
|
||||
smsGroupId = encodedMessage[3],
|
||||
smsParts = encodedMessage[4],
|
||||
partNr = encodedMessage[5];
|
||||
} else {
|
||||
smsGroupId = (encodedMessage[3] * 256) + encodedMessage[4],
|
||||
smsParts = encodedMessage[5],
|
||||
partNr = encodedMessage[6];
|
||||
}
|
||||
var udhSize = pduObj.params['udhHeader'].size,
|
||||
smsGroupId = pduObj.params['udhHeader'].reference,
|
||||
smsParts = pduObj.params['udhHeader'].totalParts,
|
||||
partNr = pduObj.params['udhHeader'].partNr;
|
||||
|
||||
var longSmsId = pduObj.params.source_addr + '_' + pduObj.params.destination_addr + '_' + smsGroupId;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user