domingo, 21 de agosto de 2016

Instalar elastix V4 desde USB

Para poder instalar elastix 4 desde un pendrive debemos realizar los siguientes pasos: 

1 - Crear USB Boteable con Rufus 2.9
2 - Acceder al pendrive y localizar archivo isolinux.cfg, Editar preferentemente con Notepad++
3 - Localizar linea:
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS\x207\x20X8 inst.ks=cdrom:/dev/cdrom:/ks/anaconda-ks.cfg quiet

4 - Sustituir valores por los siguientes:
append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS\x207\x20X8 inst.ks=scsi:/dev/sdb1:/ks/anaconda-ks.cfg quiet

Con esto pude solucionar la creación del USB  y logré instalar sin inconveniente en mi entorno de prueba.
Espero por lo menos que con esto alguien más pueda evitar perder las horas de sueño que me tomó encontrar una posible solución a este tema.

viernes, 29 de julio de 2016

Cómo instalar y usar un servidor SVN en Linux

Después de un tiempo sin subir nada, voy a subir este instructivo que use y es muy bueno, le doy creditos a David (visiten su blog http://www.nosolocodigo.com/author/david )
Este blog es de información privada, que a mi me es útil y prefiero resguardar en caso que desaparezca la fuente original donde lo encontré

Instalando y configurando el servidor SVN

Para instalar el servidor es muy sencillo, simplemente nos accedemos al terminal de línea de comandos como root y ejecutamos lo siguiente:
yum install subversion

Deberemos asegurarnos previamente de que no tenemos la palabra “perl” en la línea de excludes del fichero yum.conf, si fuera así deberíamos de comentar la línea de exludes, guardar cambios y volver a ejecutar el comando.
Una vez se haya completado la instalación, dispondremos del servidor y el cliente de subversion instalados en nuestro sistema. Ahora deberemos de crear el directorio donde guardaremos nuestros repositorios de software, en mi caso voy a guardarlos en el directorio /root/repos, después crearemos nuestro primer repositorio.
mkdir /root/repos
svnadmin create /root/repos/nombre_repositorio

Siguiendo estos sencillos pasos ya disponemos de un repositorio creado, ahora vamos a ver como lanzar el servicio. Por defecto no se crea el script de inicialización que debería de almacenarse en /etc/init.d/subversion, por lo que tendremos que lanzar el servicio manualmente, para ello ejecutamos el siguiente comando:
mkdir /root/repos
svnserve -d -r /root/repos

Este comando lanzará el proceso que dejará el servidor subversion a la escucha en el puerto 3690. Para saber si está el proceso a la escucha podemos emplear el siguiente comando:
netstat -anp | grep svn

#La salida del comando debería ser algo así:
#
# tcp        0      0 :::3690                     :::*                        LISTEN      17911/svnserve  
#
#Vemos que hay un proceso con PID 17911 escuchando en el puerto 3690 del protocolo TCP.

Para parar el servicio, podemos proceder a matar el proceso con un “kill -9 PID”, en este caso, “kill -9 17911” .
Para realizar una importación inicial podemos ejecutar el siguiente comando:
mkdir /root/repos
svn import /home/david/software/miproyecto file:///root/repos/nombre_repositorio/ -m "Importacion inicial"

Este comando efectuará una importación inicial del directorio miproyecto al repositorio que acabamos de crear. Deberemos de tener el puerto 3690 abierto tanto en entrada como salida para poder usar el servidor y clientes de SVN respectivamente, podemos usar estos comandos:
iptables -A INPUT -p TCP --dport 3690 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 3690 -j ACCEPT

Ya tenemos nuestro servidor corriendo, vamos a ver como configurar los accesos al servidor. Si accedemos al directorio /root/repos/nombre_repositorio veremos que hay creados 3 ficheros: authz , passwd y svnserve.conf. Hacemos una copia de seguridad antes de editarlos por si acaso :)
Vamos al fichero svnserve.conf y dejamos los siguientes valores:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = Mi software

Como veis, hemos limitado el acceso a gente anonima, por lo que todo el mundo deberá de acceder con usuario y contraseña que ahora veremos como definir. Ahora vamos al fichero passwd y dejamos los siguientes valores para crear el usuario david, puede cambiar el nombre de usuario y pass por el que quieras, logicamente:
[users]
david = MiPasComplicado4758965

Por último editamos el fichero authz y lo dejamos como se muestra:
[groups]
# harry_and_sally = harry,sally

[nombre_repositorio:/]
david = rw

Como puedes ver, se pueden definir grupos. En este caso le damos acceso de lectura y escritura al usuario david. Guardamos los cambios y ya tenemos nuestro servidor SVN configurado. Ahora vamos a ver como usar el cliente de línea de comandos de una forma básica.

Usando el cliente de SVN

Nos vamos a un ordenador cualquiera y hacemos el checkout inicial, para ello navegamos en línea de comandos hasta el directorio donde queremos hacer el checkout y usamos el siguiente comando:
svn checkout --username david svn://miserver.com:3690/nombre_repositorio/

Nos pedira el password y descargará todo el código al directorio actual. Ahora vamos a ver un par de comandos básicos para añadir ficheros y actualizar nuestro código. Imaginar que queremos crear un nuevo directorio y dentro de este directorio queremos crear un fichero, pues accedemos al código y ejecutamos lo siguiente.
mkdir midir
cd midir
nano mificheronuevo.php
#Escribimos el contenido que necesitemos

#Añadimos un nuevo fichero
svn add midir mificheronuevo.php
svn commit -m "Comentarios del commit" midir mificheronuevo.php

Con este código creamos un nuevo directorio, dentro creamos un fichero, los añadimos al repositorio central de Subversion y ejecutamos el commit para subirlos al servidor.

Copias de seguridad de Subversion

Podemos hacer copias de seguridad de nuestro repositorio empleando el siguiente comando:
svnadmin dump /root/repos/nombre_repositorio > nombre_repositorio.svn_dump

Después podemos recuperarla fácilmente en otro servidor creando un nuevo respositorio y volcando el dump:
svnadmin create /root/repos/nombre_repositorio
svnadmin load /root/repos/nombre_repositorio < nombre_repositorio.svn_dump

Si investigas un poco más, verás como puedes hacer dumps solo de los cambios efectuados a partir de un número de revisión concreto y muchas cosas más. De momento, hasta aquí hemos llegado... Saludos!!

martes, 1 de marzo de 2016

Sincronizar Google contacts con vtiger contacts


7 pasos para habilitar la sincronización que Vtiger CRM con Google Calendar


Fue lanzado recientemente la versión 6.2 de Vtiger CRM y con ella el equipo VTiger anunció la reintroducción de la integración con el calendario y los contactos de Google, sin embargo, esta característica ha sido puesto en libertad con una serie de problemas, la prevención de su uso.
sin embargo, el equipo de Vtiger CRM, informaron que las correcciones en el problema sólo se integrarían en la próxima versión 6.3. Si no tiene intención de esperar a la próxima versión y desea utilizar esta característica inmediatamente, debe aplicar un parche de corrección.
En este artículo presentamos un paso a paso con las directrices para la aplicación de estas correcciones y otros procedimientos necesarios.
Este tutorial está basado en la solución de Richard Hills, miembro de Foro de Desarrolladores de Vtiger CRM , que es responsable aquí nuestro agradecimiento especial por su esfuerzo y cooperación.
PRECAUCIÓN: Antes de realizar el procedimiento siguiente, es muy aconsejable llevar a cabo carpeta de respaldo que se instala Vtiger CRM y base de datos. A pesar de que ya ha realizado pruebas y demostrado la eficacia de las correcciones presentadas no son responsables de los problemas o daños resultantes de la solución aquí disponible.

Para llevar a cabo las correcciones necesarias, siga los pasos y pasos.

PRIMER PASO - AJUSTES GOOGLE OAuth2 Y CLAVES DE CREACIÓN GOOGLE API

PASO 01

Si está utilizando una nueva instalación [ "reset"] de Vtiger CRM 6.2, los cambios relacionados con el apoyo de Google OAuth2 ya estarán presentes en el código fuente. En este modo, ir al Paso 3. C ontudo si hay una versión 6.2 migrado, se sugiere que siga el Paso 2.
PASO 02

Si su versión 6.x anteriores a 6.2, aplicar los cambios necesarios para incluir soporte para Google OAuth2
  • Descargar el archivo libraries.zip y descomprimirlo en el directorio raíz de Vtiger CRM;
  • Descargar los archivos WSAPP.zip y Google.zip y desde el gestor de módulos en la configuración CRM> Estudio> Gestor de módulos, acceder a la función "Instalar de postal" y la actualización WSAPP y módulos deGoogle a través de los archivos descargados.
PASO 03

Los desarrolladores acceder a la consola de Google a través de la URL: https://console.developers.google.com/project utilizando su dirección de correo de Gmail, crear el proyecto y obtener la clave de API, que se utiliza para sincronizar el CRM vtiger con Google Calendar y los contactos de Google.
Para facilitar la creación del proyecto, siga la guía proporcionada:
3.1. El acceso y la Consola para Google con su cuenta de Gmail
3.2. Una vez que acceda a la consola, se le remitirá a la página de abajo, donde se debe crear su diseño.Haga clic en el botón "Crear proyecto"
3.3. En la siguiente ventana, darle un nombre para el proyecto.
3.4. Seleccione la siguiente pantalla, el proyecto para utilizar las API [Optimizar su aplicación con un API de Google]
3.5. A continuación, seleccione la API "Calendario" y "Contactos" y haga clic en el botón "Habilitar API" para activar cada una de las API. 
PASO 04

Después de la activación de la API [Calendario y Contactos], vaya a la pestaña de la pantalla consentimiento y llenar en los campos que se muestran. la consentimiento pantalla se mostrará a los usuarios siempre que se solicite el acceso a sus datos privados. 
Cuando el usuario solicita el acceso CRM por primera vez, para sincronizar con Google Calendar, aparece la pantalla de consentimiento. Consulte el siguiente ejemplo:
Haga clic en el botón "Aceptar" para activar la conexión e iniciar el proceso de sincronización de datos.
PASO 05

Una vez completada la pantalla de información del consentimiento, en secuencia, establece las credenciales de acceso a las API. Para lograr esto, vaya a la pestaña Credenciales, que se encuentra en el lado izquierdo de la pantalla y luego hacer clic en "Crear un nuevo botón ID de cliente ".
Al acceder a la creación ID del cliente, completar la redirección de campo del Uri autorizada con las dos siguientes direcciones URL [uno en cada línea]
Autorizó redirección URI:
​1. http://{$site_URL}/index.php?module=Google&view=List&operation=sync&sourcemodule=Calendar&service=GoogleCalendar
​2. http://{$site_URL}/index.php?module=Google&view=List&operation=sync&sourcemodule=Contacts&service=GoogleContacts
En URIs dados más arriba, sustituya {} $ SITE_URL el valor de la variable de $ SITE_URL definido en el archivoconfig.inc.php ubicado en el directorio raíz del Vtiger CRM. Tenga en cuenta el siguiente ejemplo:
PASO 06

Ahora haga clic en el botón "Crear ID de cliente" y el ID de cliente y el cliente clave secreta se generará para el proyecto.

PASO 07

Copiar el ID de cliente y el cliente clave secreta para usar en la siguiente etapa.

PASO DOS - USO DE CREDENCIALES EN vtiger CRM para habilitar la sincronización con el calendario y CONTACTOS GOOGLE GOOGLE

Una vez logrado el primer paso, siga estos pasos:
1. Después de generar el ID de cliente y el cliente clave secreta, estos datos deben ser ingresados ​​en el archivo de Google Conector config.php en Vtiger CRM.
2. Modificar el archivo de módulos / Google / conectores / config.php en Vtiger CRM.
3. En este archivo se encuentra la clase Google_Config_Connector con dos variables: $ clientId y $ clientSecret con valores vacíos.
4. Ahora copiar el ID de cliente generada en https://console.developers.google.com/project y pegar el archivo comoel valor de la variable de $ clientId.
5. Copia de la clave secreta del cliente https://console.developers.google.com/project y pegue el archivo como elvalor de la variable de $ clientSecret.
6. Guarde el archivo después de los cambios.
Tras la finalización de todos los pasos anteriores, vaya a Vtiger CRM y realizar la sincronización con Google Calendar, que debería funcionar sin problemas. Realice el mismo procedimiento desde el módulo de Contactos para sincronizar con los contactos de Google.

TERCER PASO - CORRECCIÓN DEL TIEMPO ZONA

Después de correcciones sobre el problema con la sincronización, que ahora está haciendo los ajustes a continuación para fijar otro problema detectado con la fecha grabada en el orden del día, que se establece por defecto para utilizar el huso horario UTC y no definido por el usuario en la configuración. inc.php.
Para realizar ajustes, siga los siguientes pasos:
1. Con su cuenta de Gmail, Google Calendar cesar y establecer la zona horaria a GMT-3: 00 Sao Paulo;
2. Establecer la zona horaria en el archivo config.inc.php, línea 198, para: $ default_timezone = "América /Sao_Paulo";
3. Establecer los módulos de archivos / Google / conectores / Oauth2.php, en la línea 63, introduzca barra "/"antes de index.php? ...
4. Haga clic en el enlace de abajo, b aixe el archivo changeset_14431.zip y descompacte- en el directorio principa lCRM;
5. Realizar la siguiente corrección en la línea 143 del archivo /modules/Google/connectors/Calendar.php
Original:
maxModifiedTime = FECHA $ ( 'Ymd H: i: s', strtotime (Google_Contacts_Model :: vtigerFormat (final ($ calendarRecords) -> Getupdated ())) + 1);
Ajuste para:
maxModifiedTime = FECHA $ ( 'Ymd H: i: s', strtotime (Google_Calendar_Model :: vtigerFormat (final ($ calendarRecords) -> Getupdated ())) + 1);
6. Edite el archivo /modules/Google/models/Calendar.php y realice los siguientes ajustes
6.1. Reemplazar el archivo anterior, el siguiente fragmento de código [Tenga en cuenta que este fragmento de código aparece en cuatro lugares en este aquivo]:
Original:
$ TimeZone = new DateTimeZone ( 'UTC');
Ajuste para:
$ TimeZone = new DateTimeZone (date_default_timezone_get ());
6.2. En el mismo archivo, busque la función de abajo e introduce el contenido representado por fragmentos que comienzan con // EDIT y termina con // Edit End
vtigerFormat función pública ($ fecha) {
// EDITAR
$ = $ OrigDate fecha;
// Edit End
lista (fecha $, $ horaCadena) = explode ( 'T', $ fecha);
lista ($ hora, $ tz) = explode (, $ horaCadena '.');
// EDITAR - si esto es UTC permite cambiarlo para corregir equipo de sistema
si (substr ($ tz, -1) == 'Z') {
$ Fecha = new DateTime ($ origDate);
$ TimeZone = new DateTimeZone (date_default_timezone_get ());
$ Fecha-> settimezone ($ timeZone);
$ Fecha = $ fecha-> formato ( 'Ymd H: i: s');
devolver $ fecha;
}
// Edit End
devolver $ fecha. "". $ Time;
}
Para completar la aplicación de los procedimientos anteriores, el calendario y los contactos de Vtiger CRM pueden ser integrados y sincronizados perfectamente con Calendario / Contactos de Google.
Nos quedamos con la expectativa de que el equipo de vtiger CRM aplicar estas correcciones en la próxima versión 6.3 y nos libre de todo este trabajo. :-)