Cursos Asterisk en México

[RESUELTO] Asterisk 1.4.42 registros de llamdas MYSQL

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • [RESUELTO] Asterisk 1.4.42 registros de llamdas MYSQL

    Hola que tal a todos,

    Tengo mi asterisk en funcionamiento al 100%, el detalle esta en que ahora quiero un historial de todas las llamadas que mis extensiones han realizado y que se agreguen a una bd de mysql y yo entrar desde phpmyadmin y ver el hostrorial de marcacion.
    lo que quiero ver es lo mas básico

    EXTENSION
    NUMERO_MARCADO
    DURACIÓN
    FECHA
    HORA

    Gracias por su tiempo.

  • #2
    Habilita y configura el módulo de cdr_mysql.so, se configura con e archivo cdr_mysql.conf y la tabla la debes encontrar en el directorio contrib del tarball del código fuente de asterisk.

    Comentario


    • #3
      hice una llamda y me sale esto en el debug

      > cdr_odbc: Error SQLConnect -1
      > cdr_odbc: Query FAILED Call not logged!

      Comentario


      • #4
        ok investigue un poquito y al parecer no los tengo instalados seguiré buscando, alguien tendrá algún manual mas extenso de donde me pueda guiar gracias.

        Comentario


        • #5
          ya encontre los addons
          pero no me deja instalarlos

          ****************************************
          Asterisk-addons Module Selection
          ****************************************

          Press 'h' for help.

          1. Applications
          ---> 2. Call Detail Recording
          3. Channel Drivers
          4. Format Interpreters
          5. Resource Modules



          ****************************************
          Asterisk-addons Module Selection
          ****************************************

          Press 'h' for help.

          XXX 1. cdr_addon_mysql



          MySQL CDR Backend
          Depends on: mysqlclient(E)

          Comentario


          • #6
            si instalaste mysql en tu servidor? ahi dice "Depends on: mysqlclient"
            Hector Alvarez
            dCAP Certified #2199
            http://mx.linkedin.com/in/alvarezhector/

            Comentario


            • #7
              Y la guía aquí www.asteriskdocs.org

              Comentario


              • #8
                Hola gracias por sus aportaciones ya los pude instalar

                pero ahora falta la conexión me fui a res_odbc.conf

                [ENV]
                ;INFORMIXSERVER => my_special_database
                ;INFORMIXDIR => /opt/informix


                [asterisk]
                enabled => yes
                dsn => localhost
                username => root
                password => clave
                pooling => no
                limit => 0
                pre-connect => yes


                ;[mysql2]
                ;enabled => no
                ;dsn => MySQL-asterisk
                ;username => myuser
                ;password => mypass
                ;pre-connect => yes

                ;[sqlserver]
                ;enabled => no
                ;dsn => mickeysoft
                ;pooling => yes
                ;limit => 5
                ;username => oscar
                ;password => thegrouch
                ;pre-connect => yes
                ;backslash_is_escape => no

                le agregue esto, y en la consola CLI hago odbc show y me aparece

                Name: asterisk
                DSN: localhost

                y me salen estos errores

                [Nov 1 12:00:01] NOTICE[2461]: res_odbc.c:531 odbc_obj_connect: Connecting asterisk
                [Nov 1 12:00:01] WARNING[2461]: res_odbc.c:556 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
                [Nov 1 12:00:01] WARNING[2461]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                [Nov 1 12:00:01] WARNING[2461]: app_voicemail.c:3962 inboxcount: Failed to obtain database object for 'asterisk'!


                necesito modificar algun otro archivo?


                recarge el modulo res_odbc.so

                asteriskser*CLI> module reload res_odbc.so
                -- Reloading module 'res_odbc' (ODBC Resource)
                == Parsing '/etc/asterisk/res_odbc.conf': Found
                [Nov 1 12:00:44] WARNING[2761]: res_odbc.c:612 reload: Limit should be a number, not a boolean: '0'. Disabling ODBC class 'asterisk'.
                [Nov 1 12:00:45] NOTICE[2461]: res_odbc.c:531 odbc_obj_connect: Connecting asterisk
                [Nov 1 12:00:45] WARNING[2461]: res_odbc.c:556 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
                [Nov 1 12:00:45] WARNING[2461]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                [Nov 1 12:00:45] WARNING[2461]: app_voicemail.c:3962 inboxcount: Failed to obtain database object for 'asterisk'!


                que puedo hacer para que la conexión este lista, Gracias.

                Comentario


                • #9
                  en /etc/odbc.ini debe estar creado el dsn "localhost" que estas indicando en tu res_odbc.conf
                  tambien modifica el limit en vez de 0 pon un número mayor
                  Hector Alvarez
                  dCAP Certified #2199
                  http://mx.linkedin.com/in/alvarezhector/

                  Comentario


                  • #10
                    Hola gracias,

                    tengo que crear ese archivo porque no me aparece.

                    esto es lo que tengo en /etc/asterisk

                    adsi.conf amd.conf cdr_manager.conf chan_dahdi.conf extconfig.conf festival.conf http.conf logger.conf modules.conf osp.conf res_mysql.conf rtp.conf skinny.conf users.conf
                    adtranvofr.conf asterisk.adsi cdr_mysql.conf codecs.conf extensions.ael followme.conf iax.conf manager.conf musiconhold.conf oss.conf res_odbc.conf say.conf sla.conf voicemail.conf
                    agents.conf asterisk.conf cdr_odbc.conf dnsmgr.conf extensions.conf func_odbc.conf iaxprov.conf meetme.conf muted.conf phone.conf res_pgsql.conf sip.conf smdi.conf voicemail.conf~
                    alarmreceiver.conf cdr.conf cdr_pgsql.conf dundi.conf extensions.conf~ gtalk.conf indications.conf mgcp.conf mysql.conf privacy.conf res_snmp.conf sip.conf~ telcordia-1.adsi vpb.conf
                    alsa.conf cdr_custom.conf cdr_tds.conf enum.conf features.conf h323.conf jabber.conf misdn.conf ooh323.conf queues.conf rpt.conf sip_notify.conf udptl.conf

                    en /usr/lib/asterisk/modules
                    app_addon_sql_mysql.so app_saycountpl.so cdr_addon_mysql.so chan_ooh323.so format_mp3.so res_config_mysql.so

                    que modulo me faltaria de instalar para que se me pueda crear el odbc-connection, tengo XUBUNTU 13.04, Gracias.

                    Comentario


                    • #11
                      No recuerdo si en esa version existe el odbc, lo mejor es que uses directamente el addon de mysql. Configurandolo con cdr_mysql.conf

                      Comentario


                      • #12
                        en ese archivo tengo esto

                        [global]
                        hostname=localhost
                        dbname=call
                        table=cdr
                        password=009042
                        user=root
                        port=3306
                        sock=/tmp/mysql.sock
                        userfield=1


                        cambie la base de datos por call y cuando abro CLI me aparece

                        asteriskser*CLI> module reload res_odbc.so
                        -- Reloading module 'res_odbc' (ODBC Resource)
                        == Parsing '/etc/asterisk/res_odbc.conf': Found
                        [Nov 1 14:38:14] NOTICE[2667]: res_odbc.c:593 reload: Adding ENV var: INFORMIXS ERVER=call
                        [Nov 1 14:38:14] NOTICE[2667]: res_odbc.c:593 reload: Adding ENV var: INFORMIXD IR=/opt/informix
                        [Nov 1 14:38:14] NOTICE[2667]: res_odbc.c:688 reload: Refreshing ODBC class 'as terisk' dsn->[localhost]
                        [Nov 1 14:38:14] NOTICE[2652]: res_odbc.c:531 odbc_obj_connect: Connecting aste risk
                        [Nov 1 14:38:14] WARNING[2652]: res_odbc.c:556 odbc_obj_connect: res_odbc: Erro r SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, an d no default driver specified
                        [Nov 1 14:38:14] WARNING[2652]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                        [Nov 1 14:38:14] WARNING[2652]: app_voicemail.c:3962 inboxcount: Failed to obta in database object for 'asterisk'!
                        asteriskser*CLI> odbc show
                        Name: asterisk
                        DSN: localhost

                        [Nov 1 14:38:25] NOTICE[2652]: res_odbc.c:531 odbc_obj_connect: Connecting asterisk
                        [Nov 1 14:38:25] WARNING[2652]: res_odbc.c:556 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
                        [Nov 1 14:38:25] WARNING[2652]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                        [Nov 1 14:38:25] WARNING[2652]: app_voicemail.c:3962 inboxcount: Failed to obtain database object for 'asterisk'!
                        [Nov 1 14:38:36] NOTICE[2652]: res_odbc.c:531 odbc_obj_connect: Connecting asterisk
                        [Nov 1 14:38:36] WARNING[2652]: res_odbc.c:556 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
                        [Nov 1 14:38:36] WARNING[2652]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                        [Nov 1 14:38:36] WARNING[2652]: app_voicemail.c:3962 inboxcount: Failed to obtain database object for 'asterisk'!
                        [Nov 1 14:38:47] NOTICE[2652]: res_odbc.c:531 odbc_obj_connect: Connecting asterisk
                        [Nov 1 14:38:47] WARNING[2652]: res_odbc.c:556 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
                        [Nov 1 14:38:47] WARNING[2652]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                        [Nov 1 14:38:47] WARNING[2652]: app_voicemail.c:3962 inboxcount: Failed to obtain database object for 'asterisk'!
                        [Nov 1 14:38:58] NOTICE[2652]: res_odbc.c:531 odbc_obj_connect: Connecting asterisk
                        [Nov 1 14:38:58] WARNING[2652]: res_odbc.c:556 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
                        [Nov 1 14:38:58] WARNING[2652]: res_odbc.c:461 ast_odbc_request_obj: Failed to connect to asterisk
                        [Nov 1 14:38:58] WARNING[2652]: app_voicemail.c:3962 inboxcount: Failed to obtain database object for 'asterisk'!

                        Comentario


                        • #13
                          aqui checa como crear el ODBC.. crealo con el nombre "localhost" que es el que pusiste en tu configuracion de asterisk
                          Hector Alvarez
                          dCAP Certified #2199
                          http://mx.linkedin.com/in/alvarezhector/

                          Comentario


                          • #14
                            Buenas noticias ya me funciono lo unico que hice fue seguir esta guia
                            Ya hay muchas personas que utilizan a diario una computadora con un sistema operativo Linux instalado. Muchos optan para Ubuntu Desktop por ser de fácil instalación y con muchos programas disponibles. No es mala idea instalar en el mismo computador Asterisk y dotarlo de uno o más Gateway GSM para las llamadas a celulares. De esta forma cuando estamos sentados delante de


                            tube que instalar esto.
                            sudo apt-get install libogg-dev libvorbis-dev
                            sudo apt-get install libcurl3 libcurl3-dev
                            sudo apt-get install bison flex wget subversion ncurses-dev gcc make zlib-bin g++ gawk libnewt-dev autoconf automake
                            sudo apt-get install mysql-server mysql-client mysql-admin libmysqlclient-dev
                            sudo apt-get install unixodbc-dev unixodbc libltdl7 libltdl7-dev libmyodbc
                            sudo apt-get install festival festival-dev festvox-ellpc11k

                            y configurar esto

                            mysql -u root -p

                            mysql> create database asteriskcdr;
                            Query OK, 1 row affected (0.00 sec)

                            mysql> use asteriskcdr
                            Database changed

                            mysql> CREATE TABLE cdr (
                            calldate datetime NOT NULL default '0000-00-00 00:00:00',
                            clid varchar(80) NOT NULL default '',
                            src varchar(80) NOT NULL default '',
                            dst varchar(80) NOT NULL default '',
                            dcontext varchar(80) NOT NULL default '',
                            channel varchar(80) NOT NULL default '',
                            dstchannel varchar(80) NOT NULL default '',
                            lastapp varchar(80) NOT NULL default '',
                            lastdata varchar(80) NOT NULL default '',
                            duration int(11) NOT NULL default '0',
                            billsec int(11) NOT NULL default '0',
                            disposition varchar(45) NOT NULL default '',
                            amaflags int(11) NOT NULL default '0',
                            accountcode varchar(20) NOT NULL default '',
                            uniqueid varchar(32) NOT NULL default '',
                            userfield varchar(255) NOT NULL default ''
                            );
                            Query OK, 0 rows affected (0.14 sec

                            mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'localhost' IDENTIFIED BY 'sesamo';
                            Query OK, 0 rows affected (0.01 sec)

                            mysql> GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'%' IDENTIFIED BY 'sesamo';
                            Query OK, 0 rows affected (0.00 sec)

                            mysql> flush privileges;
                            Query OK, 0 rows affected (0.00 sec)

                            mysql> quit
                            Bye

                            Modificamos el archivo de configuración del modulo que se hace cargo de conectarse a la base de datos y guardar los registros de las llamadas:

                            sudo nano /etc/asterisk/cdr_mysql.conf

                            añadimos/modificamos las siguientes líneas:

                            [global]
                            hostname=localhost
                            dbname=asteriskcdr
                            table=cdr
                            password=sesamo
                            user=asterisk
                            port=3306
                            sock=/var/run/mysqld/mysqld.sock

                            Guardamos los cambios.

                            Iniciamos Asterisk:

                            sudo service asterisk start

                            Entramos en la consola:

                            sudo asterisk –rvvvvvvvvvvvvv

                            verificamos que haya conexión a la base de datos:

                            CLI> cdr mysql status
                            Connected to asteriskcdr@localhost, port 3306 using table cdr for 3 minutes, 52 seconds.
                            Wrote 0 records since last restart.

                            Salimos de la consola:

                            CLI> quit
                            Executing last minute cleanups

                            Gracias por su aporte espero y esto les sirva a futuras generaciones.

                            Comentario

                            Principales Usuarios Activos

                            Colapsar

                            No hay usuarios activos superiores.
                            Trabajando...
                            X