https://d226lax1qjow5r.cloudfront.net/blog/blogposts/introducing-distribution-ledger-technology-sms-indian-regulation/dlt_sms_1200x600.png

Introducción de la tecnología de libro mayor de distribución - Reglamento indio sobre SMS

Publicado el April 27, 2021

Tiempo de lectura: 4 minutos

¿Qué es la tecnología de registro de distribución (DLT)?

La tecnología de libro mayor distribuido (también conocida como DLT) es un método digital que permite a usuarios y sistemas registrar transacciones relacionadas con sus activos. Las bases de datos tradicionales tienen una ubicación central para almacenar su información; sin embargo, DLT almacena los datos en múltiples ubicaciones para proporcionar una mayor seguridad, transparencia y confianza entre las partes que utilizan el servicio.

¿Qué tiene que ver la DLT con la regulación india?

Una normativa establecida por la Autoridad Reguladora de las Telecomunicaciones de la India (TRAI) exige que toda empresa nacional que envíe SMS de aplicación a teléfono (A2P) a través de conexiones nacionales a los destinatarios finales se haya registrado correctamente en DLT. Toda empresa que no se registre previamente para DLT dejará de cumplir la normativa y no podrá enviar SMS A2P a destinatarios finales a través de conexiones nacionales en la India.

¿Cómo puedo inscribirme en el DLT?

Si usted es una empresa en la India o está enviando SMS A2P a Numbers de teléfonos nacionales en la India, tendrá que cumplir con DLT. Para ello, tendrá que registrar su entidad principal, cabeceras, plantillas (con su marca) y dar su consentimiento en cualquiera de los sistemas DLT que se enumeran a continuación:

¿Cómo puedo usar DLT con Vonage?

Actualice su proyecto y envíe los parámetros requeridos por DLT en cada solicitud

Debe realizar cambios en su aplicación para utilizar su ID de entidad, ID de remitente/encabezado y plantillas como se muestra en el portal DLT. Deberá utilizar los parámetros adicionales para cada solicitud API o solicitud SMPP cuando envíe sus mensajes SMS.

Enviar un SMS con la API

Si utilizas nuestra API sin uno de nuestros SDK, tendrás que actualizar tu solicitud POST cuando realices una solicitud para enviar un SMS. Tendrás que añadir dos parámetros a la solicitud, como se muestra a continuación:

  • entity-id (cadena)

  • content-id (cadena)

Encontrará más información sobre esta solicitud con la API al enviar un SMS en los Documentos de la API.

Enviar un SMS con nuestros SDK

El siguiente ejemplo utiliza el SDK de Node, sin embargo, tenemos otros SDKS como se indica en el developer docs fragmentos de código.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

El siguiente ejemplo muestra cómo enviar un SMS con el SDK de Vonage Node, incluidos los dos parámetros requeridos para cumplir con las regulaciones de DLT:

Nota Para ejecutar este ejemplo, deberá sustituir VONAGE_API_KEY, VONAGE_API_SECRET, VONAGE_BRNAD_NAME, TO_NUMBER, DLT_APPROVED_PEID y DLT_APPROVED_TEMPLATE_ID por sus propios valores.

const Vonage = require('@vonage/server-sdk')

const vonage = new Vonage({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET
})

const from = VONAGE_BRAND_NAME
const to = TO_NUMBER
const text = 'A text message sent using the Vonage SMS API'
const opts = {
  "entity-id": DLT_APPROVED_PEID,
  "content-id": DLT_APPROVED_TEMPLATE_ID
}

vonage.message.sendSms(from, to, text, opts, (err, responseData) => {
    if (err) {
        console.log(err);
    } else {
        if(responseData.messages[0]['status'] === "0") {
            console.log("Message sent successfully.");
        } else {
            console.log(`Message failed with error: ${responseData.messages[0]['error-text']}`);
        }
    }
})

¿Cómo sé que ha funcionado?

Puede haber varias razones por las que un SMS que debe ser compatible con DLT no se envíe correctamente. Para comprobar el error, tendrás que crear un webhook para escuchar una URL específica preconfigurada que crees en tu aplicación. Para obtener una lista completa de los errores que se devuelven en un acuse de recibo, consulte la documentación para desarrolladores Documentación para desarrolladores. La siguiente tabla muestra los errores relevantes para el envío de mensajes SMS DLT.

Error Code Meaning Description
50 Entity Filter The message failed due to entity-id being incorrect or not provided.
51 Header Filter The message failed because the header ID (from phone number) was incorrect or missing.
52 Content Filter The message failed due to content-id being incorrect or not provided.
53 Consent Filter The message failed due to consent not being authorized.

A continuación se muestra un ejemplo de webhook para recibir SMS Delivery Receipts con Node:

const app = require('express')()
const bodyParser = require('body-parser')

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

app
  .route('/webhooks/delivery-receipt')
  .get(handleDeliveryReceipt)
  .post(handleDeliveryReceipt)

function handleDeliveryReceipt(request, response) {
  const params = Object.assign(request.query, request.body)
  console.log(params)
  response.status(204).send()
}

app.listen(process.env.PORT || 3000)

Su aplicación tendrá que estar expuesta a Internet para que el webhook sea accesible. Para fines de desarrollo sugerimos a la gente a utilizar ngrok y tenemos un buen tutorial sobre cómo configurar con ngrok.

El último cambio que deberás realizar para esto es configurar tu URL de Webhook de recibos de entrega en la página de configuración de la API del panel de control de página de configuración de API del panel de control de Vonage. Reemplaza el contenido del campo de entrada Webhook URL for Delivery Receipts con la URL de tu Webhook, por ejemplo: https://demo.ngrok.io/webhooks/delivery-receipt.

Un mensaje SMS enviado correctamente se mostrará de forma similar al ejemplo siguiente:

{
  "err-code": "0",
  "message-timestamp": "2020-10-25 12:10:29",
  "messageId": "0B00000127FDBC63",
  "msisdn": "447700900000",
  "network-code": "23410",
  "price": "0.03330000",
  "scts": "1810251310",
  "status": "delivered",
  "to": "Vonage"
}

Sin embargo, si hay un problema err_code no será 0, y el status será rejected.

Envío de SMS con SMPP

Para enviar un mensaje SMS con SMPP, tendrás que añadir parámetros adicionales a tu solicitud. Para obtener más información sobre cuáles son estos parámetros adicionales, consulta la base de conocimientos en "Cumplir con DLT y Vonage".

Deja que Vonage administre DLT por ti

Vonage ofrece una solución temporal, en la que puedes dejar que Vonage detecte tu plantilla sin ningún cambio de tu parte. Consulta la base de conocimientos, sección 2, opción 2 para obtener más información. Si bien Vonage no sugiere este método, recomendamos actualizar tu proyecto y usar los nuevos parámetros de API para enviar SMS compatibles con DLT.

Compartir:

https://a.storyblok.com/f/270183/250x250/b052219541/greg-holmes.png
Greg HolmesAntiguos alumnos de Vonage

Antiguo educador de desarrolladores @Vonage. Procedente de PHP, pero no limitado a un solo lenguaje. Un ávido jugador y un entusiasta de Raspberry pi. A menudo se le encuentra practicando escalada en rocódromo.