Vai al contenuto
OmniChannels.ai

API e SMPP

Come mi collego a un provider SMS tramite SMPP?

Aggiornato

Risposta breve

Per collegarvi a un provider SMS tramite SMPP, richiedete un bind e registrate i vostri indirizzi IP di origine, poi aprite una connessione TLS verso host e porta forniti. Inviate bind_transceiver con system_id e password, trasmettete i messaggi con submit_sm, confermate ogni rapporto deliver_sm e inviate enquire_link con regolarità per mantenere attiva la sessione.

Cosa vi fornisce il provider

L’accesso SMPP di solito viene attivato dal provider, non in autonomia. Comunicategli i paesi di destinazione, i Sender ID, il picco di volume previsto e gli indirizzi IP pubblici da cui vi collegherete.

ElementoCos’è
Host e porta TLSIl punto a cui si collega il vostro client
system_id e passwordCredenziali di bind; conservatele come segreti
system_typeDi solito vuoto, a meno che il provider indichi un valore
Bind e throughputQuante sessioni potete aprire e la velocità concordata per ogni bind
Lista IP consentitiSolo gli IP di origine registrati possono eseguire il bind

Aprire e gestire la sessione

Un bind transceiver invia e riceve su una sola sessione. Usate bind transmitter e receiver separati solo se il vostro client lo richiede.

  1. Aprite una connessione TLS verso host e porta ricevuti.
  2. Inviate bind_transceiver con system_id e password e attendete bind_transceiver_resp con command_status 0.
  3. Inviate ogni messaggio con submit_sm e conservate il message_id di submit_sm_resp.
  4. Ricevete i rapporti di consegna come deliver_sm e rispondete a ciascuno con deliver_sm_resp.
  5. Inviate enquire_link quando la sessione è inattiva e riconnettetevi con backoff se le risposte si interrompono.
  6. Chiudete con unbind e attendete unbind_resp.

Quali campi di submit_sm causano più rifiuti?

  • source_addr_ton e source_addr_npi: 5 e 0 per un Sender ID alfanumerico, 1 e 1 per un numero internazionale.
  • destination_addr: prefisso internazionale più numero, senza segno più né zeri iniziali.
  • data_coding: 0 per l’alfabeto predefinito GSM-7, 8 per UCS-2 (arabo, emoji e altri alfabeti).
  • registered_delivery: 1 per richiedere un rapporto di consegna.
  • short_message contiene fino a 254 ottetti; per contenuti più lunghi usate il TLV message_payload con sm_length 0, mai entrambi.

Errori comuni di bind e invio

OmniChannels.ai attiva bind SMPP 3.4 su TLS per ogni account, con gli IP di origine nella lista consentiti; rivenditori e partner wholesale possono avere bind dedicati.

command_statusCausa probabileSoluzione
ESME_RBINDFAILsystem_id errato o IP non nella lista consentitiVerificate credenziali e IP di origine
ESME_RINVPASWDPassword errataVerificate le credenziali
ESME_RINVSRCADRIl Sender ID o il suo TON/NPI non è validoCorreggete il mittente e TON/NPI
ESME_RTHROTTLEDInvio oltre la velocità concordataRallentate e riprovate con backoff

Fonti ufficiali