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

Bogdan-Andrei Iancu bogdan at voice-system.ro
Mon May 26 10:28:56 CEST 2008


Hi Andreas,

it is not related to that fix - it was affecting only comparison ops 
involving IPs, but it is not the case here as I found no such ops.

Regards,
Bogdan

Andreas Heise wrote:
> 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
>>
>>   
>>     
>
>
> _______________________________________________
> Users mailing list
> Users at lists.openser.org
> http://lists.openser.org/cgi-bin/mailman/listinfo/users
>
>   





More information about the Users mailing list