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

Re: [reSIProcate] Sip Responses being buffered. How do i get at themwhen they arrive?


Just a hunch.  Does the tid in the via branch parameter of the 200 match
your invite request?

> -----Original Message-----
> From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
> Robert Wyrobek
> Sent: Tuesday, August 15, 2006 12:54 PM
> To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [reSIProcate] Sip Responses being buffered. How do i get at
> themwhen they arrive?
> 
> Hi guys,
> 
> I've been using resiprocate for very basic purposes. I've been trying
> to avoid using any of the higher level functionality, and simply have
> an event loop which basically does this:
> 
> while (true) {
> 
>       sipStack->buildFdSet(fdset);
> 
>       sipStack->process(fdset);
>       if ((SipMessage * msg=sipStack->receive())) {
>               messageProcessor->onSipMessage(msg);
>       }
>       processOutgoingMessages(); // this simply reads off a list of
> 
>                                  // SipMessage*s and sipStack(send)s
> 
>                                  // each one of them.
> }
> 
> This was all working fine when i was only answering sip requests, ie
> sending back responses to INVITEs using, for example,
> Helper::makeResponse(*origMsg,200,myAddress). The responses were being
> sent back as soon as I called sipStack->send(). Similarly, the INVITE
> was being passed to my messageProcessor->onSipMessage(msg) as soon as
> it arrived on the wire.
> 
> However, now I've been trying to send out INVITE requests. I'm sending
> out offerless invites created using
> Helper::makeInvite(targetAddress,myAddress), and then sent using
> sipStack->send(). The INVITE appears on the wire as soon as it is
> pushed
> into the sipStack, which is all great.
> 
> The problem is, that when the 200-OK comes back from the other end, it
> seems to be getting stuck in a fifo *somewhere*. I cannot for the life
> of me figure out where this is! The INVITE i've pushed into the stack
> gets resent 5 or 6 times, before the Timer B which is set to 32
seconds
> (again, i don't know where from) times out, and only then does the
> SipMessage get received by the sipStack->receive(msg) method.
> 
> I'm aware that SipStack::receive() is actually deprecated, but I've
> only
> been using that because I was copying the simple examples in
> resiprocate/resip/stack/test/*. I can see that this is something to do
> with a TransactionUser registering itself with the sipstack and
> associating itself with that INVITE request. But I don't know where
> this
> transaction user is being created, or how to get at its incoming
> queue...
> 
> Ideally, i'd like to (presumably) create my own subclass of
> TransactionUser which registers itself with the SipStack for ALL
> incoming requests AND responses, and just deal with all of the state
of
> the dialogs myself. But for now I could just do with being told when a
> message arrives on the wire! There seems to be pretty much no
> documentation that I can find which tells me how I might do this, so
> any
> pointers would be very helpful.
> 
> I've been trying to figure this one out for almost a day now, and I
> figured it's about time to ask around. Can anyone help me out?
> 
> Thanks in advance, and sorry for the length of the email!
> 
> Rob
> 
> --
> Robert Wyrobek <robert@xxxxxxxxxxxxx>
> Software Developer
> Tel: +44 (0) 845 666 7778
> Fax: +44 (0) 870 163 4694
> http://www.mxtelecom.com
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel