Foro VoIP - Voz sobre IP - Asterisk y SER - SIP IAX y H.323

3CX VoIP- Centralita telefonica (PBX) para Windows
3CX Centralita Telefónica para Windows
Descarga versión gratuita

BUSCAR

  • Protocolos VoIP
  •    

  • Teléfonos
  •    

  • QoS (Quality of Service)
  •    

  • Codecs
  •    

  • Asterisk
  •    

  • Centralita 3CX
  •    

  • SER (Sip Express Router)
  •    

  • Utilidades
  •    

     

      SER (SIP Express Router)  

     
        Introducción   SER vs Asterisk   Instalación básica   Instalación FreeBSD   Instalación con MySQL   Solución problemas    
     

     
    Instalación de SER (Sip Express Router) con soporte de MYSQL

    Ahora vamos a instalar SER (SIP express Router) con soporte para MYSQL. Suponemos que tenemos instalado correctamente MYSQL en la máquina. Además hemos seguido los pasos de la instalación básica en Linux o FreeBSD de los apartados anteriores y tenemos instalado SER en su configuración básica.

    Instalación:

    1) Ejecutar script ser_mysql.sh

    MUY IMPORTANTE: Necesitamos para ejecutar el script registrarnos como root en el sistema. Pero no vale con hacer un simple "sudo". Es indispensable logearse como root. En caso contrario nos dará un error de tipo
    "/usr/local/sbin/ser_mysql.sh : line 160: gen_ha1 command not found HA1 calculation failed."

    # /usr/local/sbin/ser_mysql.sh create

    A continuación nos pide:

    MySQL Password for root: password de root para MySQL
    Domain for the defaul user 'admin' : localhost (u otros si hemos especificado otro)
    Enter password: lo dejamos vacio y pulsamos Enter. Cogera el password por defecto

    2 ) Modificar fichero ser.cfg

    Hasta ahora no habiamos hablado del fichero ser.cfgEs el fichero de configuración básico del servidor SER y del que iremos hablando en los próximos apartados.

    Este fichero está situado en /usr/local/etc/ser/

    Para poder utilizar mysql debemos modificar el fichero ser.cfg de la siguiente manera: Hay que descomentar varias líneas. Marcamos en negrita las líneas afectadas:

    #
    # $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
    #
    # simple quick-start config script
    #

    # ----------- global configuration parameters ------------------------

    #debug=3 # debug level (cmd line: -dddddddddd)
    #fork=yes
    #log_stderror=no # (cmd line: -E)

    /* Uncomment these lines to enter debugging mode
    fork=no
    log_stderror=yes
    */

    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"

    # ------------------ 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"

    # Uncomment this if you want digest authentication
    # mysql.so must be loaded !
    loadmodule "/usr/local/lib/ser/modules/auth.so"
    loadmodule "/usr/local/lib/ser/modules/auth_db.so"

    # ----------------- setting module-specific parameters ---------------

    # -- usrloc params --

    #modparam("usrloc", "db_mode", 0)

    # Uncomment this if you want to use SQL database
    # for persistent storage and comment the previous line
    modparam("usrloc", "db_mode", 2)

    # -- auth params --
    # Uncomment if you are using auth module
    #
    modparam("auth_db", "calculate_ha1", yes)
    #
    # If you set "calculate_ha1" parameter to yes (which true in this config),
    # uncomment also the following parameter)
    #
    modparam("auth_db", "password_column", "password")

    # -- rr params --
    # add value to ;lr param to make some broken UAs happy
    modparam("rr", "enable_full_lr", 1)

    # SQL settings

    #El nombre de la base de datos es "ser" por defecto. dbhost puede ser "localhost"
    modparam("usrloc", "db_url","mysql://mysqluser:mysqlpassword@dbhost/dbname")
    modparam("auth_db", "db_url","mysql://mysqluser:mysqlpassword@dbhost/dbname")



     route{
     
             # 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;
             };
     
             # we record-route all messages — to make sure that
             # subsequent messages will go through our proxy; that's
             # particularly good if upstream and downstream entities
             # use different transport protocol
             record_route();
             # loose-route processing
             if (loose_route()) {
                     t_relay();
                     break;
             };
     
             # if the request is for other domain use UsrLoc
             # (in case, it does not work, use the following command
             # with proper names and addresses in it)
             if (uri==myself) {
     
                     if (method=="REGISTER") {
     
     # Uncomment this if you want to use digest authentication
                             if (!www_authorize("localhost", "subscriber")) {
                                     www_challenge("localhost", "0");
                                     break;
                             };
     
                             save("location");
                             break;
                     };
     
                     lookup("aliases");
     
                     # native SIP destinations are handled using our USRLOC DB
                     if (!lookup("location")) {
                             sl_send_reply("404", "Not Found");
                             break;
                     };
             };
             # forward to current uri now; use stateful forwarding; that
             # works reliably even if we forward from TCP to UDP
             if (!t_relay()) {
                     sl_reply_error();
             };
     
     }

    3) Algunos comentarios sobre los cambios anteriores

    - El puerto por defecto del servidor SER es el 5060 (mismo que el de Asterisk) Podemos modificarlo en la línea

    #port=5061 ( y de esta manera escuchará en el puert 5061)

    - las líneas añadidas

    modparam("usrloc", "db_url","mysql://user:password@localhost/ser")
    modparam("auth_db", "db_url","mysql://user:password@localhost/ser")

    son para versiones superiores a la 0.9.3. En caso de versiones inferiores quedarían:

    modparam("usrloc", "db_url","sql://user:password@localhost/ser")
    modparam("auth_db", "db_url","sql://user:password@localhost/ser")

    4) Rearrancar el servidor SER

    # /usr/local/sbin/serctl restart

    Recordar volver a exportar la variable SIP_DOMAIN si no lo habeís hecho antes o habéis apagado la máquina

    # export SIP_DOMAIN="localhost"

    5) Configurar un softphone para comprobar

    En este caso es necesario ya proporcionar un nombre de usuario y una contraseña:

    El nombre de usuario por defecto es "admin" y la contraseña "heslo"

    6) Añadir un nuevo usuario de prueba

    # /usr/local/sbin/serctl add <name> <password> <email>

    Si os pide una contraseña para poder añadir será "heslo" y si os sale un error del tipo "/usr/local/sbin/ser_mysql.sh : line 160: gen_ha1 command not found HA1 calculation failed." Será indispensable logearse como root en el sistema linux (no vale sudo)

    Podéis comprobar si el nuevo usuario creado puede registrarse en el servidor SER en vuestro softphone

    7) Añadir una linea al fichero de mysql

    Esto no es estrictamente necesario pero si recomendable. Para que el servidor SER pueda manejar multiples conexiones a la base de datos debemos añadir la siguiente línea al archivo my.cnf de MySQL en el apartado [mysqld]

    max_connections = 500

    * En principio ya tenemos nuestro servidor SER (SIP Express Router) instalado con MySQL. Esta parte era más díficil. Si habéis tenido problemas podéis consultar la forma de descubrirlos en solucion de problemas ser. Pasemos a a aprender como descubrir errores y poder monitorizar el servidor SER.

     

     
     
     
    English   |   Acerca de    |   Contacto   |   Colaborar   |   Publicidad