⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callmanagertest.cpp

📁 基于sipfoundy 公司开发的sipx协议API
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// // // Copyright (C) 2005-2006 SIPez LLC.// Licensed to SIPfoundry under a Contributor Agreement.// // Copyright (C) 2004-2006 SIPfoundry Inc.// Licensed by SIPfoundry under the LGPL license.// // Copyright (C) 2004-2006 Pingtel Corp.// Licensed to SIPfoundry under a Contributor Agreement.// // $$//////////////////////////////////////////////////////////////////////////////#include <cppunit/extensions/HelperMacros.h>#include <cppunit/TestCase.h>#include <sipxunit/TestUtilities.h>#include <cp/CallManager.h>#include <ps/PsMsg.h>#include <ps/PsHookswTask.h>#include <net/SipUserAgent.h>#include <cp/CpTestSupport.h>#include <net/SipMessage.h>#include <net/SipLineMgr.h>#include <net/SipRefreshMgr.h>#include <mi/CpMediaInterfaceFactoryFactory.h>#ifdef _WIN32  #define _CRTDBG_MAP_ALLOC  #include <crtdbg.h>_CrtMemState MemStateBegin;_CrtMemState MemStateEnd;_CrtMemState MemStateDiff;#endif #define BROKEN_INITTEST#define NUM_OF_RUNS 10/** * Unittest for CallManager */class CallManangerTest : public CppUnit::TestCase{    CPPUNIT_TEST_SUITE(CallManangerTest);#ifdef BROKEN_UNITTEST    CPPUNIT_TEST(testOnOffHook);    CPPUNIT_TEST(testPickupCall);#endif    CPPUNIT_TEST(testSimpleTeardown);#if 0    CPPUNIT_TEST(testUATeardown);    CPPUNIT_TEST(testLineMgrUATeardown);    CPPUNIT_TEST(testRefreshMgrUATeardown);#endif    CPPUNIT_TEST_SUITE_END();public:    void testOnOffHook()    {        PsMsg *keyMsg;        SipUserAgent *ua = CpTestSupport::newSipUserAgent();        ua->start();        CallManager *callmgr = CpTestSupport::newCallManager(ua);        callmgr->start();                keyMsg = new PsMsg(PsMsg::HOOKSW_STATE, NULL, PsHookswTask::OFF_HOOK, 0);                callmgr->postMessage(*keyMsg);                delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_DOWN, NULL, 0, '1');                callmgr->postMessage(*keyMsg);        delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_UP, NULL, 0, '1');                callmgr->postMessage(*keyMsg);        delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_DOWN, NULL, 0, '0');                callmgr->postMessage(*keyMsg);                delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_UP, NULL, 0, '0');                callmgr->postMessage(*keyMsg);                delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_DOWN, NULL, 0, '0');                callmgr->postMessage(*keyMsg);                delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_UP, NULL, 0, '0');                callmgr->postMessage(*keyMsg);                delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_DOWN, NULL, 0, '4');                callmgr->postMessage(*keyMsg);                delete keyMsg;                keyMsg = new PsMsg(PsMsg::BUTTON_UP, NULL, 0, '4');                callmgr->postMessage(*keyMsg);                delete keyMsg;        delete callmgr;        delete ua;    }    void testPickupCall()    {        PsMsg *keyMsg;        SipUserAgent *ua = CpTestSupport::newSipUserAgent();        ua->start();        CallManager *callmgr = CpTestSupport::newCallManager(ua);        callmgr->start();                // Wait a little and pick up the hook assuming it is ringing                OsTask::delay(30000);                printf("Picking up ringing phone\n");                keyMsg = new PsMsg(PsMsg::HOOKSW_STATE, NULL, PsHookswTask::OFF_HOOK, 0);                callmgr->postMessage(*keyMsg);                delete keyMsg;        delete callmgr;        delete ua;    }    void testSimpleTeardown()    {#ifdef _WIN32        _CrtMemCheckpoint(&MemStateBegin);#endif        int i;        for (i=0; i<NUM_OF_RUNS; ++i)        {            int rtpPortStart = 9000;            int rtpPortEnd = 9002;             CallManager *pCallManager =               new CallManager(FALSE,                               NULL, //LineMgr                               TRUE, // early media in 180 ringing                               NULL, // CodecFactory                               rtpPortStart, // rtp start                               rtpPortEnd, // rtp end                               "sip:153@pingtel.com",                               "sip:153@pingtel.com",                               NULL, //SipUserAgent                               0, // sipSessionReinviteTimer                               NULL, // mgcpStackTask                               NULL, // 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#if 0            printf("Starting CallManager\n");#endif            pCallManager->start();                        pCallManager->requestShutdown();#if 0            printf("Deleting CallManager\n");#endif            delete pCallManager;        }                for (i=0; i<NUM_OF_RUNS; ++i)        {            sipxDestroyMediaFactoryFactory() ;        }            #ifdef _WIN32        _CrtMemCheckpoint(&MemStateEnd);        if (_CrtMemDifference(&MemStateDiff, &MemStateBegin, &MemStateEnd))        {            _CrtMemDumpStatistics(&MemStateDiff);        }#endif    }    void testUATeardown()    {        int i;        for (i=0; i<NUM_OF_RUNS; ++i)        {            SipUserAgent* sipUA = new SipUserAgent( 5090                                                    ,5090                                                    ,5091                                                    ,NULL     // default publicAddress                                                    ,NULL     // default defaultUser                                                    ,"127.0.0.1" // default defaultSipAddress                                                    ,NULL     // default sipProxyServers                                                    ,NULL     // default sipDirectoryServers                                                    ,NULL     // default sipRegistryServers                                                    ,NULL     // default authenticationScheme                                                    ,NULL     // default authenicateRealm                                                    ,NULL     // default authenticateDb                                                    ,NULL     // default authorizeUserIds                                                    ,NULL     // default authorizePasswords                                                    ,NULL     // default natPingUrl                                                    ,0        // default natPingFrequency                                                    ,"PING"   // natPingMethod                                                    ,NULL //lineMgr                                                   );            sipUA->start();            int rtpPortStart = 9000;            int rtpPortEnd = 9002;             CallManager *pCallManager =

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -