Ending the TestUac end causes the onTerminated callback with a
NULL message parameter. Basicall blindly just tries to log the message
without first checking it. I’ll commit a fix for this to SVN:
virtual void
onTerminated(InviteSessionHandle, InviteSessionHandler::TerminatedReason
reason, const SipMessage* msg)
{
if(msg)
{
cout << name << ": InviteSession-onTerminated - "
<< msg->brief() << endl;
}
else
{
cout << name << ": InviteSession-onTerminated" <<
endl;
}
done = true;
}
Scott
From:
resiprocate-users-bounces@xxxxxxxxxxxxxxx [mailto:resiprocate-users-bounces@xxxxxxxxxxxxxxx]
On Behalf Of Andy Pyles
Sent: Wednesday, August 27, 2008 1:44 PM
To: resiprocate-users@xxxxxxxxxxxxxxx
Subject: [reSIProcate-users] Dum/test/BasicCall.cxx question
Hello,
I'm looking into building a useragent with DUM and had a question on how to
initiate a BYE from the UAC.
In the TestUac class if I add one line( is->end() ) to onConnected(),
I expected the UAC to send a BYE, but it doesn't send a bye and causes a crash.
class TestUac : public TestInviteSessionHandler
{
...
virtual void onConnected(ClientInviteSessionHandle is, const
SipMessage& msg)
{
cout << name <<
": ClientInviteSession-onConnected - " << msg.brief() <<
endl;
cout << "Connected
now - requestingOffer from UAS" << endl;
is->requestOffer();
is->end();
<------------
}
}
However, in the TestUas class if I add one line to onAnswer(), the UAS sends a
BYE and the test completes correctly.
class TestUas : public TestInviteSessionHandler
{
...
virtual void onAnswer(InviteSessionHandle is, const SipMessage& msg,
const SdpContents& sdp)
{
cout << name <<
": InviteSession-onAnswer(SDP)" << endl;
if(*pHangupAt == 0)
{
is->provideOffer(sdp);
*pHangupAt =
time(NULL) + 5;
}
cout <<
"ending!!!!!!\n";
is->end();
<------------------
done=true;
}
}
Any ideas why this is occuring?
Thanks
Andy