Benny,Hassan, Any feedback on this ? pjmedia is a diversified project and several of users might feel this patch needed.Let me know if I didn't clarify anything which you needed. Regards, Parveen Jain On Mon, Sep 6, 2010 at 11:46 AM, Parveen Kumar Jain <parveen.jain at one97.net>wrote: > Hi All, > Following are the changes in transport_udp.c.(the file path is > pjmedia/src/pjmedia/transport_udp.c) > > "int reuse = 1; > if (setsockopt(si.rtp_sock, SOL_SOCKET, SO_REUSEADDR,(char *)&reuse, > sizeof(reuse)) < 0) > { > perror("Setting SO_REUSEADDR error"); > PJ_LOG(4, (THIS_FILE,"setsockopt SO_REUSEADDR socket %d Error: > %s",si.rtp_sock,strerror(errno))); > }" > > I am putting this after opening the socket, i.e at line no. 223 in function > "pjmedia_transport_udp_create3". > Let me know if you want the changed files, I will provide the same. > After this I had checked it for load testing of 300 calls per second(my > testing continued for several hours in this way) and never faced that issue > again. > > Though I am facing another bottleneck again, I am not able to take it > beyond 300 call per second.Whenever I try to run it for 400 calls(even with > PCMU calls) per second it crashes after 1-2 hours of testing.I know CPU > power is not the limitation, as in this way of running it hardly touches 1/5 > of total CPU capacity present in the system.I have the feeling that there is > something in code itself(either some "#define" or something) which is > inhibiting to scale it up to that level.Let me know if any one can help me > to improve this. > > Best Regards, > Parveen Jain > > > > On Tue, Aug 31, 2010 at 3:28 PM, Nyamul Hassan <mnhassan at usa.net> wrote: > >> A source would be very helpful. Thx in advance. >> >> Regards >> HASSAN >> >> >> On Tue, Aug 31, 2010 at 15:43, Parveen Kumar Jain <parveen.jain at one97.net >> > wrote: >> >>> Hi Benny, >>> I got the solution of the problem after digging through some socket >>> options.I found that "socket close" call returns immediately without >>> actually closing the socket; closing the socket in background.Because of >>> which if some application happen to call the bind request "close" and >>> "bind"(as was happening below here) in sequence and *quickly(for same >>> port)* it "may" return "Bind Error". >>> I fixed this by setting the socket option "REUSE_ADDR", now this allows >>> the socket to bind to same port without getting any error.and it can allow >>> the already bound socket to get closed peacefully without giving any error >>> to the next "bind" command. >>> Let me know if any one needs this, I can share the code changes for the >>> same. >>> (I found this as the most generic fixed which has been done even in other >>> open source "audio media stacks" ) >>> >>> Regards, >>> Parveen Jain >>> >>> >>> >>> >>> On Fri, Aug 27, 2010 at 12:12 PM, Parveen Kumar Jain < >>> parveen.jain at one97.net> wrote: >>> >>>> Hi Benny, >>>> Thanks for your quick reply. >>>> Following is the error traces which I just got after enabling traces in >>>> pjmedia stack. >>>> >>>> 17:03:53.283 transport_udp. Binding rtp port 4112 to socket 178 >>>> 17:04:05.143 transport_udp. In udp Rtp key: rtp socket to be >>>> invalidated 178 >>>> 17:04:05.143 ioq_select In pj_ioqueue_unregister: closing socket >>>> 178 >>>> >>>> 17:04:05.453 transport_udp. Binding rtp port 4112 to socket 178 >>>> 17:04:05.453 transport_udp. pj_sock_socket ERR3 120098 >>>> >>>> As you can see from the last three lines that the same socket and ports >>>> are getting closed and the getting reopened within same second.I just have a >>>> feeling that might be that previous port was not yet closed but we trying to >>>> reopen it which might be giving this error. >>>> >>>> Your comments ! >>>> >>>> Regards, >>>> Parveen Jain >>>> >>>> >>>> On Thu, Aug 26, 2010 at 8:48 AM, Benny Prijono <bennylp at teluu.com>wrote: >>>> >>>>> On Wed, Aug 25, 2010 at 6:08 PM, Parveen Kumar Jain >>>>> <parveen.jain at one97.net> wrote: >>>>> > Hi All, >>>>> > I am trying to evaluate "pjmedia" project from quite some time for >>>>> one of >>>>> > my IVR based solution.The Application initiates bulk sip calls and >>>>> then >>>>> > starts the media using pjmedia stack.I am facing following issue >>>>> while its >>>>> > usage in this way: >>>>> > - I was trying to use it one of my Bulk call scenario where I was >>>>> trying to >>>>> > make 40 G729 calls(I am using intel IPP for achieving that).but >>>>> pjmedia >>>>> > gives socket bind error after some uncertain time period(sometime I >>>>> don't >>>>> > get this error even after 2 days of testing but sometime I get it >>>>> after 2-3 >>>>> > hours of testing).Just to add this, my local UDP port management is >>>>> fine >>>>> > where I ask pjmedia to bind only those rtp/rtcp ports which are not >>>>> already >>>>> > in use. >>>>> >>>>> The bind() error comes from the OS, so I'd say there's something wrong >>>>> with your port management. >>>>> >>>>> > Though I have found a very interesting fact while compiling the >>>>> pjmedia. I >>>>> > found that "sock_bsd.c" is getting compiled on my linux system, as I >>>>> was >>>>> > expecting it should have been ''sock_linux_kernel.c".can this be a >>>>> cause of >>>>> > this "bind error" behavior ? >>>>> >>>>> The "bsd" stands for BSD socket API, not BSD OS, so it's the right >>>>> implementation to use. The "linux_kernel" stuff is for running PJLIB >>>>> inside Linux kernel, something that we used to support in the old >>>>> days. >>>>> >>>>> It's been long time since I tested bulk calling, I've forgotten what >>>>> the result was, so I'll let others comment on your questions below. >>>>> >>>>> -Benny >>>>> >>>>> > Besides, I have a few more questions regarding its usage for bulk >>>>> calling: >>>>> > - Is someone already tried to use it in this way or I mean if >>>>> anybody tried >>>>> > to use it for making bulk calls ? >>>>> > - What are the maximum simultaneous calls it can support using >>>>> G711U/G711A >>>>> > on a dual core Intel based Linux system(if someone has tried to do >>>>> so) ? >>>>> > Also what would be its call rate if try to use it using G729 ? >>>>> > >>>>> > >>>>> > Regards, >>>>> > Parveen Jain >>>>> > _______________________________________________ >>>>> > 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> Parveen Jain >>>> Technical Lead ? Network Engineering >>>> One97 Communications (P) Ltd >>>> B121, Sector 5, Noida, UP 201301 >>>> >>>> P: + 91 120 4770770 Extn:352 >>>> M: + 91 9212708203 >>>> W: www.one97world.com >>>> >>>> >>> >>> >>> -- >>> Parveen Jain >>> Technical Lead ? Network Engineering >>> One97 Communications (P) Ltd >>> B121, Sector 5, Noida, UP 201301 >>> >>> P: + 91 120 4770770 Extn:352 >>> M: + 91 9212708203 >>> W: www.one97world.com >>> >>> >>> _______________________________________________ >>> 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 >> >> > > > -- > Parveen Jain > Technical Lead ? Network Engineering > One97 Communications (P) Ltd > B121, Sector 5, Noida, UP 201301 > > P: + 91 120 4770770 Extn:352 > M: + 91 9212708203 > W: www.one97world.com > > -- Parveen Jain Technical Lead ? Network Engineering One97 Communications (P) Ltd B121, Sector 5, Noida, UP 201301 P: + 91 120 4770770 Extn:352 M: + 91 9212708203 W: www.one97world.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100915/5a287ba2/attachment-0001.html>