Tras registrar la DLL, podrémos integrar nuestras aplicaciones con la plataforma de envíos SMS de Descom Mensajes.

En nuestro programa, primero deberemos de crear una instancia a la Dll,

Ejemplo VB6

Dim DMSMS As Object
Set DMSMS = CreateObject("dcXMLSend.XMLSendClass")

Ejemplo VB.NET

Dim DMSMS As Object
DMSMS = CreateObject("dcXMLSend.XMLSendClass")

De esta forma, el objeto DMSMS, nos permitirá realizar todo lo necesario para realizar el envío de SMS o Wap PUSH.

NOTA IMPORTANTE: Cuando defina el objeto de la DLL (Dim DMSMS As Object) inicielo como variable local de la función de envío de SMS, de está forma se asegura que lo envíos no se duplicarán.

Definiremos la autentificación en la Plataforma de Descom Mensajes SMS;

DMSMS.Usuario = “nombre_de_usuario”
DMSMS.Clave = “contraseña_de_acceso”
DMSMS.Remitente = "Remitente personalizado" 'Opcional
DMSMS.IdEnvioext = "id_unico_de_envio" ' Opcional

DMSMS.Remitente; Puede personalizar sus envíos con un remitente personalizado para cada SMS, en este campo puede especificar el remitente de cada mensaje que usaremos por defecto. Posteriormente podemos definir distintos remitentes para cada mensaje.

DMSMS.IdEnvioext; Puede definir un id de envío, de esta forma Descom asiciara los envios con el mismo identificativo (máx 30 caracteres), para poder obtener reportes de un envio de bloques de mensajes.

DMSMS.MaxNumSMS; Número máximo de SMS en los que se puede dividir un mensaje de más de 160 caracteres. Por defecto 0= sin limites.

Definiremos los mensajes que desamos enviar, para un mensaje SMS Texto con la siguiente función:

DMSMS.XMLMensajes.MensajesSMS.Add "Identificador", "Destino", "Mensaje", "Remitente", "ControlarMensajesRepetidos"

Identificador Número de mensaje en el envío 1,2,3, etc. String
Destino Número de teléfono destinatario del
mensaje
Teléfono en formato:
acceso internacional + cod. país + teléfono
Ejemplo: 0034666555444
String
Mensaje Texto del mensaje Texto del mensaje hasta 160 caracteres. String
Remitente Remitente personalizado Previamente registrado en la Cuenta de Descom Mensajes SMS, vacio si queremos usar el remitnete por defecto. String
ControlarMensajesRepetidos Control para no enviar mensajes repetidos por error. True (por defecto); realizará dicho control, False; para deshabilitar este control Boolean

Ejemplo:

DMSMS.XMLMensajes.MensajesSMS.Add "1", "0034xxxxxxxxx", "SMS pruebas", ""

DMSMS.XMLMensajes.MensajesSMS.Add "2", "0034xxxxxxxxx", "SMS pruebas 2", "DescomSMS"

DMSMS.XMLMensajes.MensajesSMS.Add "2", "0034xxxxxxxxx", "SMS pruebas 2", "DescomSMS", False

Si los mensajes que deseamos enviar, son Wap PUSH, los enviaremos con la siguiente función:

DMSMS.XMLMensajes.MensajesWAP.Add "Identificador", "Destino", "Asunto", "URL" , "Remitente"

Identificador Número de mensaje en el envío 1,2,3, etc. String
Destino Número de teléfono destinatario del
mensaje
Teléfono en formato:
acceso internacional + cod. país + teléfono
Ejemplo: 0034666555444
String
Asunto Asunto del Wap PUSH, texto que aparecerá cuando el destinatario reciba el enlace a descargar. Texto hasta 11 caracteres. String
Remitente Remitente personalizado Previamente registrado en la Cuenta de Descom Mensajes SMS, vacio si queremos usar el remitnete por defecto. String
URL Dirección URL de la página o multimedia que deseamos que visualice el destinatario. Una dirección URL bien formada, ejemplo: http://www.descom.es/images/logo2.gif String

Ejemplo:

DMSMS.XMLMensajes.MensajesWAP.Add "3", "0034xxxxxxxxx", "Mi Foto", "http://www.mipagina.com/mifoto.jpg", ""

DMSMS.XMLMensajes.MensajesWAP.Add "4", "0034xxxxxxxxx", "Melodia", "http://www.mipagina.com/cancion.mp3", ""

Opcionalmente, podemos asignar un identificativo de envío de mensajes. De forma que podamos asociar varios mensajes a un solo envío y posteriormente obtener un reporte de entrega de dicho bloque de envió. Esta acción podemos llevarla a cabo a través de la siguiente propiedad:

DMSMS.IdEnvioext="identificativo_unico_de_envio"

Una vez formalizado la autentificación y definido los mensajes, enviaremos los mismos con el siguiente comando:

DMSMS.SendXML "", ""

En el caso que solo queramos consultar el Saldo, sin envar mensajes, ejecute:

DMSMS.getSaldo

Con esta función se establece la comunicación con nuestra plataforma y se procede a realizar la autenticación y posterior envío de mensajes.

LLAMADAS DE LA DLL PARA OBTENER LOS RESULTADOS DEL ENVÍO
Una vez enviados los mensajes estas funciones nos devolverán el resultado de autenticación y envío.

Número de mensajes SMS Texto enviados:
DMSMS.XMLMensajes.MensajesSMS.Count

Número de mensajes SMS Texto enviados:
DMSMS.XMLMensajes.Mensajeswap.Count

Resultado de la autenticación:
DMSMS.RXAutentificacion.Resultado
Si el resultado es 1 la autenticación es correcta, en caso contrario en .Comentario está la causa
del fallo de la autenticación.

Resultados globales del envío:
DMSMS.TotalMensajesEnviados 'Devuelve el número de mensajes enviado
DMSMS.TotalMensajesEnviadosOK 'Devuelve el número de mensajes enviado
correctamente. Descom a tramitado el envío del mensaje (consulte informes de reportes para conocer el estado de entraga de los mensajes).
DMSMS.TotalMensajesEnviadosError 'Devuelve el número de mensajes enviado con errores
(no hay saldo, texto vacio o número de destinatario incorrecto)
DMSMS.TotalCreditosGastados
'Devuelve el número de créditos consumidos por el envío de mensajes

Comentario de la autenticación:
DMSMS.RXAutentificacion.Comentario
Será util cuando la autentificación con la plataforma no sea satisfactoria.

Saldo restante en la cuenta:
DMSMS.RXAutentificacion.saldo
De esta forma obtenemos el saldo actual de la cuenta.

Identificativo de envío:
DMSMS.RXAutentificacion.IdEnviodm
Si hemos enviado varios mensajes en bloque, ver: IdEnvioext, con está propiedad obtenemos el identificativo del envío de mensajes dentro de la plataforma Descom SMS, que podremos utilizar para posteriormente recuperar el reporte de entrega de este envío de mensajes.

Para los mensajes SMS Texto enviados tenemos un array de mensajes
DMSMS.XMLMensajes.MensajesSMS.Item(1.. DMSMS.XMLMensajes.MensajesSMS.Count)

Donde para cada mensaje tenemos:
DMSMS.XMLMensajes.MensajesSMS.Item(n).Resultado
si el resultado es 1 el envío del mensaje es correcto, en caso contrario en .Comentario está la causa del fallo del envío.
DMSMS.XMLMensajes.MensajesSMS.Item(n).Destino
DMSMS.XMLMensajes.MensajesSMS.Item(n).mensaje
DMSMS.XMLMensajes.MensajesSMS.Item(n).comentario
Descripción del resultado del envío de este mensaje.
DMSMS.XMLMensajes.MensajesSMS.Item(n).Iddm
Identificativo único del mensaje enviado en la plataforma Descom SMS. Con este identificativo, puede posteriormente comprobar el estado de entrega del mensaje.

Para los mensajes Wap Push enviados tenemos un array de mensajes
DMSMS.XMLMensajes.MensajesWAP.Item(1.. DMSMS.XMLMensajes.MensajesWAP.Count)

Donde para cada mensaje tenemos:
DMSMS.XMLMensajes.MensajesWAP.Item(n).Resultado
si el resultado es 1 el envío del mensaje es correcto, en caso contrario en .Comentario está la causa del fallo del envío.
DMSMS.XMLMensajes.MensajesWAP.Item(n).Destino
DMSMS.XMLMensajes.MensajesWAP.Item(n).Asuto
DMSMS.XMLMensajes.MensajesWAP.Item(n).URL
DMSMS.XMLMensajes.MensajesWAP.Item(n).comentario
DMSMS.XMLMensajes.MensajesWAP.Item(n).Iddm

Identificativo único del mensaje enviado en la plataforma Descom SMS. Con este identificativo, puede posteriormente comprobar el estado de entrega del mensaje.

PROGRAMAR EL ENVÍO DE MENSAJES
Opcionalmente puede programar los envíos de mensajes, para que estos mensajes se envíen a una hora determinada perdiodicamente. Está tarea la realizará nuestro servidor, por lo que no se requiere de ninguna acción por su parte para que el envío se realizada en el momento adecuado.

Recordemos que a la hora de realizar un envío de sms, realizábamos la llamada a la función: DMSMS.SendXML "", "".

Está función admite un parámetro opcional de forma que los mensajes no se envirán inmeditamente, sino en el momento especificado en la programación. Si queremos programar el envío de los mensajes, usaremos está llamada a la función de envío:

sms.SendXML "", "", , Prog

En este caso, en el 4º parámetro "Prog", le indicamos la programación del mensaje. Para definir esté parametro, lo inicializaremos con la siguiente llamada:

Dim Prog As dcXMLSend.Programacion

Para iniciar el objecto, y dependiendo del tipo de programación de los mensajes que deseemos, realizaremos estás llamadas:

Enviar SMS una sola vez (diferido):

Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha)

  • nombreProgramacion (string); el nombre que desamos que tenga dicha programación
  • fecha (date); la fecha y hora en las que se enviará el mensaje.

Enviar SMS Diariamente:

Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha)

  • nombreProgramacion (string); el nombre que desamos que tenga dicha programación
  • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.

Enviar SMS Semanalmente:

Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha, diaSemana)

  • nombreProgramacion (string); el nombre que desamos que tenga dicha programación
  • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
  • diaSemana (integer); día de la semana en la que se enviaran el mensaje (0=Lunes ... 6=Domingo)

Enviar SMS Mensualmente:

Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha, diaMes)

  • nombreProgramacion (string); el nombre que desamos que tenga dicha programación
  • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
  • diaMes (integer); día del mes en la que se enviarán el mensaje (1 .. 31)

Enviar SMS Anualmente:

Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha, diaMes, Mes)

  • nombreProgramacion (string); el nombre que desamos que tenga dicha programación
  • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
  • diaMes (integer); día del mes en la que se enviarán el mensaje (1 .. 31)
  • Mes (integer); mes en el que se envía los mensajes (1 .. 12)

 

Una vez inciada el objecto Prog, podemos definir sobre él los siguientes parametros:

  • Prog.ProgAvisar (boolean); avisar por correo cada vez que se produzca el envío de un mensaje programado.
  • Prog.ProgFechaFinal (date); especifique aquín cuando desea que se finalice la programación de los mensajes.

Tras la llamada sms.SendXML "", "", , Prog, puede obtenerla respuesta del servidor en cuanto a la programación de los mensajes:

  • sms.ResultProgramacion (boolean); le devuelve true, si la programación se ha almacenado en nustros sistemas. En caso que le devuelva false, verifique que se ha autentificado en la plataforma (DMSMS.RXAutentificacion.Resultado) o que la fecha y hora del inicio de la programación no sea anterior a la fecha actual.
  • sms.ResultProgramacionId (long); Identificativo creado en el servidor para la programación.
  • sms.ResultProgramacionMsgOk (integer); número de mensajes almacenados en la programación adecuadamente.
  • sms.ResultProgramacionMsgErr (integer); número de mensajes que no compluen los requisitos de la plataforma y que no se enviarán en la programación.

Es posible que una vez creemos una programación, queramos agregar más mensajes a la misma programación, para ello debemos enviar el mismo campo IdEnvioext, esto hará que en una previa programación con dicho ID, agregemos nuevos mensajes.

IMPORTANTE: en este caso solo se agregan los nuevos mensajes en la programación, no se modifican las propiedades. Si hace uso de está opción, recuerde modificar este campo para cada programación cuando los eventos se realizan con una configuración diferente.

 

- sms recibidos - descom mensajes sms - hosting - consultoria - desarrollo - backup -