Bug 788441: Add alphanumeric parsing. r=vyang, a=tef+
--- a/dom/system/gonk/ril_worker.js
+++ b/dom/system/gonk/ril_worker.js
@@ -7111,30 +7111,35 @@ let GsmPDUHelper = {
}
if (len % 2 == 1) {
len += 1;
}
if (DEBUG) debug("PDU: Going to read address: " + len);
// Type-of-Address
let toa = this.readHexOctet();
-
- // Address-Value
- let addr = this.readSwappedNibbleBcdString(len / 2);
+ let addr = "";
+
+ if ((toa & 0xF0) == PDU_TOA_ALPHANUMERIC) {
+ addr = this.readSeptetsToString(Math.floor(len * 4 / 7), 0,
+ PDU_NL_IDENTIFIER_DEFAULT , PDU_NL_IDENTIFIER_DEFAULT );
+ return addr;
+ }
+ addr = this.readSwappedNibbleBcdString(len / 2);
if (addr.length <= 0) {
if (DEBUG) debug("PDU error: no number provided");
return null;
}
- if ((toa >> 4) == (PDU_TOA_INTERNATIONAL >> 4)) {
+ if ((toa & 0xF0) == (PDU_TOA_INTERNATIONAL)) {
addr = '+' + addr;
}
return addr;
},
-
+
/**
* Read Alpha Identifier.
*
* @see TS 131.102
*
* @param numOctets
* Number of octets to be read.
*