From c032901aae0b0da7f9d60e4c24e8d06456f50e09 Mon Sep 17 00:00:00 2001
From: Alexandr Anikin <may@telecom-service.ru>
Date: Wed, 30 Dec 2009 23:51:32 +0000
Subject: [PATCH] small q931 processing and signalling corrections

don't decode UUIE from Q931StatusMessage
clean call without callIdentifier data
don't start tcs/msd exchange procedure after call proceeding received

(closes issue #16365)
Reported by: benngard2
Tested by: may213, benngard2



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@237098 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 addons/ooh323c/src/ooCalls.c | 4 +++-
 addons/ooh323c/src/ooh323.c  | 4 ----
 addons/ooh323c/src/ooq931.c  | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/addons/ooh323c/src/ooCalls.c b/addons/ooh323c/src/ooCalls.c
index 75450182ec..3984abc50b 100644
--- a/addons/ooh323c/src/ooCalls.c
+++ b/addons/ooh323c/src/ooCalls.c
@@ -215,7 +215,9 @@ int ooEndCall(OOH323CallData *call)
      return OO_OK;
    }
 
-   if(call->callState == OO_CALL_CLEARED)
+   if (call->callIdentifier.guid.numocts == 0) call->callState = OO_CALL_CLEARED;
+
+   if(call->callState == OO_CALL_CLEARED || call->callState == OO_CALL_CLEAR_RELEASESENT)
    {
       ooCleanCall(call); 
       call->callState = OO_CALL_REMOVED;
diff --git a/addons/ooh323c/src/ooh323.c b/addons/ooh323c/src/ooh323.c
index 8ccec65509..971b668a2d 100644
--- a/addons/ooh323c/src/ooh323.c
+++ b/addons/ooh323c/src/ooh323.c
@@ -782,10 +782,6 @@ int ooOnReceivedCallProceeding(OOH323CallData *call, Q931Message *q931Msg)
          return OO_FAILED;
        }
       }
-   } else if (OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
-	ret =ooSendTCSandMSD(call);
-	if (ret != OO_OK)
-		return ret;
    }
    return OO_OK;
 }
diff --git a/addons/ooh323c/src/ooq931.c b/addons/ooh323c/src/ooq931.c
index 8c8860b675..e8bc41e76d 100644
--- a/addons/ooh323c/src/ooq931.c
+++ b/addons/ooh323c/src/ooq931.c
@@ -237,7 +237,7 @@ EXTERN int ooQ931Decode
    /*cisco router sends Q931Notify without UU ie, 
      we just ignore notify message as of now as handling is optional for
      end point*/
-   if(msg->messageType != Q931NotifyMsg)
+   if(msg->messageType != Q931NotifyMsg && msg->messageType != Q931StatusMsg)
       rv = ooDecodeUUIE(pctxt, msg);
    return rv;
 }
-- 
GitLab