[Serusers] Serious Problems with SER - Not responding anythin g.

Ricardo Martinez rmartinez at redvoiss.net
Wed Apr 20 19:39:39 CEST 2005


Thanks Jiri.
I remember have been checked the typical services when the problem was
happening.
My Radius (i'm not use mysql) for example was working without problems...

How can i log information of SER failures?

Regards,
Ricardo.-


> -----Mensaje original-----
> De: Jiri Kuthan [mailto:jiri at iptel.org]
> Enviado el: Miércoles, 20 de Abril de 2005 13:12
> Para: Ricardo Martinez; 'serusers at lists.iptel.org'
> Asunto: Re: [Serusers] Serious Problems with SER - Not responding
> anything.
> 
> 
> a typical reason is SER is blocked waiting for some external service.
> It may be possibly unavailable mysql, DNS, or RADIUS...
> 
> -jiri
> 
> At 07:09 PM 4/20/2005, Ricardo Martinez wrote:
> >Hello list.
> >        I'm experiencing problems with my SER.  As i 
> mentioned in a past
> >post 
> (http://lists.iptel.org/pipermail/serusers/2005-April/018324.html),
> >from time to time (it is getting pretty often) my SER not 
> answering any
> >request, when a REGISTER reach the server it is not 
> challenged, this happens
> >too with the INVITE's messages.  About two hours ago this 
> happened again.
> >I asked in my last post how to LOG the internal errors or 
> messages from SER
> >to see if i can get some idea about what's going on, but i 
> have no answer
> >about it.
> >This is the infornmation i was able to capture when this was 
> happening :
> >
> >the serctl moni command shows a lot of "failures". 
> >
> >[cycle #: 11; if constant make sure server lives and fifo is on]
> >Server: Sip EXpress router (0.8.14-3 (i386/linux))
> >Now: Wed Apr 20 12:56:29 2005
> >Up Since: Thu Apr 14 21:32:18 2005
> >Up time: 487451 [sec]
> >
> >Transaction Statistics
> >Current: 6 (2612 waiting) Total: 38194 (0 local)        
> >Replied localy: 80752      
> >Completion status 6xx: 4643, 5xx: 768, 4xx: 10664, 3xx: 
> 0,2xx: 22552      
> >
> >Stateless Server Statistics
> >200: 5975004 202: 0 2xx: 0      
> >300: 0 301: 0 302: 0 3xx: 0      
> >400: 0 401: 205980 403: 0 404: 0 407: 22918 408: 0 483: 0 
> 4xx: 19      
> >500: 0 5xx: 0      
> >6xx: 0      
> >xxx: 0      
> >failures: 24180      
> >
> >UsrLoc Stats
> >Domain Registered Expired
> >'location' 219 4552
> >--------------------------------------------------------------
> >[cycle #: 5; if constant make sure server lives and fifo is on]
> >Server: Sip EXpress router (0.8.14-3 (i386/linux))
> >Now: Wed Apr 20 12:56:47 2005
> >Up Since: Thu Apr 14 21:32:18 2005
> >Up time: 487469 [sec]
> >
> >Transaction Statistics
> >Current: 4 (2619 waiting) Total: 38219 (0 local)        
> >Replied localy: 80762      
> >Completion status 6xx: 4643, 5xx: 770, 4xx: 10667, 3xx: 
> 0,2xx: 22552      
> >
> >Stateless Server Statistics
> >200: 5975030 202: 0 2xx: 0      
> >300: 0 301: 0 302: 0 3xx: 0      
> >400: 0 401: 205995 403: 0 404: 0 407: 22922 408: 0 483: 0 
> 4xx: 19      
> >500: 0 5xx: 0      
> >6xx: 0      
> >xxx: 0      
> >failures: 24380      
> >
> >UsrLoc Stats
> >Domain Registered Expired
> >'location' 220 4552
> >-----------------------------------------------------------------
> >[cycle #: 2; if constant make sure server lives and fifo is on]
> >Server: Sip EXpress router (0.8.14-3 (i386/linux))
> >Now: Wed Apr 20 12:56:52 2005
> >Up Since: Thu Apr 14 21:32:18 2005
> >Up time: 487474 [sec]
> >
> >Transaction Statistics
> >Current: 4 (2620 waiting) Total: 38224 (0 local)       
> >Replied localy: 80762      
> >Completion status 6xx: 4643, 5xx: 770, 4xx: 10667, 3xx: 
> 0,2xx: 22552      
> >
> >Stateless Server Statistics
> >200: 5975034 202: 0 2xx: 0      
> >300: 0 301: 0 302: 0 3xx: 0      
> >400: 0 401: 206000 403: 0 404: 0 407: 22923 408: 0 483: 0 
> 4xx: 19      
> >500: 0 5xx: 0      
> >6xx: 0      
> >xxx: 0      
> >failures: 24445      
> >
> >UsrLoc Stats
> >Domain Registered Expired
> >'location' 215 4557
> >
> >What is happening to cause the "failures" counter grows that much?.
> >
> >The free command shows this : 
> >[root at root]# free
> >             total       used       free     shared    
> buffers     cached
> >Mem:       1030888     626464     404424          0      
> 86692     369848
> >-/+ buffers/cache:     169924     860964
> >Swap:      2040244       4864    2035380
> >
> >The top command shows not much use of CPU.  The proccess 
> were running (the
> >SER and mediaproxy) 
> >Despite of all this, the SER was not answering anything.
> >Could this be a bug? or maybe a problem with my ser.cfg file?.  I'm
> >attaching my ser.cfg file too to see if someone can tell me 
> if there is
> >something wrong about it.
> >I really hope that someone could help me, this is getting 
> really complicated
> >every time it happens.
> >
> >Thanks
> >Ricardo Martinez.-
> >
> >**************************************************
> >SER.CFG
> >**************************************************
> >
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++++++++++++++++++++++++
> >
> >
> >
> >
> ># ----------- global configuration parameters 
> ------------------------
> >
> >debug=0   # debug level (cmd line: -dddddddddd)
> >fork=yes
> >log_stderror=yes        # (cmd line: -E)
> >
> >#Uncomment these lines to enter debugging mode 
> >#fork=no
> >#log_stderror=yes
> >
> >listen=ip.of.my.ser
> >
> >alias=sip.mydomain.com
> >alias=sip2.mydomain.net
> >alias=ip.of.my.ser
> >
> >
> >check_via=no   # (cmd. line: -v)
> >dns=no           # (cmd. line: -r)
> >rev_dns=no      # (cmd. line: -R)
> >port=5060
> >#children=4
> >fifo="/tmp/ser_fifo"
> >fifo_mode=0666
> >
> >
> ># ------------------ module loading 
> ----------------------------------
> >
> ># Uncomment this if you want to use SQL database
> >#loadmodule "/usr/local//lib/ser/modules/mysql.so"
> >
> >loadmodule "/usr/local//lib/ser/modules/sl.so"
> >loadmodule "/usr/local//lib/ser/modules/tm.so"
> >loadmodule "/usr/local//lib/ser/modules/rr.so"
> >loadmodule "/usr/local//lib/ser/modules/maxfwd.so"
> >loadmodule "/usr/local//lib/ser/modules/usrloc.so"
> >loadmodule "/usr/local//lib/ser/modules/registrar.so"
> >loadmodule "/usr/local//lib/ser/modules/textops.so"
> >loadmodule "/usr/local//lib/ser/modules/exec.so"
> >
> ># ++++++++++  Para trabajar con NAT
> >
> >loadmodule "/usr/local//lib/ser/modules/mediaproxy.so"
> >loadmodule "/usr/local//lib/ser/modules/domain.so"
> >loadmodule "/usr/local//lib/ser/modules/dbtext.so"
> >loadmodule "/usr/local//lib/ser/modules/nathelper.so"
> >
> ># Uncomment this if you want digest authentication
> ># mysql.so must be loaded !
> >loadmodule "/usr/local/lib/ser/modules/auth.so"
> >
> ># ++++++++++  Modulos de Accounting y Autorizacion via Radius
> >
> >loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
> >loadmodule "/usr/local/lib/ser/modules/group_radius.so"
> >loadmodule "/usr/local/lib/ser/modules/acc.so"
> >
> ># ----------------- setting module-specific parameters 
> ---------------
> ># -- rr params --
> ># add value to ;lr param to make some broken UAs happy
> >modparam("rr", "enable_full_lr", 1)
> >
> ># +++++ module authorization
> >modparam("auth_radius","radius_config","/usr/local/etc/radius
> client/radiuscl
> >ient.conf")
> >modparam("auth_radius","service_type",15)
> >
> >
> ># +++++ module accounting
> >modparam("acc","radius_config","/usr/local/etc/radiusclient/r
> adiusclient.con
> >f")
> >modparam("acc","log_level",1)
> >modparam("acc", "service_type", 15)
> >modparam("acc", "radius_flag", 1)
> >modparam("acc", "radius_missed_flag", 3)
> >modparam("acc", "failed_transactions", 1)
> >modparam("acc", "report_ack", 0)
> >
> >
> ># +++++ group radius
> >modparam("group_radius","radius_config","/usr/local/etc/radiu
> sclient/radiusc
> >lient.conf")
> >modparam("group_radius", "use_domain", 1)
> >
> > 
> ># +++++ module mediaproxy
> >modparam("mediaproxy", "natping_interval", 60)
> >modparam("mediaproxy", "mediaproxy_socket", 
> "/var/run/mediaproxy.sock")
> >#modparam("mediaproxy", "sip_asymmetrics",
> >"/usr/local/etc/ser/sip-asymmetrics-clients")
> >#modparam("mediaproxy", "rtp_asymmetrics",
> >"/usr/local/etc/ser/rtp-asymmetrics-clients")
> >modparam("registrar", "nat_flag", 5)
> >
> ># +++++ module domain
> >modparam("domain", "db_url", "/usr/local/etc/ser/domaintables")
> >modparam("domain", "domain_table", "domain")
> >modparam("domain", "domain_col", "domain")
> >
> ># +++++ module tm
> >modparam("tm", "fr_timer", 15)
> >modparam("tm", "fr_inv_timer", 22)
> >modparam("tm", "wt_timer", 5)
> >
> ># +++++ module registrar (Con estos parametro haces que el 
> location lookup
> >priorize solo los mas recientes contacts)
> >modparam("registrar", "append_branches", 0)
> >modparam("registrar", "desc_time_order", 1)
> >
> >
> ># -------------------------  request routing logic 
> -------------------
> >
> ># main routing logic
> >
> >route {
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++
> >        # Llamada a Rutina Externa "translate" para cambio de numero
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++
> >
> >        if (method=="INVITE" ||  method=="CANCEL") {
> >                exec_dset("/usr/local/etc/ser/translate");
> >        };
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++
> >        # Initial sanity checks -- messages with
> >        # max_forwards==0, or excessively long requests
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++++++
> >
> >        if (!mf_process_maxfwd_header("10")) {
> >                sl_send_reply("483","Too Many Hops");
> >                break;
> >        };
> >
> >        if ( msg:len > max_len ) {
> >                sl_send_reply("513", "Message too big");
> >                break;
> >        };
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >        # Marcamos todos los mensajes para que pasen por 
> nuestro servidor 
> >        # a traves del record route.
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >
> >        record_route();
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >        # Permitimos el uso del campo Route en el ruteo de la llamada
> >        # 
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >
> >        if (method=="BYE" || method=="CANCEL")  {
> >                log(1, "NAT: BYE o CANCEL recibido --> 
> terminando la sesion
> >de media\n");
> >                end_media_session();
> >                setflag(1);
> >        };
> >
> >        if (loose_route()) {
> >                t_relay();
> >                break;
> >        };
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+
> >        # Manejo de los mensajes NOTIFY para Keep Alive de NAT
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+
> >
> >        if ((method=="NOTIFY") && search("^Event: keep-alive")) {
> >                sl_send_reply("200", "OK");
> >                break;
> >        };
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+
> >        # Marcamos las llamadas para accounting
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+
> >
> >        setflag(1);
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+
> >        # Test para clientes NATeados
> >        # 
> >        # 1 : Chequea si el cliente tiene IP privada en el 
> campo Contact.
> >        # 2 : Chequea si el cliente se contacto con una IP 
> distinta a la del
> >campo VIA. 
> >        # 3 : Chequea si el cliente tiene IP privada en el 
> ultimo campo VIA.
> >        #
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+
> >
> >
> >        if (client_nat_test("3")) {
> >                log(1, "NAT: Requerimiento de IP privada --> 
> fixed contact
> >(en rutina principal)\n");
> >                setflag(5);
> >                force_rport();
> >
> >                if (method=="REGISTER") {
> >                        fix_nated_contact();
> >                } else { 
> >                        fix_contact();
> >                };
> >                append_hf("P-hint: fixed NAT contact for 
> request\r\n");
> >        };
> >
> >
> >        if (uri==myself) {
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++
> >                # Chequeo de REGISTRO para equipos del dominio 1
> >                # Dominio Voiss : sip.mydomain.com
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++
> >
> >                if (method=="REGISTER" && 
> uri=~"^sip:.*sip.mydomain.com") {
> >                        # Challenge/Response 
> >                        if ( 
> !radius_www_authorize("sip.mydomain.com")) {
> >                                
> www_challenge("sip.mydomain.com", "1");
> >                                break;
> >                        };
> >
> >                        # Mandamos un mensaje de Log si es 
> que un cliente
> >NATEADO se registro.
> >                        if (isflagset(5))  {
> >                                log(1, "NAT: Cliente 
> NAT'eado registrado
> >(dentro del chequeo de REGISTER)\n");
> >                        };
> >
> >                        save("location");
> >                        break;
> >                }; # Fin chequeo de Registro para Dominio : 
> sip.mydomain.com
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++
> >                # Chequeo de REGISTRO para equipos del dominio 2
> >                # Dominio Mayoristas : sip2.mydomain.net
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++
> >
> >                if (method=="REGISTER" && 
> uri=~"^sip:.*sip2.mydomain.net") {
> >                        # Challenge/Response
> >                        if ( 
> !radius_www_authorize("sip2.mydomain.net")) {
> >                                
> www_challenge("sip2.mydomain.net", "1");
> >                                break;
> >                        };
> >
> >                        # Mandamos un mensaje de Log si es 
> que un cliente
> >NATEADO se registro.
> >                        if (isflagset(5))  {
> >                                log(1, "NAT: Cliente 
> NAT'eado registrado
> >(dentro del chequeo de REGISTER)\n");
> >                        };
> >
> >                        save("location");
> >                        break;
> >                }; # Fin chequeo de Registro para Dominio :
> >sip2.mydomain.net
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++
> >                # CHEQUEO DEL INVITE PARA TODAS LAS LLAMADAS 
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++
> >
> >                if (method=="INVITE" && src_ip!=xx.xx.xx.xx) {
> >                        if ( !radius_proxy_authorize("")) {
> >                                proxy_challenge("", "1");
> >                                log (1, "LOG: Llamada no 
> AUTORIZADA\n");
> >                                break;
> >                        };
> >                };
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++++
> >                # Llamadas hacia dominio H.323 
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++++
> >
> >                if ( (uri=~"^sip:717.*@.*") | 
> (uri=~"^sip:707.*@.*") |
> >(uri=~"^sip:777.*@.*") | (uri=~"^sip:333.*@.*") | (uri=~"^sip
> >:0.*@.*") ){
> >                        log(1,"FORWARDING : Llamada hacia plataforma
> >H.323\n");
> >                        route(1);
> >                        break;
> >                };
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++
> >                # Llamadas SIP locales
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++
> >
> >                if (!lookup("location")) { #Usuarios que no estan en
> >"location" database.
> >                        route(4);
> >                        break;
> >                };
> >
> >
> >                setflag(3);
> >
> >
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++
> >                # Manejo para llamadas NAT'das
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++
> >
> >                if (method=="INVITE") {
> >                        log(1, "ROUTING: Reply processing 
> (online user)
> >enabled to handle NAT'd resonses\n");
> >                        t_on_reply("1");
> >                                if ( (isflagset(5)) && 
> (method=="INVITE" ||
> >method=="ACK") )  {
> >                                        log(1, "NAT: Invite 
> received -->
> >enabling media proxy (else del lookup 2do if)\n");
> >                                        use_media_proxy();
> >                                        append_hf("P-hint: 
> request forced to
> >media proxy\r\n");
> >                                };
> >                };
> >
> >                # Do it ? (Ricardo Martinez)
> >        };
> >
> >        append_hf("P-hint: USRLOC\r\n");
> >
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++
> >        # Efectuamos la llamada
> > 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++
> >
> >        if (!t_relay()) {
> >                sl_reply_error();
> >                break;
> >        };
> >
> >} /* end of initial routing logic */
> >
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++++++++++++
> >#   COMIENZO DE LA SECCION DE RUTAS
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++++++++++++
> >
> >
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >++++++++++++++++++
> >#   Route 1 : Llamadas con destino plataforma
> >H.323#+++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++++++++++++++++++++
> >route[1] 
> >{
> >        # send it out now; use stateful forwarding as it 
> works reliably
> >        # even for UDP2TCP
> >
> >        # Esta NATEADO?
> >        if (isflagset(5))  {
> >                log(1, "NAT: At least one participant NAT'd 
> --> enable reply
> >processing (hacia GW)\n");
> >                t_on_reply("1");
> >                if (method=="INVITE")  {
> >                        log(1, "NAT: Invite received --> 
> enabling proxied
> >media session (hacia GW)\n");
> >                        setflag(1);
> >                        use_media_proxy();
> >                };                      
> >        };
> >
> >        rewritehostport("mygw.mydomain.com:5060");
> >        append_hf("P-hint: GATEWAY\r\n");
> >        
> >        if (!t_relay()) {
> >                sl_reply_error();
> >                break;
> >        };
> >        
> >}
> >
> >
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++++++++++++++
> >#  Route 4 : Llamadas a usuarios Off-line 
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++++++++++++++
> >
> >route[4] {
> >
> >        if (!t_newtran()) {
> >                sl_reply_error();
> >        };
> >
> >        if (!t_reply("404", "Not Found IT!")) {
> >                sl_reply_error();
> >        };
> >        break;
> >}
> >
> >
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++++++++++++++
> ># On Reply Route 1 : Equipos NATeados!!
> >#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +++++++++++++++
> >+++++++++++++++++
> >
> >onreply_route[1] {
> >        if ((isflagset(5) || client_nat_test("3")) &&
> >(status=~"(180)|(183)|2[0-9][0-9]")) {
> >                if (!search("^Content-Length:\ 0")) {
> >                        use_media_proxy();
> >                };
> >        };
> >        
> >        if (client_nat_test("1")) {
> >                fix_nated_contact();
> >        };
> >
> >
> >}
> >
> >
> >
> >
> >Ricardo Martinez.-
> >
> >_______________________________________________
> >Serusers mailing list
> >serusers at lists.iptel.org
> >http://lists.iptel.org/mailman/listinfo/serusers
> 
> --
> Jiri Kuthan            http://iptel.org/~jiri/ 
> 




More information about the sr-users mailing list