From 32cc2402f4c25369ed8f2b954a00b6049a3c48f7 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Tue, 31 Aug 2010 14:03:12 -0400 Subject: [PATCH] freetdm: validation fixes --- libs/freetdm/src/ftdm_io.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libs/freetdm/src/ftdm_io.c b/libs/freetdm/src/ftdm_io.c index 871d3451ae..60d0cc21e9 100644 --- a/libs/freetdm/src/ftdm_io.c +++ b/libs/freetdm/src/ftdm_io.c @@ -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; }