MANUAL DE PROGRAMACIÓN DEL SERVIDOR DE …³n.pdfinterfaz del SMM. La siguiente tabla resume cada...

80
MANUAL DE PROGRAMACIÓN DEL SERVIDOR DE MENSAJERÍA MOVISTAR 1.2 Noviembre de 2000 © 2000 Telefónica Investigación y Desarrollo, S.A. Unipersonal Reservados todos los derechos

Transcript of MANUAL DE PROGRAMACIÓN DEL SERVIDOR DE …³n.pdfinterfaz del SMM. La siguiente tabla resume cada...

  • MANUAL DE PROGRAMACIÓN

    DEL SERVIDOR DE

    MENSAJERÍA MOVISTAR 1.2

    Noviembre de 2000

    © 2000 Telefónica Investigación y Desarrollo, S.A. UnipersonalReservados todos los derechos

  • Índice de Contenidos

    iiMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    1 INTRODUCCIÓN ............................................................................................................. 1-1

    1.1 AUDIENCIA............................................................................................................ 1-1

    1.2 ESTRUCTURA DEL DOCUMENTO........................................................................ 1-1

    2 MODELO DE OBJETOS DEL SMM ........................................................................... 2-1

    2.1 OBJETO ScmAplicacion ......................................................................................... 2-2

    2.1.1 Interfaz IAplicacion .................................................................................. 2-22.1.1.1 Propiedades............................................................................ 2-3

    2.1.1.1.1 Administrador.......................................................................... 2-3

    2.1.1.1.2 Servidor .................................................................................. 2-32.1.1.2 Métodos.................................................................................. 2-4

    2.1.1.2.1 DameTextoError...................................................................... 2-4

    2.1.1.2.2 Conectar ................................................................................. 2-42.1.1.2.3 Desconectar............................................................................ 2-5

    2.1.2 Interfaz IAplicacionEvents ........................................................................ 2-6

    2.1.2.1 OnProcesoParado................................................................... 2-62.1.2.2 OnProcesoReanudado............................................................ 2-7

    2.1.2.3 OnSalir ................................................................................... 2-7

    2.1.2.4 OnShutDown........................................................................... 2-7

    2.2 OBJETO ScmServidor............................................................................................ 2-8

    2.2.1 Interfaz IServidor ..................................................................................... 2-82.2.1.1 Enviar ..................................................................................... 2-8

    2.2.1.2 Recibir .................................................................................. 2-10

    2.2.1.3 Conectar ............................................................................... 2-102.2.1.3.1 Desconectar...........................................................................2-11

    2.2.2 Interfaz IServidorEvents......................................................................... 2-12

    2.2.2.1 OnEstadoPeticion ................................................................. 2-122.2.2.2 OnMensajeRecibido.............................................................. 2-14

    2.2.2.3 OnNotificacionRecibida......................................................... 2-15

    2.3 OBJETO ScmAdministrador ................................................................................. 2-16

    2.3.1 Propiedades .......................................................................................... 2-17

    2.3.1.1 Dispositivo ............................................................................ 2-172.3.1.2 Estado .................................................................................. 2-17

  • Índice de Contenidos (cont.)

    iiiMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    2.3.1.3 IntentosPeticion .................................................................... 2-18

    2.3.1.4 MostraTaskBarlcon................................................................ 2-182.3.1.5 NumeroWorkerThreads......................................................... 2-18

    2.3.1.6 TiempoRefrescoWorkerThreads............................................ 2-18

    2.3.1.7 Servicio................................................................................. 2-192.3.1.8 ChequearDispositivos ........................................................... 2-19

    2.3.1.9 TiempoChequearDispositivos................................................ 2-19

    2.3.2 Métodos................................................................................................. 2-192.3.2.1 Configurar............................................................................. 2-19

    2.3.2.2 PararProceso........................................................................ 2-20

    2.3.2.3 ReanudarProceso ................................................................. 2-20

    2.4 OBJETO ScmDispositivos .................................................................................... 2-20

    2.4.1 Interfaz IDispositivos.............................................................................. 2-202.4.1.1 Propiedades.......................................................................... 2-21

    2.4.1.1.1 Count.................................................................................... 2-21

    2.4.1.1.2 Item ...................................................................................... 2-212.4.1.2 Métodos................................................................................ 2-21

    2.4.1.2.1 Actualizar.............................................................................. 2-22

    2.4.1.2.2 Find ...................................................................................... 2-222.4.1.2.3 Conectar ............................................................................... 2-23

    2.4.1.2.4 Desconectar.......................................................................... 2-23

    2.4.2 Interfaz IDispositivosEvents ................................................................... 2-242.4.2.1 OnNuevoDispositivo.............................................................. 2-25

    2.4.2.2 OnDispositivoEliminado ........................................................ 2-26

    2.4.2.3 OnDispositivoModificado....................................................... 2-262.4.2.4 OnNuevaEntradaAgenda ...................................................... 2-27

    2.4.2.5 OnEntradaAgendaModificada................................................ 2-29

    2.4.2.6 OnEntradaAgendaBorrada .................................................... 2-302.4.2.7 OnNuevoMensaje ................................................................. 2-31

    2.4.2.8 OnMensaje Borrado .............................................................. 2-33

    2.4.2.9 OnDispositivoInicializado ...................................................... 2-342.4.2.10 OnActualizarAgendaSIM ....................................................... 2-35

    2.4.2.11 OnRecibir.............................................................................. 2-35

    2.5 OBJETO ScmDispositivo ...................................................................................... 2-36

    2.5.1 Nombre ................................................................................................. 2-37

    2.5.2 Conexion ............................................................................................... 2-372.5.3 Estado ................................................................................................... 2-38

  • Índice de Contenidos (cont.)

    ivMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    2.5.4 Protocolo ............................................................................................... 2-38

    2.5.5 VersionDeSoftware ................................................................................ 2-382.5.6 AgendaSIM............................................................................................ 2-39

    2.5.7 MensajesSIM......................................................................................... 2-39

    2.5.8 Bloqueado ............................................................................................. 2-39

    2.6 OBJETO ScmAgendaSIM..................................................................................... 2-40

    2.6.1 Actualizar............................................................................................... 2-402.6.2 Anadir.................................................................................................... 2-40

    2.6.3 Borrar .................................................................................................... 2-42

    2.6.4 Modificar................................................................................................ 2-42

    2.7 OBJETO ScmMensajesSIM.................................................................................. 2-43

    2.7.1 Actualizar............................................................................................... 2-442.7.2 Anadir.................................................................................................... 2-44

    2.7.3 Borrar .................................................................................................... 2-45

    2.7.4 Enviar .................................................................................................... 2-46

    3 MODELO DE OBJETOS DE LA LIBRERÍA DatosScm.dll ................................. 3-1

    3.1 OBJETO ScmDatosEnviar...................................................................................... 3-2

    3.1.1 Propiedades ............................................................................................ 3-33.1.1.1 ClaseMensaje ......................................................................... 3-3

    3.1.1.2 Destinatario............................................................................. 3-4

    3.1.1.3 FechaEntregaDiferida ............................................................. 3-43.1.1.4 Filtrar ...................................................................................... 3-4

    3.1.1.5 Mensaje .................................................................................. 3-4

    3.1.1.6 PedirNotificacion ..................................................................... 3-43.1.1.7 PeriodoValidez........................................................................ 3-5

    3.1.1.8 TipoDeCodificacion ................................................................. 3-5

    3.1.2 Métodos................................................................................................... 3-5

    3.2 OBJETO ScmDatosMensajeRecibido ..................................................................... 3-5

    3.2.1 Mensaje................................................................................................... 3-63.2.2 Fecha ...................................................................................................... 3-6

    3.2.3 Remitente ................................................................................................ 3-6

    3.3 OBJETO ScmDatosNotificaciónRecibida ................................................................ 3-7

    3.3.1 Destinatario ............................................................................................. 3-7

    3.3.2 Estado ..................................................................................................... 3-73.3.3 FechaEntrega .......................................................................................... 3-7

  • Índice de Contenidos (cont.)

    vMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    3.3.4 FechaPeticion.......................................................................................... 3-8

    3.4 OBJETO ScmIdentificadorUnico ............................................................................. 3-8

    3.5 OBJETO ScmDatosAgendaSIM.............................................................................. 3-8

    3.5.1 Propiedades ............................................................................................ 3-9

    3.5.1.1 Nombre................................................................................... 3-9

    3.5.1.2 Posicion .................................................................................. 3-93.5.1.3 Telefono................................................................................ 3-10

    3.5.2 Métodos................................................................................................. 3-10

    3.6 OBJETO ScmDatosMensajesSIM......................................................................... 3-10

    3.6.1 Propiedades ...........................................................................................3-11

    3.6.1.1 ClaseMensaje ........................................................................3-113.6.1.2 Estado ...................................................................................3-11

    3.6.1.3 Fecha ....................................................................................3-11

    3.6.1.4 Filtrar .................................................................................... 3-123.6.1.5 Mensaje ................................................................................ 3-12

    3.6.1.6 PedirNotificacion ................................................................... 3-12

    3.6.1.7 PeriodoValidez...................................................................... 3-123.6.1.8 Posicion ................................................................................ 3-12

    3.6.1.9 Telefono................................................................................ 3-13

    3.6.1.10 TipoDeCodificacion ............................................................... 3-133.6.2 Métodos................................................................................................. 3-13

    3.7 OBJETO ScmDatosPeticion ................................................................................. 3-13

    3.7.1 Estado ................................................................................................... 3-14

    3.7.2 FechaCreacion ...................................................................................... 3-14

    3.7.3 FechaEstado.......................................................................................... 3-143.7.4 Identificador........................................................................................... 3-15

    3.7.5 Intentos.................................................................................................. 3-15

    3.7.6 Prioridad................................................................................................ 3-153.7.7 Resultado .............................................................................................. 3-15

    3.7.8 Tipo ....................................................................................................... 3-15

    3.8 OBJETO ScmDatosDispositivo............................................................................. 3-16

    3.8.1 MaxPosicionesAgenda........................................................................... 3-16

    3.8.2 MaxTamanoNombreAgenda................................................................... 3-163.8.3 PosInicialAgenda ................................................................................... 3-16

    4 TIPOS ENUMERADOS DEL MODELO DE OBJETOS SMM .............................. 4-1

  • Índice de Contenidos (cont.)

    viMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    4.1 TIPO ENUM ClasesDeMensaje .............................................................................. 4-1

    4.2 TIPO ENUM EstadosDispositivos ........................................................................... 4-1

    4.3 TIPO ENUM EstadosEnvio ..................................................................................... 4-2

    4.4 TIPO ENUM EstadosMensajesSIM......................................................................... 4-2

    4.5 TIPO ENUM EstadosPeticion ................................................................................. 4-3

    4.6 TIPO ENUM EstadosSCM ...................................................................................... 4-3

    4.7 TIPO ENUM TiposDeCodificacion........................................................................... 4-3

    4.8 TIPO ENUM TiposDePeticion ................................................................................. 4-4

    4.9 TIPO ENUM PrioridadPeticion ................................................................................ 4-4

    4.10 TIPO ENUM NivelesBloqueoDispositivo ................................................................. 4-4

    4.11 TIPO ENUM ConectarAplicacionFlags .................................................................... 4-4

    4.12 TIPO ENUM ConectarServidorFlags....................................................................... 4-5

    4.13 TIPO ENUM ConectarDispositivosFlags ................................................................. 4-5

    A LIBRERÍA SCRIPT .........................................................................................................A-1

    GLOSARIO DE TÉRMINOS Y ACRÓNIMOS ......................................................... Glosario-1

  • Índice de Tablas

    viiMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    Tabla 2-1: OBJETOS, PROPIEDADES, MÉTODOS Y EVENTOS........................................ 2-1

    Tabla 2-2: PROPIEDADES IAplicacion............................................................................... 2-2

    Tabla 2-3: MÉTODOS IAplicacion....................................................................................... 2-3

    Tabla 2-4: PARÁMETROS DameTextoError ....................................................................... 2-4

    Tabla 2-5: PARÁMETROS Conectar I ................................................................................. 2-5

    Tabla 2-6: PARÁMETROS Desconectar I ........................................................................... 2-5

    Tabla 2-7: EVENTOS IAplicacionEvents ............................................................................ 2-6

    Tabla 2-8: MÉTODOS IServidor .......................................................................................... 2-8

    Tabla 2-9: PARÁMETROS Enviar........................................................................................ 2-9

    Tabla 2-10: PARÁMETROS Conectar II ...............................................................................2-11

    Tabla 2-11: PARÁMETROS Desconectar II..........................................................................2-11

    Tabla 2-12: EVENTOS IServidorEvents.............................................................................. 2-12

    Tabla 2-13: PARÁMETROS OnEstadoPeticion .................................................................. 2-12

    Tabla 2-14: PARÁMETROS OnMensajeRecibido............................................................... 2-14

    Tabla 2-15: PARÁMETROS OnNotificacionRecibida ......................................................... 2-15

    Tabla 2-16: PROPIEDADES IAdministrador....................................................................... 2-16

    Tabla 2-17: MÉTODOS IAdministrador .............................................................................. 2-16

    Tabla 2-18: PROPIEDADES IDispositivos.......................................................................... 2-20

    Tabla 2-19: MÉTODOS IDispositivos ................................................................................. 2-21

    Tabla 2-20: PARÁMETROS Find......................................................................................... 2-22

    Tabla 2-21: PARÁMETROS Conectar III ............................................................................. 2-23

    Tabla 2-22: PARÁMETROS Desconectar III........................................................................ 2-24

    Tabla 2-23: EVENTOS IDispositivosEvents ....................................................................... 2-24

    Tabla 2-24: PARÁMETROS OnNuevoDispositivo .............................................................. 2-25

    Tabla 2-25: PARÁMETROS OnDispositivoEliminado ........................................................ 2-26

    Tabla 2-26: PARÁMETROS OnDispositivoModificado ...................................................... 2-27

    Tabla 2-27: PARÁMETROS OnNuevaEntradaAgenda ....................................................... 2-28

    Tabla 2-28: PARÁMETROS OnEntradaAgendaModificada................................................ 2-29

    Tabla 2-29: PARÁMETROS OnEntradaAgendaBorrada .................................................... 2-30

  • Índice de Tablas (cont.)

    viiiMANUAL DE PROGRAMACIÓN DEL SERVIDOR DEMENSAJERÍA MOVISTAR 1.2

    Tabla 2-30: PARÁMETROS OnNuevoMensaje ................................................................... 2-31

    Tabla 2-31: PARÁMETROS OnMensajeBorrado ................................................................ 2-33

    Tabla 2-32: PARÁMETROS OnDispositivoInicializado...................................................... 2-34

    Tabla 2-33: PARÁMETROS OnActualizarAgendaSIM........................................................ 2-35

    Tabla 2-34: PARÁMETROS OnRecibir................................................................................ 2-36

    Tabla 2-35: PROPIEDADES IDispositivo............................................................................ 2-36

    Tabla 2-36: MÉTODOS IAgendaSIM ................................................................................... 2-40

    Tabla 2-37: PARÁMETROS Anadir ..................................................................................... 2-41

    Tabla 2-38: MÉTODOS IMensajesSIM ................................................................................ 2-44

    Tabla 2-39: PARÁMETROS Anadir ..................................................................................... 2-44

    Tabla 2-40: PARÁMETROS Borrar...................................................................................... 2-46

    Tabla 2-41: PARÁMETROS Enviar...................................................................................... 2-47

    Tabla 3-1: OBJETOS, PROPIEDADES Y MÉTODOS .......................................................... 3-2

    Tabla 3-2: PROPIEDADES IDatosEnviar ............................................................................ 3-2

    Tabla 3-3: MÉTODOS IDatosEnviar.................................................................................... 3-3

    Tabla 3-4: PROPIEDADES IDatosMensajeRecibido .......................................................... 3-6

    Tabla 3-5: PROPIEDADES IDatosNotificaciónRecibida .................................................... 3-7

    Tabla 3-6: MÉTODOS IIdentificadorUnico.......................................................................... 3-8

    Tabla 3-7: PROPIEDADES IDatosAgendaSIM.................................................................... 3-9

    Tabla 3-8: MÉTODOS IDatosAgendaSIM............................................................................ 3-9

    Tabla 3-9: PROPIEDADES IDatosMensajesSIM............................................................... 3-10

    Tabla 3-10: MÉTODOS IDatosMensajesSIM........................................................................3-11

    Tabla 3-11: PROPIEDADES IDatosPeticion ....................................................................... 3-13

    Tabla 3-12: PROPIEDADES IDatosDispositivo.................................................................. 3-16

  • 1-1

    1 INTRODUCCIÓNEl Servidor de Mensajería MoviStar (SMM) es un servidor COM Out-Of-Process que ex-porta una serie de objetos para facilitar el envío de mensajes MoviStar a las aplicaciones.

    El SMM se basa en la librería DatosScm.dll. Esta librería debe estar instalada en cada má-quina cliente y sirve para optimizar el acceso remoto al servidor. La librería DatosScm.dll esun servidor COM In-Process que exporta una serie de objetos de datos utilizados tanto porlos clientes del sistema para pasarle información como por el propio sistema internamente.

    1.1 AUDIENCIA

    Este documento está dirigido a aquellas personas que tengan que crear aplicaciones con elSMM.

    1.2 ESTRUCTURA DEL DOCUMENTO

    La estructura del documento, por capítulo, es la siguiente:

    • Capítulo 1 INTRODUCCIÓN: la presente introducción

    • Capítulo2 MODELO DE OBJETOS DEL SMM: se describen los objetos, propieda-des, métodos y eventos del SMM.

    • Capítulo 3 MODELO DE OBJETOS DE LA LIBRERÍA DatosScm.dll: se describenlos objetos, propiedades y métodos de la librería DatosScm.dll.

    • Capítulo 4 TIPOS ENUMERADOS DEL MODELO DE OBJETOS SMM: se des-criben los tipos enumerados del modelo de objetos SMM.

  • 2-1

    2 MODELO DE OBJETOS DEL SMMEn este capítulo se explican los objetos, interfaces y propiedades, métodos y eventos de cadainterfaz del SMM. La siguiente tabla resume cada objeto con sus interfaces y las propieda-des, métodos y eventos de las mismas.

    Tabla 2-1: OBJETOS, PROPIEDADES, MÉTODOS Y EVENTOS

    Objetos Interfaces Propiedades Métodos/Eventos

    ScmAplicacion IAplicacion

    IAplicacionEvents

    Administrador, Servidor DameTextoError, Conectar,Desconectar

    OnProcesoParado, OnProceso-Reanudado, OnSalir,OnShutDown

    ScmServidor IServidor

    IServidorEvents

    Enviar, Recibir, Conectar, Des-conectar

    OnEstadoPeticion, OnMensaje-Recibido, OnNotificacionReci-bida

    ScmAdministrador IAdministrador Dispositivos, Estado, In-tentosPeticion, Mostrar-TaskBarIcon, NumeroWor-kerThreads, Servicio, Tiem-poRefrescoWor-kerThreads,ChequearDispositivos, TiempoChequear-Dispositivos

    Configurar, PararProceso, Rea-nudarProceso

    ScmDispositivos IDispositivos

    IDispositivosEvents

    Item, Count Actualizar, Find, Conectar,Desconectar

    OnNuevoDispositivo, OnDispo-sitivoEliminado, OnDispositi-voModificado, OnNuevaEntra-daAgenda, OnEntradaAgenda-Borrada, OnEntradaAgendaMo-dificada, OnActualizarAgenda-SIM, OnNuevoMensaje, On-MensajeBorrado, OnActuali-zarMensajesSIM, OnRecibir

  • OBJETOS DEL SMM

    2-2

    Objetos Interfaces Propiedades Métodos/Eventos

    ScmDispositivo IDispositivo Nombre, Conexión, Estado,Protocolo, VersionDeSoft-ware, AgendaSIM, Mensa-jesSIM, Bloqueado

    ScmAgendaSIM IAgendaSIM Actualizar, Anadir, Borrar,Modificar

    ScmMensajesSIM IMensajesSIM Actualizar, Anadir, Borrar,Enviar

    Nota: La sintaxis y los ejemplos de código se presentan en Visual Basic.

    A continuación se pasan a detallar cada uno de los objetos.

    2.1 OBJETO ScmAplicacion

    El objeto ScmAplicacion es el objeto raíz del modelo de objetos del SMM. Implementa lainterfaz IAplicacion y la interfaz IAplicacionEvent y está incluido en el fichero ServidorCo-rreoMoviStar.exe. Este objeto es el único que se obtiene usando CreateObject o GetObjectdesde otra aplicación.

    A continuación se muestra un ejemplo del objeto ScmAplicacion.Private WithEvents g_App As IAplicacion

    Set g_App = CreateObject("ServidorCorreoMoviStar.Aplicación")

    2.1.1 Interfaz IAplicacion

    La interfaz IAplicacion proporciona un fácil acceso al resto de las interfaces.

    La Tabla 2-2: PROPIEDADES IAplicacion muestra las propiedades de la interfaz IAplica-cion.

    Tabla 2-2: PROPIEDADES IAplicacion

    Nombre Tipo Acceso

    Administrador IAdministrador Sólo lectura

    Servidor IServidor Sólo lectura

    La Tabla 2-3: MÉTODOS IAplicacion muestra los métodos de la interfaz IAplicacion.

  • OBJETOS DEL SMM

    2-3

    Tabla 2-3: MÉTODOS IAplicacion

    Nombre Parámetros

    DameTextoError Error As Long

    Conectar Pevents As IUnknown, Flags AsConectarAplicacionFlags

    Desconectar Cookie As Long

    2.1.1.1 Propiedades

    En este apartado se detallan las propiedades de la interfaz IAplicacion.

    2.1.1.1.1 Administrador

    Es una propiedad de sólo lectura que da acceso a la interfaz IAdministrador delobjeto ScmAdministrador. La interfaz IAdministrador sólo es necesaria si sequieren gestionar los dispositivos o la configuración del SMM.

    SINTAXIS

    Property Administrador As IAdministrador

    EJEMPLO

    Private WithEvents g_Admin As IAdministrador

    Set g_Admin = g_App.Administrador

    2.1.1.1.2 Servidor

    La propiedad Servidor da acceso a la interfaz IServidor del objeto ScmServidor.Es el único objeto necesario para enviar y recibir mensajes.

    SINTAXIS

    Property Servidor As IServidor

    EJEMPLO

    Private WithEvents g_Servidor As IServidor

  • OBJETOS DEL SMM

    2-4

    Set g_Servidor = g_App.Servidor

    2.1.1.2 Métodos

    En este apartado se detallan los métodos de la interfaz IAplicacion.

    2.1.1.2.1 DameTextoError

    El método DameTextoError retorna el texto de cualquier código de error de-vuelto por la aplicación.

    SINTAXIS

    Function DameTextoError (Error As Long) As String

    PARÁMETROS

    La Tabla 2-4: PARÁMETROS DameTextoError muestra los parámetros delmétodo DameTexto Error.

    Tabla 2-4: PARÁMETROS DameTextoError

    Parámetros Tipo Descripción Cumplimentación

    Error Long Código de error devuelto por laaplicación, del cual se quiereconocer el texto

    Requerido

    EJEMPLO

    'Si el resultado es negativo indica un error.

    If 0 > DatosPeticion.Resultado Then 'Error

    Str = g_App.DameTextoError ( DatosPeticion.Resultado )

    End If

    2.1.1.2.2 Conectar

    El método Conectar es un método alternativo para la captura de eventos. Es unmétodo más rápido que el método estándar.

  • OBJETOS DEL SMM

    2-5

    SINTAXIS

    Function Conectar (pEvents As Iunkown, Flags As ConectarAplica-cionFlags)

    PARÁMETROS

    La Tabla 2-5: PARÁMETROS Conectar I muestra los parámetros del méto-do Conectar de la interfaz IAplicacion.

    Tabla 2-5: PARÁMETROS Conectar I

    Parámetros Tipo Descripción Cumplimentación

    Pevents IUnknown

    Flags ConectarAplicacionFlags Es el que decide queeventos captura o no

    EJEMPLO

    Implements IAplicacionEvents

    Dim g_lCookieAplicacion As Long

    g_lCookieAplicacion=Conectar(Me,CA_All)

    2.1.1.2.3 Desconectar

    El método Desconectar es un método que finaliza la captura de los eventos.

    SINTAXIS

    Function Desconectar (Cookie As Long)

    PARÁMETROS

    La Tabla 2-6: PARÁMETROS Desconectar I muestra los parámetros delmétodo de Desconectar de la interfaz IAplicacion.

  • OBJETOS DEL SMM

    2-6

    Tabla 2-6: PARÁMETROS Desconectar I

    Parámetros Tipo Descripción Cumplimentación

    Cookie Long Finaliza la capturade los eventos

    EJEMPLO

    Desconectar (g_lCookieAplicacion)

    2.1.2 Interfaz IAplicacionEvents

    La interfaz IAplicacionEvents es la interfaz que contiene los eventos del objeto ScmAplica-cion.

    La Tabla 2-7: EVENTOS IAplicacionEvents muestra los eventos de la interfaz IAplicacio-nEvents.

    Tabla 2-7: EVENTOS IAplicacionEvents

    Nombre Parámetros

    OnProcesoParado

    OnProcesoReanudado

    OnSalir

    OnShutDown

    A continuación se detallan los eventos de la interfaz IAplicacionEvents.

    2.1.2.1 OnProcesoParado

    Este evento avisa que el administrador ha parado el proceso.

    SINTAXIS

    Sub OnProcesoParado()

  • OBJETOS DEL SMM

    2-7

    EJEMPLO

    Private Sub g_App_OnProcesoParado ( )

    'HACER: Lo que sea necesario cuando el proceso se haya parado

    End Sub

    2.1.2.2 OnProcesoReanudado

    Este evento avisa que el administrador ha reanudado el proceso.

    SINTAXIS

    Sub OnProcesoReanudado ( )

    EJEMPLO

    Private Sub g_App_OnProcesoReanudado ( )

    'HACER: Lo que se crea necesario cuando el proceso se reanude.

    End Sub

    2.1.2.3 OnSalir

    El evento OnSalir avisa que el administrador ha cerrado el SMM. Cuando estoocurre los objetos del SMM que tenga creados la aplicación dejan de ser váli-dos, se debe avisar al usuario y deshabilitar cualquier opción que utilice dichosobjetos.

    SINTAXIS

    Sub OnSalir ( )

    EJEMPLO

    Private Sub g_App_OnSalir ( )

    'HACER: Lo que sea necesario cuando el administrador finalice elproceso.

    End Sub

    2.1.2.4 OnShutDown

    El evento OnShutDown avisa que se está apagando la máquina en la que está elSMM, con lo que los objetos dejan de ser válidos. Se debe avisar al usuario ydeshabilitar cualquier opción que utilice dichos objetos.

  • OBJETOS DEL SMM

    2-8

    SINTAXIS

    Sub OnShutDown ( )

    EJEMPLO

    Private Sub g_App_OnShutDown ( )

    'HACER: Lo que se crea necesario cuando el administrador apagala máquina

    End Sub

    2.2 OBJETO ScmServidor

    Es el único objeto necesario para enviar y recibir mensajes. Implementa las interfaces ISer-vidor y IServidorEvents y está incluido en el fichero ServidorCorreoMoviStar.exe. Sólo sepuede tener acceso a este objeto a través de la propiedad Servidor de la interfaz IAplicacion.

    2.2.1 Interfaz IServidor

    La Tabla 2-8: MÉTODOS IServidor muestra los métodos de la interfaz IServidor.

    Tabla 2-8: MÉTODOS IServidor

    Nombre Parámetros

    Enviar IDPeticion, As String, Dato-sEnviar As IDatosEnviar, Prio-ridad As Long

    Recibir

    Conectar pEvents As IUnknown, FlagsAs ConectarServidorFlags

    Desconectar Cookie As Long

    A continuación se detallan los métodos de la interfaz IServidor.

    2.2.1.1 Enviar

    El método Enviar añade una petición de envío de un mensaje MoviStar a lacola de peticiones del SMM.

  • OBJETOS DEL SMM

    2-9

    Utiliza el objeto de datos ScmDatosEnviar que implementa la interfaz IDato-sEnviar y que se encuentra en la librería DatosScm.dll.

    La interfaz IDatosEnviar contiene los datos del mensaje a enviar. El métodoEnviar es asíncrono, es decir, el mensaje no se envía directamente, sino que seañade la petición a la cola de las peticiones solicitadas, y es el evento OnEsta-doPeticion el que va notificando del cambio de estado de esa petición.

    SINTAXIS

    Function Enviar (IDPeticion As String, DatosEnvio As IDatosEn-viar, [Prioridad As Long])

    PARÁMETROS

    La Tabla 2-9: PARÁMETROS Enviar muestra los parámetros del métodoEnviar.

    Tabla 2-9: PARÁMETROS Enviar

    Parámetros Tipo Descripción Cumplimentación

    IDPeticion String Es el identificador dela petición para elenvío del mensaje. Esteidentificador se generacon el método Nuevode la interfaz IIdentifi-cadorUnico

    Requerido

    DatosEnvio IDatosEnviar Contiene los datos dela petición de envío

    Requerido

    Prioridad Long Prioridad de la peticióndel envío. Los posiblesrangos vienen enume-rados en el tipo Priori-dadPeticion

    Opcional

    EJEMPLO

    El siguiente fragmento de código muestra como se puede enviar un mensajemediante el método enviar de la interfaz IServidor. Se utiliza el objeto ScmI-dentificadorUnico que está en la librería DatosScm.dll, para generar un identi-

  • OBJETOS DEL SMM

    2-10

    ficador único para la petición de envío. También se utiliza el objeto ScmDato-sEnviar que está en la librería DatosScm.dll, que recoge los datos de la peticiónde envío.

    Para enviar un mensaje mediante el método Enviar de la interfaz IServidor pro-ceda como sigue:

    1. Genere un identificador único para la petición de envío, para ello se utilizael interfaz IIdentificadorUnico del objeto ScmIdentificadorUnico:Private g_GenerarID As IIdentificadorUnico

    Set g_GenerarID = New ScmIdentificadorUnico

    2. Declare e inicialice un objeto que contenga los datos de la petición delenvío, para ello se utiliza el objeto ScmDatosEnviar.Dim DatosEnvio as New ScmDatosEnviar

    DatosEnvio.Telefono = "629000000"

    DatosEnvio.Mensaje = "Hola"

    DatosEnvio.PedirNotificacion = True'su valor por defecto se-ría False

    3. Realice la petición de envío.g_Servidor.Enviar g_GenerarID , DatosEnvio

    2.2.1.2 Recibir

    Con este método se indica al SMM que busque nuevos mensajes. No es necesa-rio llamar a este método, salvo que se desactive la recepción automática paraalgún dispositivo.

    SINTAXIS

    Sub Recibir()

    EJEMPLO

    g_Servidor.Recibir

    2.2.1.3 Conectar

    El método Conectar es un método alternativo para la captura de eventos. Es unmétodo más rápido que el método estándar.

    SINTAXIS

    Function Conectar (pEvents As IUnkown, Flags As ConectarServidor-Flags)

  • OBJETOS DEL SMM

    2-11

    PARÁMETROS

    La Tabla 2-10: PARÁMETROS Conectar II muestra los parámetros del mé-todo Conectar de la interfaz IServidor.

    Tabla 2-10: PARÁMETROS Conectar II

    Parámetros Tipo Descripción Cumplimentación

    pEvents IUnknown

    Flags ConectarServidorFlags Es el que decide queeventos captura o no

    EJEMPLO

    Implements IServidorEvents

    Dim g_lCookieServidor As Long

    g_lCookieServidor=Conectar(Me,CS_All)

    2.2.1.3.1 Desconectar

    El método Desconectar es un método que finaliza la captura de los eventos.

    SINTAXIS

    Function Desconectar (Cookie As Long)

    PARÁMETROS

    La Tabla 2-11: PARÁMETROS Desconectar II muestra los parámetros delmétodo de Desconectar de la interfaz IServidor.

    Tabla 2-11: PARÁMETROS Desconectar II

    Parámetros Tipo Descripción Cumplimentación

    Cookie Long Finaliza la capturade los eventos

  • OBJETOS DEL SMM

    2-12

    EJEMPLO

    Desconectar (g_lCookieServidor)

    2.2.2 Interfaz IServidorEvents

    La Tabla 2-12: EVENTOS IServidorEvents muestra los eventos de la interfaz IServidorE-vents.

    Tabla 2-12: EVENTOS IServidorEvents

    Nombre Parámetros

    OnEstadoPeticion Datos As IDatosPeticion

    OnMensajeRecibido Datos As IdatosMensajeRecibido

    OnNotificacionRecibida Datos As IdatosNotificacionRecibida

    A continuación se detallan cada uno de los eventos de la interfaz IServidorEvents.

    2.2.2.1 OnEstadoPeticion

    Este evento notifica un cambio de estado en una petición. El método Enviar dela interfaz IServidor añade la petición de envío a la cola de peticiones solicita-das del SMM y retorna. El SMM procesa esa cola de peticiones y notifica alcliente mediante el evento OnEstadoPeticion del estado actual de la petición.

    SINTAXIS

    Sub OnEstadoPeticion (Datos As IDatosPeticion)

    PARÁMETROS

    La Tabla 2-13: PARÁMETROS OnEstadoPeticion muestra los parámetrosdel evento OnEstadoPeticion.

    Tabla 2-13: PARÁMETROS OnEstadoPeticion

    Parámetros Tipo Descripción

    Datos IDatosPeticion Contiene los datos de la

  • OBJETOS DEL SMM

    2-13

    Parámetros Tipo Descripción

    petición.

    EJEMPLO

    Se muestra un ejemplo del evento OnEstadoPeticion. En el ejemplo al produ-cirse el evento OnEstadoPeticion el programa crea una cadena str que recoge elidentificador de la petición, el estado y el resultado.Private Sub g_Servidor_OnEstadoPeticion(ByVal Datos As IDatosPe-ticion)

    Dim str As String

    str = Datos.Identificador 'Identificador de la petición

    'Traducimos el estado

    Select Case Datos.Estado

    Case EP_Solicitada

    str =str & "," & "Solicitada"

    Case EP_EnProceso

    str = str & "," & "En proceso"

    ………

    'El resto de los posibles estados de la petición

    ………

    Case EP_Cancelada

    str = str & "," & "Cancelada"

    End Select

    'La variable str además de contener el identificador de la peti-ción y el estado, si el mensaje ha sido 'enviado concatenamos ala cadena str el resultado del envío

    'Si el resultado de la petición es 0, el mensaje todavía no hafinalizado.

    If 0 = Datos.Resultado Then

    str = str & "," & ","

    'Si el resultado de la petición es >0, el mensaje ha finalizado

    ElseIf 0 < Datos.Resultado Then

    Select Case Datos.Tipo

    Case TP_Envio

    Dim EstadoEnvio As EstadosEnvio

    EstadosEnvio = Datos.Resultado

    Select Case EstadosEnvio

    Case EE_Enviado

    str = str & "," & "Enviado"

    ………

  • OBJETOS DEL SMM

    2-14

    'El resto de los posibles estados del envío

    ………

    Case EE_NoSeHaPodidoEntregar

    str = str & "," & "No se ha podido entregar"

    End Select

    End Select

    ElseIf 0 > Datos.Resultado Then 'Error

    str = str & "," & g_App.DameTextoError(Datos.Resultado)

    End If

    'Mostramos la cadena en la ventana de depuración

    str = str & "," & Datos.FechaCreacion & "," & Datos.FechaEstado &"," & Datos.Intentos & "," & Datos.Prioridad

    Debug.Print str

    End Sub

    2.2.2.2 OnMensajeRecibido

    El evento OnMensajeRecibido notifica la recepción de un mensaje en el dispo-sitivo. Recibe como parámetro una interfaz IDatosMensajeRecibido con losdatos de los mensajes recibidos.

    SINTAXIS

    Sub OnMensajeRecibido (Datos As IDatosMensajeRecibido)

    PARÁMETROS

    La Tabla 2-14: PARÁMETROS OnMensajeRecibido muestra los parámetrosdel evento OnMensajeRecibido.

    Tabla 2-14: PARÁMETROS OnMensajeRecibido

    Parámetros Tipo Descripción

    Datos IDatosMensajeRecibido Contiene los datos delmensaje recibido, datoscomo Remitente, Mensaje yFecha.

  • OBJETOS DEL SMM

    2-15

    EJEMPLO

    En este ejemplo cuando se produce el evento OnMensajeRecibido se añade aun listbox ListaMensajesRecibidos el texto del mensaje recibido.Private Sub g_Servidor_OnMensajeRecibido(ByVal Datos AsIDatosMen-sajeRecibido)

    ListaMensajesRecibidos.AddItem (Datos.Mensaje)

    End Sub

    2.2.2.3 OnNotificacionRecibida

    El evento OnNotificacionRecibida notifica la recepción de una notificación delCMC en el dispositivo. Sólo se produce si se recibe una notificación y no existeuna petición en espera correspondiente a dicha notificación, por ejemplo si seha borrado. Si se recibe una notificación y existe una petición en espera que co-rresponda a esa notificación, lo que se produce es un cambio en el estado de lapetición, pero no se produce este evento.

    Si se produce este evento es responsabilidad de la aplicación cliente el asociardicha notificación con uno de los mensajes enviados por ella.

    SINTAXIS

    Sub OnNotificacionRecibida (Datos As IDatosNotificacionRecibida)

    PARÁMETROS

    La Tabla 2-15: PARÁMETROS OnNotificacionRecibida muestra los pará-metros del evento OnNotificacionRecibida.

    Tabla 2-15: PARÁMETROS OnNotificacionRecibida

    Parámetros Tipo Descripción

    Datos IDatosNotificacionRecibida Contiene los datos de la notifi-cación recibida

    EJEMPLO

    En este ejemplo se muestra en la ventana de depuración los datos de la notifi-cación recibida.Private Sub g_Servidor_OnNotificacionRecibida(ByVal DatosAs.IDatosNotificacionRecibida)

    Debug.Print (Datos.Destinatario)

  • OBJETOS DEL SMM

    2-16

    Debug.Print (Datos.Estado)

    Debug.Print (Datos.FechaEntrega)

    Debug.Print (Datos.FechaPeticion)

    End Sub

    2.3 OBJETO ScmAdministrador

    El objeto ScmAdministrador ayuda a gestionar los dispositivos. Implementa la interfaz IAd-ministrador y está incluido en el fichero ServidorCorreoMoviStar.exe.

    Sólo se puede tener acceso a él a partir de la propiedad Administrador de la interfaz IAplica-cion.

    La Tabla 2-16: PROPIEDADES IAdministrador muestra las propiedades de la interfazIAdministrador.

    Tabla 2-16: PROPIEDADES IAdministrador

    Nombre Tipo Acceso

    Dispositivos IDispositivos Sólo lectura

    Estado EstadoScm Sólo lectura

    IntentosPeticion Long Lectura/Escritura

    MostrarTaskBarIcon Boolean Lectura/Escritura

    NumeroWorkerThreads Integer Lectura/Escritura

    TiempoRefrescoWorkerThreads Long Lectura/Escritura

    Servicio Boolean Lectura/Escritura

    ChequearDispositivos Boolean Lectura/Escritura

    TiempoChequearDispositivos Long Lectura/Escritura

    La Tabla 2-17: MÉTODOS IAdministrador muestra los métodos de la interfaz IAdminis-trador.

  • OBJETOS DEL SMM

    2-17

    Tabla 2-17: MÉTODOS IAdministrador

    Nombre Parámetros

    Configurar VentanaPadre As Long,IdentificadorLocal AsLong

    PararProceso

    ReanudarProceso

    2.3.1 Propiedades

    En este apartado se detallan las propiedades de la interfaz IAdministrador.

    2.3.1.1 Dispositivo

    La propiedad Dispositivos es de sólo lectura y da acceso a la colección de dis-positivos del sistema.

    SINTAXIS

    Property Dispositivos As IDispositivos

    EJEMPLO

    Public WithEvents g_dispositivos As IDispositivos

    Set g_dispositivos = g_Admin.Dispositivos

    2.3.1.2 Estado

    La propiedad Estado es de sólo lectura y devuelve el estado actual del SMM.

    SINTAXIS

    Property Estado As EstadoSCM

    EJEMPLO

    Select Case g_Admin.Estado

    Case ESCM_Activo

    Debug.Print ("El Servidor de Mensajeria MoviStar está ac-tivo")

  • OBJETOS DEL SMM

    2-18

    Case ESCM_Activando

    Debug.Print ("El Servidor de Mensajeria MoviStar se estáactivando")

    Case ESCM_Parando

    Debug.Print ("El Servidor de Mensajeria MoviStar se estáparando")

    Case ESCM_Parado

    Debug.Print ("El Servidor de Mensajeria MoviStar está pa-rado")

    End Select

    2.3.1.3 IntentosPeticion

    La propiedad IntentosPeticion permite modificar el número de veces que seintenta una petición antes de eliminarla. Es una propiedad de lectura/escritura.

    SINTAXIS

    Property IntentosPeticion As Long

    2.3.1.4 MostraTaskBarlcon

    La propiedad MostrarTaskBarlcon permite mostrar u ocultar el icono del SMMen la barra de tareas. Es una propiedad de lectura/escritura.

    SINTAXIS

    Property MostrarTaskBarlcon As Boolean

    2.3.1.5 NumeroWorkerThreads

    La propiedad NumeroWorkerThreads permite modificar el número de threadsque utiliza el SMM para procesar las peticiones. Cuando se modifica, el cambiono es inmediato, es decir, se espera a que terminen los procesos pendientes, ydespués se modifica el número de threads. Es una propiedad de lectu-ra/escritura.

    SINTAXIS

    Property NumeroWorkerThreads As Integer

  • OBJETOS DEL SMM

    2-19

    2.3.1.6 TiempoRefrescoWorkerThreads

    La propiedad TiempoRefrescoWorkerThreads permite modificar cada cuantotiempo se chequea la existencia de peticiones solicitadas. Es una propiedad delectura/escritura.

    SINTAXIS

    Property TiempoRefrescoWorkerThreads As Long

    2.3.1.7 Servicio

    La propiedad Servicio permite indicar si se desea que el servidor se instale co-mo un servicio NT o no. Se debe rearrancar el SMM para que se arranque co-mo un servicio. Sólo NT y Windows 2000.

    SINTAXIS

    Property Servicio As Boolean

    2.3.1.8 ChequearDispositivos

    La propiedad ChequearDispositivos permite indicar que el servidor chequee losdispositivos cada cierto tiempo. Es una propiedad de lectura/escritura.

    Si se arranca, el SMM detecta los dispositivos y los intenta inicializar. Despuésde arrancar si se añade un nuevo dispositivo, la forma que el SMM lo detecte esactivando la propiedad ChequearDispositivo. Si esta propiedad no se activa, pa-ra detectar los dispositivos se debe realizar manualmente.

    SINTAXIS

    Property ChequearDispositivos As Boolean

    2.3.1.9 TiempoChequearDispositivos

    La propiedad TiempoChequearDispositivos permite modificar cada cuantotiempo se chequean los dispositivos. Es una propiedad de lectura/escritura.

    SINTAXIS

    Property TiempoChequearDispositivos As Long

  • OBJETOS DEL SMM

    2-20

    2.3.2 Métodos

    En este apartado se detallan los métodos de la interfaz IAdministrador.

    2.3.2.1 Configurar

    El método Configurar muestra la ventana de configuración del SMM. Es unmétodo que sólo se puede utilizar en local.

    SINTAXIS

    Sub Configurar()

    EJEMPLO

    Private Sub ConfigurarServidor ( )

    g_Admin.Configurar hWnd, 0

    End Sub

    2.3.2.2 PararProceso

    El método PararProceso para el tratamiento de las peticiones.

    SINTAXIS

    Sub PararProceso()

    2.3.2.3 ReanudarProceso

    El método ReanudarProceso reanuda el tratamiento de las peticiones.

    SINTAXIS

    Sub ReanudarProceso()

    2.4 OBJETO ScmDispositivos

    El objeto ScmDispositivos implementa la interfaz IDispositivos y la interfaz IDispositivosE-vents. Da acceso a la colección de todos los dispositivos compatibles existentes en el siste-ma. Los dispositivos existentes en el sistema pueden cambiar de forma dinámica y se debeestar preparado para ello. Está contenido en el fichero ServidorCorreoMoviStar.exe.

    Sólo se puede tener acceso a esta colección de objetos a través de la propiedad Dispositivosde la interfaz IAdministrador.

  • OBJETOS DEL SMM

    2-21

    2.4.1 Interfaz IDispositivos

    La Tabla 2-18: PROPIEDADES IDispositivos muestra las propiedades de la interfaz IDis-positivos.

    Tabla 2-18: PROPIEDADES IDispositivos

    Nombre Tipo Acceso

    Count Long Sólo lectura

    Item IDispositivo Sólo lectura

    La Tabla 2-19: MÉTODOS IDispositivos muestra los métodos de la interfaz IDispositivos.

    Tabla 2-19: MÉTODOS IDispositivos

    Nombre Parámetros

    Actualizar

    Find Dispositivo As String

    Conectar Pevents As IUnknown, Flags AsConectarDispositivosFlags

    Desconectar Cookie As Long

    2.4.1.1 Propiedades

    En este apartado se detallan las propiedades de la interfaz IDispositivos:

    2.4.1.1.1 Count

    La propiedad Count de sólo lectura devuelve el número de dispositivos compa-tibles existentes en el sistema.

    SINTAXIS

    Property Count As Long

  • OBJETOS DEL SMM

    2-22

    2.4.1.1.2 Item

    La propiedad Item es de sólo lectura, que devuelve un dispositivo que ocupauna determinada posición.Property (Item As Long) As IDispositivo

    2.4.1.2 Métodos

    En este apartado se detallan los métodos de la interfaz IDispositivos.

    2.4.1.2.1 Actualizar

    Solicita al SMM que chequee al sistema para detectar los dispositivos compati-bles.

    SINTAXIS

    Sub Actualizar()

    EJEMPLO

    g_dispositivos.Actualizar ( )

    2.4.1.2.2 Find

    El método Find busca un dispositivo en la colección de dispositivos compati-bles del sistema.

    SINTAXIS

    Function Find (Dispositivo As String) As IDispositivo

    PARÁMETROS

    La Tabla 2-20: PARÁMETROS Find muestra los parámetros del métodoFind.

  • OBJETOS DEL SMM

    2-23

    Tabla 2-20: PARÁMETROS Find

    Parámetros Tipo Descripción Cumplimentación

    Dispositivo String Es el nombre del dispo-sitivo que se está bus-cando

    Requerido

    EJEMPLO

    Dim g_dispositivo As IDispositivo

    Set g_dispositivo = g_dispositivos.Find ("COM1")

    2.4.1.2.3 Conectar

    El método Conectar es un método alternativo para la captura de eventos. Es unmétodo más rápido que el método estándar.

    SINTAXIS

    Function Conectar (pEvents As IUnkown, Flags As ConectarDisposi-tivosFlags)

    PARÁMETROS

    La Tabla 2-21: PARÁMETROS Conectar III muestra los parámetros delmétodo Conectar de la interfaz IDispositivos.

    Tabla 2-21: PARÁMETROS Conectar III

    Parámetros Tipo Descripción Cumplimentación

    pEevents IUnknown

    Flags ConectarDispositivosFlags Es el que decideque eventos capturao no

    EJEMPLO

    Implements IDispositivosEvents

    Dim g_lCookieDispositivos As Long

  • OBJETOS DEL SMM

    2-24

    g_lCookieDispositivos=Conectar(Me,CD_All)

    2.4.1.2.4 Desconectar

    El método Desconectar es un método que finaliza la captura de los eventos.

    SINTAXIS

    Function Desconectar (Cookie As Long)

    PARÁMETROS

    La Tabla 2-22: PARÁMETROS Desconectar III muestra los parámetros delmétodo de Desconectar de la interfaz IDispositivos.

    Tabla 2-22: PARÁMETROS Desconectar III

    Parámetros Tipo Descripción Cumplimentación

    Cookie Long Finaliza la capturade los eventos

    EJEMPLO

    Desconectar (g_lCookieDispositivos)

    2.4.2 Interfaz IDispositivosEvents

    La Tabla 2-23: EVENTOS IDispositivosEvents muestra los eventos de la interfaz IDispo-sitivosEvents.

    Tabla 2-23: EVENTOS IDispositivosEvents

    Nombre Parámetros

    OnNuevoDispositivo Dispositivo As Idispositivo

    OnDispositivoEliminado Conexión As String

    OnDispositivoModificado Dispositivo As Idispositivo

    OnDispositivoInicializado Dispositivo As String, Datos As ScmDatosAgendaSIM

  • OBJETOS DEL SMM

    2-25

    Nombre Parámetros

    OnNuevaEntradaAgenda Dispositivo As String, Datos As ScmDatosAgendaSIM

    OnEntradaAgendaBorrada Dispositivo As String, Posicion As Integer

    OnEntradaAgendaModificada Dispositivo As String, Datos As IdatosAgendaSIM

    OnActualizarAgendaSIM Dispositivo As String, Resultado As Long

    OnActualizarMensajesSIM Dispositivo As String, Resultado As Long

    OnRecibir Dispositivo as String, Resultado as Long

    OnNuevoMensaje Dispositivo As String, Datos As IdatosMensajesSIM

    OnMensajeBorrado Dispositivo As String, Posicion As Integer

    Como la colección de dispositivos compatibles del sistema cambia dinámicamente, la inter-faz IDispositivosEvents tiene una serie de eventos que avisan de estos cambios.

    Además incluye los eventos relativos a la AgendaSIM y a los MensajesSIM.

    A continuación se describen cada uno de los eventos de la interfaz IDispositivosEvents.

    2.4.2.1 OnNuevoDispositivo

    El evento OnNuevoDispositivo avisa que se ha añadido un nuevo dispositivo ala colección de dispositivos del sistema.

    SINTAXIS

    Sub OnNuevoDispositivo (Dispositivo As IDispositivo)

    PARÁMETROS

    La Tabla 2-24: PARÁMETROS OnNuevoDispositivo muestra los paráme-tros del evento OnNuevoDispositivo.

    Tabla 2-24: PARÁMETROS OnNuevoDispositivo

    Parámetros Tipo Descripción

    Dispositivo Idispositivo Datos del nuevodispositivo.

  • OBJETOS DEL SMM

    2-26

    EJEMPLO

    En este ejemplo se produce el evento OnNuevoDispositivo, y añade el nombredel dispositivo a un listbox.Private Sub g_dispositivos_OnNuevoDispositivo(ByVal DispositivoAs IDispositivo)

    ListaDispositivos.AddItem Dispositivo.Conexion

    End Sub

    2.4.2.2 OnDispositivoEliminado

    El evento OnDispositivoEliminado avisa que se ha eliminado un dispositivo.

    SINTAXIS

    Sub OnDispositivoEliminado (Dispositivo As String)

    PARÁMETROS

    La Tabla 2-25: PARÁMETROS OnDispositivoEliminado muestra los pará-metros del evento OnDispositivoEliminado.

    Tabla 2-25: PARÁMETROS OnDispositivoEliminado

    Parámetros Tipo Descripción

    Dispositivo String Dispositivoafectado

    EJEMPLO

    En este ejemplo se busca en el listbox ListaDispositivos el dispositivo y siexiste dicho elemento en el listbox se borra.Private Sub g_dispositivos_OnDispositivoEliminado(ByVal Disposi-tivo As String)

    ListaDispositivos.ListIndex = SendMessa-ge(ListaDispositivos.hWnd, LB_FINDSTRING, -1, ByVal Dispositivo)

    If ListaDispositivos.ListIndex >= 0 Then

    ListaDispositivos.RemoveItem (ListaDispositi-vos.ListIndex)

    Else

    Debug.Print ("NO ENCONTRADO")

    End If

  • OBJETOS DEL SMM

    2-27

    End Sub

    2.4.2.3 OnDispositivoModificado

    El evento OnDispositivoModificado avisa que se ha modificado un dispositivo.Lo más común es que se haya modificado el nombre, el protocolo o el estadodel dispositivo.

    SINTAXIS

    Sub OnDispositivoModificado (Dispositivo As IDispositivo)

    PARÁMETROS

    La Tabla 2-26: PARÁMETROS OnDispositivoModificado muestra los pa-rámetros del evento OnDispositivoModificado.

    Tabla 2-26: PARÁMETROS OnDispositivoModificado

    Parámetros Tipo Descripción

    Dispositivo Idispositivo Contiene los datos del dispositivoque se ha modificado

    EJEMPLO

    Private Sub g_dispositivos_OnDispositivoModificado(ByVal Disposi-tivo As IDispositivo)

    Debug.Print (Dispositivo.Conexion & " " & Dispositivo.Estado)

    End Sub

    2.4.2.4 OnNuevaEntradaAgenda

    El evento OnNuevaEntradaAgenda avisa que se ha añadido una entrada de laagenda en la SIM de un dispositivo o que se ha llamado al método ActualizaA-genda en el dispositivo.

    SINTAXIS

    Sub OnNuevaEntradaAgenda (Dispositivo As String, Datos As IDato-sAgendaSIM)

  • OBJETOS DEL SMM

    2-28

    PARÁMETROS

    La Tabla 2-27: PARÁMETROS OnNuevaEntradaAgenda muestra los pa-rámetros del evento OnNuevaEntradaAgenda.

    Tabla 2-27: PARÁMETROS OnNuevaEntradaAgenda

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo afectado

    Datos IDatosAgendaSIM Contiene los datos de la nueva entra-da para ese dispositivo

    EJEMPLO

    En el ejemplo, el evento OnNuevaEntradaAgenda de la interfaz IDispositivosse añade los datos de la nueva entrada en un listbox que contiene los datos delas entradas para ese dispositivo.Private Sub g_dispositivos_OnNuevaEntradaAgenda(ByVal DispositivoAs String, ByVal Datos As IDatosAgendaSIM)

    Dim IDispositivo As Integer

    IDispositivo = SendMessage(ListDispositivos.hWnd,LB_FINDSTRING, -1, ByVal Dispositivo)

    If IDispositivo >= 0 Then

    'Hay que comprobar si ya estaba

    Dim i As Integer

    Dim iNum As Integer

    Dim bExiste As Integer

    bExiste = False

    iNum = ListAgendaSIM(iDispositivo).ListCount

    For i = 0 To iNum - 1

    If ListAgendaSIM(iDispositivo).ItemData(i) = Da-tos.Posicion Then

    bExiste = True

    Exit For

    End If

    Next i

    If Not bExiste Then 'Si no existe se añade

    ListAgendaSIM(iDispositivo).AddItem Datos.Nombre

    ListAgendaSIM(iDispositivo).ItemData(ListAgendaSIM(iDispositivo).ListCount - 1) = Datos.Posicion

    End If

  • OBJETOS DEL SMM

    2-29

    End If

    End Sub

    2.4.2.5 OnEntradaAgendaModificada

    El evento OnEntradaAgendaModificada avisa que una entrada de la agendaSIM del dispositivo se ha modificado.

    SINTAXIS

    Sub OnEntradaAgendaModificada (Dispositivo As String, Datos AsIDatosAgendaSIM)

    PARÁMETROS

    La Tabla 2-28: PARÁMETROS OnEntradaAgendaModificada muestra losparámetros del evento OnEntradaAgendaModificada.

    Tabla 2-28: PARÁMETROS OnEntradaAgendaModificada

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo afectado

    Datos IdatosAgendaSIM Contiene los datos de laentrada modificada paraese dispositivo

    EJEMPLO

    En el ejemplo el evento OnEntradaAgendaModificada de la interfaz IDisposi-tivos añade los datos de la nueva entrada en un listbox que contiene los datos delas entradas para ese dispositivo.Private Sub g_dispositivos_OnEntradaAgendaModificada(ByVal Dispo-sitivo As String, ByVal Datos As IDatosAgendaSIM)

    Dim iDispositivo As Integer

    iDispositivo = SendMessage(ListDispositivos.hWnd,LB_FINDSTRING, -1, ByVal Dispositivo)

    If iDispositivo >= 0 Then

    Dim i As Integer

    Dim iNum As Integer

    Dim bExiste As Integer

  • OBJETOS DEL SMM

    2-30

    bExiste = False

    iNum = ListAgendaSIM(iDispositivo).ListCount

    For i = 0 To iNum - 1

    If ListAgendaSIM(iDispositivo).ItemData(i) = Da-tos.Posicion Then

    ListAgendaSIM(iDispositivo) = Datos.Nombre

    bExiste = True

    Exit For

    End If

    Next i

    If Not bExiste Then

    ListAgendaSIM(iDispositivo).AddItem Datos.Nombre

    ListAgendaSIM(iDispositivo).ItemData(ListMensajesSIM(iDispositivo).ListCount - 1) = Datos.Posicion

    End If

    End If

    End Sub

    2.4.2.6 OnEntradaAgendaBorrada

    El evento OnEntradaAgendaBorrada avisa que se ha borrado una entrada de laagenda SIM del dispositivo.

    SINTAXIS

    Sub onEntradaAgendaBorrada (Dispositivo As String, Posicion AsLong)

    PARÁMETROS

    La Tabla 2-29: PARÁMETROS OnEntradaAgendaBorrada muestra los pa-rámetros del evento OnEntradaAgendaBorrada.

    Tabla 2-29: PARÁMETROS OnEntradaAgendaBorrada

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo del que se ha elimi-nado la entrada de la agenda SIM

    Posicion Long Contiene la posición de la entra-da en la agenda SIM que se haeliminado

  • OBJETOS DEL SMM

    2-31

    EJEMPLO

    En este ejemplo el evento OnEntradaAgendaBorrada elimina del listbox quecontiene las entradas para ese dispositivo, la entrada que se ha eliminado en él.Private Sub g_dispositivos_OnEntradaAgendaBorrada(ByVal Disposi-tivo As String, ByVal Posicion As Long)

    Dim iDispositivo As Integer

    iDispositivo = SendMessage(ListDispositivos.hWnd,LB_FINDSTRING, -1, ByVal Dispositivo)

    If iDispositivo >= 0 Then

    Dim i As Integer

    Dim iNum As Integer

    iNum = ListAgendaSIM(iDispositivo).ListCount

    For i = 0 To iNum - 1

    If ListAgendaSIM(iDispositivo).ItemData(i) = Posi-cion Then

    ListAgendaSIM(iDispositivo).RemoveItem (i)

    Exit For

    End If

    Next i

    End If

    End Sub

    2.4.2.7 OnNuevoMensaje

    El evento OnNuevoMensaje avisa que se ha añadido un nuevo mensaje en laSIM de un determinado dispositivo o que se ha llamado al método Actualizarde los MensajesSIM en el dispositivo.

    SINTAXIS

    Sub OnNuevoMensaje (Dispositivo As String, Datos As IDatosMensa-jesSIM)

    PARÁMETROS

    La Tabla 2-30: PARÁMETROS OnNuevoMensaje muestra los parámetrosdel evento OnNuevoMensaje.

  • OBJETOS DEL SMM

    2-32

    Tabla 2-30: PARÁMETROS OnNuevoMensaje

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo al quese le ha añadido unnuevo mensajeSIM

    Datos IDatosMensajesSIM Contiene los datosdel nuevo mensajeSIM

    EJEMPLO

    En este ejemplo el evento OnNuevoMensaje añade los datos del nuevo mensajeSIM del dispositivo al listbox que contiene los mensajes SIM del dispositivocorrespondiente.Private Sub g_dispositivos_OnNuevoMensaje(ByVal Dispositivo AsString, ByVal Datos As IDatosMensajesSIM)

    Dim iDispositivo As Integer

    iDispositivo = SendMessage(ListDispositivos.hWnd,LB_FINDSTRING, -1, ByVal Dispositivo)

    If iDispositivo >= 0 Then

    Dim i As Integer

    Dim iNum As Integer

    Dim bExiste As Integer

    bExiste = False

    iNum = ListMensajesSIM(iDispositivo).ListCount

    For i = 0 To iNum - 1

    If ListMensajesSIM(iDispositivo).ItemData(i) = Da-tos.Posicion Then

    bExiste = True

    Exit For

    End If

    Next i

    If Not bExiste Then

    ListMensajesSIM(iDispositivo).AddItem Datos.Mensaje

    ListMensajesSIM(iDispositivo).ItemData(ListMensajesSIM(iDispositivo).ListCount - 1) = Datos.Posicion

    End If

    End If

    End Sub

  • OBJETOS DEL SMM

    2-33

    2.4.2.8 OnMensaje Borrado

    El evento OnMensajeBorrado avisa que se ha borrado un mensaje de la SIM deun dispositivo.

    SINTAXIS

    Sub OnMensajeBorrado (Dispositivo As String, Posicion As Long)

    PARÁMETROS

    La Tabla 2-31: PARÁMETROS OnMensajeBorrado muestra los parámetrosdel evento OnMensajeBorrado.

    Tabla 2-31: PARÁMETROS OnMensajeBorrado

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo al que se le haeliminado un nuevo mensajeSIM

    Posicion Long Posicion del mensaje en laSIM del dispositivo

    EJEMPLO

    En este ejemplo el evento OnMensajeBorrado elimina del listbox que contienelos mensajes SIM de ese dispositivo el mensaje eliminado.Private Sub g_dispositivos_OnMensajeBorrado(ByValDispositivo AsString, ByVal Posicion As Long)

    Dim iDispositivo As Integer

    IDispositivo=SendMessage(ListDispositivos.hWnd,LB_FINDSTRING,-1, ByVal Dispositivo)

    If iDispositivo >=0 Then

    Dim i As Integer

    Dim iNum As Integer

    INum=ListMensajesSIM(iDispositivo).ListCount

    For i=0 To iNum –1

    If ListMensajes-SIM(iDispositivo).ItemData(i)=Posicion Then

    ListMensajesSIM(iDispositivo).RemoveItem(i)

  • OBJETOS DEL SMM

    2-34

    Exit For

    End If

    Next i

    End If

    End Sub

    2.4.2.9 OnDispositivoInicializado

    El evento OnDispositivoInicializado avisa que se ha inicializado el dispositivo.

    SINTAXIS

    Sub OnDispositivoInicializado (Dispositivos As String, Datos AsIDatosDispositivo)

    PARÁMETROS

    La Tabla 2-32: PARÁMETROS OnDispositivoInicializado muestra los pa-rámetros del evento OnDispositivoInicializado.

    Tabla 2-32: PARÁMETROS OnDispositivoInicializado

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo inicializado

    Datos IdatosDispositivo Datos del dispositivo inicializado

    EJEMPLO

    En este ejemplo el evento OnDispositivoInicializado, muestra en la ventanaDebug el mensaje OnDispositivoInicializado, y los datos del dispositivo inicia-lizado correspondientes al número máximo de posiciones en la agenda SIM y eltamaño máximo para cada una de las entradas.Private Sub g_dispositivos_OnDispositivoInicializado(ByVal Dispo-sitivo As String, ByVal Datos As IDatosDispositivo)

    Debug.Print ("OnDispositivoInicializado")

    Debug.Print (Datos.MaxPosicionesAgenda)

    Debug.Print (Datos.MaxTamanoNombreAgenda)

    End Sub

  • OBJETOS DEL SMM

    2-35

    2.4.2.10 OnActualizarAgendaSIM

    El evento OnActualizarAgendaSIM avisa de la finalización de una operación deactualizar la agenda de la SIM.

    SINTAXIS

    Sub OnActualizarAgendaSIM (Dispositivo As String, Resultado AsLong)

    PARÁMETROS

    La Tabla 2-33: PARÁMETROS OnActualizarAgendaSIM muestra los pa-rámetros del evento OnActualizarAgendaSIM.

    Tabla 2-33: PARÁMETROS OnActualizarAgendaSIM

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo del que se ha actualizado la agenda SIM

    Resultado Long Resultado de la operación de actualizar mensajes SIM deldispositivo. Si es igual a 0 es que ha sido correcta la opera-ción de actualizar. Si es distinto de 0, es un código de error yla operación no ha sido correcta. En este caso, se puedeutilizar el método DameTextoError del objeto ScmAplicacionpara determinar el texto del error correspondiente al valorque contiene Resultado

    EJEMPLO

    Private Sub g_dispositivos_OnActualizarAgendaSIM(ByVal Dispositi-vo As String, ByVal Resultado As Long)

    Debug.Print ("OnActualizarAgendaSIM =" & Resultado)

    End Sub

    2.4.2.11 OnRecibir

    El evento OnRecibir avisa de la finalización de una operación de recepción.

    SINTAXIS

    Sub OnOnRecibir (Dispositivo As String, Resultado As Long)

  • ScmDispositivo

    2-36

    PARÁMETROS

    La Tabla 2-34: PARÁMETROS OnRecibir muestra los parámetros delevento OnRecibir.

    Tabla 2-34: PARÁMETROS OnRecibir

    Parámetros Tipo Descripción

    Dispositivo String Dispositivo afectado

    Resultado Long Resultado de la operación de recep-ción. Si es igual a 0 es que ha sidocorrecta la operación de actualizar. Sies distinto de 0, es un código de errory la operación no ha sido correcta. Eneste caso, se puede utilizar el métodoDameTextoError del objeto ScmApli-cacion para determinar el texto delerror correspondiente al valor quecontiene Resultado

    EJEMPLO

    Private Sub g_dispositivos_OnRecibir(ByVal Dispositivo As String,ByVal Resultado As Long)

    Debug.Print ("OnRecibir =" & Resultado)

    End Sub

    2.5 OBJETO ScmDispositivo

    Este objeto implementa la interfaz IDispositivo que permite gestionar la agenda y los men-sajes de la SIM de un dispositivo. Está contenido en el fichero ServidorCorreoMoviStar.exe.

    La Tabla 2-35: PROPIEDADES IDispositivo muestra las propiedades de la interfaz IDis-positivo.

    Tabla 2-35: PROPIEDADES IDispositivo

    Nombre Tipo Acceso

    Nombre String Sólo lectura

  • ScmDispositivo

    2-37

    Nombre Tipo Acceso

    Conexión String Sólo lectura

    Estado EstadoDispositivo Sólo lectura

    Protocolo String Lectura/Escritura

    VersionDeSoftware String Sólo lectura

    AgendaSIM IAgendaSIM Sólo lectura

    MensajesSIM IMensajesSIM Sólo lectura

    Bloqueado NivelesBloqueoDispositivo Lectura/Escritura

    A continuación se detallan cada una de las propiedades de la interfaz IDispositivo.

    2.5.1 Nombre

    La propiedad Nombre permite leer el nombre del dispositivo.

    SINTAXIS

    Property Nombre As String

    Ejemplo

    Dim Nombre as String

    Nombre = g_dispositivo.Nombre

    2.5.2 Conexion

    La propiedad Conexión es de sólo lectura y devuelve la conexión que utiliza el dispositivo.En la actualidad sólo se soporta puerto serie, luego la conexión es el nombre del puerto.

    SINTAXIS

    Property Conexión As String

    EJEMPLO

    Dim Conexion as String

    Conexion = g_dispositivo.Conexion

  • ScmDispositivo

    2-38

    2.5.3 Estado

    La propiedad Estado devuelve el estado en el que se encuentra el dispositivo.

    SINTAXIS

    Property Estado As EstadosDispositivo

    Ejemplo

    Dim Estado As EstadoDispositivo

    Estado = g_dispositivo.Estado

    Los posibles estados en los que se puede encontrar un dispositivo están enumerados en el ti-po EstadoDispositivo.

    2.5.4 Protocolo

    La propiedad Protocolo devuelve el protocolo que utiliza el dispositivo.

    SINTAXIS

    Property Protocolo As String

    Ejemplo

    Dim protocolo as String

    protocolo = objetoScmDispositivo.Protocolo

    2.5.5 VersionDeSoftware

    La propiedad VersionDeSoftware devuelve la versión de software del dispositivo.

    SINTAXIS

    Property VersionDeSoftware As String

    EJEMPLO

    Dim version as String

    version = objetoScmDispositivo. Version

  • ScmDispositivo

    2-39

    2.5.6 AgendaSIM

    La propiedad AgendaSIM de sólo lectura, sólo está disponible para algunos terminales com-patibles ETSI 07.05. Si se utiliza y el terminal no soporta dicha propiedad, se devuelve uncódigo de error que informa que dicho terminal no soporta esta propiedad. Da acceso a lainterfaz IAgendaSIM del dispositivo.

    SINTAXIS

    Property AgendaSIM As IAgendaSIM

    EJEMPLO

    Private g_AgendaDispositivo As IAgendaSIM

    Set g_AgendaDispositivo = g_dispositivo.AgendaSIM

    2.5.7 MensajesSIM

    La propiedad MensajesSIM de sólo lectura, sólo está disponible para algunos terminalescompatibles ETSI 07.05. Si se utiliza y el terminal no soporta dicha propiedad, se devuelveun código de error que informa que dicho terminal no soporta esta propiedad. Da acceso a lainterfaz IMensajesSIM del dispositivo.

    SINTAXIS

    Property MensajesSIM As IMensajesSIM

    EJEMPLO

    Private g_MensajesDispositivo As IMensajesSIM

    Set g_MensajesDispositivo = g_dispositivo.MensajesSIM

    2.5.8 Bloqueado

    La propiedad Bloqueado indica si el dispositivo está bloqueado.

    SINTAXIS

    Property Bloqueado As NivelesBloqueoDispositivo

    EJEMPLO

    Dim bloqueado As NivelesBloqueoDispositivo

    bloqueado = objetoScmDispositivo. Bloqueado

  • ScmDispositivo

    2-40

    2.6 OBJETO ScmAgendaSIM

    Implementa la interfaz IAgendaSIM que permite gestionar la agenda SIM de un dispositivo.Está contenida en el fichero ServidorCorreoMoviStar.exe.

    La Tabla 2-36: MÉTODOS IAgendaSIM muestra los métodos de la interfaz IAgendaSIM.

    Tabla 2-36: MÉTODOS IAgendaSIM

    Nombre Parámetros

    Actualizar

    Anadir Datos As IDdatosAgendaSIM

    Borrar Nombre As String

    Modificar Datos As IDatosAgendaSIM

    A continuación se detallan los métodos de la interfaz IAgendaSIM.

    2.6.1 Actualizar

    Este método solicita al SMM que lea todos las entradas de la agenda SIM del dispositivo. Serealiza de forma asíncrona y se notifica con el evento OnNuevaEntradaSIM.

    SINTAXIS

    Sub Actualizar()

    EJEMPLO

    g_AgendaDispositivo.Actualizar

    2.6.2 Anadir

    El método Anadir añade una entrada a la agenda de la SIM del terminal. Antes de añadir unaentrada en la agenda, se debe actualizar, para obtener las posiciones ocupadas. Si no se ac-tualiza, se puede modificar una entrada existente.

    SINTAXIS

    Function Anadir (Datos As IDatosAgendaSIM)

  • ScmDispositivo

    2-41

    PARÁMETROS

    La Tabla 2-37: PARÁMETROS Anadir muestra los parámetros del método Anadir.

    Tabla 2-37: PARÁMETROS Anadir

    Parámetros Tipo Descripción Cumplimentación

    Datos IdatosAgendaSIM Objeto que contienelos datos de la nuevaentrada que se quiereañadir en la agendade la SIM

    Requerido

    EJEMPLO

    El siguiente procedimiento muestra como se puede añadir una entrada a la agenda de la SIMde un dispositivo.Private Sub AnadirEntradaAgendaSIM( )

    On Error GoTo TratErrorAnadirEntradaAgendaSIM

    If Not g_AgendaDispositivo is Nothing Then

    Dim Datos As New ScmDatosAgendaSIM

    Datos.Telefono = "123456789"

    Datos.Nombre = TextNombreAgenda.Text

    g_AgendaDispositivo.Anadir Datos

    else

    MsgBox ("No existe el dispositivo")

    End if

    SalirAnadirEntradaAgendaSIM:

    Set Datos = Nothing

    Exit Sub

    TratErrorAnadirEntradaAgendaSIM:

    MsgBox (Error$)

    Resume SalirAnadirEntradaAgendaSIM

    End Sub

    Nota: La propiedad Nombre de la interfaz IDatosAgendaSIM tiene una limitación detamaño que depende de cada terminal. Esta información se recibe en el eventoOnDispositivoInicializado. Si el tamaño es superado se devuelve un error.

  • ScmDispositivo

    2-42

    2.6.3 Borrar

    El método Borrar permite borrar una entrada de la agenda SIM del terminal.

    SINTAXIS

    Sub Borrar()

    EJEMPLO

    El siguiente procedimiento muestra como se puede eliminar una entrada de la agenda SIMdel dispositivo:Private Sub cmdEliminarAgendaSIM_Click()

    On Error GoTo TratErrorcmdEliminarAgendaSIM_Click

    If Not g_AgendaDispositivo Is Nothing Then

    If 0 > ListAgendaSIM(ListDispositivos.ListIndex).ListIndex Then

    MsgBox ("Selecione una entrada de la agenda")

    Exit Sub

    End If

    g_AgendaDispositivo.Borrar ListAgendaSIM(ListDispositivos.ListIndex).ItemData(ListAgendaSIM(ListDisp

    ositivos.ListIndex).ListIndex)

    Else

    MsgBox ("No existe el dispositivo")

    End If

    SalircmdEliminarAgendaSIM_Click:

    Exit Sub

    TratErrorcmdEliminarAgendaSIM_Click:

    MsgBox ("No existe ese nombre en la agenda")

    Resume SalircmdEliminarAgendaSIM_Click

    End Sub

    2.6.4 Modificar

    El método Modificar permite modificar una entrada de la agenda SIM del dispositivo.

    SINTAXIS

    Sub Modificar()

  • ScmDispositivo

    2-43

    EJEMPLO

    El siguiente procedimiento muestra como se puede modificar una entrada de la agenda SIMdel dispositivo.Private Sub cmdModificarAgendaSIM_Click()

    On Error GoTo TratErrorcmdModificarAgendaSIM_Click

    If Not g_AgendaDispositivo Is Nothing Then

    If 0 > ListAgendaSIM(ListDispositivos.ListIndex).ListIndex Then

    MsgBox ("Selecione una entrada de la agenda")

    Exit Sub

    End If

    Dim Datos As New ScmDatosAgendaSIM

    Datos.Telefono = TextTelefonoAgenda.Text

    Datos.Nombre = TextNombreAgenda.Text

    Datos.Posicion = ListAgenda-SIM(ListDispositivos.ListIndex).ItemData(ListAgendaSIM(ListDispositivos.ListIndex).ListIndex)

    g_AgendaDispositivo.Modificar Datos

    Set Datos = Nothing

    Else

    MsgBox ("No existe el dispositivo")

    End If

    SalircmdModificarAgendaSIM_Click:

    Set Datos = Nothing

    Exit Sub

    TratErrorcmdModificarAgendaSIM_Click:

    MsgBox ("No existe ese nombre en la agenda")

    Resume SalircmdModificarAgendaSIM_Click

    End Sub

    Nota: La propiedad Nombre de la interfaz IDatosAgendaSIM tiene una limitación detamaño que depende de cada terminal. Esta información se recibe en el eventoOnDispositivoInicializado. Si el tamaño se supera se devuelve un error.

    2.7 OBJETO ScmMensajesSIM

    Este objeto implementa la interfaz IMensajesSIM que permite gestionar la colección de men-sajes de la SIM de un dispositivo. Está contenido en el fichero ServidorCorreoMoviStar.exe.

    La Tabla 2-38: MÉTODOS IMensajesSIM muestra los métodos de la interfaz IMensajes-SIM.

  • ScmDispositivo

    2-44

    Tabla 2-38: MÉTODOS IMensajesSIM

    Nombre Parámetros

    Actualizar

    Anadir Datos As IDatosMensajesSIM

    Borrar Posicion As Integer

    Enviar Posicion as Long, Telefono As String

    A continuación se detalla cada uno de los métodos de la interfaz IMensajesSIM.

    2.7.1 Actualizar

    Este método solicita al SMM que lea todas las entradas de la agenda SIM del dispositivo. Serealiza de forma asíncrona y se notifica con el evento OnNuevaEntradaSIM.

    SINTAXIS

    Sub Actualizar()

    EJEMPLO

    g_MensajesSIMDispositivo.Actualizar

    2.7.2 Anadir

    El método Anadir añade un nuevo mensaje a la SIM del terminal.

    SINTAXIS

    Function Anadir (Datos As IDatosMensajesSIM)

    PARÁMETROS

    La Tabla 2-39: PARÁMETROS Anadir muestra los parámetros del método Anadir.

  • ScmDispositivo

    2-45

    Tabla 2-39: PARÁMETROS Anadir

    Parámetros Tipo Descripción Cumplimentación

    Datos IDatosMensajesSIM Contiene el mensaje quese va a añadir a la SIMdel terminal

    Requerido

    EJEMPLO

    El siguiente procedimiento muestra como se puede añadir un nuevo mensaje a la SIM deldispositivo:Private Sub cmdAnadirmensajeSIM_Click()

    On Error GoTo TratErrorcmdAnadirmensajeSIM_Click

    If Not g_MensajesSIMDispositivo Is Nothing Then

    Dim Datos As New ScmDatosMensajesSIM

    Datos.Mensaje = "Hola"

    Datos.Telefono = "616469127"

    Datos.PedirNotificacion = True

    Datos.Filtrar = True

    g_MensajesSIMDispositivo.Anadir Datos

    Else

    MsgBox ("No existe el dispositivo")

    End If

    SalircmdAnadirmensajeSIM_Click:

    Set Datos = Nothing

    Exit Sub

    TratErrorcmdAnadirmensajeSIM_Click:

    MsgBox ("Ya existe un mensaje en esa posición")

    Resume SalircmdAnadirmensajeSIM_Click

    End Sub

    2.7.3 Borrar

    El método Borrar permite borrar un mensaje de la SIM del dispositivo.

    SINTAXIS

    Function Borrar (Posicion As Long)

  • ScmDispositivo

    2-46

    PARÁMETROS

    La Tabla 2-40: PARÁMETROS Borrar muestra los parámetros del método Borrar.

    Tabla 2-40: PARÁMETROS Borrar

    Parámetros Tipo Descripción Cumplimentación

    Posicion Long Indica la posición del mensajeque se quiere borrar dentro de laSIM

    Requerido

    EJEMPLO

    El siguiente procedimiento muestra como se puede borrar un mensaje de la SIM del disposi-tivo:Private Sub cmdEliminarMensajeSIM_Click()

    If Not g_MensajesSIMDispositivo Is Nothing Then

    If 0 > ListMensajesSIM(ListDispositivos.ListIndex).ListIndex Then

    MsgBox ("Selecione un mensaje")

    Exit Sub

    End If

    g_MensajesSIMDispositivo.Borrar ListMensajes-SIM(ListDispositivos.ListIndex).ItemData(ListMensajesSIM(ListDispositivos.ListIndex).ListIndex)

    Else

    MsgBox ("No existe el dispositivo")

    End If

    End Sub

    2.7.4 Enviar

    El método Enviar permite enviar un mensaje desde la memoria de la SIM de un terminal.Los mensajes se pueden almacenar con o sin destinatario. Si se almacena sin destinatario, elparámetro teléfono es obligatorio, pero si se almacena con el destinatario es opcional.

    SINTAXIS

    Function Enviar (Posicion As Long, [Destinatario As String])

  • ScmDispositivo

    2-47

    PARÁMETROS

    La Tabla 2-41: PARÁMETROS Enviar muestra los parámetros del método Enviar.

    Tabla 2-41: PARÁMETROS Enviar

    Parámetros Tipo Descripción Cumplimentación

    Posicion Long Indica la posición del mensaje que sequiere enviar, dentro de la SIM.

    Requerido

    Destinatario String Indica el destinatario al cual se deseaenviar el mensaje. Si el destinatarioestá guardado dentro del mensajeentonces no es necesario añadirlo. Sipor el contrario el destinatario noforma parte del mensaje, es obligato-rio rellenarlo. En este caso, si no esrellenado el método devuelve uncódigo de error.

    Opcional

    EJEMPLO

    El siguiente procedimiento muestra como se puede enviar un mensaje a la SIM del dispositi-vo:Private Sub cmdEnviarMensajeSIM_Click()

    If Not g_MensajesSIMDispositivo Is Nothing Then

    If 0 > ListMensajesSIM(ListDispositivos.ListIndex).ListIndex Then

    MsgBox ("Selecione un mensaje")

    Exit Sub

    End If

    g_MensajesSIMDispositivo.Enviar ListMensajes-SIM(ListDispositivos.ListIndex).ItemData(ListMensajesSIM(ListDispositivos.ListIndex).ListIndex), ""

    Else

    MsgBox ("No existe el dispositivo")

    End If

    End Sub

  • 3-1

    3 MODELO DE OBJETOS DE LA LIBRERÍA Da-tosScm.dllEl SMM se basa en la librería DatosScm.dll. Esta librería debe estar instalada en cada má-quina cliente y sirve para optimizar el acceso remoto al servidor. La librería DatosScm.dll esun servidor COM In-Process, que exporta una serie de objetos de datos que implementaninterfaces utilizados tanto por los clientes del sistema para pasarle información como por elpropio sistema internamente.

    Los objetos de datos pueden ser de dos tipos:

    • Los que crea el cliente y envía al servidor. Este tipo de objetos de datos son los siguien-tes:

    o ScmDatosEnviar: implementa la interfaz IDatosEnviar para enviar un mensaje.

    o ScmDatosAgendaSIM: implementa la interfaz IDatosAgendaSIM para añadir o mo-dificar una entrada de la agenda de la SIM de un dispositivo.

    o ScmDatosMensajeSIM: implementa la interfaz IDatosMensajeSIM para añadir unmensaje en la SIM de un dispositivo.

    Estas interfaces implementan un método Validar para que el cliente pueda validar la in-formación que se va a enviar en local y así mejorar el rendimiento.

    • Los que crea el servidor y envía a los clientes. Este tipo de objetos de datos son los si-guientes:

    o ScmDatosPeticion: implementa la interfaz IDatosPeticion con la información de lapetición.

    o ScmDatosMensajeRecibido: implementa la interfaz IDatosMensajeRecibido con lainformación del mensaje.

    o ScmDatosNotificacionRecibida: implementa la interfaz IDatosNotificacionRecibidacon la información de la notificación.

    Nota: Veáse la explicación del evento OnNotificacionRecibida

    o ScmDatosAgendaSIM: implementa la interfaz IDatosAgendaSIM con la informa-ción de una entrada de la agenda.

    o ScmDatosMensajeSIM: implementa la interfaz IDatosAgendaSIM con la informa-ción de un mensaje SIM.

    La librería auxiliar de datos DatosScm.dll también incluye en objeto ScmIdentificadorUnicoque implementa la interfaz IIdentificadorUnico con un método llamado Nuevo que genera unnuevo identificador único para ser utilizado en la solicitud de una petición.

    La Tabla 3-1: OBJETOS, PROPIEDADES Y MÉTODOS muestra los objetos, propieda-des y métodos de la librería DatosScm.dll.

  • MODELO DE OBJETOS DE LA LIBRERÍA DatosScm.dll

    3-2

    Tabla 3-1: OBJETOS, PROPIEDADES Y MÉTODOS

    Objetos Interfaces Propiedades Métodos

    ScmDatosEnviar IDatosEnviar ClaseMensaje, Destinatario,FechaEntregaDiferida, Filtrar,Mensaje, PedirNotificacion,PeriodoValidez, TipoDeCodi-ficacion

    Validar

    ScmDatosMensajeRecibido IDatosMensajeRecibido Fecha, Mensaje, Remitente

    ScmDatosNotificacionRecibida IDatosNotificacionRecibida Destinatario, Estado, Fe-chaEntrega, FechaPeticion

    ScmDatosPeticion IDatosPeticion Estado, FechaCreacion, Fe-chaEstado, Identificador,Intentos, Prioridad, Resultado,Tipo.

    ScmDatosDispositivo IDatosDispositivo MaxPosicionesAgenda,MaxTamanoNombreAgenda,PosInicialAgenda

    ScmIdentificadorUnico IIdentificadorUnico Nuevo

    ScmDatosAgendaSIM IDatosAgendaSIM Nombre, Posicion, Telefono Validar

    ScmDatosMensajesSIM IDatosMensajesSIM ClaseMensaje, Estado, Fecha,Filtrar, Mensaje, PedirNotifi-cacion, PeriodoValidez, Posi-cion, Telefono, TipoDeCodi-ficacion

    Validar

    3.1 OBJETO ScmDatosEnviar

    El objeto ScmDatosEnviar implementa la interfaz IDatosEnviar que se utiliza en las peticio-nes de envío de mensajes.

    La Tabla 3-2: PROPIEDADES IDatosEnviar muestra las propiedades de la interfaz IDa-tosEnviar.

  • MODELO DE OBJETOS DE LA LIBRERÍA DatosScm.dll

    3-3

    Tabla 3-2: PROPIEDADES IDatosEnviar

    Nombre Tipo Acceso

    ClaseMensaje ClasesDeMensaje Lectura/Escritura

    Destinatario String Lectura/Escritura

    FechaEntregaDiferi-da

    Date Lectura/Escritura

    Filtrar Boolean Lectura/Escritura

    Mensaje String Lectura/Escritura

    PedirNotificacion Boolean Lectura/Escritura

    PeriodoValidez Date Lectura/Escritura

    TipoDeCodificacion TiposDeCodificacion Lectura/Escritura

    La Tabla 3-3: MÉTODOS IDatosEnviar muestra los métodos de la interfaz IDatosEnviar.

    Tabla 3-3: MÉTODOS IDatosEnviar

    Nombre Parámetros

    Validar

    3.1.1 Propiedades

    En este apartado se detallan las propiedades de la interfaz IDatosEnviar.

    3.1.1.1 ClaseMensaje

    La propiedad ClaseMensaje afecta al modo de almacenamiento del mensaje enel destinatario.

    SINTAXIS

    Property ClaseMensaje As ClasesDeMensaje

  • MODELO DE OBJETOS DE LA LIBRERÍA DatosScm.dll

    3-4

    3.1.1.2 Destinatario

    La propiedad Destinatario almacena el destinatario del envío y es obligatoriorellenarlo. Si no se rellena, se produce un error durante la validación.

    SINTAXIS

    Property Destinatario As String

    3.1.1.3 FechaEntregaDiferida

    La propiedad FechaEntregaDiferida guarda la fecha en la que se desea que elmensaje sea entregado. El protocolo 07.05 no soporta esta propiedad, pero di-cho protocolo existe para mantener la compatibilidad con otros protocolos. Noes obligatorio rellenarlo.

    SINTAXIS

    Property FechaEntregaDiferida As Date

    3.1.1.4 Filtrar

    La propiedad Filtrar permite desactivar la conversión de caracteres al juego decaracteres del protocolo.

    SINTAXIS

    Property Filtrar As Boolean

    3.1.1.5 Mensaje

    La propiedad Mensaje contiene el texto del mensaje a enviar, es obligatorio re-llenarlo.

    El tamaño máximo del texto del mensaje es de 160 caracteres.

    SINTAXIS

    Property Mensaje As String

    3.1.1.6 PedirNotificacion

    La propiedad PedirNotificacion permite indicar al centro de mensajes MoviStarque notifique el estado del mensaje.

  • MODELO DE OBJETOS DE LA LIBRERÍA DatosScm.dll

    3-5

    En el caso de solicitar notificación el tamaño máximo del mensaje es de 157caracteres.

    SINTAXIS

    Property PedirNotificacion As Boolean

    3.1.1.7 PeriodoValidez

    La propiedad PeriodoValidez indica el periodo de validez del mensaje una vezalcanzado el centro de mensajes.

    SINTAXIS

    Property PeriodoValidez As Date

    3.1.1.8 TipoDeCodificacion

    La propiedad TipoDeCodificacion permite seleccionar la forma de codificacióndel mensaje. Las combinaciones de TipoDeCodificación y ClasesDeMensajespermiten generar tipos de mensajes especiales, siendo necesario conocer elprotocolo antes de cambiar los valores por defecto de estas propiedades.

    SINTAXIS

    Property TipoDeCodificacion As TipoDeCodificacion

    3.1.2 Mét