Re-register creating a new TCP Transport each new request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the reply Benny,

As you say, I should be using "lock to specific listener" but, i don't know
how i'm doing that :)

It seems that if you fill the "transport_id" of your account configuration
with the one which the "create_transport" function returns, then it creates
a new TCP connection each reregister request.

Setting the transport_id to NULL in the account config struct solves the
problem.

Regarding the Kamailio support of the outbound feature, I'm afraid that
Kamailio doesn't fully support it, indeed, I had to "hijack" the response
header of the REGISTER request to add the outbound support in order to test
this functionality of pjsip :)

Regards.
Roberto.

On Thu, Oct 6, 2011 at 5:12 AM, Benny Prijono <bennylp at teluu.com> wrote:

> Hi,
>
> I think you may have hit a known problem. I vaguely recall that if you
> use the "lock to specific listener" feature, it may cause pjsip to
> create new TCP connection for every outgoing request. I can't remember
> the exact circumstances though, and it looks like I haven't documented
> this in Trac (I did just now), but I do remember that this is not an
> easy problem to fix.
>
> So I'm afraid the workaround now is to not use the locking feature for
> TCP/TLS.
>
> P.S.
>  Good to hear that Kamailio supports SIP outbound!
>
> Best regards,
>  Benny
>
> On Wed, Oct 5, 2011 at 3:07 PM, Roberto Perez <robj.perez at gmail.com>
> wrote:
> > Hi,
> > I'm using pjsip 1.10 in an iphone application and testing against a
> kamailio
> > 3.1.
> > The account which I'm registering with has the outbound function active,
> as
> > I can tell from these trace:
> >
> > 16:15:35.007    pjsua_acc.c  Contact for acc 0 updated for SIP outbound:
> > <sip:111 at 192.168.1.1:5060
> ;transport=TCP;ob>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-000052baa107>"
> >
> >  16:16:07.674    pjsua_acc.c  SIP outbound status for acc 0 is active
> >
> >  16:16:07.674    pjsua_acc.c  Acc 0 has SIP outbound active, no need to
> > update registration Contact
> >
> > As you already know, when the re-registration timeout counter reaches 0,
> it
> > sends a new REGISTER message. The problem is that the iPhone version
> creates
> > a *new* tcp transport/socket each time pjsip sends that re-registration
> > message.
> > This is a problem in several ways, one of them, as the new register uses
> a
> > new transport, the background mode stops working, as the original tcp
> > transport/socket is still on.
> > Diving into the pjsip code, I have seen that in the function
> > "pjsip_tpmgr_acquire_transport2" (which is in sip_transport.c file), it
> > checks whether it can use a current transport or if it has to create a
> new
> > one. It does that with this three if conditions:
> > line 1575:
> >
> > if (sel && sel->type == PJSIP_TPSELECTOR_TRANSPORT && sel->u.transport) {
> > ... }
> >
> > else if (sel && sel->type == PJSIP_TPSELECTOR_LISTENER
> && sel->u.listener) {
> > ... }
> >
> > else { /* This is the "normal" flow */ }
> >
> > My code always go for the second condtion, which as you can read in the
> > comments "Application has requested that a specific listener is to be
> used.
> > In this case, skip transport hash table lookup.". But I haven't requested
> > anything :)
> >
> > What I want to do is to reuse the same transport/socket to send the
> > Re-register message as PJSUA sample add does.
> >
> > Am I missing any parameter to the transport creation? Why is this problem
> > happening?
> >
> > Thanks in advance
> >
> > Roberto.
> > _______________________________________________
> > Visit our blog: http://blog.pjsip.org
> >
> > pjsip mailing list
> > pjsip at lists.pjsip.org
> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> >
> >
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>



-- 
http://zbutton.wordpress.com/
blog sobre programaci?n y tecnolog?a
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20111006/6a0a9bb0/attachment.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux