Beispiel #1
0
CallManager *CpTestSupport::newCallManager(SipUserAgent* sua)
{
        UtlString localAddress;
        OsSocket::getHostIp(&localAddress);

        // Enable PCMU, PCMA, Tones/RFC2833
        UtlString codecList("258 257 128");
        SdpCodecFactory* pCodecFactory = new SdpCodecFactory();
        UtlString oneCodec;
        pCodecFactory->buildSdpCodecFactory(codecList);

    CallManager *callManager =
       new CallManager(
          FALSE,
          NULL,
          TRUE, // early media in 180 ringing
          pCodecFactory,
          9000, //rtp start
          9999, //rtp end
          localAddress.data(),
          localAddress.data(),
          sua,
          0,//sipSessionReinviteTimer
          NULL, // mgcpStackTask
          "*****@*****.**", // defaultCallExtension
          Connection::RING, // availableBehavior
          NULL, // unconditionalForwardUrl
          -1, // forwardOnNoAnswerSeconds
          NULL, // forwardOnNoAnswerUrl
          Connection::BUSY, // busyBehavior
          NULL, // sipForwardOnBusyUrl
          NULL, // speedNums
          CallManager::SIP_CALL, // phonesetOutgoingCallProtocol
          4, // numDialPlanDigits
          CallManager::NEAR_END_HOLD, // holdType
          5000, // offeringDelay
          "", // pLocal
          CP_MAXIMUM_RINGING_EXPIRE_SECONDS, //inviteExpireSeconds
          QOS_LAYER3_LOW_DELAY_IP_TOS, // expeditedIpTos
          10, //maxCalls
          sipXmediaFactoryFactory(NULL)); //pMediaFactory

    return callManager;
}
Beispiel #2
0
void MpTestConfig::initializeCallManager()
{
        UtlString localAddress;
        OsSocket::getHostIp(&localAddress);

        // Enable PCMU, PCMA, Tones/RFC2833
        UtlString codecList("PCMU PCMA TELEPHONE-EVENT");
        SdpCodecList* pCodecList = new SdpCodecList();
        UtlString oneCodec;
        pCodecList->addCodecs(codecList);

         mCallManager = new CallManager(
            FALSE,
            NULL,
            TRUE,                              // early media in 180 ringing
            pCodecList,
            9000,                              // rtp start
            9999,                              // rtp end
            localAddress.data(),
            localAddress.data(),
            mUA,
            0,                                 // sipSessionReinviteTimer
            NULL,                              // mgcpStackTask
            "*****@*****.**",             // defaultCallExtension
            Connection::RING,                  // availableBehavior
            NULL,                              // unconditionalForwardUrl
            -1,                                // forwardOnNoAnswerSeconds
            NULL,                              // forwardOnNoAnswerUrl
            Connection::BUSY,                  // busyBehavior
            NULL,                              // sipForwardOnBusyUrl
            NULL,                              // speedNums
            CallManager::SIP_CALL,             // phonesetOutgoingCallProtocol
            4,                                 // numDialPlanDigits
            CallManager::NEAR_END_HOLD,        // holdType
            5000,                              // offeringDelay
            "",                                // pLocal
            CP_MAXIMUM_RINGING_EXPIRE_SECONDS, // inviteExpiresSeconds
            QOS_LAYER3_LOW_DELAY_IP_TOS,       // expeditedIpTos
            10,                                // maxCalls
            sipXmediaFactoryFactory(NULL),
            SAMLE_RATE);    // CpMediaInterfaceFactory

   mCallManager->start() ;
}
// Constructor
CpPhoneMediaInterface::CpPhoneMediaInterface(CpMediaInterfaceFactoryImpl* pFactoryImpl,
                                             const char* publicAddress,
                                             const char* localAddress,
                                             int numCodecs,
                                             SdpCodec* sdpCodecArray[],
                                             const char* locale,
                                             int expeditedIpTos,
                                             const char* szStunServer,
                                             int iStunKeepAlivePeriodSecs)
    : CpMediaInterface(pFactoryImpl)
{
   OsSysLog::add(FAC_CP, PRI_DEBUG, "CpPhoneMediaInterface::CpPhoneMediaInterface creating a new CpMediaInterface %p",
                 this);
                 
   mpFlowGraph = new MpCallFlowGraph(locale);
   OsSysLog::add(FAC_CP, PRI_DEBUG, "CpPhoneMediaInterface::CpPhoneMediaInterface creating a new MpCallFlowGraph %p",
                 mpFlowGraph);
   
   mStunServer = szStunServer ;
   mStunRefreshPeriodSecs = iStunKeepAlivePeriodSecs ;

   if(localAddress && *localAddress)
   {
       mRtpReceiveHostAddress = localAddress;
       mLocalAddress = localAddress;
   }
   else
   {
       OsSocket::getHostIp(&mLocalAddress);
   }

   if(sdpCodecArray && numCodecs > 0)
   {
       UtlString codecList("");
       // Test plausibility of passed in codecs, don't add any that media system
       // does not support - the media system knows best.
       for (int i=0; i<numCodecs && sdpCodecArray[i]; i++)
       {
          SdpCodec::SdpCodecTypes cType = sdpCodecArray[i]->getCodecType();
          
          switch (cType)
          {
          case SdpCodec::SDP_CODEC_TONES:
             codecList.append("telephone-event ");
             break;
          case SdpCodec::SDP_CODEC_GIPS_PCMU:
             codecList.append("pcmu ");
             break;
          case SdpCodec::SDP_CODEC_GIPS_PCMA:
             codecList.append("pcma ");
             break;
#ifdef HAVE_GIPS
          case SdpCodec::SDP_CODEC_GIPS_IPCMU:
             codecList.append("eg711u ");
             break;
          case SdpCodec::SDP_CODEC_GIPS_IPCMA:
             codecList.append("eg711a ");
             break;
#endif /* HAVE_GIPS */
          default:
              OsSysLog::add(FAC_CP, PRI_WARNING, 
                            "CpPhoneMediaInterface::CpPhoneMediaInterface dropping codec type %d as not supported",
                            cType);
              break;
          }  
       }
       mSupportedCodecs.buildSdpCodecFactory(codecList);
       
       OsSysLog::add(FAC_CP, PRI_DEBUG,
                     "CpPhoneMediaInterface::CpPhoneMediaInterface creating codec factory with %s",
                     codecList.data());

       // Assign any unset payload types
       mSupportedCodecs.bindPayloadTypes();
   }
   else
   {
       // Temp hard code codecs
       //SdpCodec mapCodecs1(SdpCodec::SDP_CODEC_PCMU, SdpCodec::SDP_CODEC_PCMU);
       //mSupportedCodecs.addCodec(mapCodecs1);
       //SdpCodec mapCodecs2(SdpCodec::SDP_CODEC_PCMA, SdpCodec::SDP_CODEC_PCMA);
       //mSupportedCodecs.addCodec(mapCodecs2);
       //mapCodecs[2] = new SdpCodec(SdpCodec::SDP_CODEC_L16_MONO);
       
       UtlString codecs = "PCMU PCMA TELEPHONE-EVENT";
       OsSysLog::add(FAC_CP, PRI_WARNING, "CpPhoneMediaInterface::CpPhoneMediaInterface hard-coded codec factory %s ...",
                     codecs.data());
       mSupportedCodecs.buildSdpCodecFactory(codecs);
   }

   mExpeditedIpTos = expeditedIpTos;
}