本文整理汇总了C++中SipUserAgent::addMessageObserver方法的典型用法代码示例。如果您正苦于以下问题:C++ SipUserAgent::addMessageObserver方法的具体用法?C++ SipUserAgent::addMessageObserver怎么用?C++ SipUserAgent::addMessageObserver使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SipUserAgent
的用法示例。
在下文中一共展示了SipUserAgent::addMessageObserver方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setUp
void setUp()
{
hostIp = "127.0.0.1";
eventName = SIP_EVENT_MESSAGE_SUMMARY;
mwiMimeType = CONTENT_TYPE_SIMPLE_MESSAGE_SUMMARY;;
// Construct a user agent that will function both as the subscriber
// and the notfier.
// Construct the URI of the notifier, which is also the URI of
// the subscriber.
// Also construct the name-addr version of the URI, which may be
// different if it has a "transport" parameter.
// And the resource-id to use, which is the AOR with any
// parameters stripped off.
createTestSipUserAgent(hostIp,
"111",
userAgentp,
aor,
aor_name_addr,
aor_contact_name_addr,
resource_id);
subServerp =
SipSubscribeServer::buildBasicServer(*userAgentp,
eventName);
subServerp->start();
// Get pointers to the Subscription Manager and Dialog Manager.
subMgrp = subServerp->getSubscriptionMgr(eventName);
CPPUNIT_ASSERT(subMgrp);
dialogMgrp = subMgrp->getDialogMgr();
CPPUNIT_ASSERT(dialogMgrp);
// Create a simple Subscription client
// Register an interest in SUBSCRIBE responses and NOTIFY requests
// for this event type
userAgentp->addMessageObserver(incomingClientMsgQueue,
SIP_SUBSCRIBE_METHOD,
FALSE, // no requests
TRUE, // reponses
TRUE, // incoming
FALSE, // no outgoing
eventName,
NULL,
NULL);
userAgentp->addMessageObserver(incomingClientMsgQueue,
SIP_NOTIFY_METHOD,
TRUE, // requests
FALSE, // not reponses
TRUE, // incoming
FALSE, // no outgoing
eventName,
NULL,
NULL);
}
示例2: getMessageQueue
// Constructor
SipPimClient::SipPimClient(SipUserAgent& userAgent,
Url& presentityAor)
{
presentityAor.toString(mFromField);
mPresentityAor = presentityAor;
mpUserAgent = &userAgent;
// Register to get incoming MESSAGE requests
OsMsgQ* myQueue = getMessageQueue();
userAgent.addMessageObserver(*myQueue,
SIP_MESSAGE_METHOD,
TRUE, // requests
FALSE, // responces
TRUE, // incoming
FALSE); // outgoing
}
示例3: subscribeMwiClientTest
void subscribeMwiClientTest()
{
smClientExpiration = -1;
smNumClientNotifiesReceived = 0;
smLastClientNotifyReceived = NULL;
smNumClientSubResponsesReceived = 0;
smLastClientSubResponseReceived = NULL;
UtlString resourceId("[email protected]:");
UtlString eventTypeKey("message-summary");
UtlString eventType(eventTypeKey);
UtlString from("Frida<sip:[email protected]:");
UtlString to("Tia<sip:[email protected]:");
UtlString contact("sip:[email protected]:");
char portString[20];
sprintf(portString, "%d", UNIT_TEST_SIP_PORT);
resourceId.append(portString);
from.append(portString);
from.append('>');
to.append(portString);
to.append('>');
contact.append(portString);
SipUserAgent* userAgent = new SipUserAgent(UNIT_TEST_SIP_PORT, UNIT_TEST_SIP_PORT);
userAgent->start();
// Set up the subscribe client
SipDialogMgr* clientDialogMgr = new SipDialogMgr();
SipRefreshManager* refreshMgr = new SipRefreshManager(*userAgent, *clientDialogMgr);
refreshMgr->start();
SipSubscribeClient* subClient = new SipSubscribeClient(*userAgent, *clientDialogMgr, *refreshMgr);
subClient->start();
// Set up the subscribe server
SipSubscribeServer* subServer =
SipSubscribeServer::buildBasicServer(*userAgent,
eventType);
SipSubscriptionMgr* subMgr = subServer->getSubscriptionMgr(eventType);
SipDialogMgr* serverDialogMgr = subMgr->getDialogMgr();
SipPublishContentMgr* contentMgr = subServer->getPublishMgr(eventType);
HttpBody* preexistingBodyPtr = NULL;
UtlBoolean isDefaultContent;
subServer->start();
// Enable the handler for the MWI server
subServer->enableEventType(eventType, userAgent);
//CPPUNIT_ASSERT(TRUE);
//ASSERT_STR_EQUAL("a", "a");
// Create a crude Subscription server/observer
OsMsgQ incomingServerMsgQueue;
// Register an interest in SUBSCRIBE requests
// for this event type
userAgent->addMessageObserver(incomingServerMsgQueue,
SIP_SUBSCRIBE_METHOD,
TRUE, // requests
FALSE, // no reponses
TRUE, // incoming
FALSE, // no outgoing
eventType,
NULL,
NULL);
OsMsgQ incomingClientMsgQueue;
userAgent->addMessageObserver(incomingClientMsgQueue,
SIP_SUBSCRIBE_METHOD,
FALSE, // no requests
TRUE, // reponses
TRUE, // incoming
FALSE, // no outgoing
eventType,
NULL,
NULL);
// Should not be any pre-existing content
CPPUNIT_ASSERT(!contentMgr->getContent(resourceId, eventTypeKey, NULL, preexistingBodyPtr,
isDefaultContent));
int numDefaultContent = -1;
int numResourceSpecificContent = -1;
int numCallbacksRegistered = -1;
contentMgr->getStats(numDefaultContent,
numResourceSpecificContent,
numCallbacksRegistered);
CPPUNIT_ASSERT(numDefaultContent == 0);
CPPUNIT_ASSERT(numResourceSpecificContent == 0);
CPPUNIT_ASSERT(numCallbacksRegistered == 1);
// Create a subscribe request, send it and keep it refreshed
UtlString earlyDialogHandle;
CPPUNIT_ASSERT(subClient->addSubscription(resourceId,
eventType,
from,
to,
contact,
60, // seconds expiration
this,
subStateCallback,
notifyCallback,
earlyDialogHandle));
//.........这里部分代码省略.........
示例4: OsServerTask
// Constructor
SipXProxyCseObserver::SipXProxyCseObserver(SipUserAgent& sipUserAgent,
const UtlString& dnsName,
CallStateEventWriter* pWriter
) :
OsServerTask("SipXProxyCseObserver-%d", NULL, 2000),
mpSipUserAgent(&sipUserAgent),
mpBuilder(NULL),
mpWriter(pWriter),
mSequenceNumber(0),
mFlushTimer(getMessageQueue(), 0)
{
OsTime timeNow;
OsDateTime::getCurTime(timeNow);
UtlString event;
if (mpWriter)
{
switch (pWriter->getLogType())
{
case CallStateEventWriter::CseLogFile:
mpBuilder = new CallStateEventBuilder_XML(dnsName);
break;
case CallStateEventWriter::CseLogDatabase:
mpBuilder = new CallStateEventBuilder_DB(dnsName);
break;
}
if (mpBuilder)
{
if (pWriter->openLog())
{
mpBuilder->observerEvent(mSequenceNumber, timeNow, CallStateEventBuilder::ObserverReset,
"SipXProxyCseObserver");
mpBuilder->finishElement(event);
if (!mpWriter->writeLog(event.data()))
{
OsSysLog::add(FAC_SIP, PRI_ERR,
"SipXProxyCseObserver initial event log write failed - disabling writer");
mpWriter = NULL;
}
else
{
mpWriter->flush(); // try to ensure that at least the sequence restart gets to the file
}
}
else
{
OsSysLog::add(FAC_SIP, PRI_ERR,
"SipXProxyCseObserver initial event log write failed - disabling writer");
mpWriter = NULL;
// Set correct state even if nothing is written
mpBuilder->observerEvent(mSequenceNumber, timeNow, CallStateEventBuilder::ObserverReset, "");
mpBuilder->finishElement(event);
}
}
}
// set up periodic timer to flush log file
mFlushTimer.periodicEvery(OsTime(), OsTime(SipXProxyCallStateFlushInterval, 0)) ;
// Register to get incoming requests
sipUserAgent.addMessageObserver(*getMessageQueue(),
SIP_BYE_METHOD,
TRUE, // Requests,
FALSE, //Responses,
TRUE, //Incoming,
FALSE, //OutGoing,
"", //eventName,
NULL, // any session
NULL // no observerData
);
sipUserAgent.addMessageObserver(*getMessageQueue(),
SIP_INVITE_METHOD,
TRUE, // Requests,
TRUE, //Responses,
TRUE, //Incoming,
FALSE, //OutGoing,
"", //eventName,
NULL, // any session
NULL // no observerData
);
sipUserAgent.addMessageObserver(*getMessageQueue(),
SIP_REFER_METHOD,
TRUE, // Requests,
FALSE, //Responses,
TRUE, //Incoming,
FALSE, //OutGoing,
"", //eventName,
NULL, // any session
NULL // no observerData
);
}
示例5: OsServerTask
// Constructor
SipXProxyCseObserver::SipXProxyCseObserver(SipUserAgent& sipUserAgent,
const UtlString& dnsName,
CallStateEventWriter* pWriter
) :
OsServerTask("SipXProxyCseObserver-%d", NULL, 2000),
SipOutputProcessor( CSE_AGENT_OUTPUT_PROC_PRIO ),
mpSipUserAgent(&sipUserAgent),
mpBuilder(NULL),
mpWriter(pWriter),
mSequenceNumber(0),
mFlushTimer(getMessageQueue(), 0),
mCallTransMutex(OsMutex::Q_FIFO)
{
OsTime timeNow;
OsDateTime::getCurTime(timeNow);
UtlString event;
if (mpWriter)
{
switch (pWriter->getLogType())
{
case CallStateEventWriter::CseLogFile:
mpBuilder = new CallStateEventBuilder_XML(dnsName);
break;
case CallStateEventWriter::CseLogDatabase:
mpBuilder = new CallStateEventBuilder_DB(dnsName);
break;
}
if (mpBuilder)
{
if (pWriter->openLog())
{
mpBuilder->observerEvent(mSequenceNumber, timeNow, CallStateEventBuilder::ObserverReset,
"SipXProxyCseObserver");
mpBuilder->finishElement(event);
if (!mpWriter->writeLog(event.data()))
{
Os::Logger::instance().log(FAC_SIP, PRI_ERR,
"SipXProxyCseObserver initial event log write failed - disabling writer");
mpWriter = NULL;
}
else
{
mpWriter->flush(); // try to ensure that at least the sequence restart gets to the file
}
}
else
{
Os::Logger::instance().log(FAC_SIP, PRI_ERR,
"SipXProxyCseObserver initial event log write failed - disabling writer");
mpWriter = NULL;
// Set correct state even if nothing is written
mpBuilder->observerEvent(mSequenceNumber, timeNow, CallStateEventBuilder::ObserverReset, "");
mpBuilder->finishElement(event);
}
}
}
// set up periodic timer to flush log file
mFlushTimer.periodicEvery(OsTime(), OsTime(SipXProxyCallStateFlushInterval, 0)) ;
// Register to get incoming requests
sipUserAgent.addMessageObserver(*getMessageQueue(),
SIP_BYE_METHOD,
TRUE, // Requests,
FALSE, //Responses,
TRUE, //Incoming,
FALSE, //OutGoing,
"", //eventName,
NULL, // any session
NULL // no observerData
);
sipUserAgent.addMessageObserver(*getMessageQueue(),
SIP_INVITE_METHOD,
TRUE, // Requests,
FALSE, //Responses,
TRUE, //Incoming,
FALSE, //OutGoing,
"", //eventName,
NULL, // any session
NULL // no observerData
);
sipUserAgent.addMessageObserver(*getMessageQueue(),
SIP_REFER_METHOD,
TRUE, // Requests,
FALSE, //Responses,
TRUE, //Incoming,
FALSE, //OutGoing,
"", //eventName,
NULL, // any session
NULL // no observerData
);
sipUserAgent.addSipOutputProcessor( this );
// set up periodic timer to cleanup dead calls in the CallTransMap
//.........这里部分代码省略.........