Enviar SMS, recibir SMS y contestar SMS

Area de desarrolladores SMS: Como integrar la funcionalidad de envío de SMS, mensajes a moviles, en las aplicaciones

DLL SMS, Integración SMS bajo Windows, introducción

1. Descripción

La interfaz DLL te ofrece una serie de funciones para integrar la plataforma Descom SMS en tus aplicaiones bajo Windows

 

2. Plataformas

Plataformas soportadas: Windows

3. Instalación

solo necesitamos descargar la DLL y alojarla en la carpeta System32 de nuestro sistema, es decir, "%SystemRoot%\system32"

3. Servicios

Dispone de los siguientes Servicios:

 

4. Descargas

By

Categoría:

Python | Script para enviar SMS

SDK-HTTP-B

1. Descripción

La API HTTP admite su uso desde diferentes lenguajes de programación, acontinuación os mostramos un ejemplo realizado en python para enviar SMS.

 

A continuación le mostramos un script realizado en python, para enviar SMS a móviles desde la plataforma de Descom SMS.

2. Requerimientos

Tener instalado el interprete de python, que puede descargar en http://python.org, el interprete adecuado para su sistema operativo. Python, dispone de un interprete para los SO más conocidos y usados.

3. Código

import sys
import getopt
import httplib
import urllib
import xml.dom.minidom
from xml.dom.minidom import parseString
####################
# Funciones
####################
def usage():
    print 'Uso del programa:'
    print '\tArgumentos Obligatorios:'
    print '\t\t -i\t--id\t\tCodigo de Cliente de la cuenta en Descom SMS'
    print '\t\t -u\t--username\tNombre de usuario de la cuenta en Descom SMS'
    print '\t\t -p\t--passwd\tPassword del usuario de la cuenta en Descom SMS'
    print '\tArgumentos Opcionales:'
    print '\t\t -s\t--sendsms\tLista de nuemeros de moviles a los que se le envia el mensaje, separado por ",". Si no se define este argumento, se obtiene el saldo de la cuenta.'
    print '\t\t -m\t--message\tTexto del mensaje a enviar.'
    print '\t\t -r\t--remitente\tRemitente personalizado del mensaje.'
def StrtoHex(s):
    lst = []
    for ch in s:
        hv = hex(ord(ch)).replace('0x', '')
        if len(hv) == 1:
            hv = '0'+hv
        lst.append(hv)
    return reduce(lambda x,y:x+y, lst)

#######################
# Variables globales
#######################
HOSTNAME = 'www.descomsms.com'
URL='/AP/descomMessage.servlet.Servlet'
VERBOSE=False
USERNAME=''
PASSWD=''
ID=''
REMITENTE=''
MOVILES=''
MENSAJE=''
MENSAJESXML=''
 
#######################
# Entrada de datos
#######################
try:
    opts, args = getopt.getopt(sys.argv[1:], "hu:p:i:vs:m:r:", ["help", "username=", "passwd=", "id=","verbose","sendsms=","message=","remitente="])
except getopt.GetoptError, err:
        print str(err)
        usage()
        sys.exit(2)
for o, a in opts:
    if o == "-v":
        VERBOSE = True
    elif o in ("-h", "--help"):
        usage()
        sys.exit()
    elif o in ("-u", "--username"):
         USERNAME = a
    elif o in ("-p", "--passwd"):
        PASSWD = a
    elif o in ("-i", "--id"):
        ID = a
    elif o in ("-s","--sendsms"):
        MOVILES = a
    elif o in ("-m","--message"):    
        MENSAJE = a
    elif o in ("-r","--remitente"):
        REMITENTE = a
    else:
        assert False, "unhandled option"
if USERNAME=='' or PASSWD=='' or ID=='':
    usage()
    sys.exit()
if MOVILES<>'' and MENSAJE=='':
    usage()
    sys.exit()
 
############################
# Crear Trama XML de envio
############################
N=0
if MOVILES<>'':
    for M in MOVILES.split(','):
        N=N+1
        MENSAJESXML+='<Mensaje><Id>'+str(N)+'</Id><Destino>'+M.strip()+'</Destino><Texto>'+StrtoHex(MENSAJE)+'</Texto></Mensaje>'
    if REMITENTE<>'':
        REMITENTE=StrtoHex(REMITENTE)
        REMITENTE='<Remitente>'+REMITENTE+'</Remitente>'

XML='<TXEnvio><Autentificacion><Usuario>'+StrtoHex(USERNAME)+'</Usuario><Passwd>'+StrtoHex(PASSWD)+'</Passwd><Idcli>'+ID+'</Idcli>'+REMITENTE+'</Autentificacion>'
if MENSAJESXML<>'':
    XML+='<Mensajes><Total>'+str(N)+'</Total>'+MENSAJESXML+'</Mensajes>'
XML+='</TXEnvio>'
##################
# Envio de SMS's
##################
params = urllib.urlencode({'xml': XML})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = httplib.HTTPSConnection(HOSTNAME)
conn.request('POST', URL, params, headers)
response = conn.getresponse()
if response.status<>200:
    print 'Error: ',response.reason
    sys.exit(2)
RXML=response.read()
conn.close()
dom=parseString(RXML) 
nodos=dom.childNodes
 
#######################
# Analisis de respuesta
#######################
for n in dom.getElementsByTagName("Autentificacion"):
    Auth=n
    break
for n in Auth.getElementsByTagName("Resultado"):
    RAuth=n.firstChild.data
for n in Auth.getElementsByTagName("Comentario"):
    Comentario=n.firstChild.data
for n in Auth.getElementsByTagName("Saldo"):
    SALDO=n.firstChild.data
if RAuth<>"1":    
    print "Error: ", Comentario
    sys.exit(2)
if MOVILES=='':
    print "Saldo actual: ",SALDO,"creditos"
    sys.exit(0)
else:
    for n in dom.getElementsByTagName("Mensajes"):
        MSGS=n
        break
    TOTAL_ERRORES=int(MSGS.attributes["total_error"].value)
    TOTAL_MENSAJES=int(MSGS.attributes["total_mensajes"].value)
    TOTAL_OK=int(MSGS.attributes["total_ok"].value)
    if TOTAL_ERRORES==0:
        print 'Ok, '+str(TOTAL_OK)+' mensajes enviados'
    else:
        if TOTAL_OK==0:
            print 'Error, ningun mensajes ha sido enviado.'
        else:
            print 'Error, '+str(TOTAL_ERRORES)+' mensajes enviados con errores, '+str(TOTAL_OK)+' enviados correctamente:'
        MMOVILES=MOVILES.split(',')
        NN=0
        for M in MSGS.getElementsByTagName("Mensaje"):
            for n in M.getElementsByTagName("Resultado"):
                RMesg=n.firstChild.data
                break
            for n in M.getElementsByTagName("Comentario"):
                                CMesg=n.firstChild.data
                                break
            if RMesg=="0":
                print '\t['+MMOVILES[NN]+'] ERR ['+CMesg+']'
            NN=NN+1
    print "Saldo actual: ",SALDO,"creditos"



4. Descarga

5. Uso del programa

Llamar al programa:

linux:-$ python dcsms.py
 
Uso del programa:
    Argumentos Obligatorios:
         -i    --id        Codigo de Cliente de la cuenta en Descom SMS
         -u    --username    Nombre de usuario de la cuenta en Descom SMS
         -p    --passwd    Password del usuario de la cuenta en Descom SMS
    Argumentos Opcionales:
         -s    --sendsms    Lista de numeros de moviles a los que se le envia el mensaje, separado por ",". Si no se define este argumento, se obtiene el saldo de la cuenta.
         -m    --message    Texto del mensaje a enviar.
         -r    --remitente    Remitente personalizado del mensaje.

By

Categoría:

SDK Java | Integración SMS en entornos Java, introduccion

1. Descripción

Esta API Java te ofrece una forma de poder realizar la integración de nuestros servicios de envío de SMS en cualquier desarrollo Java, ya sea de consola o gráfico, pudiendo ser utilizada en cualquier aplicación Java y en cualquier plataforma que disponga de una máquina virtual Java.
Con esta API puedes enviar los mensajes de forma simple o masiva, y obtener el resultado de los envíos.
La API utiliza una encapsulación de nuestra interfaz HTTP para que te sea mucho más sencillo implementar tus envíos SMS en Java.
 

2. Plataformas

Plataformas soportadas: Windows, Linux, Mac , etc...
La única condición es tener instalada una máquina virtual java (JDK) 1.4.2 o superior.
Se puede integrar en plataforma gráfica o consola.
 

3. Servicios

Dispone de los siguientes Servicios:
 

By

Categoría:

SDK ASP | Integración SMS con ASP, introducción

1. Descripción

La API ASP, te permite integrar un tu página Web el envío de mensajes SMS a teléfonos móviles.
Esta API es una clase desarrollada en ASP y tiene las propiedades y funciones necesarias para poder llevar los envíos de forma sencilla en una página Web o en script de consola.

2. Plataformas

Plataformas soportadas: Windows.
Sólo es necesario tener instalado un servidor Web como IIS.

3. Servicios

Dispone de los siguientes Servicios:

By

Categoría:

SDK Java | Integración del envío de mensajes a móviles en entornos Java

1. Descripción

Esta API Java te ofrece unas clases para poder realizar los envíos de SMS integrados en cualquier aplicación Java y en cualquier plataforma que disponga de una máquina virtual Java: Windows, Linux, Unix, Mac, etc...
Sólo tendrás que instanciar estas clases para poder de forma sencilla realizar envíos de SMS, obtener el saldo, lista de remitentes, etc...

2. Documentación

Localización de la librería JDescomSMS:
Copie la librería JDescomSMS.jar en una carpeta de su sistema para que pueda ser incluida dentro del Classpath de su línea de ejecución java.

 

Llamadas a la librería JDescomSMS para realizar un envío de SMS desde una aplicación Java.

Importación de clases :

import JDescomApi.*;
 

Creación del objeto e inicialización:

JDescomSendSMS JD
send;JDsend=new JDescomSendSMS();
 

Configurar datos de autenticación:

JDsend.autenticacion(usuario,clave,remitente,email_notificacion);
 

 

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
usuario Nombre de usuario de Descom SMS su usuario String
clave Su contraseña en Descom SMS Su contraseña String
remitente texto del remitente que quiere para enviar sus mensajes. (opcional)
Texto del remitente, 11 caracteres máximo. De ser un remitente disponible o registrado en su cuenta de Descom SMS.
String
email_notificación Email de Notificación configurado en su cuenta de Descom SMS (opcional)
Email de notificación para recibir las notificaciones de entrega por cada SMS. Debe estar registrado en su cuenta de Descom SMS.
String


 Configurar datos de envío:

//Número máximo de SMS por mensaje
JDsend.setMaxNumSMS(1);
//Establece el modo de envio en función del saldo disponible 
JDsend.setModoEnvio(1);
 


Añadir mensajes a enviar:

JDsend.AddMensaje(id,numero,texto,remitente_individual);
 

Donde:

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
id Texto inicial Identificador del mensaje msg, id, etc... String
numero Número de teléfono destinatario del
mensaje
Teléfono en formato:
acceso internacional + cod. país + teléfono
Ejemplo: 0034666555444
String
Texto Texto del mensaje Texto del mensaje String
remitente_individual Remitente sólo para este mensaje es opcional. String


Por cada mensaje a enviar se ha de llamar a esta función con los datos de Identificador, Destino y Texto.

 

Envío de mensajes a plataforma:

JDsend.SendSMS(idenvio);
 

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
idenvio Texto identificador para el envío de todos los mensajes.
Sirve para agrupar los envíos y poder visualiar el informe agrupado.
texto alfanumérico de hasta 35 caracteres.
Si lo deja en blanco se generará uno aleatorio
String


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 A LA LIBRERÍA 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 enviados:

JDsend.getTotalMensajesEnviados();
 JDsend.getTotalMensajesEnviados_ok;
 JDsend.getTotalMensajesEnviados_error;
 

 

Resultado de la autenticación:

 JDsend.getResultado();
 

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

Comentario de la autenticación:

JDsend.getComentario();
 


Saldo restante en la cuenta:

JDsend.getSaldo();
 


Para los mensajes enviados tenemos un iterador de mensajes

JDsend.getMensajesIterator();
 


Este iterador nos devolverá objetos de clase JDescomMensaje, donde para cada mensaje tenemos:

msg.getId();
 msg.getResultado();
 msg.getNumero();
 msg.getTexto();
 msg.getComentario();
 

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.

Una vez finalizado el envío se ha de reinicializar la clase para borrar la bandeja de salida y reiniciar contadores:

JDsend.DeleteMensajes();
 

 

3. Ejemplos

Descargue un ejemplo en Java y sus fuentes para ver como implementar sus aplicaciones con nuetra librería JDescomSMS.

 

Pulse el botón de lanzar nuestra aplicación usando Java™ Web Start (descargar JDK 6).

jws-launch-button

Para ejecutar nuestro ejemplo en su sistema, debe de disponer algún JDK instalado. Si no lo tiene puede descargarlo de: JDK 6

Copie nuestras dos librerías, JDescomSMS_Ejemplo.jarJDescomSMS.jar en una carpeta de su sistema, por ejemplo, C:\tmp.

  • En entorno Windows, ejecute: 
    java   -classpath C:\tmp\JDescomSMS_Ejemplo.jar;C:\tmp\JDescomSMS.jar      JDescomSMS_Ejemplo
  • En entrono Linux,Unix, Mac, ejecute: 
    java   -classpath C:\tmp\JDescomSMS_Ejemplo.jar:C:\tmp\JDescomSMS.jar      JDescomSMS_Ejemplo

Esto le abrirá una ventana desde donde podrá probar el envío de mensajes con su usuario en Descom SMS.

 

 

4. Gráfico

 

By

Categoría:

SDK ASP | Cómo integrar el envío de SMS con ASP

 1. Descripción

El Interfaz ASP te permite enviar mensajes a teléfonos móviles, desde tu página web, utilizando desde un simple formulario hasta un sitio web avanzado con múltiples usuarios accediendo.

Tu página web tendrá que enviar la información necesaria para el envío de mensajes SMS al FrontEnd de la plataforma Descom SMS, a través de un servidor seguro, y esta se encargará de enviar el mensaje SMS.

2. Documentación

La clase dms_class.asp

La clase class_dms.asp, le permite integrar un su página Web el envío de mensajes SMS a teléfonos móviles. La clase tiene las propiedades y funciones necesarias para poder llevar a cabo está labor.

¿Como llamar a la Clase?

Incluiremos en nuestro código una llamada a la clase:

 <!--#include file="<strong>PATH</strong>\class_dms.asp"-->

Siendo PATH, el directorio donde se encuentre la clase class_dms.php

Para crear una instancia de la clase, lo haremos de la siguiente forma:

 set sms = new dms_send 

En este caso el objeto sms, tendrá todas la propiedades necesarias para realizar el envío.

 

Métodos y Funciones de la Clase

Métodos

  • mailError; en caso de un error, la clase nos enviará un mail a la cuenta que especifiquemos en este campo, indicandonos este hecho. Dejelo vacio si no requiere de estas notificaciones.
  • MaxSizeMessage; Es el tamaño máximo del mensaje que la clase va a manejar. Dejelo a Cero para no limitar el tamaño del mensaje.
  • autentificacion; Le permite configurar los datos de su cuenta y obtenr información de está.
  • mensajes; Este método le permite agregar los mensajes a enviar por SMS y tras ser enviado, revisar su estado.

Método Autentificacion

Este método, a su vez tiene los siguientes sub métodos:

  • username; donde le especificaremos el nombre de usuario de la cuenta en Descom con la que deseamos enviar los SMS.
  • autentificacion; es la contraseña de la cuenta con la que realizaremos el envío.
  • saldo; trás enviar los mensajes u obtener el saldo, en esta propiedad podremos ver el saldo actual de la cuenta.
  • error; Una variable Booleana que nos devolverá si la cuenta a autenticado o no en la plataforma de envíos de SMS.
  • mensajeerror; En caso de error, este campo nos devuelve la descripción del error.

Método Mensajes

Este método, nos permite agregar los mensajes en el envío y su posterior analisis de los resultados acarecidos.

Para agregar un mensaje, empleramos la siguiente función del método mensajes:

mensaje.add key, destino, mensaje, remitente

Esta es la explicación de los argumento de está función:

  • key; debe ser una clave única que nosotros asignemos, en cada envío solo podrá haber una única clave para cada mensaje.
  • destino;Teléfono destino con formato internacional "0034666555888"
  • mensajes; Texto del mensaje que deseamos enviar.
  • remitente; nos permite definir el remitente del mensaje, dejelo vación si quiere que aparezca el predeterminado.

Una vez enviemos los mensajes, si deseamos ver el resultado del envío de cada mensajes, llamaremos a la función mensajes.enviados.

Está función nos retornará una matriz con todos los mensajes que hemos intentado enviar. Cada elemento de está matriz, dispone de las siguiente propiedades:

  • key; será la misma key que asignamos al agregar el mensaje.
  • destino;Teléfono destino con formato internacional "0034666555888"
  • mensajes; Texto del mensaje que deseamos enviar.
  • error; Una variable Booleana que nos devolverá siel mensaje ha sido enviado o no.
  • mensajeerror; En caso de error, este campo nos devuelve la descripción del mismo.

 

Funciones

La clase proporciona las siguientes funciones:

  • Send; está función se encargará de enviar los mensjaes que previamente hemos agregado.
  • getSaldo; si únicamente queremos conocer el saldo actual sin enviar ningún mensaje, llamaremos a está función.

 

3. Ejemplos

Descarga nuestros ejemplos: ejemplo en ASP.

A continuación exponemos un pequeño ejemplo de uso de la clase:

<!--#include file="class_dms.asp"--> 
<%
'Configurar Envío SMS
set sms = new dms_send
'sms.mailError="Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."
sms.autentificacion.username=usuario
sms.autentificacion.passwd=clave
'Componer Mensajes
sms.mensajes.add "1","003400000000","mensaje de prueba,""
'Enviar SMS
sms.Send
'Comprobando envío
if sms.autentificacion.error then    
    'Cuenta no autentificada    
    response.write("<font class='textoERR'>" & sms.autentificacion.mensajeerror & "</font>")
else    
    'Cuenta autentificada    
    response.write("<table align='center'><tr><td class='texto1'>Saldo: </td><td class='texto1'>" & sms.autentificacion.saldo & "</td></tr>")    
    'Lectura de los estados de envío de los mensajes    
    for each msg in sms.mensajes.enviados    
        if msg.error then          
            'Mensaje no enviado          
            response.write("<tr><td class='texto1'>Mensajes " & msg.key & " (" & msg.destino & "):</td><td class='textoERR'>" & msg.mensajeerror & "</td></tr>")     
        else          
            'Mensaje enviado           
            response.write("<tr><td class='texto1'>Mensajes " & msg.key & " (" & msg.destino & "):</td><td class='textoOK'>" & msg.mensajeerror & "</td></tr>")     
        end if
    next
    response.write("</table>")
end if
%>

4. Gráfico

interfaz ASP

By

Categoría:

DLL ActiveX | Integración SMS mediante ActiveX, introducción

1. Descripción

La interfaz DLL ActiveX te ofrece una forma sencilla de integrar un componente COM en tus aplicaciones bajo Windows, principalmente orientada a lenguajes como Visual Basic y .Net.
Con una simple DLL tendrás toda una serie de funcionalidades encapsuladas para usarlas directamente desde tus desarrollos.

2. Plataformas

Plataformas soportadas: Windows
Esta interfaz está orientada principalmente a integraciones con lenguajes de programación como Visual Basic y .NET. Se utiliza una DLL registrada en tu aplicación para acceder a todas sus funcionalidades.

3. Servicios

Dispone de los siguientes Servicios:

By

Categoría:

DLL Activex | Cómo enviar SMS mediante ActiveX

1. Descripción

Esta DLL te ofrece una serie de objetos y métodos con los que podrás realizar los envíos de forma muy sencilla sin tener que implementar un código complicado. 

2. Documentación

 

Creación del objeto e instancia:

Primero debemos iniciar una instancia de la DLL en nuestro programa, para posteriormente llamar a la clase

Dim oDMEnvio As Object
Set oDMEnvio = Nothing
Set oDMEnvio = CreateObject("dcXMLSend.XMLSendClass");

De esta forma, el objeto oDMEnvio, nos permitirá interactuar con la plataforma de Descom SMS.

 

Configuración de la autentificación

Definiremos la autentificación a la Plataforma de Descom Mensajes SMS, asignando los siguientes parámetros:

oDMEnvio.Usuario = “nombre_de_usuario”
oDMEnvio.Clave = “contraseña_de_acceso”

 

 
Configurar datos opcionales de envío:

Disponemos de varios parámetros para configurar el envío que queremos realizar, a continuación te exponemos los parámetros disponibles

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
Remitente

Remitente que vamos a utilizar en el envío.

 

String
idEnvioExt

Puede definir un id de envío, de esta forma Descom asociará los envíos con el mismo identificativo (máx 30 caracteres), para poder obtener reportes de un envío de bloques de mensajes.

  String
MaxNumSMS Número máximo de SMS que enviará en un solo mensaje. Si este campo es Cero, no tendrá ninguna limitación. 0, 1, 2, ... Int

Ejemplo:

oDMEnvio.Remitente = “Info”
oDMEnvio.idEnvioExt = “34"
oDMEnvio.MaxNumSMS=5

Agregar mensajes para su envío

La DLL dispone de una sub-clase para configurar los mensajes a enviar, se denomina, XMLMensajes, que a su vez dispone de 2 subclases para gestionar cada tipo de mensajes:

 

  • XMLMensajes.MensajesSMS

Es una colección con todos los mensajes a enviar o enviados. Para agregar un mensaje a la colección, disponemos de la función ADD la cual acepta los siguientes argumentos:

Nombre
Argumentos
Descripción Posibles Valores Tipo de
Dato
Id

Identificador del mensaje que vamos a enviar

 1, 2, 3, ...

Int
Destino

Número de móvil del destinatario del mensaje.

  String
Mensaje Texto del mensaje a enviar   String
Remitente Opcional; remitente para este mensaje   String

ControlarMensajesRepetidos

Control para no enviar mensajes repetidos por error.

True (por defecto); realizará dicho control, False; para deshabilitar este control

Bool

Ejemplo:

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

  • XMLMensajes.MensajesWAP

Es una colección con todos los mensajes WAP a enviar o enviados. Para agregar un mensaje a la colección, disponemos de la función ADD la cual acepta los siguientes argumentos:

Nombre
Argumentos
Descripción Posibles Valores Tipo de
Dato
Id

Identificador del mensaje que vamos a enviar

 1, 2, 3, ...

Int
Destino

Número de móvil del destinatario del mensaje.

  String
Asunto Asunto del mensaje WAP   String

URL

Dirección URL con el contenido multimedia

 

String
Remitente Opcional; remitente para este mensaje   String

Ejemplo:

oDMEnvio.XMLMensajes.MensajesWAP.Add "3", "0034xxxxxxxxx", "Mi Foto", "<a href="http://www.mipagina.com/mifoto.jpg">http://www.mipagina.com/mifoto.jpg</a>", ""
oDMEnvio.XMLMensajes.MensajesWAP.Add "4", "0034xxxxxxxxx", "Melodia", "<a href="http://www.mipagina.com/cancion.mp3">http://www.mipagina.com/cancion.mp3</a>", ""

 

Enviar la petición

Una vez formalizada 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 enviar 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.

 

Analizar la Respuesta

Respuesta de Autentificación y saldo

Para analizar el resultado del envío u obtención de saldo, debemos analizar la clase RXAutentificacion que nos ofrece las siguientes propiedades:

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
Resultado

Resultado de la autentificación en la plataforma

  • 1; si es correcto
  • 0; si no se a llevado acabo a autentificación.
String
Comentario

Texto descriptivo del error al conectar con la plataforma

  String
Saldo Saldo actual de la cuenta, si ha autentificado correctamente en la plataforma Descom SMS 0, 1, 2, ... Int

IdEnviodm

Si hemos enviado varios mensajes en bloque, ver: IdEnvioext, con esta 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.

  String

Respuesta de envíos de mensajes globales

La clase dcXMLSend.XMLSendClass, contiene los siguientes parámetros globales para determirar cuantos mensajes han sido enviados correctamente:

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
TotalMensajesEnviados

Devuelve el número de mensajes que hemos enviado

0, 1, 2, ... Int

TotalMensajesEnviadosOK

Número de mensajes enviados correctamente.

0, 1, 2, ... Int

TotalMensajesEnviadosError

Número de mensajes que no se pueden envíar por algún error. 0, 1, 2, ... Int

TotalCreditosGastados

Créditos gastados en el envío de los mensajes

  String

Respuesta de cada mensaje

Tanto XMLMensajes.MensajesSMS como XMLMensajes.MensajesWAP son colecciones de los mensajes que hemos enviado. Para comprobar mensaje a mensaje su estado de envío, podemos recorrer dicha colección y comprobar en cada mensaje los siguientes parámetros:

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
Resultado

Si el mensaje ha podido enviarse o no

  • 1; se envío correctamente
  • 0; error en el envío
Int

Comentario

Descripción del error de envío del mensaje.

  String

iddm

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

  String

Destino

Número de móvil del destinatario

  String
Key Identificativo que se asigno en el momento de agregar el mensaje en la cola.   String

3. Ejemplos y Descargas

Pulsa aquí para descargar la DLL de Descom Mensajes SMS, documentación y ejemplos de uso.

 

Ejemplo en VB .NET

Dim DMSMS As Object 
DMSMS = CreateObject ("dcXMLSend.XMLSendClass") 
 
DMSMS.Usuario = “nombre_de_usuario” 
DMSMS.Clave = “contraseña_de_acceso” 
DMSMS.Remitente = "Remitente personalizado"
DMSMS.XMLMensajes.MensajesSMS.Add ("1", "0034xxxxxxxxx", "SMS pruebas", "")
DMSMS.XMLMensajes.MensajesWAP.Add ("4", "0034xxxxxxxxx", "Melodia", "<a href="http://www.mipagina.com/cancion.mp3">http://www.mipagina.com/cancion.mp3</a>", "")
DMSMS.SendXML ("", "") 
 
If DMSMS.RXAutentificacion.Resultado="1" Then 
            Dim MSG As Object 
            For Each MSG In DMSMS.XMLMensajes.MensajesSMS 
                        If MSG.Resultado Then 
                                   MsgBox ("OK: Mensaje (" & MSG.Key & ") enviado.",, "Envío Correcto") 
                        Else 
                                   MsgBox ("ERROR: Mensaje (" & MSG.Key & "): " & MSG.Comentario, , "Envío Fallido ") 
                        End If 
            Next 
Else 
           MsgBox (DMSMS.RXAutentificacion.Comentario, , "Error de Acceso") 
End If

 

Ejemplo en C++

//Incluimos la cabecera de la DLL 
#import "C:\Windows\System32\dcXMLSend.dll" 
 
 
// Inicializamos la DLL 
CoInitialize(NULL); 
CLSID clsid; 
HRESULT hr = CLSIDFromProgID(L"dcXMLSend.XMLSendClass", &clsid); 
 
if(FAILED(hr)) { 
     MessageBox(NULL, _T("Debe registrar la DLL regsvr32 dcXMLSend.dll."), _T("Error"), MB_OK); 
     return -1; 
} 
 
dcXMLSend::_XMLSendClassPtr pXlApp; 
 
hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IDispatch, (void **)&pXlApp); 
if(FAILED(hr)) { 
      MessageBox(NULL, _T("No es posible cargar la Dll dcXMLSend.dll."), _T("Error"), MB_OK); 
      return -2; 
} 
 
// Configuramos el acceso a la plataforma Descom Mensajes 
pXlApp->Usuario="usuario"; 
pXlApp->Clave="contraseña"; 
 
BSTR vacio=SysAllocString(L""); 
VARIANT_BOOL cero=0; 
BSTR id=SysAllocString(L"1"); 
// Agregamos un mensaje 
BSTR destino=SysAllocString(L"xxx"); 
BSTR mensaje=SysAllocString(L"texto del mensaje"); 
dcXMLSend::_XMLMensajesPtr MENSAJES; 
pXlApp->get_XMLMensajes(&MENSAJES) ; 
MENSAJES->Add(&id,&destino,&mensaje); 
VARIANT_BOOL h=0; 
 
 
// Conectamos con la Platafroma de Descom Mensajes 
pXlApp->SendXML(&vacio,&vacio,&cero); 
 
// Obtenemos el resultado de la Autentificación 
dcXMLSend::_clsRXAutentificacionPtr rx; 
pXlApp->get_RXAutentificacion(&rx); 
 
BSTR result; 
rx->get_Resultado(&result); 
 
if (wcscmp(result,L"1")==0){ 
      // Autentificación Correcta 
     MessageBox(NULL, _T("Saldo de la cuenta: ") + rx->Saldo + _T(" créditos."), _T("Autentificacion Correcta"), MB_OK); 
      int c=MENSAJES->Count; 
 
      for (int i=1;i<=c;i++){ 
           VARIANT v2; 
           v2.vt = VT_I4; 
           v2.lVal = i; 
           dcXMLSend::_XMLMensajePtr MENSAJE; 
           MENSAJES->get_Item(&v2,&MENSAJE); 
           MessageBox(NULL, _T("Resultado: ") + MENSAJE->Comentario, _T("Envio -> ") + MENSAJE->Destino, MB_OK); 
      } 
}else{ 
     // Autentificación Incorrecta 
      MessageBox(NULL, rx->Comentario, _T("ERROR"), MB_OK); 
}

4. Gráfico

Interfaz DLL para enviar SMS

By

Categoría: