]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
try to release call table entry a bit more.
authorMichael Jerris <mike@jerris.com>
Sun, 17 Feb 2008 10:33:21 +0000 (10:33 +0000)
committerMichael Jerris <mike@jerris.com>
Sun, 17 Feb 2008 10:33:21 +0000 (10:33 +0000)
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@396 a93c3328-9c30-0410-af19-c9cd2b2d52af

libs/freetdm/src/isdn/Q931StateTE.c

index 3cd45dab33134234dc1b2bde586a16fbbe028db3..f001029ac6924a7bb70ed9caad2776d446b3fc26 100644 (file)
@@ -759,6 +759,7 @@ L3INT Q931ProcDisconnectTE(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
 *****************************************************************************/
 L3INT Q931ProcReleaseTE(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
 {
+    L3INT callIndex;
     Q931mes_Generic *pMes = (Q931mes_Generic *)&buf[Q931L4HeaderSpace];
     L3INT state = Q931GetCallState(pTrunk, pMes->CRV);
     L3INT ret = Q931E_NO_ERROR;
@@ -771,6 +772,12 @@ L3INT Q931ProcReleaseTE(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT iFrom)
     } else {
         ret = Q931ProcUnexpectedMessage(pTrunk, buf, iFrom);
     }
+       if (pMes->CRV) {
+               /* Find the call using CRV */
+               if ((Q931FindCRV(pTrunk, pMes->CRV, &callIndex)) != Q931E_NO_ERROR)
+                       return ret;
+               pTrunk->call[callIndex].InUse = 0;
+       }
 
        return ret;
 }