From: Matteo Brancaleoni Date: Wed, 28 Jan 2015 10:13:37 +0000 (+0100) Subject: If ANI ton is not interpreted correctly by libpri, X-Git-Tag: v1.4.17~1^2~59^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3cd62df96f78a0ea3255c4fced2e2f32f97c0a42;p=thirdparty%2Ffreeswitch.git If ANI ton is not interpreted correctly by libpri, fallback to calling ton/type. --- diff --git a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c index c8259aa6a2..ea94ce0de0 100644 --- a/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c +++ b/libs/freetdm/src/ftmod/ftmod_libpri/ftmod_libpri.c @@ -1915,8 +1915,16 @@ static int on_ring(lpwrap_pri_t *spri, lpwrap_pri_event_t event_type, pri_event ftdm_set_string(caller_data->dnis.digits, (char *)pevent->ring.callednum); ftdm_set_string(caller_data->rdnis.digits, (char *)pevent->ring.redirectingnum); - caller_data->ani.type = pevent->ring.callingplanani >> 4; - caller_data->ani.plan = pevent->ring.callingplanani & 0x0F; + if (pevent->ring.callingplanani != -1) { + caller_data->ani.type = pevent->ring.callingplanani >> 4; + caller_data->ani.plan = pevent->ring.callingplanani & 0x0F; + } else { + /* the remote party did not sent a valid (according to libpri) ANI ton, + * so let's use the callingplan ton/type and hope is correct. + */ + caller_data->ani.type = pevent->ring.callingplan >> 4; + caller_data->ani.plan = pevent->ring.callingplan & 0x0F; + } caller_data->cid_num.type = pevent->ring.callingplan >> 4; caller_data->cid_num.plan = pevent->ring.callingplan & 0x0F;