Exemplo n.º 1
0
int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
{

   OOLogicalChannel *pLogicalChannel = NULL;
   ooH323EpCapability *epCap=NULL;

   OOTRACEDBGC4("Clearing logical channel number %d. (%s, %s)\n", channelNo,
                 call->callType, call->callToken);

   pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo);
   do { if(!pLogicalChannel)
   {
      OOTRACEWARN4("Logical Channel %d doesn't exist, in clearLogicalChannel."
                   " (%s, %s)\n",
                  channelNo, call->callType, call->callToken);
      return OO_OK;
   }

   epCap = (ooH323EpCapability*) pLogicalChannel->chanCap;
   if(!strcmp(pLogicalChannel->dir, "receive"))
   {
      if(epCap->stopReceiveChannel)
      {
         epCap->stopReceiveChannel(call, pLogicalChannel);
         OOTRACEINFO4("Stopped Receive channel %d (%s, %s)\n", 
                                 channelNo, call->callType, call->callToken);
      }
      else{
         OOTRACEERR4("ERROR:No callback registered for stopReceiveChannel %d "
                     "(%s, %s)\n", channelNo, call->callType, call->callToken);
      }
   }
   else
   {
      if(pLogicalChannel->state == OO_LOGICALCHAN_ESTABLISHED)
      {
         if(epCap->stopTransmitChannel)
         {
            epCap->stopTransmitChannel(call, pLogicalChannel);
            OOTRACEINFO4("Stopped Transmit channel %d (%s, %s)\n", 
                          channelNo, call->callType, call->callToken);
         }
         else{
            OOTRACEERR4("ERROR:No callback registered for stopTransmitChannel"
                        " %d (%s, %s)\n", channelNo, call->callType, 
                        call->callToken);
         }
      }
   }
   ooRemoveLogicalChannel(call, channelNo);/* TODO: efficiency - This causes re-search of
                                                    of logical channel in the list. Can be
                                                    easily improved.*/
   }  while ((pLogicalChannel = ooFindLogicalChannelByLogicalChannelNo(call,channelNo)));
   return OO_OK;
}
Exemplo n.º 2
0
int ooSetLocalRTPAndRTCPAddrs(struct ooAppContext* context)
{
   int port;
   ooGetLocalIPAddress(context->localIP);
   port = ooGetNextPort(context, OORTP);
   /* Ensures that RTP port is an even one */
   if((port & 1) == 1)
     port = ooGetNextPort(context, OORTP);
   
   context->localRtpPort = port;
   context->localRtcpPort = ooGetNextPort(context, OORTP);
   OOTRACEINFO4(context, "Local RTP port: %d Local RTCP port:%d", 
                          context->localRtpPort, context->localRtcpPort);
   return OO_OK;
}