handles failed sendInvite properly

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@393 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 19 years ago
parent 9cfac79e6e
commit 0f6efa9be2

@ -690,7 +690,7 @@ void AmSession::sendReinvite(bool updateSDP)
}
}
void AmSession::sendInvite()
int AmSession::sendInvite()
{
// set local IP first, so that IP is set when
// getLocalPort/setLocalPort may bind
@ -698,7 +698,7 @@ void AmSession::sendInvite()
// generate SDP
string sdp_body;
sdp.genRequest(AmConfig::LocalIP,rtp_str.getLocalPort(),sdp_body);
dlg.invite("", "application/sdp", sdp_body);
return dlg.invite("", "application/sdp", sdp_body);
}
void AmSession::setOnHold(bool hold)

@ -266,7 +266,7 @@ public:
/** send a Re-INVITE (if connected) */
void sendReinvite(bool updateSDP = true);
/** send an INVITE */
void sendInvite();
int sendInvite();
/** set the session on/off hold */
void setOnHold(bool hold);

@ -186,7 +186,13 @@ AmSession* AmSessionContainer::startSessionUAC(AmSipRequest& req, AmArg* session
session->setCallgroup(req.from_tag);
session->setNegotiateOnReply(true);
session->sendInvite();
if (int err = session->sendInvite()) {
ERROR("INVITE could not be sent: error code = %d.\n",
err);
delete session;
as_mut.unlock();
return NULL;
}
session->start();
addSession_unsafe(req.callid,req.from_tag,req.from_tag,session);

Loading…
Cancel
Save