Ejemplos de uso del protocolo ECCP



Documentos relacionados
Elastix Web Services (WSDL) Manual de Usuario

PRACTICA NO.25: HOW TO INSTALL AND CONFIGURE ELASTIX CENTRAL IP

MANUAL TÉCNICO WEB SERVICE PROTOCOLO SOAP

CÓMO MANEJAR SU NUEVO SITIO WEB SOBRE DRUPAL Manual técnico y de usuario. Pontificia Universidad Javeriana Grupo PSU CDI

1. CONSIDERACIONES GENERALES

Elastix Callcenter La guia total

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

ENVÍO DE POR MEDIO DE SMTP

MANUAL DE USUARIO - SECURE CLIENT - INTERNACIONAL

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com)

Web Panels en Visual Basic - GeneXus 6.0

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Vielka Mari Utate Tineo Instituto Tecnológico de las Américas ITLA. Profesor José Doñé. En este caso Elastix. PRATICA NO.

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

[4 ]Instalación y configuración básica de drupal.

Actualización Aranda VIRTUAL SUPPORT (AVS) 7.1 a 7.2

Guía de Instalación. Glpi

Implementación de una Solución Tecnológica para la Gestión y Control de la Planificación Institucional del Gobierno Regional de Los Lagos

Guía de Instalación Proscai

Manual Instalación GIRH-Nómina (JAVA)

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Tutorial para subir un sitio web local a un sitio remoto

HOW TO SOBRE FIREWALL

Manual de Uso XML-Whois de Neubox. Manual del Sistema de XML Whois de Neubox Versión

A continuación se listan las condiciones que se deben tener en cuenta para el registro vía web:

TUTORIAL PARA CREAR UN SERVIDOR FTP

Sociedad de Seguros de Vida del Magisterio Nacional. Sistema de Pignoraciones Web. Manual de Usuario. Marzo, 2012.

Tutorial BMS Server Studio UDP

Presentación. Nombre. Matricula. Materia. Tema. Profesor. Marcos Rodríguez Javier Sistemas Operativos III. Central IP Elastix.

*si tuvieron algún problema pueden verificar la documentación oficial Vamos a crear una BD llamada droid_login como lo muestra la siguiente imagen:

Manual de Usuario SIMIN 2.0

DOCENTES FORMADORES UGEL 03 PRIMARIA

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

Software de Comunicaciones. Práctica 7 - Secure Shell. SSH

Manual de Usuario SATCAFE Sistema para Te cnico

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Sistema de Administración de Documentos (SIAD)

Aquí tenemos que seleccionar el lenguaje que queremos usar mediante la instalación.

SERVICIO NACIONAL DE APRENDIZAJE- SENA PROCESO RELACIONAMIENTO EMPRESARIAL Y GESTION DEL CLIENTE

INSTALACIÓN Y CONFIGURACIÓN DE UN SERVIDOR DE CORREO EXIM 4.8 EN FEDORA 20 FRAYBA SERYEY OTALORA TORRES JOSE EDUARDO JAIMES BARRERA

Capítulo 3 Instalación de OMNET

MANUAL DE INSTALACIÓN DEL SISTEMA PERUANO DE INFORMACIÓN JURÍDICA

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Curso de PHP con MySQL Gratis

Tutorial de instalación

Instalación de Casandra Para instalar cassandra se recomienda tener la última versión de JAVA instalada.

Router Teldat. Protocolo TELNET

Acronis License Server. Guía del usuario

Manual de usuario para Facturación Electrónica 2011

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Explotación de Sistemas Informáticos IES Murgi PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE

Instalación Hadoop. Guía para Debian y derivados

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

OPERACIONES BASICAS. 1. Menú. 2. Barra de Herramientas. 3. Área de trabajo. 3.1 Operaciones Básicas. Revisión 3.0

Manual de Integración CubeCart

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

PROYECTO FINAL Manual de Configuración Organización: Juan Lomo

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

Examen Cisco Online CCNA4 V4.0 - Capitulo 5. By Alen.-

Conectar Flash con Access usando MDM Zinc

MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO

PUCV - Pontificia Universidad Católica de Valparaíso

Banco de la República Bogotá D. C., Colombia

Servidor Web (Apache Httpd+PHP)

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Módulo de Web Conference

Como detectar conexión del Servidor y SQL?

Introducción a PostgreSQL con PHP

SiteAudit Knowledge Base Programación de Reportes en SiteAudit

Manual de NetBeans y XAMPP

a) Instalación del servidor SSH en GNU/Linux

Actualización de un Producto. Estandarizar el proceso de acompañamiento para la ejecución de un producto de software.

ABAP Proxy Objects Configuración del Entorno

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Servidor Local (MYSQL)

COMO MONTAR UN SERVIDOR WEB DEDICADO DESDE CASA

!!!! MANUAL DE CONFIGURACIÓN DEL CLIENTE VPN CISCO IPSEC EN SISTEMAS OPERATIVOS WINDOWS XP! Departamento de Redes - Dirección de Telemática!

Implementación de una Solución Tecnológica para la Gestión y Control de la Planificación Institucional del Gobierno Regional de Los Lagos

Conceptos Fundamentales sobre UNIX Laboratorio Impresión mediante la Línea de Comandos (Tiempo estimado: 30 min.)

texto vía celular, bajo la licencia de código libre y de código abierto.

Documento Actualización de un curso de la plataforma moodle a través de respaldo Revisión 1.0 Elaboró Ing. Daniel Sánchez Machado

Conceptronic CFULLHDMA Cómo usar Samba/CIFS y NFS

LOS SERVIDORES VIRTU ALES

Manual de Instalación Actualizador cliente (WINLAUCHER) Version 0.1 Last Revised Status In Progress Author Carlos Daniel Lima Romero

Volumen. Jun HELPPEOPLE SCAN CLOUD Manual de Usuario de la Versión v s23. Elaborado por: Investigación y Desarrollo Helppeople Software

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Índice general. Pág. N. 1

PROCESO DE ACTUALIZACIÓN SISTEMA CONTABILIDAD WINDOWS A TRAVÉS DE INTERNET

MANUAL DE INSTALACIÓN DEL SWGRH

Transcripción:

Ejemplos de uso del protocolo ECCP ELASTIX CALL CENTER PROTOCOL Elaborado por: Departamento de Desarrollo Elastix Versión: 1.0 alpha

VERSIONAMIENTO Versión Versión de Elastix Fecha Editado por Aprobado Por Detalles 1 2.0.4-beta2 13-Abr-2011 Ing. Eduardo Cueva Ing. Bruno Macias Documentación Inicial

Uso del protocolo de Callcenter ECCP El protocolo de Callcenter fue desarrollado para que aplicaciones cliente puedan comunicarse con el servidor de CallCenter a través de un puerto TCP para de este modo realizar peticiones, así como escuchar eventos asincrónicos a través de dicho puerto. El presente documento describe ejemplos de implementación del protocolo ECCP usando lenguaje PHP. El propósito de los ejemplos es meramente ilustrativo y no han sido pensado como aplicaciones optimizadas para producción. Los ejemplos usados se encuentran disponibles a través de Internet en la ruta: http://elx.ec/eccpexample El archivo comprimido contiene los siguientes programas en PHP: agentlogin.php hangup.php hold.php unhold.php libs/eccp.class.php Para descomprimirlo solo ejecute: tar -xvjf eccp-test-scripts.tar.bz2 El archivo ECCP.class.php es la librería base que contiene los métodos que permitirán establecer conexión con el servidor mientras que los demás archivos son ejemplos que usan dicha librería. PREPARACIÓN PARA LAS PRUEBAS Antes de comenzar se debe verificar que la versión del módulo de call center de Elastix sea superior o igual a 2.0.0-14 verificar rpm -q elastix-callcenter. Esto es necesario debido a que versiones menores no implementan el protocolo ECCP. Si no se tiene dicha versión lo que se puede hacer es actualizar a la última ejecutando yum -y update elastix-callcenter. Una vez realizado lo anterior es necesario agregar un registro a la base de datos de callcenter que será necesario que exista para realizar dichas pruebas. Dicho registro se hará en la tabla eccp_authorized_clients y es necesario porque contendrá las credenciales con la cual se autorizará la conexión. Los comandos a ejecutar son los siguientes asumiendo que el usuario y clave de acceso son agentconsole aunque puede cambiar si se desea: [user@example ~]# mysql -uroot -pclavemysql call_center

mysql> insert into eccp_authorized_clientsusername,md5_password values"agentconsole",md5"agentconsole"; mysql> exit Luego de haber realizado lo anterior se puede proseguir con las pruebas: COMENZANDO LAS PRUEBAS Para tener una idea más clara de cómo deben ser estructurados los mensajes XML del protocolo ECCP se recomienda revisar la especificación del mismo, la cual se encuentra en su servidor, en la siguiente ruta: /opt/elastix/dialer/protocolo ECCP.txt Para las pruebas podemos usar los scripts mencionados anteriormente ya sea en el mismo servidor u otro que se encuentre en la misma red del servidor principal o externa. Antes de comenzar necesitamos crear el agente que utilizaremos para las pruebas del protocolo. El agente de ejemplo usará la extensión 412 con la clave 1234. Debemos crear previamente dicha extensión desde la interfaz de Elastix. agentlogin.php Analizamos su contenido el cual es el siguiente:

En la línea 3 se requiere la librería ECCP.class.php la cual es la clase con las funciones que permitirán comunicarse con el callcenter. De la línea 5 a la 10 se tiene los datos básicos como: $host => nombre de host a conectarse $user y $pass => usuario y clave de conexión, los cuales fueron insertados en la base de datos al inicio $agent => número del agente. Formato Agent/ $passagent => Contraseña del agente $logagent => número de extensión donde se va a conectar el agente. De la línea 13 a 18: lo mínimo necesario para conectar al agente. De la línea 21 a 31: en el caso de que sea exitosa la conexión. Línea 33: acción de desconexión. De la línea 34 a la 37: se maneja el caso de que hubiera un error. Probando desde una consola: Caso exitoso: Login Exitoso [user@example ~]$ php agentlogin.php [status] => offline Login agent [status] => logging [agentloggedin] => [agent] => Agent/412 [queues] => [queue] => 9000

Caso no exitoso: credenciales de conexión incorrectas [user@example ~]$ php agentlogin.php ECCPBadRequestException Object [message:protected] => Unauthorized [string:exception:private] => [code:protected] => 401 [file:protected] => /path_to_folder/eccp-test-scripts/libs/eccp.class.php [line:protected] => 118 [trace:exception:private] => Array [0] => Array [file] => /path_to_folder/eccp-test-scripts/libs/eccp.class.php [line] => 287 [function] => send_request [class] => ECCP [type] => -> [args] => Array [0] => [@attributes] => Array [id] => 2 [getagentstatus] => [agent_number] => Agent/412 [1] => Array [file] => /path_to_folder/eccp-test-scripts/agentlogin.php [line] => 16 [function] => getagentstatus [class] => ECCP [type] => -> [args] => Array [previous:exception:private] =>

Caso no exitoso: servicio dialer está apagado [user@example ~]$ php agentlogin.php ECCPConnFailedException Object [message:protected] => tcp://ip_elastix_server:20005: 111 Connection refused [string:exception:private] => [code:protected] => 111 [file:protected] => /path_to_folder/eccp-test-scripts/libs/eccp.class.php [line:protected] => 86 [trace:exception:private] => Array [0] => Array [file] => /path_to_folder/eccp-test-scripts/agentlogin.php [line] => 13 [function] => connect [class] => ECCP [type] => -> [args] => Array [0] => IP_ELASTIX_SERVER [1] => agentconsole [2] => agentconsole [previous:exception:private] => Caso no exitoso: extensión no existe [user@example ~]$ php agentlogin.php [status] => offline Login agent [status] => logged-out [failure] => [code] => 404 [message] => Specified extension not found

Caso no exitoso: agente no existe [user@example ~]$ php agentlogin.php [status] => offline [failure] => [code] => 404 [message] => Invalid agent number Login agent [status] => logged-out [failure] => [code] => 404 [message] => Specified agent not found Caso no exitoso: agente ya esta logueado [user@example ~]$ php agentlogin.php [status] => online Login agent [status] => logged-out [failure] => [code] => 409 [message] => Specified agent already connected to extension: 412

hangup.php Analizamos su contenido el cual es el siguiente: En la línea 3 se requiere la librería ECCP.class.php la cual es la clase con las funciones que permitirán comunicarse con el callcenter. De la línea 5 a la 10 se tiene los datos básicos como: $host => nombre de host a conectarse $user y $pass => usuario y clave de conexión, los cuales fueron insertados en la base de datos al inicio $agent => número del agente. Formato Agent/ $passagent => Contraseña del agente $logagent => número de extensión donde se va a conectar el agente. De la línea 12 a 14: lo mínimo necesario para conectar al agente. Línea 15: se pregunta el status del agente. Línea 17: acción de hangup que libera a un agente. Línea 20: es la acción de desconexión. De la línea 34 a la 37: se maneja el caso de que hubiera un error. Probando desde una consola:

Caso exitoso: [user@example ~]$ php hangup.php [status] => oncall Hangup... [success] => Caso no exitoso: credenciales de conexión incorrectas mencionados anteriormente Caso no exitoso: extensión no existe mencionados anteriormente Caso no exitoso: agente no existe mencionados anteriormente hold.php Analizamos su contenido el cual es el siguiente:

En la línea 3 se requiere la librería ECCP.class.php la cual es la clase con las funciones que permitirán comunicarse con el callcenter. De la línea 5 a la 10 se tiene los datos básicos como: $host => nombre de host a conectarse $user y $pass => usuario y clave de conexión, los cuales fueron insertados en la base de datos al inicio $agent => número del agente. Formato Agent/ $passagent => Contraseña del agente $logagent => número de extensión donde se va a conectar el agente. De la línea 12 a 14: lo mínimo necesario para conectar al agente. Línea 15: se pregunta el status del agente. Línea 17: acción de hold que coloca la llamada actual en espera. Línea 20: acción de desconexión. Probando desde una consola: Caso exitoso: evento hold [user@example ~]$ php hold.php [status] => oncall Hold... [success] => Caso no exitoso: agente en llamada [user@example ~]$ php hold.php [status] => oncall Hold... [failure] =>

[code] => 404 [message] => Agent not found or not logged in through ECCP Caso no exitoso: Parking esta deshabilitado https://ip_elastix_server/?menu=pbxconfig&display=parking y habilitar el parking call [user@example ~]$ php hold.php [status] => online Hold... [failure] => [code] => 500 [message] => Parked call extension is disabled Caso no exitoso: No hay ninguna llamada activa o se trata de ejecutar un hold más de una vez [user@example ~]$ php hold.php [status] => online Hold... [failure] => [code] => 417 [message] => Agent currenty not handling a call Caso no exitoso: credenciales de conexión incorrectas mencionados anteriormente Caso no exitoso: extensión no existe mencionados anteriormente Caso no exitoso: agente no existe mencionados anteriormente

unhold.php Analizamos su contenido el cual es el siguiente: En la línea 3 se requiere la librería ECCP.class.php la cual es la clase con las funciones que permitirán comunicarse con el callcenter. De la línea 5 a la 10 se tiene los datos básicos como: $host => nombre de host a conectarse $user y $pass => usuario y clave de conexión, los cuales fueron insertados en la base de datos al inicio $agent => número del agente. Formato Agent/ $passagent => Contraseña del agente $logagent => número de extensión donde se va a conectar el agente. De la línea 12 a 14: lo mínimo necesario para conectar al agente. Línea 15: se pregunta el status del agente. Línea 17: acción de unhold que retoma la llamada actual en espera. Línea 20: acción de desconexión. Probando desde una consola:

Caso exitoso: evento unhold [user@example ~]$ php unhold.php [status] => paused unhold... [success] => Caso no exitoso: Si se ejecuta la acción unhold por segunda vez [user@example ~]$ php unhold.php [status] => oncall unhold... [failure] => [code] => 417 [message] => Agent currenty handling a call Caso no exitoso: credenciales de conexión incorrectas mencionados anteriormente Caso no exitoso: extensión no existe mencionados anteriormente Caso no exitoso: agente no existe mencionados anteriormente