Consulting Needed

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

 



Matthew,

do they really stay active after a complete cancel? Or is that just
because you're using the wrong SIPp scenario and the pjsip breaks down
the call first after lack of activity after the 32 seconds?

I couldn't tell from your responses whether your server scenario was
properly adjusted to handling the cancel.

If not, try this scenario:
https://github.com/ossobv/sipp-scenarios/blob/master/out-in/iinv-o180-icancel.xml

It expects an INVITE (i), sends 180 (o) and expects a CANCEL (i); to
which it properly replies with a 200, and a 487 to the INVITE.

(The scenario's may require a recent (master) version of sipp.)

Cheers,
Walter Doekes
OSSO B.V.


On 14-01-16 23:47, Matthew Williams wrote:
> pjsip has a max_calls configuration (and a corresponding constant which
> sets a hard limit in the c headers). I had this set to 512, which was
> being hit very quickly since in this particular scenario calls are
> staying "active" for 32s when I was expecting them to only remain active
> for < 1s due to the immediate CANCEL. It was really all caused by a
> misunderstanding of the RFC and not with the application or signalling
> per se.
> 
> On Thu, Jan 14, 2016 at 5:36 PM, Carlos Ruiz D?az
> <carlos.ruizdiaz at gmail.com <mailto:carlos.ruizdiaz at gmail.com>> wrote:
> 
>     Not sure if I understand what you mean with increasing the active
>     calls limit.
> 
>     The solution is these cases is to figure out what went wrong with
>     the signaling, and fixing it in the SIP level.
> 
>     Looks like you have identified the problem and the potential
>     solution. Make sure to update the thread with your results :).
> 
>     Regards,
>     Carlos
> 
>     On Thu, Jan 14, 2016 at 4:28 PM, Matthew Williams
>     <mgwilliams at gmail.com <mailto:mgwilliams at gmail.com>> wrote:
> 
>         Carlos,
> 
>         If I'm reading
>         http://tools.ietf.org/html/rfc3261#section-17.1.1.2 correctly,
>         then sipp & pjsip are both behaving as expected, and the
>         solution is to just have a higher limit on active calls.
> 
>         I will certainly be testing with some other UAs, but sipp is
>         convenient for load testing & developing against random scenarios.
> 
>         On Thu, Jan 14, 2016 at 5:23 PM, Carlos Ruiz D?az
>         <carlos.ruizdiaz at gmail.com <mailto:carlos.ruizdiaz at gmail.com>>
>         wrote:
> 
>             Don't use sipp. Since every scenario in SIPP is actually
>             programmed by you, there's a chance you are not implementing
>             the requests/replies properly. E.g.: incorrect or absent
>             tags, incorrect Vias, Routes or Record-Routes, incorrect
>             CSeq, etc.
> 
>             Use a B2BUA as you UAS. Use Asterisk or FreeSwitch to make
>             sure the signaling is properly implemented.
> 
>             Sniff the traffic with Wireshark or ngrep if using a B2BUA
>             is not a option. I'm sure there's something wrong with the
>             protocol.
> 
> 
>             On Thu, Jan 14, 2016 at 4:14 PM, Joel Dodson
>             <jdodson at acm.org <mailto:jdodson at acm.org>> wrote:
> 
>                 Hi Matthew,
> 
>                 python/pjsua2 might not be the best choice for writing a
>                 SIP server.  Several years ago, on PJSIP 0.8 to 1.0, I
>                 wrote a signaling and media gateway.  The advice then
>                 was to use the lower level libraries (PJSIP and PJMEDIA
>                 is what I recall using).  There are still some nice
>                 abstractions and state machines at that level, but you
>                 have more flexibility with the number calls you need to
>                 support.  Now I'm working with servers externally so
>                 using the python bindings is working very well for me.  
> 
>                 I suspect, as Carlos mentioned, you're running into
>                 issues with the protocol.  If you try to cancel a call
>                 before being answered (sending CANCEL because you
>                 haven't received a 200 OK yet for the INVITE), the call
>                 object is probably intentionally kept around to deal
>                 with any 200 OKs that might be coming in for the
>                 original INVITE.  When you call hangup on the call
>                 object it probably results in a CANCEL or a BYE
>                 depending on the state of the dialog.  Prior to
>                 confirmed, it should send a CANCEL.  It's been a long
>                 time since I've read any SIP RFCs, or been in the PJSIP
>                 internals, so I could be off a bit.  
> 
>                 hope that helps
> 
>                 Joel
>                   
> 
>                 On Thu, Jan 14, 2016 at 2:03 PM, Carlos Ruiz D?az
>                 <carlos.ruizdiaz at gmail.com
>                 <mailto:carlos.ruizdiaz at gmail.com>> wrote:
> 
>                     Looks like your problem isn't pjsip related but SIP
>                     related. If your 30 seconds are actually exactly 32
>                     seconds, then I'm correct.
> 
>                     Try to make your scenario work with CSIPSimple
>                     (based on pjsip) on Android. 
> 
>                     Setup on it your SIP credentials, place the call and
>                     see if it works. If it does, then you have a problem
>                     with your code, if it doesn't, then you have a
>                     problem with your SIP server.
> 
>                     On Thu, Jan 14, 2016 at 3:57 PM, Matthew Williams
>                     <mgwilliams at gmail.com <mailto:mgwilliams at gmail.com>>
>                     wrote:
> 
>                         Is there anyone on this list with an in-depth
>                         understanding of the entire stack that would be
>                         interested in doing some paid consulting?
> 
>                         I have made considerable progress in getting an
>                         app running using the swig/python bindings for
>                         pjsua2. However, due to the limited
>                         documentation, it is slow going -- for example,
>                         it took quite some time to track down the cause
>                         of segfaults to the Call object being lost from
>                         focus.
> 
>                         My current issue is related to calls that are
>                         cancelled. It appears that if hangup is called
>                         prior to the call entering the confirmed state,
>                         the disconnected state is only entered some 30
>                         seconds later. Since I am writing a server
>                         application, this quickly eats up call limits.
> 
>                         Please feel free to reply privately.
> 
>                         Thanks!
> 
>                         _______________________________________________
>                         Visit our blog: http://blog.pjsip.org
> 
>                         pjsip mailing list
>                         pjsip at lists.pjsip.org <mailto:pjsip at lists.pjsip.org>
>                         http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> 
> 
> 
> 
>                     -- 
>                     Carlos
>                     http://caruizdiaz.com
> 
>                     _______________________________________________
>                     Visit our blog: http://blog.pjsip.org
> 
>                     pjsip mailing list
>                     pjsip at lists.pjsip.org <mailto: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 <mailto:pjsip at lists.pjsip.org>
>                 http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> 
> 
> 
> 
>             -- 
>             Carlos
>             http://caruizdiaz.com
> 
>             _______________________________________________
>             Visit our blog: http://blog.pjsip.org
> 
>             pjsip mailing list
>             pjsip at lists.pjsip.org <mailto: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 <mailto:pjsip at lists.pjsip.org>
>         http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
> 
> 
> 
> 
>     -- 
>     Carlos
>     http://caruizdiaz.com
> 
>     _______________________________________________
>     Visit our blog: http://blog.pjsip.org
> 
>     pjsip mailing list
>     pjsip at lists.pjsip.org <mailto: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
> 




[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