< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[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?