Duda con respecto al uso de Asterisk Realtime & ODBC

237 views
Skip to first unread message

Miguel Alberto Sanz Pardo

unread,
Nov 23, 2015, 1:25:04 PM11/23/15
to asterisk-es
Hola buenas tardes,


Estoy tratando de configurar el voicemail mediante Realtime y me surgía una duda con respecto a ODBC y Mysql.

En primer lugar he creado una DB con MySQL llamada asteriskrealtime, la cuál tiene una tabla llamada voicemail_users.

Por otra parte ésta es mi configuración actual con respecto a Asterisk,ODBC y MySQL:

odbcinst.ini:
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1


odbc.ini:
[MySQL-asteriskrealtime]
Description=MySQL connection to 'asteriskrealtime' database
driver=MySQL
server=localhost
database=asteriskrealtime
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=3


res_odbc.conf:
[asteriskrealtime]
enabled=>yes
dsn=>MySQL-asteriskrealtime
pooling=>no
limit=>1
pre-connect=>yes
username=>root
password=>XXXX

res_config_mysql:
[general]
dbhost = 127.0.0.1
dbname = asteriskrealtime
dbuser = root
dbpass = XXXX
dbport = 3306
dbsock = /tmp/mysql.sock

extconfig.conf:
voicemail => odbc,general,voicemail_users


Si desde el CLI ejecuto:

*CLI> odbc show asteriskrealtime

ODBC DSN Settings
-----------------

  Name:   asteriskrealtime
  DSN:    MySQL-asteriskrealtime
    Last connection attempt: 1970-01-01 01:00:00
  Pooled: No
  Connected: Yes

Puedo ver que la conexión odbc en principio parece estar funcionando.

*CLI> realtime mysql status
general connected to asterisk...@127.0.0.1, port 3306 with username root for 6 minutes.

En principio parece que hay conexión con MySQL


Si pongo en el extconfig.conf algo de este estilo
voicemail => odbc,asteriskrealtime,voicemail_users
al hacer un realtime mysql status no hay respuesta

Sin embargo si en el extconfig.conf pongo algo de este estilo
voicemail => odbc,general,voicemail_users
si que hay respuesta



Según he leído, a la hora de definir una entrada en extconfig.conf debe ser de esta manera:

<nombre_modulo_convertible> => <tipo_driver>,<nombre_recurso_bbdd>,<nombre_tabla>


En tal caso, ¿No debería de definir algo del estilo voicemail => odbc,asteriskrealtime,voicemail_users? 



un saludo y gracias por vuestras respuestas

Miguel Sanz



Rodrigo Ramírez Norambuena

unread,
Nov 23, 2015, 2:38:16 PM11/23/15
to aster...@googlegroups.com
November 23 2015 3:25 PM, "Miguel Alberto Sanz Pardo" <miguels...@gmail.com> wrote:

> En principio parece que hay conexión con MySQL
>
> Si pongo en el extconfig.conf algo de este estilo
> voicemail => odbc,asteriskrealtime,voicemail_users
> al hacer un realtime mysql status no hay respuesta
>
> Sin embargo si en el extconfig.conf pongo algo de este estilo
> voicemail => odbc,general,voicemail_users
> si que hay respuesta
>
> Según he leído, a la hora de definir una entrada en extconfig.conf debe ser de esta manera:
>
> <nombre_modulo_convertible> => <tipo_driver>,<nombre_recurso_bbdd>,<nombre_tabla>

Es que en caso que mencionas el extconfig está definido para los res_config_*

En tu caso la configuración debería ser
voicemail => mysql,general,voicemail_users

Mira lo siguiente
https://github.com/asterisk/asterisk/blob/11/configs/extconfig.conf.sample#L64


Saludos,
--
Rodrigo Ramírez Norambuena
http://www.rodrigoramirez.com

Miguel Alberto Sanz Pardo

unread,
Nov 23, 2015, 2:47:40 PM11/23/15
to asterisk-es
Hola Rodrigo gracias por la respuesta,

Entonces no existe la posibilidad de hacer funcionar el asterisk realtime con odbc conectado con MySQL?

Angel Elena

unread,
Nov 23, 2015, 4:20:15 PM11/23/15
to aster...@googlegroups.com
sí que sirve... como dijo jack el destripador.


si usas el amigo debian...

apt-get install unixodbc-dev libmyodbc unixodbc


ficheros a toquetear .....


/etc/odbc.ini

[asterisk]
Description = MySQL Asterisk
Driver = MySQL
Database = asterisk
Server = ip.del.server.mysql
User = miusuario
Password = misuperpassword
Port = 3306
Option = 3


/etc/odbcinst.conf

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1



/etc/odbcinst.ini

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

/etc/res_odbc.conf

;;; odbc setup file

; ENV is a global set of environmental variables that will get set.
; Note that all environmental variables can be seen by all connections,
; so you can't have different values for different connections.
[ENV]
[asterisk]
enabled => yes
dsn => asterisk
username => miusuario
password => misuperpassword
pre-connect => yes
sanitysql => select 1
idlecheck => 3600
connect_timeout => 10


/etc/extconfig.conf

;
; Static and realtime external configuration
; engine configuration
;
; See https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration
; for basic table formatting information.
;
[settings]
voicemail => odbc,asterisk,voiceboxes


Y gasssssssssssssss


para todo lo demás... mastercard





--------------------------------
Ángel Elena Medina _o)
cr...@craem.net / \\
http://blog.craem.net _(___V
@craem_
--------------------------------

-----Mensaje original-----
De: Miguel Alberto Sanz Pardo <miguels...@gmail.com>
Enviado: Lun 23-11-2015 20:48
Asunto: Re: [Asterisk-ES] Duda con respecto al uso de Asterisk Realtime & ODBC
Para: asterisk-es <aster...@googlegroups.com>;
> Hola Rodrigo gracias por la respuesta,
>
> Entonces no existe la posibilidad de hacer funcionar el asterisk realtime con
> odbc conectado con MySQL?
>
> --
> Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
> Normas de la lista Asterisk-ES:
> http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
> ---
> Has recibido este mensaje porque estás suscrito al grupo "asterisk-es" de
> Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía
> un correo electrónico a asterisk-es...@googlegroups.com.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> aster...@googlegroups.com.
> Visita este grupo en http://groups.google.com/group/asterisk-es.
> Para obtener más opciones, visita https://groups.google.com/d/optout.
>

Ramses

unread,
Nov 23, 2015, 5:44:24 PM11/23/15
to aster...@googlegroups.com
Hay sitios donde configura "odbcinst.ini" y otros donde configura "odbcinst.conf", y no sé si es por tema de versiones o tema de caprichos..., pero no he visto ningún sitio donde se configuren ambos ficheros...

¿Alguna aclaración de alguien al respecto?


Saludos y gracias,

Ramses

Miguel Alberto Sanz Pardo

unread,
Nov 24, 2015, 4:41:23 AM11/24/15
to asterisk-es
Muchas gracias por la aclaración Ángel,


No obstante sigo teniendo alguna otra duda,

1) En el extconfig.conf:

[settings] 
voicemail => odbc,asterisk,voiceboxes 

Ese parámetro asterisk entiendo que hace referencia a [asterisk] de /etc/res_odbc.conf ¿Verdad?
Puse nombres distintos a la DB, al campo de [ ] de /etc/odbc.ini y al campo de [ ] de /etc/res_odbc.conf para tratar de comprender como funcionaba el sistema, aunque sin duda si pongo los mismos nombres en todos los campos funcionará sin problemas. 

2) Para comprobar que mi ODBC-MySQL está funcionando de manera correcta con realtime entiendo que la forma más rápida de ver el correcto funcionamiento es crear un mailbox desde MYSQL y ver desde consola que se ha reflejado el cambio.

No obstante desde el CLI de Asterisk ¿hay alguna forma de ver si hay conexión con la base de datos a través de ODBC?

Usando MYSQL la forma de verlo es a través del comando: realtime mysql status, pero ¿para ver lo mismo con ODBC?

3) Por cierto, si uso res_odbc.conf entiendo que ya no necesitaría usar res_config_mysql ¿Verdad?


PD: Os comparto esta entrada a esta web, ya que me ha parecido muy interesante también http://nalvarhu.blogspot.com.es/2012/03/odbc-connector.html


un saludo

Miguel Sanz

Miguel Alberto Sanz Pardo

unread,
Nov 24, 2015, 6:59:41 AM11/24/15
to asterisk-es
Me respondo a mí mismo tras haber hecho las pruebas:

1) Si no me confundo, sí.

2) Comprobado que funciona de manera correcta. Al crear un user desde mysql y hacer un:  voicemail show users for default parece que se ha actualizado en tiempo real sin problemas. No aprece que exista un comando del estilo "realtime odbc status"

3) No parece que haga falta usar res_config_mysql.conf (res_config_mysql.so) si ya estamos usando de forma correcta res_odbc.conf( res_config_odbc.so y res_odbc.so)  y somos capaces de acceder mediante ODBC a la DB de mysql



un saludo y gracias por todo ;)


PD: Adjunto un .ppt interesante del Astricon 2013 que también tiene que ver con bases de datos http://es.slideshare.net/priofra/20131010-pres002-slideshare

Rodrigo Ramírez Norambuena

unread,
Nov 24, 2015, 12:11:20 PM11/24/15
to aster...@googlegroups.com
> Hay sitios donde configura "odbcinst.ini" y otros donde configura "odbcinst.conf", y no sé si es
> por tema de versiones o tema de caprichos..., pero no he visto ningún sitio donde se configuren
> ambos ficheros...
>
> ¿Alguna aclaración de alguien al respecto?
>


El debe valer es odbcinst.ini, es lo que dice en la documentación y en el source de UnixOdbc.
Una pequeña busqueda http://pastebin.com/kD5Um469


Seguramente quien configura el .conf debe ser una versión modificada o un desliz

Rodrigo Ramírez Norambuena

unread,
Nov 24, 2015, 7:31:14 PM11/24/15
to aster...@googlegroups.com
November 24 2015 8:59 AM, "Miguel Alberto Sanz Pardo" <miguels...@gmail.com> wrote:
> Me respondo a mí mismo tras haber hecho las pruebas:
>
> 2) Comprobado que funciona de manera correcta. Al crear un user desde mysql y hacer un: voicemail
> show users for default parece que se ha actualizado en tiempo real sin problemas. No aprece que
> exista un comando del estilo "realtime odbc status"


No, no está implementado el "realtime show odbc status"


> 3) No parece que haga falta usar res_config_mysql.conf (res_config_mysql.so) si ya estamos usando
> de forma correcta res_odbc.conf( res_config_odbc.so y res_odbc.so) y somos capaces de acceder
> mediante ODBC a la DB de mysql

Tienes razón.


> un saludo y gracias por todo ;)


Saludos,

Ramses II

unread,
Dec 2, 2015, 8:15:32 AM12/2/15
to aster...@googlegroups.com

Miguel, buenos días,

 

¿Al final cómo has dejado configurados los ficheros “odbc.ini”, “odbcinst.ini”, “res_odbc.conf” y “extconfig.conf”?

 

 

Saludos,

 

Ramses

 

--

Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
Normas de la lista Asterisk-ES: http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
---
Has recibido este mensaje porque estás suscrito al grupo "asterisk-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a asterisk-es...@googlegroups.com.

Para publicar en este grupo, envía un correo electrónico a aster...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

Miguel Alberto Sanz Pardo

unread,
Dec 2, 2015, 1:06:54 PM12/2/15
to asterisk-es
Mañana cuando tenga algo de tiempo escribo la configuración que estoy usando que ahora no estoy en el trabajo


un saludo

Miguel Sanz

Miguel Alberto Sanz Pardo

unread,
Dec 3, 2015, 11:49:33 AM12/3/15
to asterisk-es
odbcinst.ini:
# Example driver definitions

# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbc.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbc.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1


# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1



odbc.ini:
[MySQL-asteriskrealtime]
Description=MySQL connection to 'asteriskrealtime' database
Driver=MySQL
Server=localhost
User = asterisk
Password = mipass
Database=asteriskrealtime
Port=3306
Socket=/var/lib/mysql/mysql.sock
Option=3


res_odbc.conf
[asteriskrealtime]
enabled=>yes
dsn=>MySQL-asteriskrealtime
pooling=>no
limit=>1
pre-connect=>yes
username=>asterisk
password=>mipass


extconfig.conf
[settings]
voicemail => odbc,asteriskrealtime,voicemail_users

Reply all
Reply to author
Forward
0 new messages