本文整理汇总了C++中AmSession::setNegotiateOnReply方法的典型用法代码示例。如果您正苦于以下问题:C++ AmSession::setNegotiateOnReply方法的具体用法?C++ AmSession::setNegotiateOnReply怎么用?C++ AmSession::setNegotiateOnReply使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AmSession
的用法示例。
在下文中一共展示了AmSession::setNegotiateOnReply方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: startSessionUAC
AmSession* AmSessionContainer::startSessionUAC(AmSipRequest& req) {
AmSession* session = NULL;
as_mut.lock();
try {
if((session = createSession(req)) != 0){
session->dlg.updateStatusFromLocalRequest(req); // sets local tag as well
session->setCallgroup(req.from_tag);
session->setNegotiateOnReply(true);
session->sendInvite();
session->start();
addSession_unsafe(req.callid,req.from_tag,req.from_tag,session);
// session does not get its own INVITE
// session->postEvent(new AmSipRequestEvent(req));
}
}
catch(const AmSession::Exception& e){
ERROR("%i %s\n",e.code,e.reason.c_str());
AmSipDialog::reply_error(req,e.code,e.reason);
}
catch(const string& err){
ERROR("startSession: %s\n",err.c_str());
AmSipDialog::reply_error(req,500,err);
}
catch(...){
ERROR("unexpected exception\n");
AmSipDialog::reply_error(req,500,"unexpected exception");
}
as_mut.unlock();
return session;
}
示例2: startSessionUAC
AmSession* AmSessionContainer::startSessionUAC(AmSipRequest& req, AmArg* session_params) {
AmSession* session = NULL;
as_mut.lock();
try {
if((session = createSession(req, session_params)) != 0){
session->dlg.updateStatusFromLocalRequest(req); // sets local tag as well
session->setCallgroup(req.from_tag);
session->setNegotiateOnReply(true);
if (int err = session->sendInvite(req.hdrs)) {
ERROR("INVITE could not be sent: error code = %d.\n",
err);
delete session;
as_mut.unlock();
return NULL;
}
if (AmConfig::LogSessions) {
INFO("Starting UAC session %s app %s\n",
session->getLocalTag().c_str(), req.cmd.c_str());
}
session->start();
addSession_unsafe(req.callid,"",req.from_tag,session);
// session does not get its own INVITE
// session->postEvent(new AmSipRequestEvent(req));
}
}
catch(const AmSession::Exception& e){
ERROR("%i %s\n",e.code,e.reason.c_str());
AmSipDialog::reply_error(req,e.code,e.reason);
}
catch(const string& err){
ERROR("startSession: %s\n",err.c_str());
AmSipDialog::reply_error(req,500,err);
}
catch(...){
ERROR("unexpected exception\n");
AmSipDialog::reply_error(req,500,"unexpected exception");
}
as_mut.unlock();
return session;
}