[OpenSER-Users] Openser not processing requests at rate being sent to it

Andreas Heise aheise at gmx.de
Fri May 23 23:32:50 CEST 2008


Hi Brian,

did you check if your OpenSER try to do a reserve DNS lookup even if  
rev_dns=no?

maybe related to your pb... 
http://openser.org/pipermail/users/2008-May/017397.html

regards,
Andreas


Brian Peters schrieb:
> Mik,
>
> Response to your questions below:
>
> -----Original Message-----
> From: Mik Cheez [mailto:michael_bulk at wildgate.com] 
> Sent: Friday, May 23, 2008 3:34 PM
> To: Brian Peters
> Cc: users at lists.openser.org
> Subject: Re: [OpenSER-Users] Openser not processing requests at rate being
> sent to it
>
> Brian Peters wrote:
>   
>> I am doing what I thought was a simple volume test that OpenSER should 
>> be able to handle, but the results I am getting so far show it is not 
>> handling the load I'm sending it.
>>
>>  
>>
>> Here is my configuration:
>>
>>  
>>
>>  
>>
>> -          OpenSER 1.3.1
>>
>> -          Simple script that uses OpenSER as a proxy to forward 
>> requests to a carrier. All it does is rewrite the host and port of the 
>> R-URI and relays to the carrier.
>>
>> -          children=16
>>
>> -          shared memory set to 1 G. (-m 1000)
>>
>> -          using transaction module to handle the requests.
>>
>> -          Sending 10 INVITE requests per second to OpenSER using
>>     
> Asterisk.
>   
>>  
>>
>> When I do a "tcpdump" trace of the network traffic to/from OpenSER,  it 
>> is clear that a large percentage of the INVITE requests sent to OpenSER 
>> were not handled. Asterisk needed to resend the INVITE requests several 
>> times before OpenSER would handle them, and in about 20% of the cases 
>> Asterisk terminated the INVITES because it reached the timeout of 30 
>> seconds without any response.
>>
>>  
>>
>> If I go directly from asterisk to the carrier, this test works without 
>> any issues. I'm not sure what the limitations are of OpenSER, but this 
>> seems like something it should be able to handle.
>>
>>  
>>
>> Any help or information on how to configure OpenSER so it will work 
>> would be appreciated.
>>
>>  
>>
>> Thanks,
>>
>>  
>>
>> Brian.
>>
>>  
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.openser.org
>> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>>     
>
> You have a config file to share?
> Are your network settings correct?
> Are you doing the dump on the OpenSER box, or the Asterisk?
> How are your system resources on the box (e.g. running 'top')?
>
> 10 invites per second is really nothing for OpenSER, so something else 
> must be going on.
>
> ---
>
> 1. the network settings on the servers are OK. We have used the servers in
> production environment without OpenSER (asterisk direct to carrier) and at
> much higher volume than we are testing.
>
> 2. The tcpdump is being done from the OpenSER box so that I could see what
> OpenSER was receiving and sending. The server is clearly receiving the
> INVITE requests, and OpenSER is not responding.
>
> 3. System resources are not an issue. The server is only being used for
> OpenSER, and CPU usage is barely reaching 1%. Network is only being used for
> OpenSER.
>
> 4. for the config file, here it is (with the IP/hosts blanked out):
>
>
> ## begin openser script ##
>
> #
> # $Id: openser.cfg 3542 2008-01-16 15:00:34Z miconda $
> #
> # OpenSER basic configuration script
> #     by Anca Vamanu <anca at voice-system.ro>
> #
> # Please refer to the Core CookBook at
> http://www.openser.org/dokuwiki/doku.php
> # for a explanation of possible statements, functions and parameters.
> #
>
>
> ####### Global Parameters #########
>
> debug=3
> fork=yes
> log_stderror=no
>
> listen=udp:xxx.xxx.xxx.xxx:5060
> port=5060
> # disable_tcp=yes
>
> alias=foo.com
>
> sip_warning=0
>
> check_via=no
> dns=off
> rev_dns=off
> children=8
> log_name="openser-test.log"
> log_facility=LOG_LOCAL0
>
> disable_dns_blacklist=yes
> disable_dns_failover=yes
>
> ####### Modules Section ########
>
> #set module path
> mpath="/usr/local/openser-1.3.1//lib/openser/modules/"
>
> loadmodule "textops.so"
> loadmodule "sl.so"
> loadmodule "maxfwd.so"
> loadmodule "uri.so"
> loadmodule "xlog.so"
>
> # ----- mi_fifo -----
> loadmodule "mi_fifo.so"
> modparam("mi_fifo", "fifo_name", "/tmp/openser_1.3.1_fifo")
>
> # ----- rr -----
> loadmodule "rr.so"
> modparam("rr", "append_fromtag", 0)
> modparam("rr", "enable_full_lr", 1)
>
> # ----- tm -----
> loadmodule "tm.so"
> modparam("tm", "fr_timer", 40)
> modparam("tm", "fr_inv_timer", 60)
> modparam("tm", "wt_timer", 20)
> modparam("tm", "noisy_ctimer", 1)
>
> route{
>         xlog("New request - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
>
>         if (!mf_process_maxfwd_header("10")) {
>                 sl_send_reply("483","Too Many Hops");
>                 exit;
>         }
>
>         if (has_totag()) {
>                 # sequential request withing a dialog should
>                 # take the path determined by record-routing
>                 if (loose_route()) {
>                         route(1);
>                 } else {
>                         if ( is_method("ACK") ) {
>                                 if ( t_check_trans() ) {
>                                         route(1);
>                                         exit;
>                                 } else {
>                                         exit;
>                                 }
>                         }
>                         sl_send_reply("403","No proper route");
>                 }
>                 exit;
>         }
>
>         #initial requests
>
>         # CANCEL processing
>         if (is_method("CANCEL"))
>         {
>                 if (t_check_trans())
>                         route(1);
>                 exit;
>         }
>
>         t_check_trans();
>
>         if (!is_method("INVITE"))
>         {
>                 sl_send_reply("403","Not routable");
>                 exit;
>         }
>
>         record_route();
>
>         # route invites to carrier
>         route(2);
> }
>
>
> route[1] {
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
>         exit;
> }
>
> route[2] {
>         rewritehostport("yyy.yyy.yyy.yyy:5060");
>
>         xlog("routing INVITE request to carrier $ou -> $ru\n");
>
>         t_on_failure("1");
>         route(1);
> }
>
>
> failure_route[1] {
>         if (t_was_cancelled() ||  t_check_status("486|487")) {
>                 exit;
>         }
>
>         xlog("Routing to carrier failed: $fu => $ru ($(T_reply_code))\n");
> }
>
> ## end openser script ##
>
>
> Thanks,
>
> Brian.
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.openser.org
> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>
>   





More information about the Users mailing list