tel./fax: +34 91 675 33 06 [email protected] - www ... · jtapi. telefonía sobre java 2009-04-13...

13
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida Tecnología Desarrollo Sistemas Gran Empresa Producción autentia Certificación o Pruebas Verificación previa RFP Concurso Consultora 1 Consultora 2 Consultora 3 Equipo propio desarrollo Piloto 3a 3b 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3. Arranque de proyectos basados en nuevas tecnologías ¿Qué ofrece Autentia Real Business Solutions S.L? Para más información visítenos en: www.autentia.com Compartimos nuestro conociemiento en: www.adictosaltrabajo.com Gestor portales (Liferay) Gestor de contenidos (Alfresco) Aplicaciones híbridas Tareas programadas (Quartz) Gestor documental (Alfresco) Inversión de control (Spring) BPM (jBPM o Bonita) Generación de informes (JasperReport) ESB (Open ESB) Control de autenticación y acceso (Spring Security) UDDI Web Services Rest Services Social SSO SSO (Cas) Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery JPA-Hibernate, MyBatis Motor de búsqueda empresarial (Solr) ETL (Talend) Dirección de Proyectos Informáticos. Metodologías ágiles Patrones de diseño TDD 2. Auditoría de código y recomendaciones de mejora 4. Cursos de formación (impartidos por desarrolladores en activo)

Upload: vuque

Post on 01-May-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)

tel./fax: +34 91 675 33 [email protected] - www.autentia.com

Somos su empresa de Soporte a Desarrollo Informático.Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y proyectos a medida

TecnologíaDesarrolloSistemas

Gran Empresa

Producción

autentia

Certificacióno Pruebas

Verificación previa

RFP Concurso

Consultora 1

Consultora 2

Consultora 3

Equipo propio desarrolloPiloto

3a

3b

1. Definición de frameworks corporativos.2. Transferencia de conocimiento de nuevas arquitecturas.3. Soporte al arranque de proyectos.4. Auditoría preventiva periódica de calidad.5. Revisión previa a la certificación de proyectos.6. Extensión de capacidad de equipos de calidad.7. Identificación de problemas en producción.

3. Arranque de proyectos basados en nuevas tecnologías

¿Qué ofrece Autentia Real Business Solutions S.L?

Para más información visítenos en: www.autentia.com

Compartimos nuestro conociemiento en: www.adictosaltrabajo.com

Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones híbridas

Tareas programadas (Quartz)Gestor documental (Alfresco)Inversión de control (Spring)

BPM (jBPM o Bonita)Generación de informes (JasperReport)ESB (Open ESB)

Control de autenticación y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)

Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery

JPA-Hibernate, MyBatisMotor de búsqueda empresarial (Solr)ETL (Talend)

Dirección de Proyectos Informáticos.Metodologías ágilesPatrones de diseñoTDD

2. Auditoría de código y recomendaciones de mejora

4. Cursos de formación (impartidos por desarrolladores en activo)

Inicio Quienes somos Tutoriales Formación Comparador de salarios Comic Charlas

Más

Hosting patrocinado por

Catálogo deservicios

Autentia (PDF6,2MB)

En formato comic...

Web

www.adictosaltrabajo.com

Últimos tutoriales

2009-04-13JTAPI. Telefonía sobreJava

2009-04-13Registro de WebServices con ApachejUDDI. Configuración yejemplo

2009-04-13Cómo hacer UML conEclipse y el plugin UML2

2009-04-09Spring WS: ServiciosWeb a través del correoelectrónico

2009-04-02Creación de cursos conMoodle

2009-03-31Integrar Liferay Portal5.2.1 con Pentaho BI2.0.0 sobre MySQL 5.1

2009-03-31Spring WS:Construcción de Clientesde Servicios Web conSpring

2009-03-30Administración de sitiosMoodle

2009-03-29Empaquetamiento deaplicaciones deescritorio (standalone)con Maven

Tutorial desarrollado por

Carlos GarcíaPérez

Creador de MobileTest,un complementoeducativo para losprofesores y susalumnos.

Consultor tecnológico enel desarrollo deproyectos informáticos.

Ingeniero Técnico enInformática *

Puedes encontrarme en Autentia

Somos expertos en Java/J2EE

Catálogo de servicios deAutentia

Descargar (6,2 MB)

Descargar en versión comic (17 MB)

AdictosAlTrabajo.com es el Web de difusión deconocimiento de Autentia.

Catálogo de cursos

Ultimas Noticias » Autentia en JavaHispano » Accesibilidad en entornos Web » Liberada TNTConcept 0.16.1 » Cuarta charla Autentia + Agile Spain:Introducción a Scrum » Historia de la Informática. Capítulo 40- 1953 » ¡Adictos Renovado! » Una historia de guerra Ágil: SCRUM YXP DESDE LAS TRINCHERAS, Cómohacemos Scrum » Comentarios sobre Wikinomics de DonTapscott » Gestión de Repositorios Maven » Valoración de tutoriales » Empezamos nueva aventura: Un libro...

+Noticias Destacadas » Autentia en JavaHispano » Accesibilidad en entornos Web » Liberada TNTConcept 0.16.1 » Cuarta charla Autentia + Agile Spain:Introducción a Scrum » Nueva sección de libros y El modeloGoogle ... » Comparador de sueldos en la profesiónInformática » Empezamos nueva aventura: Un libro... » Si se pregunta ¿Qué ofrece este Web? » Grupo XING » +7,5 Millones de visualizaciones denuestros Tutoriales

+Comentarios Cómic

+Enlaces

Descargar este documento en formato PDF: jtapi.pdf

Fecha de creación del tutorial: 2009-04-13

JTAPI. Telefonía sobre JavaEn mi vida profesional estuve varios años trabajando en el departamento de investigación y desarrollo deuna empresa de telefonía. En este tutorial, voy a brindar al lector con conocimientos básicos de JTAPI unaserie de ejemplos que le orienten y sirvan de base para realizar sus pruebas en su plataforma telefónica.

Este tutorial no es teórico, en caso de querer aprender acerca de este tema, recomiendo que se lea laespecificación pues es bastante clara y fácil de comprender.

Introducción

En el mundillo Java, JTAPI es a la telefonía lo que JDBC es a las bases de datos.

Al igual que JDBC, JTAPI es una especificación (no una implementación) definida por Sun para eldesarrollo de aplicaciones CTI en el lenguaje de programación Java.

¿Para que sirve JTAPI?

Su principal uso se da en aquellos entornos donde se requiere una programación de sistemas telefónicos.Por ejemplo, en los centros de llamadas a través de los cuales las empresas realizan tareas de atención alcliente, telemarketing, etc.

¿Qué puedo hacer con JTAPI?

Entre otras muchas cosas podrá hacer las siguientes tareas:

Realizar llamadas.1.Contestar llamadas.2.Capturar llamadas que están sonando en un determinado terminal.3.Realizar conferencias.4.

2009-03-27Primeros pasos conMoodle

2009-03-26Introducción a JSF Java

2009-03-25A1 Website Analyzer

2009-03-24Cómo ver el correo deGmail sin conexión aInternet

2009-03-20JasperReports MavenPlugin

2009-03-16Creación de contenidosSCORM: eXe

2009-03-15Spring WS: Creación deServicios Web conSpring

2009-03-13Instalación Alfresco(Labs)

2009-02-26Maven JXR Plugin:publica el código fuenteen el site

2009-03-15Generación de XMLSchema (XSD) y DTD apartir de documentosXML

2009-03-04Persistencia con Spring

2009-02-26Vistas materializadas

2009-02-03Instalación de MySQL5.1 en Windows

2009-03-03Instalación de JavaVirtual Machine

2009-03-03Primeros Pasos conLiferay 5.2.1

2009-02-27Edicion de video MPEG2

Realizar transferencias tanto directas como indirectas.5.Realizar llamadas predictivas.6.Retener llamadas.7.Redireccionar llamadas.8.Recuperar llamadas retenidas.9.Obtener información de las llamadas en curso.10.Asociar datos a llamadas.11.Gestionar grupos de teleoperadores (agentes).12.Logar/deslogar a agentes en grupos.13.Gestionar las rutas por las que pasará la llamada.14.Gestionar la pantalla y el teclado de los dispositivos telefónicos.15.

Estructuración de JTAPI

JTAPI está estructurado en los siguientes paquetes:

Core1.CallControl2.CallCenter3.Phone4.

Paquete Core

Bajo este paquete se incluyen las clases que aportan la funcionalidad básica que debe implementar unsistema telefónico para decir que implementa JTAPI.

Realizar, finalizar y contestar llamadas.1.Obtener el estado en el que se encuentran el proveedor, las llamadas, los componentes de lallamada.

2.

Obtener los terminales y direcciones que forman parte del dominio del entorno telefónico.3.Poner oyentes a las llamadas, terminales, proveedor, etc. para que se nos avise mediante lainvocación de un método que ha sucedido algo. Por ejemplo la llamada a finalizado, o el proveedorha dejado de estar en servicio.

4.

Ejemplo: Realización de una llamada telefónica.

2009-02-26Introducción teórica aXPath

2009-02-26Integración Selenium /Maven 2 / Surefire /Cargo / Tomcat 6

2009-02-24Selenium RemoteControl

2009-02-22Integración de Groovy,JRuby y BeanShell conSpring 2

2009-02-18Instalación de PentahoBI Suite CommunityEdition 1.7.0

2009-02-18Replicar Web PHP enmáquina local

2009-02-16Selenium Core : Elmotor de Selenium.

2009-02-16Integración deJasperReports con PHP

2009-02-09EJB 3.0 y pruebasunitarias con Maven,JUnit 4 y EmbeddedJBoss sobre Java 6

2009-02-09Web Service Security

2009-02-09Manual Avanzado deFirebug

2009-01-29Ejemplo con Mockito

2009-01-29Uso de Mock objects enpruebas con Mockito

2009-01-29StrutsTestCase

2009-01-28Eventos en Hibernate(parte III)

2009-01-28

view plain print ?

package com.autentia.tutoriales.jtapi; 01.

02.

import javax.telephony.*; 03.

04.

/** 05.

* Realiza una llamada telefónica desde un origen a un destino. 06.

* @author Carlos García. Autentia 07.

*/ 08.

public class MakeCallApp { 09.

10.

/** 11.

* @param args Origen y destino de la llamada 12.

*/ 13.

public static void main(String[] args){ 14.

Provider prov = null; 15.

16.

// Verificamos los argumentos. Deben ser dos números de teléfono. 17.

if ( args.length != 2 ){ 18.

System.out.println("Formato:\"MakeCallApp <origen> <destino>\""); 19.

return; 20.

} 21.

22.

try { 23.

// Obtenemos una instancia que implemente javax.telephony.JtapiPeer.24.

JtapiPeer peer = JtapiPeerFactory.getJtapiPeer(null); 25.

26.

// Obtenemos un proveedor que de el servicio 27.

prov = peer.getProvider(null); 28.

29.

// Instanciamos y configuramos los objetos necesarios para la llamada30.

Terminal term = prov.getTerminal(args[0]); 31.

32.

// Creamos un objeto llamada 33.

Call call = prov.createCall(); 34.

35.

// Realizamos una llamada 36.

call.connect(term, term.getAddresses()[0], args[1]); 37.

38.

} catch ( Exception e ){ 39.

System.out.println(e.toString()); 40.

} finally { 41.

try { 42.

prov.shutdown(); // Finalizamos el proveedor 43.

} catch (Exception ex){} 44.

} 45.

} 46.

} 47.

48.

Ejemplo: Descolgado automático de todas las llamadas que suenen en un terminal.

Eventos en Hibernate(parte II)

2009-01-27Eventos en Hibernate(parte I)

2009-01-25AprendiendoXMLSchema a través deejemplos

2009-01-20Pruebas Software conJunit 4 y Eclipse

2009-01-19Executor : Un programapara ejecutarlos a todos.

2009-01-18Soap Monitor:Monitorización demensajes SOAP enAxis2

2009-01-16Restaurar una Base deDatos en SQL Server ocomo cambiar elpropietario de losobjetos de la base dedatos

2009-01-14Solución aNoClassDefFoundError:SWTResourceUtil

2009-01-14Desarrollo deaplicaciones Web conStruts 1

2009-01-07Log4J: Cómo crear unlog que trabaje haciauna Base de Datos.

Últimas ofertasde empleo

2009-03-26Comercial - Ventas -ALMERIA.

2009-03-12Comercial - Ventas -VALENCIA.

2009-03-12Comercial - Ventas -SEVILLA.

2009-02-21

view plain print ?

import javax.telephony.*; 01.

import javax.telephony.TerminalConnection; 02.

import javax.telephony.events.CallEv; 03.

import javax.telephony.events.TermConnRingingEv; 04.

05.

/** 06.

* Durante un tiempo, descuelgará todas las llamadas que suenen en un terminal.07.

* @author Carlos García. Autentia 08.

*/ 09.

public class DescolgandoLlamadasApp { 10.

public static void main(String args[]) { 11.

JtapiPeer peer = null; 12.

Provider prov = null; 13.

Terminal term = null; 14.

java.lang.String device = null; 15.

CallObserver myCallObserver = null; 16.

17.

try { 18.

if (args.length != 1) { 19.

System.out.println("Formato \"DescolgandoLlamadasApp <terminal>\""); 20.

System.exit(1); 21.

} 22.

// Obtenemos la implementación javax.telephony.JtapiPeer. 23.

peer = JtapiPeerFactory.getJtapiPeer(null); 24.

// Obtenemos un proveedor que de el servicio. Por defecto Core. 25.

prov = peer.getProvider(null); 26.

27.

// Obtenemos el terminal del cual vamos a descolgar las llamadas. 28.

term = prov.getTerminal(args[0]); 29.

30.

myCallObserver = new MiBonitoCallObserver(); 31.

term.addCallObserver(myCallObserver); 32.

33.

Thread.sleep(25000); // Descuelga las llamadas durante un tiempo 34.

35.

term.removeCallObserver(myCallObserver); 36.

} catch (Exception ex) { 37.

System.out.println(ex.toString()); 38.

} finally { 39.

// Finalizamos el proveedor. 40.

try { 41.

prov.shutdown(); 42.

} catch (Exception ex) {} 43.

} 44.

} 45.

} 46.

47.

class MiBonitoCallObserver implements CallObserver { 48.

public void callChangedEvent(CallEv[] ev) { 49.

TerminalConnection tc; 50.

51.

for (int i = 0; i < ev.length; i++) { 52.

if (ev[i].getID() != TermConnRingingEv.ID){ 53.

continue; 54.

} 55.

56.

try { 57.

tc = ((TermConnRingingEv) ev[i]).getTerminalConnection(); 58.

tc.answer(); 59.

} catch (Exception ex) { 60.

// No se dará 61.

} 62.

} 63.

} 64.

} 65.

Paquete CallControl

Este paquete extiende el paquete Core, permitiendo la siguiente funcionalidad:

Transferencia de llamadas tanto directas como indirectas.1.Realizar conferencias.2.Redireccionar llamadas.3.Descolgar llamadas que están sonando en otro terminal.4.Realizar llamadas de consulta.5.Agregar un terminal a una conferencia ya establecida.6.Retener y recuperar llamadas.7.Estados más finos sobre llamadas, terminales, conexiones, direcciones, etc.8.

Otras -Estética/Peluquería -MADRID.

2009-02-13T. Información - Otrosno catalogados -MADRID.

Información del número de teléfono de todos los interlocutores de la llamada.9.

Ejemplo: Realizar una llamada y transferirla a otro puesto.

view plain print ?

import javax.telephony.*; 01.

import javax.telephony.events.*; 02.

import javax.telephony.callcontrol.*; 03.

import javax.telephony.callcontrol.events.*; 04.

05.

/** 06.

* Ejemplo de transferencias (indirecta) de llamadas 07.

* @author Carlos García. Autentia 08.

*/ 09.

public class LlamarYTransferirApp { 10.

11.

/** 12.

* Realizamos una llamada del terminal 430 al 777 y esperamos que descuelge, post13.

* realizamos otra llamada del 430 al 555 y el tranferimos la primera llamada14.

*/ 15.

public static void main(String[] args) { 16.

JtapiPeer peer = null; 17.

Provider prov = null; 18.

CallControlCall call = null; 19.

CallControlCall call2 = null; 20.

Terminal term = null; 21.

TerminalConnection[] tcs = null; 22.

Connection[] cons = null; 23.

24.

try { 25.

peer = JtapiPeerFactory.getJtapiPeer(null); 26.

prov = peer.getProvider(null); 27.

28.

term = prov.getTerminal("430"); 29.

30.

call = (CallControlCall) prov.createCall(); 31.

call.connect(term, term.getAddresses()[0], "777"); 32.

33.

// Esperamos unos segundos en los que debe descolgar. 34.

Thread.sleep(8000); 35.

36.

call2 = (CallControlCall) prov.createCall(); 37.

38.

tcs = call.getConnections()[0].getTerminalConnections(); 39.

cons = call2.consult(tcs[0], "555"); 40.

41.

call.setTransferController(call.getConnections()

[0].getTerminalConnections()[0]);

42.

call2.setTransferController(call2.getConnections()

[0].getTerminalConnections()[0]);

43.

44.

// Realiamos la tranferencia 45.

call.transfer(cons[0].getCall()); 46.

47.

} catch (Exception e) { 48.

System.out.println(e.toString()); 49.

} finally { 50.

try { 51.

// Liberamos recursos 52.

prov.shutdown(); 53.

} catch (Exception ex){} 54.

} 55.

} 56.

} 57.

58.

Ejemplo: Conferencia de llamadas.

Anuncios Google

Tutoriales

Curso

Curso Excel 2007

Estudiar Photoshop

view plain print ?

import javax.telephony.*; 01.

import javax.telephony.events.*; 02.

import javax.telephony.callcontrol.*; 03.

import javax.telephony.callcontrol.events.*; 04.

05.

/** 06.

* Ejemplo de conferencia de llamadas. 07.

* @author Carlos García. Autentia 08.

*/ 09.

public class EstablecerConferenciaApp { 10.

/** 11.

* Pasos: 12.

* 1) Llamamos del terminal 555 al 666. 13.

* 2) Llamamos del terimnal 555 al 777. 14.

* 3) Realizamos la conferencia. 15.

*/ 16.

public static void main(String args[]) { 17.

JtapiPeer peer = null; 18.

Provider prov = null; 19.

CallControlCall call1 = null; 20.

CallControlCall call2 = null; 21.

Connection[] connections1 = null; 22.

Connection[] connections2 = null; 23.

TerminalConnection[] tcs = null; 24.

25.

try { 26.

peer = JtapiPeerFactory.getJtapiPeer(null); 27.

prov = peer.getProvider(null); 28.

29.

call1 = (CallControlCall) prov.createCall(); 30.

31.

connections1 = call1.connect(prov.getTerminal("555"), prov.getAddress("555"32.

33.

Thread.sleep(2000); 34.

35.

// Realizamos la segunda llamada 36.

call2 = (CallControlCall) prov.createCall(); 37.

38.

connections2 = call2.connect(prov.getTerminal("555"), prov.getAddress("555"39.

40.

Thread.sleep(2000); 41.

42.

// Configuramos los controladores de conferencias 43.

call1.setConferenceController(connections1[0].getTerminalConnections()[0]); 44.

call2.setConferenceController(connections2[0].getTerminalConnections()[0]); 45.

46.

((CallControlTerminalConnection) call1.getConferenceController()).unhold(47.

48.

// Realizamos la conferencia 49.

call1.conference(call2); 50.

51.

Thread.sleep(2000); 52.

} catch (Exception e) { 53.

System.out.println(e.toString()); 54.

} finally { 55.

try { 56.

// Liberamos recursos 57.

call1.drop(); 58.

call2.drop(); 59.

prov.shutdown(); 60.

}catch (Exception ex){} 61.

} 62.

} 63.

} 64.

65.

Paquete CallCenter

Este paquete extiende el paquete Core, permitiendo la siguiente funcionalidad:

Operaciones con grupos de agentes (consultar y modificar).1.Obtener información de llamdas por grupo de agentes (teleoperadores, etc.).2.Consultar estados de agentes.3.Asociar datos (objetos) a llamadas.4.Realizar llamadas predictivas (muy usado en marcadores automáticos).5.

Ejemplo: Dar de alta a un agente en un grupo.

view plain print ?

import javax.telephony.*; 01.

import javax.telephony.callcenter.*; 02.

03.

/** 04.

* Damos de alta al teleoperador "carlos_garcia" en el grupo 150, para ello usará el 05.

* @author Carlos García. Autentia 06.

*/ 07.

public class LoggedOnApp { 08.

09.

public static void main(String[] args){ 10.

JtapiPeer peer = null; 11.

CallCenterProvider prov = null; 12.

AgentTerminal term = null; 13.

ACDAddress[] groups = null; 14.

Agent agente = null; 15.

16.

try { 17.

peer = JtapiPeerFactory.getJtapiPeer(null); 18.

prov = (CallCenterProvider) peer.getProvider(null); 19.

groups = prov.getACDAddresses(); 20.

term = (AgentTerminal) prov.getTerminal("555"); 21.

agente = term.addAgent(term.getAddresses()[0], groups[150], Agent.READY, 22.

23.

} catch ( Exception e ){ 24.

System.out.println(e); 25.

} finally { 26.

try { 27.

prov.shutdown(); 28.

} catch (Exception ex){} 29.

} 30.

} 31.

} 32.

33.

Ejemplo: Realizamos una llamada telefónica y le asociamos información denegocio.

view plain print ?

import javax.telephony.*; 01.

import javax.telephony.callcenter.*; 02.

03.

/** 04.

* Realizamos una llamada y le asociamos datos (cualquier objeto serializable)05.

* @author Carlos García. Autentia 06.

*/ 07.

public class AssingDataToCallApp { 08.

09.

public static void main(String[] args) { 10.

JtapiPeer peer = null; 11.

CallCenterProvider prov = null; 12.

CallCenterCall call = null; 13.

Connection[] connections = null; 14.

15.

try { 16.

peer = JtapiPeerFactory.getJtapiPeer(null); 17.

prov = (CallCenterProvider) peer.getProvider(null); 18.

19.

call = (CallCenterCall) prov.createCall(); 20.

21.

// Realizamos una llamada 22.

connections = call.connect(prov.getTerminal("555"), prov.getAddress("555"23.

24.

// Asociamos datos a la llamada 25.

call.setApplicationData("En un lugar de la mancha..."); 26.

27.

} catch (Exception ex) { 28.

System.out.println(ex); 29.

} finally { 30.

try { 31.

// Liberamos recursos 32.

prov.shutdown(); 33.

} catch (Exception ex){} 34.

} 35.

} 36.

} 37.

38.

Paquete Phone

Este paquete extiende el paquete Core, permitiendo la siguiente funcionalidad:

Consultar y modificar la pantalla, el volumen y los indicadores luminosos de un terminal.1.Pulsar los botones del teclado del terminal.2.Monitorizar los cambios en la pantalla y detectar pulsaciones de las teclas.3.

Ejemplo: Pulsación de teclas.

view plain print ?

01.

import javax.telephony.*; 02.

import javax.telephony.phone.*; 03.

04.

/** 05.

* Pulsamos la tecla 5 dos veces 06.

* @author Carlos García. Autentia 07.

*/ 08.

public class PhoneTerminalPressKeyApp { 09.

public static void main(String[] args){ 10.

JtapiPeer peer = null; 11.

Provider prov = null; 12.

Terminal term = null; 13.

ComponentGroup[] groups = null; 14.

Component[] botones = null; 15.

16.

try { 17.

peer = JtapiPeerFactory.getJtapiPeer(null); 18.

prov = peer.getProvider(null); 19.

term = prov.getTerminal(null); 20.

21.

groups = ((PhoneTerminal) term).getComponentGroups(); 22.

for ( int i = 0; i < groups.length; i++ ){ 23.

if ( "Button".equalsIgnoreCase(groups[i].getDescription())){ 24.

botones = groups[i].getComponents(); 25.

break; 26.

} 27.

} 28.

29.

PhoneTerminalPressKeyApp.PressKey(botones, "5"); 30.

PhoneTerminalPressKeyApp.PressKey(botones, "5"); 31.

} catch ( Exception ex ){ 32.

System.out.println(ex); 33.

} finally { 34.

try { 35.

prov.shutdown(); 36.

} catch (Exception ex){} 37.

} 38.

} 39.

40.

/** 41.

* Presiona un tecla por su identificador 42.

*/ 43.

private static void PressKey(Component[] botones, String buttonID){ 44.

PhoneButton btn; 45.

46.

for ( int i = 0; i < botones.length; i++){ 47.

btn = (PhoneButton) botones[i]; 48.

if (btn.getName().equalsIgnoreCase(buttonID) ){ 49.

btn.buttonPress(); 50.

return; 51.

} 52.

} 53.

} 54.

} 55.

Referencias

Especificación JTAPI

Conclusiones

Comparada con otras APIs de teléfonia, desde mi punto de vista JTAPI gana por goleada en sencillez debidoa su diseño orientado a objetos. En su ultima versión (1.4) No le falta de nada, eso sí, cada proveedor detelefonía puede o no implementar lo que dice la especificación, para ello primeramente se debería depreguntar por las capacidades del mismo en relación a cada método de cada clase (tienen métodosgetCapabilities()).

Un saludo, espero que os haya resultado de ayuda.

Carlos García.

¿Qué te ha parecido el tutorial? Déjanos saber tu opinión y ¡vota!

Muy malo Malo Regular Bueno Muy bueno

Anímate y coméntanos lo que pienses sobre este tutorial

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tuayuda, podemos ofrecerte un mejor servicio.

Nombre: E-Mail:

Comentario:

Texto Legal y condiciones de uso

Puedes inscribirte en nuestro servicio de notificaciones haciendo clicaquí.Puedes firmar en nuestro libro de visitas haciendo clic aquí.Puedes asociarte al grupo AdictosAlTrabajo en XING haciendo clicaquí.

Añadir a favoritos Technorati.

Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento-Nocomercial-Sin obras derivadas 2.5

Recuerda

Autentia te regala la mayoría del conocimiento aquí compartido (Vertodos los tutoriales). Somos expertos en: J2EE, Struts, JSF, C++,OOP, UML, UP, Patrones de diseño ... y muchas otras cosas.

¿Nos vas a tener en cuenta cuando necesitesconsultoría o formación en tu empresa?, ¿Vas a sertan generoso con nosotros como lo tratamos de sercon vosotros?

Somos pocos, somos buenos, estamos motivados y nos gustalo que hacemos ...

Autentia = Soporte a Desarrollo & Formación.

[email protected]

Tutoriales recomendados

Nombre Resumen Fecha Visitas Valoración Votos Pdf

Creando ServiciosWeb con BeaWorkshop 8.1

En este artículo os mostramoscomo funciona la nuevaherramienta de Bea, Workshopy como crear servicios web conella

2003-12-15 12174 Muybueno 2

SOA y el modelo deNegocio

En este tutorial podemos veruna documento de SantiagoPereira sobre SOA, losestándares que se usan y launión del SOA con los procesosde negocio.

2007-04-23 3613 Muybueno 1

AspectJ,Programación conAspectos

Os mostramos como configurarAspectJ (extensión Java para laprogramación basada enaspectos) y un pequeñoejemplo para medir lavelocidad de una función sinalterar su código.

2004-01-30 16392 Muybueno 3

Persistencia conSpring

En el siquiente tutorial vamosa ver algunas de lasaportaciones que nos ofreceSpring para mejorar la capa depersistencia de nuestrasaplicaciones

2009-03-04 1169 Muybueno 9

Introducción a LuceneEn este tutorial realizaremosuna breve introdución a API debúsqueda Lucene

2008-08-17 2085 Muybueno 7

Gestor de ContenidosGratuito con Typo3

César Crespo nos enseña comoinstalar y utilizar uno de losmejores gestores decontenidos gratuitos delmercado

2004-07-22 19186 Muybueno 2

Aplicación profesionalcon Struts

En este tutorial, os mostramoscomo crear una aplicaciónprofesional, usando numerosospatrones y utilizando Struts.

2003-10-08 131427 Muybueno 34

J2ME.Internacionalizaciónde aplicaciones paramóviles

En este tutorial aprenderemosa internacionalizar MIDletsmediante el estandar JSR-238

2008-05-06 2603 Bueno 8

Servicio Web conNetBeans 6 y pruebacon SoapUI

En este tutorial os enseñamoscómo crear y probar un servicioweb de una manera sencillautilizando netbeans 6

2007-08-02 9704 Bueno 6

CMMI. Modelo deMadurez Software

Os introducimos a CMMI oCapability Maturity ModelIntegration. CMMI es unmodelo de calidad exigido porel gobierno americano a susproveedores para el desarrollode Software. Su conocimientoes esencial para reducir costesde desarrollo.

2004-02-05 66243 Bueno 25

Nota:

Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento. Los contenidos ycomentarios de los tutoriales son responsabilidad de sus respectivos autores. En algún caso se puede hacer

referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectadodesea que incorporemos alguna reseña específica, no tiene más que solicitarlo. Si alguien encuentra algúnproblema con la información publicada en este Web, rogamos que informe al [email protected] para su resolución.

Copyright 2003-2009 © All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia

Anuncios Google Curso Photoshop CS3 Academias Photoshop Formacion Photoshop Aprender Fotoshop Curso Drenaje Manual