亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? listener.cpp

?? 基于sipfoundy 公司開發的sipx協議API
?? CPP
字號:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$////////////////////////////////////////////////////////////////////////// SYSTEM INCLUDES// APPLICATION INCLUDES#include <listener.h>#include <CallObject.h>#include "os/OsWriteLock.h"#include <tao/TaoMessage.h>#include <tao/TaoString.h>#include <cp/CallManager.h>#include <net/Url.h>#include <os/OsFS.h>// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS#define TAO_OFFER_PARAM_CALLID             0#define TAO_OFFER_PARAM_ADDRESS            2#define TAO_OFFER_PARAM_LOCAL_CONNECTION   6//#define DEBUGGING 1// STATIC VARIABLE INITIALIZATIONS/* //////////////////////////// PUBLIC //////////////////////////////////// *//* ============================ CREATORS ================================== */// ConstructorListener::Listener(CallManager* callManager, UtlString playfile)   : mPlayfile(playfile),     mRWMutex(OsRWMutex::Q_PRIORITY){   mpCallManager = callManager;   mTotalCalls = 0;}//DestructorListener::~Listener(){}/* ============================ MANIPULATORS ============================== */UtlBoolean Listener::handleMessage(OsMsg& rMsg){   // React to telephony events   if(rMsg.getMsgSubType()== TaoMessage::EVENT)   {      TaoMessage* taoMessage = (TaoMessage*)&rMsg;      int taoEventId = taoMessage->getTaoObjHandle();      UtlString argList(taoMessage->getArgList());      TaoString arg(argList, TAOMESSAGE_DELIMITER);#ifdef DEBUGGING      dumpTaoMessageArgs(taoEventId, arg) ;#endif              UtlBoolean localConnection = atoi(arg[TAO_OFFER_PARAM_LOCAL_CONNECTION]);      UtlString  callId = arg[TAO_OFFER_PARAM_CALLID] ;      UtlString  address = arg[TAO_OFFER_PARAM_ADDRESS] ;      switch (taoEventId)       {         case PtEvent::CONNECTION_OFFERED:            OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Call arrived: callId %s address %s\n",                           callId.data(), address.data());            mpCallManager->acceptConnection(callId, address);            mpCallManager->answerTerminalConnection(callId, address, "*");            break;         case PtEvent::CONNECTION_ESTABLISHED:            if (localConnection)             {               OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Call connected: callId %s\n", callId.data());               CallObject* pThisCall = new CallObject(mpCallManager, callId, mPlayfile);               // Create a player and start to play out the file               if (pThisCall->playAudio() == OS_SUCCESS)               {                  // Put it in a sorted list                  insertEntry(callId, pThisCall);               }               else               {                  // Drop the call                  mpCallManager->drop(callId);                  OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_WARNING, "Listener::handleMessage - drop callId %s due to failure of playing audio\n",                                callId.data());                  delete pThisCall;               }            }            break;                     case PtEvent::CONNECTION_DISCONNECTED:            if (!localConnection)             {               OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Call Dropped: %s\n", callId.data());               // Remove the call from the pool and clean up the call               CallObject* pDroppedCall = removeEntry(callId);               if (pDroppedCall)               {                  pDroppedCall->cleanUp();                  delete pDroppedCall;                  // Drop the call                  mpCallManager->drop(callId);               }               else               {                  OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Lisenter::handleMessage - no callId %s founded in the active call list\n",                                callId.data());               }            }            break;                     case PtEvent::CONNECTION_FAILED:            OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_WARNING, "Dropping call: %s\n", callId.data());            mpCallManager->drop(callId);            break;      }   }   return(TRUE);}/* ============================ ACCESSORS ================================= *//* ============================ INQUIRY =================================== *//* //////////////////////////// PROTECTED ///////////////////////////////// */void Listener::dumpTaoMessageArgs(unsigned char eventId, TaoString& args) {   osPrintf("===>\nMessage type: %d args:\n\n", eventId) ;           int argc = args.getCnt();   for(int argIndex = 0; argIndex < argc; argIndex++)   {      osPrintf("\targ[%d]=\"%s\"\n", argIndex, args[argIndex]);   }}void Listener::insertEntry(UtlString& rKey,                           CallObject* newObject){   OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Listener::insertEntry - Putting %p into the call pool for callId %s\n",                 newObject, rKey.data());   OsWriteLock lock(mRWMutex);   ActiveCall  tempEntry(rKey, newObject);   ActiveCall* pOldEntry;   unsigned int       i;   i = mCalls.index(&tempEntry);   if (i != UTL_NOT_FOUND)   {                             // we already have an entry with this key      pOldEntry = (ActiveCall *)mCalls.at(i);      OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_WARNING, "Listener::insertEntry - FOUND %s\n", rKey.data());   }   else   {      ActiveCall* pNewEntry = new ActiveCall(rKey, newObject);      mCalls.insert(pNewEntry);      OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Listener::insertEntry - inserted %s\n", rKey.data());      mTotalCalls++;   }}CallObject* Listener::removeEntry(UtlString& rKey){   OsWriteLock lock(mRWMutex);   ActiveCall  lookupPair(rKey);   ActiveCall* pEntryToRemove;   unsigned int i = mCalls.index(&lookupPair);   if (i == UTL_NOT_FOUND)   {      return NULL;   }   else   {      pEntryToRemove = (ActiveCall *)mCalls.at(i);      CallObject* pObject = pEntryToRemove->getCallObject();      mCalls.removeAt(i);      delete pEntryToRemove;      OsSysLog::add(FAC_MEDIASERVER_VXI, PRI_DEBUG, "Listener::remove - removed CallObject %p\n", pObject);      return pObject;   }}/* //////////////////////////// PRIVATE /////////////////////////////////// *//* ============================ TESTING =================================== *//* ============================ FUNCTIONS ================================= */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品盗摄一区二区三区| 91小视频在线观看| 亚洲国产另类av| 一区二区三区免费| 中文字幕一区二区三区四区不卡| 精品国产三级电影在线观看| 精品91自产拍在线观看一区| 欧美精品一区二区三区久久久| 欧美一区二区三区四区高清| 7777精品伊人久久久大香线蕉超级流畅 | 国内成人精品2018免费看| 蜜桃精品在线观看| 激情欧美一区二区| 国产成人午夜99999| 成人一区二区三区中文字幕| 国产不卡视频一区二区三区| 成人黄色在线视频| 日本高清免费不卡视频| 欧美日韩在线播放| 日韩久久精品一区| 久久精品视频一区| 亚洲老司机在线| 午夜精品在线看| 极品少妇xxxx精品少妇偷拍| 成人午夜大片免费观看| 日本黄色一区二区| 欧美一区日韩一区| 久久久噜噜噜久噜久久综合| 亚洲品质自拍视频| 日韩成人dvd| 国产精品自拍一区| 日本乱人伦一区| 日韩欧美国产一区在线观看| 国产女主播视频一区二区| 亚洲情趣在线观看| 久久国产尿小便嘘嘘尿| 成人国产视频在线观看| 欧美日韩五月天| 久久伊人蜜桃av一区二区| 国产精品久久久久影院色老大| 伊人色综合久久天天| 美女诱惑一区二区| 91在线精品一区二区| 精品少妇一区二区三区视频免付费| 国产精品无圣光一区二区| 亚洲成人在线免费| 成人福利视频在线看| 欧美日韩一区视频| 2欧美一区二区三区在线观看视频| 亚洲欧洲韩国日本视频| 久久成人免费网站| 欧美日韩亚洲综合在线| 国产欧美久久久精品影院| 日韩中文字幕区一区有砖一区| 懂色av一区二区三区免费看| 欧美一区在线视频| 一区二区三区不卡在线观看| 国产成人av网站| 精品久久久久久久人人人人传媒 | 亚洲成a人v欧美综合天堂| 国产 日韩 欧美大片| 欧美一区二区三区视频在线| 一区二区三区不卡视频在线观看| 国产不卡视频在线观看| 亚洲精品一区在线观看| 美腿丝袜一区二区三区| 欧美日韩视频在线一区二区| 日韩一区中文字幕| 成人精品视频一区二区三区 | 99vv1com这只有精品| 久久日韩精品一区二区五区| 日本欧洲一区二区| 欧洲中文字幕精品| 亚洲制服欧美中文字幕中文字幕| 成人动漫视频在线| 亚洲国产激情av| 国v精品久久久网| 国产精品免费视频一区| eeuss鲁片一区二区三区| 国产视频在线观看一区二区三区 | av一区二区三区| 国产精品美女久久久久aⅴ国产馆| 狠狠狠色丁香婷婷综合久久五月| 日韩欧美区一区二| 国产高清久久久| 国产精品全国免费观看高清| 成人一区在线看| 最新高清无码专区| 色狠狠综合天天综合综合| 亚洲免费观看高清完整版在线观看熊| 9色porny自拍视频一区二区| 日韩理论片网站| 欧美午夜理伦三级在线观看| 日日夜夜一区二区| 久久久久综合网| 99久久综合99久久综合网站| 亚洲人妖av一区二区| 欧美午夜精品免费| 免费高清不卡av| 国产午夜亚洲精品不卡| 91色九色蝌蚪| 午夜久久久久久久久| 精品国产成人在线影院| 成人综合激情网| 亚洲午夜一区二区| 久久综合久久综合亚洲| jvid福利写真一区二区三区| 亚洲一区二区视频| 久久丝袜美腿综合| 一本一道久久a久久精品综合蜜臀| 亚洲成人激情综合网| 久久久久久久久99精品| 欧美艳星brazzers| 国产一区二区91| 亚洲黄色小视频| 精品人伦一区二区色婷婷| 成人高清在线视频| 看国产成人h片视频| 一区二区三区国产| 精品乱码亚洲一区二区不卡| 在线免费观看成人短视频| 国产精品综合av一区二区国产馆| 亚洲精品国产无套在线观| 久久人人爽爽爽人久久久| 欧美私模裸体表演在线观看| 东方欧美亚洲色图在线| 婷婷国产v国产偷v亚洲高清| 1024成人网| 久久久一区二区| 91精品国产色综合久久| 91女厕偷拍女厕偷拍高清| 激情欧美一区二区| 日韩高清一级片| 亚洲午夜激情av| 亚洲欧美国产77777| 国产丝袜欧美中文另类| 777亚洲妇女| 精品视频1区2区| 欧洲精品在线观看| 99久久久国产精品| 国产91在线|亚洲| 激情成人综合网| 蜜桃视频第一区免费观看| 亚洲国产精品天堂| 亚洲午夜国产一区99re久久| 亚洲精品视频免费观看| 亚洲欧洲99久久| 国产精品美女视频| 国产夜色精品一区二区av| 精品国产乱码久久久久久闺蜜| 91精品中文字幕一区二区三区| 色婷婷av一区二区| 91黄色免费网站| 欧美视频中文一区二区三区在线观看| 成人av在线一区二区三区| 成人性色生活片免费看爆迷你毛片| 韩国三级中文字幕hd久久精品| 日本免费新一区视频 | 日韩精品一区二区三区在线| 91超碰这里只有精品国产| 91精品国产综合久久蜜臀| 欧美性猛交xxxx黑人交| 欧美日韩成人在线一区| 欧美日韩精品一区二区| 欧美日高清视频| 欧美v日韩v国产v| 久久影院视频免费| 日本一区二区免费在线观看视频| 中文一区二区完整视频在线观看| 国产女人水真多18毛片18精品视频| 欧美激情一区二区| 亚洲天堂成人在线观看| 亚洲一区二区三区国产| 香港成人在线视频| 麻豆91在线看| 成人激情视频网站| 欧美日韩综合一区| 日韩欧美国产1| 国产精品三级视频| 亚洲激情网站免费观看| 日本不卡一区二区三区高清视频| 精品中文av资源站在线观看| 国产传媒日韩欧美成人| 91国偷自产一区二区三区成为亚洲经典| 在线免费一区三区| 精品久久久久久综合日本欧美| 国产精品国产三级国产aⅴ无密码| 一区二区三区精品在线观看| 免播放器亚洲一区| 成人免费看视频| 欧美色视频在线| 久久精子c满五个校花| 亚洲成人免费观看| 成人精品亚洲人成在线| 欧美一级夜夜爽| 国产精品污污网站在线观看| 午夜电影网一区| 成人激情av网| 亚洲精品一区二区三区香蕉| 亚洲免费电影在线|