From 1a0927ca2369088b87681dae1733d9a5cf2ca735 Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Tue, 13 Nov 2012 19:59:50 +0000 Subject: [PATCH] Q.SIG: Allow PROGRESS when in the Active state. ECMA-143 Section 10.1.7.2 indicates that PROGRESS is allowed when in the Active state. * Made Q.SIG ignore the PROGRESS message when in the Active call state. (closes issue PRI-147) Reported by: Nick Merrett git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2308 2fbb986a-6c06-0410-b554-c9c1f0a7f128 --- q931.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/q931.c b/q931.c index e732052..416ef9d 100644 --- a/q931.c +++ b/q931.c @@ -8771,6 +8771,18 @@ static int post_handle_q931_message(struct pri *ctrl, struct q931_mh *mh, struct (c->ourcallstate != Q931_CALL_STATE_OVERLAP_SENDING) && (c->ourcallstate != Q931_CALL_STATE_CALL_DELIVERED) && (c->ourcallstate != Q931_CALL_STATE_OUTGOING_CALL_PROCEEDING)) { + if (mh->msg == Q931_PROGRESS + && c->ourcallstate == Q931_CALL_STATE_ACTIVE + && ctrl->switchtype == PRI_SWITCH_QSIG) { + /* + * Q.SIG is odd to allow PROGRESS when in the Active state since + * the media path is already open. Ignore it since it doesn't + * convey anything very useful. Maybe they will stop doing it. + * + * See ECMA-143 Section 10.1.7.2. + */ + break; + } q931_status(ctrl,c,PRI_CAUSE_WRONG_MESSAGE); break; }