[svn-commits] trunk r205 - /trunk/asterisk-ooh323c/ooh323c/src/

svn-commits at lists.digium.com svn-commits at lists.digium.com
Tue Apr 11 07:03:52 MST 2006


Author: objsys
Date: Tue Apr 11 09:03:51 2006
New Revision: 205

URL: http://svn.digium.com/view/asterisk-addons?rev=205&view=rev
Log:
Fixed bug causing core dump for manaul ringback in cleared call

Modified:
    trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c
    trunk/asterisk-ooh323c/ooh323c/src/ooCmdChannel.c
    trunk/asterisk-ooh323c/ooh323c/src/oochannels.c
    trunk/asterisk-ooh323c/ooh323c/src/ooh323.c

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c?rev=205&r1=204&r2=205&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooCapability.c Tue Apr 11 09:03:51 2006
@@ -921,12 +921,6 @@
    /* Can we receive this capability */
    if(dir & OORX)
    {
-      //if(cap == OO_G7231) {
-      //   if(((OOCapParams*)epCap->params)->rxframes <= noofframes) {
-      //      return TRUE;
-      //   }
-      //}
-      //else
       if(((OOCapParams*)epCap->params)->rxframes >= noofframes) {
          return TRUE;
       }
@@ -935,12 +929,6 @@
    /* Can we transmit compatible stream */
    if(dir & OOTX)
    {
-      //if(cap == OO_G7231) {
-      //   if(((OOCapParams*)epCap->params)->txframes >= noofframes) {
-      //      return TRUE;
-      //   }
-      //}
-      //else 
       if(((OOCapParams*)epCap->params)->txframes <= noofframes) {
          return TRUE;
       }

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooCmdChannel.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooCmdChannel.c?rev=205&r1=204&r2=205&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooCmdChannel.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooCmdChannel.c Tue Apr 11 09:03:51 2006
@@ -130,7 +130,7 @@
 
 int ooReadAndProcessStackCommand()
 {
-   OOH323CallData *call = NULL;   
+   OOH323CallData *pCall = NULL;   
    unsigned char buffer[MAXMSGLEN];
    int i, recvLen = 0;
    OOStackCommand cmd;
@@ -167,16 +167,33 @@
             case OO_CMD_MANUALRINGBACK:
                if(OO_TESTFLAG(gH323ep.flags, OO_M_MANUALRINGBACK))
                {
-                  ooSendAlerting(ooFindCallByToken((char*)cmd.param1));
-                  if(OO_TESTFLAG(gH323ep.flags, OO_M_AUTOANSWER))
-                     ooSendConnect(ooFindCallByToken((char*)cmd.param1));
+                  pCall = ooFindCallByToken((char*)cmd.param1);
+                  if(!pCall) {
+                     OOTRACEINFO2("Call \"%s\" does not exist\n",
+                                  (char*)cmd.param1);
+                     OOTRACEINFO1("Call migth be cleared/closed\n");
+                  }
+                  else {
+                     ooSendAlerting(ooFindCallByToken((char*)cmd.param1));
+                     if(OO_TESTFLAG(gH323ep.flags, OO_M_AUTOANSWER)) {
+                        ooSendConnect(ooFindCallByToken((char*)cmd.param1));
+                     }
+                  }
                }
                break;
  
             case OO_CMD_ANSCALL:
-               OOTRACEINFO2("Processing Answer Call command for %s\n",
-                            (char*)cmd.param1);
-               ooSendConnect(ooFindCallByToken((char*)cmd.param1));
+               pCall = ooFindCallByToken((char*)cmd.param1);
+               if(!pCall) {
+                  OOTRACEINFO2("Call \"%s\" does not exist\n",
+                               (char*)cmd.param1);
+                  OOTRACEINFO1("Call might be cleared/closed\n");
+               }
+               else {
+                  OOTRACEINFO2("Processing Answer Call command for %s\n",
+                               (char*)cmd.param1);
+                  ooSendConnect(pCall);
+               }
                break;
 
             case OO_CMD_FWDCALL:
@@ -187,27 +204,29 @@
 
             case OO_CMD_HANGCALL: 
                OOTRACEINFO2("Processing Hang call command %s\n", 
-                                   (char*)cmd.param1);
+                             (char*)cmd.param1);
                ooH323HangCall((char*)cmd.param1, 
-                                          *(OOCallClearReason*)cmd.param2);
+                              *(OOCallClearReason*)cmd.param2);
                break;
           
             case OO_CMD_SENDDIGIT:
-               call = ooFindCallByToken((char*)cmd.param1);
-               if(!call)
-               {
-                  OOTRACEERR2("Error:Invalid calltoken %s\n", 
-                                                         (char*)cmd.param1);
+               pCall = ooFindCallByToken((char*)cmd.param1);
+               if(!pCall) {
+                  OOTRACEERR2("ERROR:Invalid calltoken %s\n",
+                              (char*)cmd.param1);
                   break;
                }
-               if(call->jointDtmfMode & OO_CAP_DTMF_H245_alphanumeric)
-                  ooSendH245UserInputIndication_alphanumeric(call, 
-                                                      (const char*)cmd.param2);
-               else if(call->jointDtmfMode & OO_CAP_DTMF_H245_signal)
-                  ooSendH245UserInputIndication_signal(call, 
-                                                  (const char*)cmd.param2);
-               else
-                  ooQ931SendDTMFAsKeyPadIE(call, (const char*)cmd.param2);
+               if(pCall->jointDtmfMode & OO_CAP_DTMF_H245_alphanumeric) {
+                  ooSendH245UserInputIndication_alphanumeric(
+                     pCall, (const char*)cmd.param2);
+               }
+               else if(pCall->jointDtmfMode & OO_CAP_DTMF_H245_signal) {
+                  ooSendH245UserInputIndication_signal(
+                     pCall, (const char*)cmd.param2);
+               }
+               else {
+                  ooQ931SendDTMFAsKeyPadIE(pCall, (const char*)cmd.param2);
+               }
 
                break;
 

Modified: trunk/asterisk-ooh323c/ooh323c/src/oochannels.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/oochannels.c?rev=205&r1=204&r2=205&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/oochannels.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/oochannels.c Tue Apr 11 09:03:51 2006
@@ -562,7 +562,7 @@
    if(gH323ep.gkClient)
    {   
       ooTimerFireExpired(&gH323ep.gkClient->ctxt, 
-                                        &gH323ep.gkClient->timerList);
+                         &gH323ep.gkClient->timerList);
       if(ooTimerNextTimeout(&gH323ep.gkClient->timerList, &toNext))
       {
          if(ooCompareTimeouts(pToMin, &toNext)>0)
@@ -594,11 +594,9 @@
       }
    }
 
-   if(gH323ep.cmdSock)
-   {
-      if(FD_ISSET(gH323ep.cmdSock, pReadfds))
-      {
-        ooReadAndProcessStackCommand();
+   if(gH323ep.cmdSock) {
+      if(FD_ISSET(gH323ep.cmdSock, pReadfds)) {
+         ooReadAndProcessStackCommand();
       }
    }
 
@@ -920,6 +918,7 @@
 
    initializePrintHandler(&printHandler, "Received H.2250 Message");
    setEventHandler (pctxt, &printHandler);
+
    ret = ooQ931Decode (call, pmsg, len, message);
    if(ret != OO_OK) {
       OOTRACEERR3("Error:Failed to decode received H.2250 message. (%s, %s)\n",

Modified: trunk/asterisk-ooh323c/ooh323c/src/ooh323.c
URL: http://svn.digium.com/view/asterisk-addons/trunk/asterisk-ooh323c/ooh323c/src/ooh323.c?rev=205&r1=204&r2=205&view=diff
==============================================================================
--- trunk/asterisk-ooh323c/ooh323c/src/ooh323.c (original)
+++ trunk/asterisk-ooh323c/ooh323c/src/ooh323.c Tue Apr 11 09:03:51 2006
@@ -1076,7 +1076,9 @@
             ret = ooH323CallAdmitted (call);
          }
          break;
-      case Q931CallProceedingMsg: /* Call proceeding message is received */
+
+
+      case Q931CallProceedingMsg: /* CALL PROCEEDING message is received */
          OOTRACEINFO3("H.225 Call Proceeding message received (%s, %s)\n",
                       call->callType, call->callToken);
          ooOnReceivedCallProceeding(call, q931Msg);



More information about the svn-commits mailing list