首页 » 博客 » 不丹短信最佳实践、合规性和功能

不丹短信最佳实践、合规性和功能

不丹短信市场概况

区域设置名称: 不丹
ISO 代码: 英国电信
地区 亚洲
移动国家代码 (MCC) 402
拨号代码 +975

市场状况:不丹的移动市场主要由 B-Mobile 主导。牙买加 whatsapp 数据 短信仍然是重要的通信渠道,尽管通过 B-Mobile 网络交付被视为“尽力而为”。市场显示 OTT 消息应用程序的采用率不断上升,尤其是在城市地区,但由于短信的可靠性和普及性,它仍然在商业通信和通知方面具有重要意义。


不丹短信的主要功能和能力

不丹支持基本的短信功能,但有一些限制,主要通过 B-Mobile 的网络基础设施运行,并提供尽力送达的保证。

双向短信支持

根据当前运营商的能力,不丹不支持双向短信。这意味着企业无法通过标准短信渠道收到对其发送消息的回复。

串联消息(分段短信)

支持:是的,支持串联消息,但根据发件人 ID 类型有一些限制。
消息长度规则:在串联之前适用标准短信长度限制。
编码注意事项:支持 GSM-7 和 UCS-2 编码,UCS-2 对于本电话号码业务线索地宗卡语支持尤其重要。

MMS 支持

不丹不直接支持彩信。尝试发送彩信内容时,信息会自动转换为短信格式,并嵌入 URL 链接,收件人可以通过该链接访问多媒体内容。

收件人电话号码兼容性

号码可携性

不丹不提供号码可携性。这意味着手机号码仍与原运营商绑定,简化了信息路由,但限制了消费者的灵活性。

向固定电话发送短信

不丹不支持向固定电话号码发送短信。尝试向固定电话号码发送信息将导致发送失败并出现 400 响应错误(代码 21614),并且不会产生任何费用。

不丹短信合规与监管指南

根据 2018 年《信息、通信和媒体法》,不丹的短信通信受不丹信息通信和媒体管理局 (BICMA) 的监管。SMS-CB 服务行为准则为移动服务提供商和信息发送者提供了具体指导方针。

明确同意要求

  • 发送营销信息前必须获得书面或电子同意
  • 同意记录应保存并易于获取
  • 在选择加入时必须明确说明沟通目的
  • 同意书应明确规定订阅者将收到的消息类型

HELP/STOP 和其他命令

  • 所有短信活动必须支持“帮助”和“停止”命令
  • 应能识别英语和宗卡语的命令
  • 对帮助/停止命令的响应必须立即且免费
  • 用户必须有随时取消订阅 SMS-CB 服务的选项

请勿致电/请勿打扰登记

尽管不丹没有设立集中式“禁止致电”登记处,但企业应该:

  • 维护自己的抑制名单
  • 立即尊重退出请求
  • 记录所有退出请求
  • 在 24 小时内删除选择退出的号码 评估和优化页面速度
  • 定期清理联系人列表以确保合规性

时区敏感度

不丹遵循 BTT(UTC+6),虽然没有严格的法定时间限制,但最佳做法包括:

  • 在 BTT 上午 9:00 至晚上 8:00 之间发送消息
  • 避免在宗教节日和节日期间发送信息
  • 将工作时间以外的紧急信息限制在真正的紧急情况下

不丹的电话号码选项和短信发件人类型

字母数字发件人 ID

运营商网络能力:支持
注册要求:无需预先注册
发件人 ID 保存:是,发件人 ID 会保存并显示为已发送

长代码

国内与国际

  • 不支持国内长代码
  • 完全支持国际长代码

发件人 ID 保存:是,原始发件人 ID 被保存
配置时间:立即至 24 小时
用例:适用于交易消息和双因素身份验证

短代码

支持:不丹目前不支持
配置时间:N/A
使用案例:N/A


受限制的短信内容、行业和用例

限制内容

  • 赌博和博彩服务
  • 成人内容或露骨内容
  • 未经授权的金融服务
  • 未经适当授权的政治竞选信息
  • 未经适当许可的宗教内容

内容过滤

运营商过滤规则

  • 包含受限关键字的消息可能会被屏蔽
  • URL 应来自经过验证的域
  • 大量相同的邮件可能会被标记为垃圾邮件

避免阻塞的最佳实践

  • 避免过多的标点符号和特殊字符
  • 使用已注册并获批准的发件人 ID
  • 保持一致的发送模式
  • 在消息中包含清晰的业务标识

在不丹发送短信的最佳做法

信息传递策略

  • 尽可能将消息控制在 160 个字符以内
  • 包含明确的号召性用语
  • 在每条消息中标识您的业务
  • 使用批准的模板进行一致的消息传递

发送频率和时间

  • 每位收件人每周最多可收到 3-4 条消息
  • 尊重不丹的节日
  • 在工作时间内安排消息
  • 分散批量活动以避免网络拥堵

本土化

  • 支持英语和宗卡语
  • 考虑本地语言的 Unicode 要求
  • 使用适合当地文化的信息
  • 尊重当地习俗和敏感性

退出管理

  • 在消息中包含明确的退出说明
  • 24 小时内处理退出
  • 维护准确的退出记录
  • 提供多种退出渠道

测试和监控

  • 在不同设备上测试消息
  • 密切监控运送率
  • 跟踪参与度指标
  • 定期检查退回率和投递失败率

不丹的 SMS API 集成

Twilio

Twilio 提供了一个简单的 REST API,用于向不丹发送短信。以下是实现方法:

import { Twilio } from 'twilio';

// Initialize the client with your credentials
const client = new Twilio(
  process.env.TWILIO_ACCOUNT_SID,
  process.env.TWILIO_AUTH_TOKEN
);

// Function to send SMS to Bhutan
async function sendSmsToBhutan(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure proper formatting for Bhutan numbers (+975)
    const formattedNumber = to.startsWith('+975') ? to : `+975${to}`;
    
    const response = await client.messages.create({
      body: message,
      from: senderId, // Alphanumeric sender ID
      to: formattedNumber,
    });
    
    console.log(`Message sent successfully! SID: ${response.sid}`);
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

辛奇

Sinch 通过其 REST API 为不丹提供强大的 SMS 功能:

import { SinchClient } from '@sinch/sdk-core';

// Initialize Sinch client
const sinchClient = new SinchClient({
  projectId: process.env.SINCH_PROJECT_ID,
  keyId: process.env.SINCH_KEY_ID,
  keySecret: process.env.SINCH_KEY_SECRET,
  smsRegion: 'ap' // Asia Pacific region for Bhutan
});

// Function to send SMS using Sinch
async function sendSinchSms(
  to: string,
  message: string
): Promise<void> {
  try {
    const response = await sinchClient.sms.batches.send({
      sendSMSRequestBody: {
        to: [to],
        from: 'YourBrand', // Alphanumeric sender ID
        body: message,
        type: 'mt_text'
      }
    });
    
    console.log(`Batch ID: ${response.id}`);
  } catch (error) {
    console.error('Sinch SMS Error:', error);
    throw error;
  }
}

信息鸟

MessageBird 提供了可靠的 API 来向不丹发送短信:

import messagebird from 'messagebird';

// Initialize MessageBird client
const messageBirdClient = messagebird(process.env.MESSAGEBIRD_API_KEY);

// Function to send SMS via MessageBird
function sendMessageBirdSms(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  return new Promise((resolve, reject) => {
    const params = {
      originator: senderId,
      recipients: [to],
      body: message,
      datacoding: 'unicode' // Support for local language
    };

    messageBirdClient.messages.create(params, (err, response) => {
      if (err) {
        reject(err);
        return;
      }
      resolve(response);
    });
  });
}

普利沃

Plivo 与不丹短信的 API 集成:

import plivo from 'plivo';

// Initialize Plivo client
const plivoClient = new plivo.Client(
  process.env.PLIVO_AUTH_ID,
  process.env.PLIVO_AUTH_TOKEN
);

// Function to send SMS via Plivo
async function sendPlivoSms(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    const response = await plivoClient.messages.create({
      src: senderId,
      dst: to,
      text: message,
      url_strip_query_params: false
    });
    
    console.log('Message UUID:', response.messageUuid);
  } catch (error) {
    console.error('Plivo Error:', error);
    throw error;
  }
}

API 速率限制和吞吐量

  • 默认速率限制:每秒 30 个请求
  • 建议每小时处理量超过 1000 件时进行批量处理
  • 实现重试逻辑的指数退避算法
  • 高峰时段排队消息

吞吐量管理策略:

  • 实现消息队列系统
  • 使用批处理 API 进行批量发送
  • 监控投递率并调整发送速度
  • 实施断路器来处理错误

错误处理和报告

  • 记录所有 API 响应和错误
  • 实现失败消息的重试逻辑
  • 监控送货回执
  • 跟踪常见错误代码及其解决方案
  • 设置异常错误率警报

回顾和其他资源

关键要点:

  • 始终使用正确的电话号码格式 (+975)
  • 实施适当的退出处理
  • 遵循时区注意事项
  • 维护干净的联系人列表
  • 监控配送率。
滚动至顶部