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
This commit is contained in:
Richard Mudgett 2012-11-13 19:59:50 +00:00
parent de78c8d37f
commit 1a0927ca23

12
q931.c
View File

@ -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;
}