[reSIProcate] Re: Multiple Concurrent Dialogs
Swavek forwarded me this question and said it was ok to post to this
list. Does anybody have any ideas what is going on here?
A few questions:
- Did you set up a profile and set it in the dum object?
- I'm not familiar with this override host and port. What is it?
Swavek Skret wrote:
Jason,
I am running into a problem while using DialogUserManager. I want to
have a user agent client that has a few different dialogs going on.
Within a single dialog, I would like to send an invite out, get a 3xx
response, and send out another invite. I do not need to send a
registration out. Looks simple. Yet, when I run my program, I am getting
an error when calling:
SipMessage msg = _DumUac->makeInviteSession(from, to, req->getSdp());
Here is the sequence of calls that get executed:
1. DialogUserManager::makeInviteSession()
BaseCreator* bc = new InviteSessionCreator(*this, target, from,
initialOffer);
2. InviteSessionCreator::InviteSessionCreator()
makeInitialRequest(target, from, INVITE);
3. BaseCreator::makeInitialRequest()
...
...
if (mDum.getProfile()->hasOverrideHostAndPort())
{
contact.uri() = mDum.getProfile()->getOverideHostAndPort(); //
ACCESS VIOLATION!!!!!
}
It seems to me that I am getting the access violation because the
hasOverrideHostAndPort() always returns true. Please look at the code.
However, maybe I should not have fallen into this block of code and
should execute the initial if block:
if (mDum.getProfile()->hasGruu(target.uri().getAor()))
{
contact = mDum.getProfile()->getGruu(target.uri().getAor()); //
MAYBE I SHOULD BE HERE...
mLastRequest.header(h_Contacts).push_front(contact);
}
else
{
if (mDum.getProfile()->hasOverrideHostAndPort())
{
contact.uri() = mDum.getProfile()->getOverideHostAndPort();
}
contact.uri().user() = from.uri().user();
mLastRequest.header(h_Contacts).push_front(contact);
}
which would point into some other problem in my code or the
configuration. Could you please comment?