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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100906/bcd803bb/attachment.html>