Infite loop(?) when calling pjsua_call_make_call() after receiving 480 Temporary Unavailable

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

 



This looks like the jitter buffer bug (
http://trac.pjsip.org/repos/ticket/762), and should have been fixed in 1.2.

(Sorry for the late reply btw)

thanks
 Benny

On Sun, Apr 26, 2009 at 10:14 AM, Maarten Sander <info at privateer-software.nl
> wrote:

> Hi,
>
> I've got some more info, and it looks like I've found the code that
> caused these issues. Still don't know why this is happening though, and
> would really appreciate some help with this!
>
> > As the subject says, it looks like as if PJSUA-LIB enters an infite loop
> > when calling pjsua_call_make_call() after receiving a 480 Temporary
> > Unavailable response from the carrier. CPU usage is 100% in this case.
> > When I send a CANCEL before the carrier has a chance to return the 480,
> > everything is allright.
>
> This turned out not to be true, the problem (often) occurs after sending
> a CANCEL as well.
>
> I wanted the application to bind to different (customizable) IPs and
> ports, so I've modified UDP transport config when calling
> pjsua_transport_create():
>
>  // UDP transport
>  {
>    pjsua_transport_config_default(&udpTransportConfig);
>    udpTransportConfig.port = 5060; // from config
>    udpTransportConfig.public_addr = pj_str("10.10.10.70"); // from config
>    udpTransportConfig.bound_addr = pj_str("10.10.10.70"); // from config
>
>    pj_status_t status = pjsua_transport_create(PJSIP_TRANSPORT_UDP,
> &udpTransportConfig, NULL);
>
>    if (status != PJ_SUCCESS) {
>      return; // error
>    }
>  }
>
> This works as expected, but the RTP IP and ports were still the
> defaults, so I've also added the following code to the initialization (a
> bit simplified):
>
>  // RTP transport (breaks things)
>  {
>    pjsua_transport_config_default(&rtpTransportConfig);
>
>    rtpTransportConfig.port = 4000; // from config
>    rtpTransportConfig.public_addr = pj_str("10.10.10.70"); // from config
>    rtpTransportConfig.bound_addr = pj_str("10.10.10.70"); // from config
>
>    pj_status_t status = pjsua_media_transports_create(&rtpTransportConfig);
>
>    if (status != PJ_SUCCESS) {
>      return; // error
>    }
>  }
>
> This works as expected for successful calls, but seems also the root of
> my problems. If I remove this, everything works OK, but I lose the
> ability to change the IPs and ports.
>
> What am I doing wrong? Is this the right way to customize the RTP
> transport?
>
> Why does the above even seem to work? I'm just creating a transport
> using pjsua_media_transports_create(), but not doing anything with it.
> Shouldn't I remove the existing RTP transport? OTOH, this is how the
> PJSUA demo app seems to do it...
>
> Regards,
>
> Maarten
>
> P.S. I forgot the mention last time, but I'm using PJSIP 1.0.2.
>
> --
> Privateer Software Development (www.privateer-software.nl)
> * web usability, web accessibility, web development
> * cross-platform software development
>
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20090513/73deada7/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