freetdm - SS7:* is now transmitted as 0x0b in Called Party Number

This commit is contained in:
David Yat Sin 2011-05-17 10:27:49 -04:00
parent 3b2019cd1f
commit 1bc6611765

View File

@ -586,10 +586,17 @@ ftdm_status_t copy_tknStr_to_sngss7(char* val, TknStr *tknStr, TknU8 *oddEven)
/* check if the digit is a number and that is not null */ /* check if the digit is a number and that is not null */
while (!(isxdigit(tmp[0])) && (tmp[0] != '\0')) { while (!(isxdigit(tmp[0])) && (tmp[0] != '\0')) {
if (tmp[0] == '*') {
/* Could not find a spec that specifies this , but on customer system, * was transmitted as 0x0b */
SS7_DEBUG("Replacing * with 0x0b");
k++;
tmp[0] = 0x0b;
} else {
SS7_INFO("Dropping invalid digit: %c\n", tmp[0]); SS7_INFO("Dropping invalid digit: %c\n", tmp[0]);
/* move on to the next value */ /* move on to the next value */
k++; k++;
tmp[0] = val[k]; tmp[0] = val[k];
}
} /* while(!(isdigit(tmp))) */ } /* while(!(isdigit(tmp))) */
/* check if tmp is null or a digit */ /* check if tmp is null or a digit */
@ -1350,11 +1357,18 @@ ftdm_status_t encode_subAddrIE_nat(const char *subAddr, char *subAddrIE, int typ
/* confirm it is a hex digit */ /* confirm it is a hex digit */
while ((!isxdigit(tmp[0])) && (tmp[0] != '\0')) { while ((!isxdigit(tmp[0])) && (tmp[0] != '\0')) {
if (tmp[0] == '*') {
/* Could not find a spec that specifies this, but on customer system, * was transmitted as 0x0b */
SS7_DEBUG("Replacing * with 0x0b");
x++;
tmp[0] = 0x0b;
} else {
SS7_INFO("Dropping invalid digit: %c\n", tmp[0]); SS7_INFO("Dropping invalid digit: %c\n", tmp[0]);
/* move to the next character in subAddr */ /* move to the next character in subAddr */
x++; x++;
tmp[0] = subAddr[x]; tmp[0] = subAddr[x];
} }
}
/* check if tmp is null or a digit */ /* check if tmp is null or a digit */
if (tmp[0] != '\0') { if (tmp[0] != '\0') {