]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: validation fixes
authorMoises Silva <moy@sangoma.com>
Tue, 31 Aug 2010 18:03:12 +0000 (14:03 -0400)
committerMoises Silva <moy@sangoma.com>
Tue, 31 Aug 2010 18:03:12 +0000 (14:03 -0400)
libs/freetdm/src/ftdm_io.c

index 871d3451ae394a24735e17ffe3e43c1ecc0733e8..60d0cc21e9371276d42f923aef38e686b1ea93a4 100644 (file)
@@ -260,6 +260,14 @@ static ftdm_status_t ftdm_set_caller_data(ftdm_span_t *span, ftdm_caller_data_t
                return FTDM_FAIL;
        }
 
+       if (caller_data->dnis.plan == FTDM_NPI_INVALID) {
+               caller_data->dnis.plan = span->default_caller_data.dnis.plan;
+       }
+
+       if (caller_data->dnis.type == FTDM_TON_INVALID) {
+               caller_data->dnis.type = span->default_caller_data.dnis.type;
+       }
+
        if (caller_data->cid_num.plan == FTDM_NPI_INVALID) {
                caller_data->cid_num.plan = span->default_caller_data.cid_num.plan;
        }
@@ -283,6 +291,12 @@ static ftdm_status_t ftdm_set_caller_data(ftdm_span_t *span, ftdm_caller_data_t
        if (caller_data->rdnis.type == FTDM_NPI_INVALID) {
                caller_data->rdnis.type = span->default_caller_data.rdnis.type;
        }
+
+       if (FTDM_FAIL == ftdm_is_number(caller_data->cid_num.digits)) {
+               ftdm_log(FTDM_LOG_DEBUG, "dropping caller id number %s since we only accept digits\n", caller_data->cid_num.digits);
+               caller_data->cid_num.digits[0] = '\0';
+       }
+
        return FTDM_SUCCESS;
 }