From 4e6c9e04102eea114e40da91254161b90d185880 Mon Sep 17 00:00:00 2001 From: Martin Pycko Date: Tue, 9 Sep 2003 23:49:10 +0000 Subject: [PATCH] Fix q931_hangup for (call received, call delivered) git-svn-id: https://origsvn.digium.com/svn/libpri/trunk@58 2fbb986a-6c06-0410-b554-c9c1f0a7f128 --- q931.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/q931.c b/q931.c index ee0e5b8..f300a1f 100755 --- a/q931.c +++ b/q931.c @@ -1791,13 +1791,14 @@ int q931_hangup(struct pri *pri, q931_call *c, int cause) case Q931_CALL_STATE_OVERLAP_RECEIVING: /* received SETUP_ACKNOWLEDGE */ /* send DISCONNECT in general */ - if (disconnect && c->peercallstate != Q931_CALL_STATE_NULL && c->peercallstate != Q931_CALL_STATE_DISCONNECT_REQUEST && c->peercallstate != Q931_CALL_STATE_DISCONNECT_INDICATION && c->peercallstate != Q931_CALL_STATE_RELEASE_REQUEST && c->peercallstate != Q931_CALL_STATE_RESTART_REQUEST && c->peercallstate != Q931_CALL_STATE_RESTART) - q931_disconnect(pri,c,cause); - else if (release_compl && c->peercallstate == Q931_CALL_STATE_CALL_INITIATED) - q931_release_complete(pri,c,cause); - else if (!release_compl && c->peercallstate == Q931_CALL_STATE_CALL_INITIATED) - q931_release(pri,c,cause); - else + if (c->peercallstate != Q931_CALL_STATE_NULL && c->peercallstate != Q931_CALL_STATE_DISCONNECT_REQUEST && c->peercallstate != Q931_CALL_STATE_DISCONNECT_INDICATION && c->peercallstate != Q931_CALL_STATE_RELEASE_REQUEST && c->peercallstate != Q931_CALL_STATE_RESTART_REQUEST && c->peercallstate != Q931_CALL_STATE_RESTART) { + if (disconnect) + q931_disconnect(pri,c,cause); + else if (release_compl) + q931_release_complete(pri,c,cause); + else + q931_release(pri,c,cause); + } else pri_error("Wierd, doing nothing but this shouldn't happen, ourstate %s, peerstate %s\n",callstate2str(c->ourcallstate),callstate2str(c->peercallstate)); break; case Q931_CALL_STATE_DISCONNECT_REQUEST: