¿Cómo envío un SMS directamente a través de SMPP? Mi proveedor proporciona una interfaz SMPP para enviar SMS, ¿cómo lo conecto? ¿Hay alguna biblioteca o ejemplos que puedan ayudarme a usar SMPP para enviar? Tal vez usando PHP? o C#?enviar SMS a través de SMPP
Respuesta
Está el Logica SMPP project, escrito en Java, que podría informarle sobre el asunto. Aparte de eso, hay una lista de proyectos en el SMPP Wikipedia page que podría llenar un propósito similar.
He utilizado una biblioteca cliente de DevShock durante algunos años, pero la empresa parece haber desaparecido de la vista.
Una búsqueda rápida en Google volvió a éste sin embargo:
http://www.inetlab.ru/Products/ALT.SMS.SmppClient.aspx.
Parece bastante sencillo, y viene con ejemplos de C# y VB.Net, así como con documentación decente.
Espero que ayude.
Sugeriría Kannel para SMPP pero un par de preguntas.
¿Quién es su Agregador? Deberían ofrecer algo de ayuda para esto.
Sé OpenMarket hace SMPP, así como HTTP con múltiples idiomas SDK
creo que la mejor elección es lib jsmpp. Tiene buenos ejemplos y muchas cosas de bajo nivel ocurren detrás de escena y puede enfocarse en la lógica de su negocio.
componente Devshock era fresco ... lanzaron la fuente que supongo que en algún momento?
Creo que todavía tengo eso.
pero escribir su propio lib smpp no es tan difícil ...
SMPP especificación 3.4 es bastante sencillo.
Básicamente estás haciendo 3 cosas:
- Gestión de conexiones de socket - pila .NET hace que muy fácil y eficiente
- envío de PDU con el formato adecuado
- decodificación de bytes recibidos en la PDU
Ola, puede enviarme un correo si aún necesita esto.
Saludos.
EDITAR Algunos proveedores, como el que yo uso (INFOSYSTEMS alta tecnología) también le proporciona una puerta de enlace http a través del cual usted puede publicar su tráfico
Usted puede buscar que, como alternativa a SMPP.
Una desventaja que he visto con experiencia en SMPP, es frecuentes desconexiones es su conexión de red es inestable.
Las opciones de puerta de enlace HTTP no sufren de esto y también son tan rápidas.
Uso un Kannel para SMPP, conecto kannel a un servidor smpp: link.
Esta es mi kannel.conf:
group = core
admin-port = 13000
smsbox-port = 13001
admin-password = bar
status-password = foo
log-file = "/var/log/kannel/bearerbox.log"
log-level = 0
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1"
access-log = "/var/log/kannel/smsaccess.log"
#SMSC CONNECTION
group=smsc
smsc=smpp
smsc-id=ID1
host=130.1.1.50
port=5016
transceiver-mode = 1
source-addr-ton = 1
source-addr-autodetect = 0
dest-addr-npi = 1
dest-addr-ton = 1
smsc-username = "user"
smsc-password= "pass"
system-type= "system"
#SMSBOX SETUP
group = smsbox
bearerbox-host = 127.0.0.1
bearerbox-port = 13001
sendsms-port = 13013
log-file = "/var/log/kannel/smsbox.log"
log-level = 0
access-log = "/var/log/kannel/smsaccess.log"
#SEND-SMS USERS
group = sendsms-user
username = user
password = pass
#SERVICES
group = sms-service
keyword = default
text = "Su mensaje ha sido procesado"
concatenation = true
catch-all = true
accept-x-kannel-headers = true
get-url = "http://localhost/kannel/receivesms.php?sender=%p&text=%b"
enviar SMS:
curl "http://localhost:13013/cgi-bin/sendsms?user=xxxxxx&pass=yyyyy&to=56976808016&text=tes"
Puede utilizar SMPPCli que es una línea de comandos SMPP remitente de SMS. Puede descargarlo desde http://www.kaplansoft.com/download.html
Aquí está el código de ejemplo simple que utiliza el protocolo smpp en C#.
Por cierto, ardan studio dll tiene algún problema con la codificación y decodificación de datos.
TON y NPİ se le da estática en ardan studio dll, así que lo cambiamos, luego usamos este código, de lo contrario, funciona, pero no puede utilizar diferentes conjuntos de caracteres.
using ArdanStudios.Common.SmppClient;
using ArdanStudios.Common.SmppClient.App;
public class SMPPClientService
{
public static readonly object CounterLock = new object();
private static bool isConnected = false;
private ESMEManager SMPPConnectClient()
{
var smppServerPort = Library.GetAppSetting(SMPP_Server_Port).Split(';');
string server = "xxx.xx.xx.xxx";
short port = 6101;
string shortLongCode = "MESSAGETİTLE";
string systemId = "USername";
string password = "password";
DataCodings dataCoding = DataCodings.Latin1;
ESMEManager connectionManager = new ESMEManager("EricssonTest", shortLongCode, new ESMEManager.CONNECTION_EVENT_HANDLER(ConnectionEventHandler), null, null, null, null, new ESMEManager.LOG_EVENT_HANDLER(LogEventHandler), null);
connectionManager.AddConnections(1, ConnectionModes.Transmitter, server, port, systemId, password, "Transmitter", dataCoding);
return connectionManager;
}
private static void LogEventHandler(LogEventNotificationTypes logEventNotificationType, string logKey, string shortLongCode, string message)
{
}
private static void ConnectionEventHandler(string logKey, ConnectionEventTypes connectionEventType, string message)
{
if (ConnectionEventTypes.Connected == connectionEventType)
{
lock (CounterLock)
{
isConnected = true;
}
}
}
private string Msisdn(string receiver)
{
var tmp = receiver.Replace("/", "")
.Replace(" ", "")
.Replace("-", "");
if (tmp.Length == 10)
return 90 + receiver;
if (tmp.Length == 11 && tmp[0] == '0')
return 9 + tmp;
return tmp;
}
public int SMPPSendMessage(string messageText, string phoneNumber)
{
var result = 0;
var pql = new PSmsSendLogs();
try
{
using (var connectionManager = SMPPConnectClient())
{
phoneNumber = Msisdn(phoneNumber);
DataCodings submitDataCoding = DataCodings.Latin1;
DataCodings encodeDataCoding = DataCodings.Latin1;
List<SubmitSm> submitSm = null;
List<SubmitSmResp> submitSmResp = null;
while (true)
{
Thread.Sleep(1000);
if (isConnected)
{
*// put code here to wait until connection is being establish.İt works Async so it coulnt be connected when we called send method*
break;
}
}
result = connectionManager.SendMessageLarge(phoneNumber, null, Ton.Alphanumeric, Npi.Unknown, submitDataCoding, encodeDataCoding, messageText, out submitSm, out submitSmResp);
}
}
catch (Exception ex)
{
result = 0;
}
return result;
}
#endregion
}
- 1. Recepción de SMS a través de SMPP
- 2. No se puede enviar mensajes multiparts SMS a través de SMPP en java
- 3. Enviar SMS a través de IP
- 4. implementación Java SMPP para recibir SMS
- 5. pjsip enviar sms a
- 6. Cómo enviar SMS a través de la aplicación de Windows
- 7. Enviar SMS a través de PhoneGap en Android
- 8. Enviar sms a través del comando AT actúa raro
- 9. enviar sms a varios destinatarios
- 10. Módem GSM enviar SMS
- 11. Enviar SMS C# .net
- 12. cifrado de SMS a través de GSM
- 13. Enviando SMS a teléfonos móviles a través de JavaScript
- 14. Envío de SMS/mensajes de texto a través de PHP
- 15. Enviando SMS a través de Gmail usando Delphi
- 16. ACTION_SEND usado para enviar sms
- 17. ¿Puedo enviar "SMS recibido intento"?
- 18. Una robusta biblioteca SMPP para .NET
- 19. ¿Cómo enviar datos a través de PendingIntent a Broadcast?
- 20. enviar un mensaje de texto a través de .net
- 21. ¿De alguna manera puedo enviar SMS?
- 22. ¿Enviar y recibir SMS a un script PHP?
- 23. cualquier buen tutorial php sobre cómo enviar sms a teléfonos?
- 24. ASP.NET y enviar SMS/hacer llamadas telefónicas
- 25. Cómo enviar/recibir SMS usando comandos AT?
- 26. ¿Cómo puedo enviar un SMS desde Java?
- 27. Cómo enviar mensajes SMS desde un servidor
- 28. RoR + SMS: arquitectura de la aplicación web Rails para enviar/recibir SMS?
- 29. Cómo recuperar la ubicación del GPS a través de SMS
- 30. Insertar enlace URL en SMS a través de PHP