Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

Problemas ne recepción de SMS con Java

Versión para impresiónVersión para impresiónSend by emailSend by email

Estoy desarrollando una aplicación que usa la recepción de mensajes SMS, pero la aplicación jamas recibe los mensajes, los recibe directamente la aplicación predefinida del handset aún y cuando configuré un número de puerto para el envíoy recepción de los mensajes. A continuación muestro los principales fragmentos de mi MIDlet:

smsConnection = (MessageConnection)Connector.open("sms://:1985");

smsConnection.setMessageListener(this);

public void notifyIncomingMessage(MessageConnection conn) {
if(conn == smsConnection){
getMainACTMsgSms().append("Message received over SMS Connection!!\n");
}

else{
getMainACTMsgSms().append("Message received over unknown Connection!!\n");
}
}

Adjunto a este post el proyecto de esta aplicación, lo estoy desarrollando en NetBeans usando como plataforma el SDK para el i776

AdjuntoTamaño
ACTMsgSms.zip441.03 KB

Recibo de SMS en Java

Hola gsantinimx,

¿Cómo estás enviando el SMS?

Tienes que poder enviar el SMS al puerto 1985 en particular -- eso por lo general no se logra hacer por defecto desde el cliente, se tiene que hacer desde el SMSC.

Saludos,

Juan Felipe

Recibo de SMS en Java

El sms lo puedo enviar a cualquier puerto que desee, pero me refiero a un puerto de sms de la forma sms://:{puerto}, como se explica en la wma, no me refiería a un puerto del smsc, hasta donde tengo entendido el puerto definido para el envío de mensajes solo es para definir que aplicación recibe el mensaje en el handset.

¿El envío y recepción de mensajes en j2me depende de alguna configuración del SMSC?

Gracias y Saludos,

Giancarlo

re: Recibo de SMS en Java

Hola Giancarlo,

Sí, sí te entendí ese sentido. El hecho es que la especificación del WMA exige que para que puedas recibir un SMS en una aplicación Java, la aplicación se debe registrar para oir un puerto particular, y el SMS lo tienes que encaminar a un puerto en el cual está escuchando la aplicación -- algo muy parecido a los sockets TCP. El hecho es que el único método de encaminar un SMS a un puerto en específico en la red Nextel es introduciendo el SMS a la red a través del SMSC.

Otra cosa que puedes hacer es encaminar el SMS a un equipo en particular desde otro equipo Nextel -- en ese caso, si la aplicación está escuchando por el mensaje, si lo oirá.

Saludos,

Juan Felipe

re: Recibo de SMS en Java

Hola Juan Felipe,

Ok ya comprendí tu observación, el punto es que el mensaje lo envío también desde una aplicación java caragda en un iden, con el mismo puerto que uso en la aplicación de recepción, pero aún así el mensaje enviado desde la aplicación java llega al inbox del handset y no es capturado por la aplicación de recepción.

Sigo con ese problema, y espero resolverlo pronto, ya que este es un desarrollo simple que estamos haciendo en Nextel de México para monitoreo de mensajería.

Este problema se me presenta tanto para SMS como para MMS, la aplicación de envío trabaja correctamente, realiza el envío de forma exitosa, pero el mensaje es recibido por el inbox en ambos casos

Saludos y gracias por tu ayuda

re: Recibo de SMS en Java

Hola Giancarlo,

¿Cómo estás escuchando en el equipo receptor? ¿Qué método estás usando?

Saludos,

Juan Felipe

Recibir SMS y MMS en java

Hola Juan Felipe,

Para la recepción tanto en el caso de SMS como de MMS uso el método receive del MessageConnection, implementando la interfaz MessageListener con su método notifyIncomingMessage en el cual activo la lectura.

Tambien lo intenté colocando un Threadque realiza la escucha del mensaje con un receive()

Ninguno de los dos métodos funciona. No se si lo estoy implementando correctamente. Espero me puedas orientar sobre si lo hago correctamente o cuale es la forma correcta de hacerlo

Saludos y gracias por la ayuda

Recibir SMS y MMS en java

Hola Giancarlo,

¿Qué tienes en tu Connector.open() como parámetro para el MessageConnection?

Saludos,

Juan Felipe

Recibir SMS y MMS en java

En el caso de SMS uso sms://:16500 y en el caso de MMS uso los id mms://:16000 y mms://:com.nextel.act.app.ACTMsgMMS

En ninguno de los casos anteriores funciona la rececpción en la aplicacion, los mensajes siempre llegan al inbox del handset.

Y en el caso del envío usos los mismos puertos e id

Para el caso del envío uso una librería que hice y q m facilita el envío

re: Recibir SMS y MMS en java

¿En el envío del SMS, estás definitivamente enviándolo al puerto 16000?

Recibir SMS y MMS en java

Hola felipe,

sí, el envío se hace a través de este puerto de forma definitiva pero la pregunta sigue siendo porqué el problema con la recepción, sigo el procedimiento tal cual se describe en la documentación

Saludos

Recibo de SMS en Java

Hola Giancarlo,

Otra pregunta que se me ocurre -- el equipo que estás usando para el monitoreo, tiene el valor correcto del SMSC configurado en el codeplug?

El i776 que vendemos en México no viene por defecto con el SMSC configurado. Eso puede estar afectando el proceso de recibo de mensajes, ya que aún si especificas en el WMA que debes usar SMS, si el codeplug sólo tiene las configuraciones de MMS, irá el tráfico por el MMSC, y de ahí luego se convertería en un SMS si no tiene contenido multimedio. El envío al equipo quizás también termine haciéndose por MMS áun si se cobra como SMS. ¿Me explico?

Saludos,

Juan Felipe

Recibo de SMS en Java

OOk entiendo lo que me comentas y así es, cuando el handset no tiene el aprovisionamiento para SMS se enía como mms y aún cuando tuviera ambos se da la prioridad 1 al envío por MMS, pero mi problema tambien se presenta en MMS, de hecho lo que mas me interesa es resolver este problema para MMS que para SMS, pero ocurre lo mismoq ue en el caso de SMS

Me podrias ayudar a solucionarlo? que crees que se deba esto?

Recibo de SMS en Java

La dificultad que tienes en ese caso es que como todos los equipos reciben todos los mensajes como si fueran MMS, y el PushRegistry no reconoce MMS; en efecto no tienes cómo levantar una aplicación remota usando PushRegistry basado en mensajería, o hacer que el equipo responda a la misma. Tendrás que usar sockets:// para hacer el levantamiento remoto de la aplicación e indicarle al equipo que se comunique usando un protocolo basado en TCP para obtener la información que requieres enviarle.

Para eso tendrías que, de igual manera, tener un plan Data Direct para poder enviarle al equipo la notificación que requieres.

Saludos,

Juan Felipe

Recibo de MMS en java

La aplicación de envío de SMS y MMS ya está funcional, solo nos falta terminar la parte de recepción, la cual es la que no funciona, he probado el código de recepción que viene en la especificacioón de motorola pero no funciona, hay algo que haya omitido para que esto funcione??

Saludos

Recibo de MMS en Java

Prueba con la siguiente cadena de conexión para el recibo de MMS:

try{
messconn = (MessageConnection)Connector.open("mms://:com.mot.oyye");
msg = (MultipartMessage)(messconn.receive());
}
catch (IOException ex) {
...
}

Recibo de MMS en Java

Hola que tal, mira te comento hice la prueba con el string que me indicas y sucede lo mismo, el MMS enviado se recibe en la bandeja de mensajes del equipo y la aplicación java jamás detecta cuando llega el mensaje a que se debe esto. Este es justo el probloema que tengo, el mensaje se recibe en la bandeja del equipo y no en la aplicación a pesar de ajustar el puerto.

Hice una pequeña aplicación para probar este string de conexión que me mandas

    public void test(){
        try{
            msgConn = (MessageConnection)Connector.open("mms://:com.mot.oyye");
            send();
            receive();
            msgConn.close();
            msgConn = null;
        } catch(Exception ex){
            getMainForm().append("\nException: " + ex.getMessage() + "\n");
        }        
    }

    public void send() throws UnsupportedEncodingException, SizeExceededException, IOException{
        getMainForm().append("\nSending MMS...\n");
       
        MultipartMessage mms =
                (MultipartMessage)msgConn.newMessage(MessageConnection.MULTIPART_MESSAGE ,
                "mms://5543290287:com.mot.oyye");
       
        mms.setSubject("Test MCT");
       
        MessagePart mp = new MessagePart("TestMessage".getBytes("ISO-8859-1") ,
                "text/plain" , "txt1" , null , "ISO-8859-1");
       
        mms.addMessagePart(mp);
       
        msgConn.send(mms);
       
        getMainForm().append("\nMMS sent successfully!!\n");
       
        mp = null;
        mms = null;
    }

    public void receive() throws IOException{
        MultipartMessage mms = (MultipartMessage)msgConn.receive();
        getMainForm().append("\nMMS arrived!!\n");
        getMainForm().append("MMS Subject: " + mms.getSubject() + " From: " +
                mms.getAddress());
       
        mms = null;
    }

Hay algún error o alguna omisión???? Ya he probado de formas diferentes (con puerto numérico 16500, con el nombre calificado de la clase y con el string que me mandas) pero el resultado es el mismo siempre es el mismo, el mensaje llega a la bandeja de mensajes del handset

Alguna sugerencia??

Recibo de MMS en Java

Hola estimado,

Estamos confirmando si no hay algo en el MMSC o SMSC que esté bloqueando esto. Es posible que no sea situación de tu código.

En cuanto sepa algo te aviso.

Saludos,

Juan Felipe

Recibo de MMS en Java

Hola que tal,

Muchas gracias x tu apoyo. Espero esto se pueda solucionar

Saludos cordiales

Recibo de MMS en Java

Ola a todos.

Estou com o mesmo problema para recepcao de mensagem direta para minha aplicacao feita em java. Por favor, alguem ja descobriu o problema?

Gracias

Recibo de MMS en Java

Hola a todos,

Puedo confirmar que esto no está funcionando en nuestra red -- existen un par de encabezados en la transmisión de MMS que nuestro MMSC está filtrando, y por lo tanto el equipo receptor no sabe interpretar el mensaje como uno destinado a una aplicación Java.

He iniciado el pedido para hacer esta modificación en el sistema, pero no les puedo prometer que se logre hacer o en qué fecha. Si algo cambia, les estaré avisando por este medio.

Saludos,

Juan Felipe

Problema recepción MMS en java con MMSC Nextel

Hola que tal, podrías indicarme que headers son a los que te refieres para cometarle al área de Ing. de datos de aquí de méxico y ver si me pueden ayudar. Como te comenté yo trabajo aquí en Nextel de México y podría pedirle a la gente de datos que nos ayude ya que en México se controla el MMSC de todos los mercados

Saludos

Hola Giancarlo, Te pasaré

Hola Giancarlo,

Te pasaré los detalles por canales internos.

Saludos,

Juan Felipe

Recibir MMS en java

Ok, por lo que entiendo entonces el MMS no es capaz de registrarse en el push registry, pero en mi caso no deseo levantar la aplicación con el MMS, la aplicación ya está levantada manualmente, solo deseo recibir un MMS enviado desde otro handset que tambien tiene una aplicación java que efectúa el envío. También para esto debo usar sockets???

Por lo que respecta al aprovisionamiento del equipo no hay problema está totalemnte aprovisionado (ya que yo trabajo para Nextel de Mexico en OSS eso no es problema), si el handset debe tener un aprovisonamiento específico puedo solicitarlo.

Lo que deseamos hacer en oss es una aplicación de monitoreo de mensajería, un equipo envía mensajes otro los recibe (todo hecho de forma aut´noma por java) y tanto el tiempo de envío como el de recepción se registran vía un webservice para verificar el tiempo que tarda el sistema de mensajería.

Saludos