Domanda

Sto usando Java per sviluppare un programma che riceve ed elabora messaggi SMS. Sono stato in grado di codificare l'elaborazione dei messaggi SMS ricevuti e il suo funzionamento perfetto. Ora la sfida che ho è ricevere i messaggi SMS dalla rete CDMA. Quando l'applicazione sta per diventare attiva, la rete CDMA imposterà una connessione VPN che consentirà alla mia applicazione di connettersi al suo IN o al suo IN per connettersi alla mia applicazione per consegnare i messaggi SMS alla mia applicazione tramite la VPN. Ora, in quale formato verranno inviati gli SMS all'applicazione? O avrò solo bisogno di ascoltare sulla VPN e leggere i dati quando saranno disponibili? Grazie mille per il tuo tempo.

Grazie.

È stato utile?

Soluzione

Suppongo che per IN intendi Rete intelligente ? Di solito IN non è rilevante per l'invio / la ricezione di messaggi SMS: è necessario connettersi al Short Message Service Center (SMSC) (o qualche proxy / gateway) per farlo.

Come sottolineato anche da Bombe, ci sono diversi protocolli che è possibile utilizzare per connettersi agli operatori di telefonia mobile SMSC, è tutto piuttosto specifico del fornitore, per motivi storici. I protocolli comuni sono:

  • SMPP (il più popolare, diventando lo standard di fatto). Esistono due librerie Java SMPP:
    • API SMPP su SourceForge - libreria molto stabile e matura, l'ho usata personalmente in diversi progetti e posso consigliarlo.
    • Logica OpenSMPP - libreria della società che ha sviluppato la specifica SMPP. Non l'ho mai usato, quindi non posso commentare la sua maturità o stabilità.
  • UCP ( specifica ) - standard piuttosto vecchio. Non sono a conoscenza di librerie Java aperte per questo protocollo. Tuttavia, dato che è tutto basato su ASCII, è abbastanza facile implementare te stesso (purché ti piaccia fare confusione con i byte :-)).
  • CIMD2 - specifica per la comunicazione con gli SMSC di Nokia. Sta diventando un'eredità, poiché ho sentito che le nuove versioni di Nokia SMSC supportano anche SMPP. Non sono note nemmeno librerie Java aperte per questo.
  • e infine, ci sono milioni di protocolli personalizzati implementati per renderlo "più semplice" per gli sviluppatori di terze parti connettersi agli SMSC. Questi di solito si basano su HTTP e XML (SOAP, se sei fortunato).

Per riassumere, la scelta del protocollo non è tua. Di solito è dettato dal venditore SMSC o dall'operatore di telefonia mobile (nel caso in cui abbiano sviluppato una sorta di "proxy / gateway", per proteggere il loro SMSC da potenziali errori di programmazione che gli sviluppatori esterni possono commettere).

P.S. nel caso in cui non ti limiti a Java, puoi anche dare un'occhiata a Kannel - il gateway WAP e SMS Open Source . Non l'ho usato da solo, ma per quanto ho sentito, dovrebbero essere coperti tutti i principali protocolli.

Altri suggerimenti

Protocolli diversi come SMPP ( 1 , 2 ), UCP ( 1 , 2 ) o persino HTTP può essere impiegato per trasferire SMS da una parte all'altra. Devi verificare con il tuo provider upstream quali protocolli offrono.

Se i messaggi arrivano su SMPP dai un'occhiata a SMPPAPI.

http://smppapi.sourceforge.net/

Parla con la tua rete mobile ti diranno in quale formato verranno consegnati i tuoi messaggi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top