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

约旦短信最佳实践、合规性和功能

约旦短信市场概览

区域设置名称: 约旦
ISO 代码:
地区 中东和非洲
移动国家代码 (MCC) 416
拨号代码 +962

市场状况:约旦拥有充满活力的移动通信市场,主要由巴拉圭 whatsapp 数据三大运营商主导:Zain、Orange 和 Umniah。短信仍然是企业的重要沟通渠道,尤其是用于身份验证、通知和营销目的。虽然 WhatsApp 等 OTT 消息应用程序在个人通信方面很受欢迎,但短信凭借其广泛的覆盖范围和高打开率,仍然是企业通信最可靠的渠道。


约旦的主要短信功能和能力

约旦支持大多数标准短信功能,包括串联消息和字母数字发件人 ID,但双向短信功能有限,并且彩信会转换为带有 URL 链接的短信。

双向短信支持

约旦的主要短信提供商不支持双向短信。这意专业服务的数字营销策略与其他行业有何不同?着企业无法通过标准短信 API 收到消息回复。

串联消息(分段短信)

支持:是的,大多数发件人 ID 类型都支持串联,但支持情况可能因所使用的特定发件人 ID 类型而异。
消息长度规则:使用 GSM-7 编码时,在拆分之前消息长度限制为 160 个字符。
编码注意事项:使用 GSM-7 编码的消息单个段最泰国号码多可包含 160 个字符,而 UCS-2 编码(用于阿拉伯语和特殊字符)允许每个段最多包含 70 个字符。

MMS 支持

约旦不直接支持彩信。相反,彩信内容会自动转换为短信,并嵌入 URL 链接,收件人可以查看多媒体内容。这确保了兼容性,同时仍允许企业与受众分享丰富的媒体内容。

收件人电话号码兼容性

号码可携性

约旦提供号码可携性,允许用户在移动运营商之间切换时保留自己的电话号码。此功能不会对短信传递或路由产生重大影响,因为信息会正确路由到当前运营商。

向固定电话发送短信

约旦不支持向固定电话号码发送短信。尝试向固定电话号码发送消息将导致发送失败,并且通常会触发 SMS API 的 400 响应错误(错误代码 21614)。这些消息不会出现在日志中,也不会向帐户收取尝试费用。

约旦短信合规与监管指南

约旦电信监管委员会 (TRC) 负责监管短信通信,并制定了针对商业短信的具体指导方针。公司必须遵守 TRC 法规和各个移动运营商的要求,以确保成功传递信息并遵守法规。

向约旦用户发送任何营销或促销信息之前必须获得明确同意。获取和记录同意的最佳做法包括:

  • 收集书面或电子版选择加入确认信息
  • 保存获得同意的时间和方式的详细记录
  • 明确说明用户将收到的消息类型
  • 提供有关消息频率的透明信息
  • 记录给予同意的具体电话号码

HELP/STOP 和其他命令

  • 所有营销信息必须包含明确的退出说明
  • STOP 命令必须支持英语和阿拉伯语
  • 必须遵守的常见关键字包括:
    • 停止 / 停止
    • 取消/取消
    • 取消订阅 / ???_???
  • 退出请求必须在 24 小时内处理

请勿致电/请勿打扰登记

虽然约旦没有维护集中的“禁止致电”注册表,但企业必须:

  • 维护自己的抑制名单
  • 立即尊重退出请求
  • 保留退出号码记录至少 12 个月
  • 实施系统以防止向选择退出的号码发送消息

时区敏感度

约旦对促销信息有严格的时间限制:

  • 促销信息:安曼时间晚上 9 点(GMT+3)后禁止发送
  • 交易信息:如紧急情况可全天候发送
  • 最佳做法:在当地时间上午 9:00 到晚上 8:00 之间发送消息

约旦的电话号码选项和短信发件人类型

字母数字发件人 ID

运营商网络能力:全面支持
注册要求:所有主要网络均需预先注册

  • 注册过程大约需要 12 天
  • 必须提供公司文档和消息模板
  • 促销信息必须包含“adv”前缀

发件人 ID 保存:是的,注册 ID 会在网络上保存

长代码

国内与国际

  • 国内长代码:不支持
  • 国际长代码:支持但转换为字母数字发件人 ID

发件人 ID 保存:否,国际长代码通常会被覆盖 配置时间:N/A 使用案例:不推荐用于约旦;请改用已注册的字母数字 ID

短代码

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

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

以下内容类型和行业面临限制:

  • 赌博和博彩服务
  • 政治内容
  • 宗教信息
  • 成人内容
  • 加密货币促销
  • 未注册金融服务

内容过滤

运营商过滤规则

  • 包含屏蔽关键字的邮件会被自动过滤
  • URL 必须来自批准的域
  • 消息内容必须与预先注册的模板相符
  • 垃圾邮件模式触发自动阻止

避免阻塞的提示

  • 使用预先批准的消息模板
  • 避免使用 URL 缩短器
  • 包含清晰的发件人身份信息
  • 保持一致的发送模式
  • 使用已注册的字母数字发件人 ID

在约旦发送短信的最佳做法

信息传递策略

  • 尽可能将消息控制在 160 个字符以内
  • 包含明确的行动号召
  • 在适当的情况下使用收件人姓名来个性化消息
  • 在整个营销活动中使用一致的发件人 ID

发送频率和时间

  • 每位收件人每月最多可收到 3-4 条促销信息
  • 避免在宗教节日期间发送
  • 尊重周末时间(约旦为周五至周六)
  • 分散批量活动以防止网络拥塞

本土化

  • 支持阿拉伯语和英语内容
  • 使用正确的阿拉伯字符编码 (UCS-2)
  • 考虑消息内容中的文化敏感性
  • 提供两种语言的客户支持

退出管理

  • 24 小时内处理退出
  • 维护集中式退出数据库
  • 在每条营销信息中都包含退出说明
  • 定期根据退出数据库清理联系人列表

测试和监控

  • 向所有主要运营商 (Zain、Orange、Umniah) 发送测试消息
  • 监控承运商的运送费率
  • 跟踪退出率和模式
  • 定期审核同意记录
  • 监控并分析参与度指标

约旦的 SMS API 集成

Twilio

Twilio 提供了强大的 REST API,用于向约旦发送短信。身份验证使用您的帐户 SID 和身份验证令牌。

关键参数:

  • from:必须是已注册的字母数字发件人 ID
  • to:E.164 格式的约旦号码 (+962XXXXXXXXX)
  • body:消息内容(支持阿拉伯语的Unicode)
import * as Twilio from 'twilio';

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

async function sendSMSToJordan(to: string, message: string) {
  try {
    // Ensure sender ID starts with "adv" for promotional messages
    const senderID = 'advYourBrand';
    
    const response = await client.messages.create({
      from: senderID,
      to: to,  // Must be in format: +962XXXXXXXXX
      body: message,
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-callback-url.com/status'
    });
    
    console.log(`Message sent successfully! SID: ${response.sid}`);
    return response;
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

辛奇

Sinch 提供带有 OAuth2 身份验证的 REST API,用于向约旦发送短信。

关键参数:

  • from:注册发件人 ID
  • to:收件人号码数组
  • body:留言内容
import axios from 'axios';

class SinchSMSClient {
  private readonly apiToken: string;
  private readonly servicePlanId: string;
  private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1';

  constructor(servicePlanId: string, apiToken: string) {
    this.servicePlanId = servicePlanId;
    this.apiToken = apiToken;
  }

  async sendSMS(to: string, message: string) {
    try {
      const response = await axios.post(
        `${this.baseUrl}/${this.servicePlanId}/batches`,
        {
          from: 'advYourBrand',
          to: [to],
          body: message
        },
        {
          headers: {
            'Content-Type': 'application/json',
            Authorization: `Bearer ${this.apiToken}`
          }
        }
      );
      
      return response.data;
    } catch (error) {
      console.error('Sinch SMS Error:', error);
      throw error;
    }
  }
}

MessageBird(鸟)

MessageBird 提供了一个 REST API,用于通过 API 密钥认证发送短信。

import messagebird from 'messagebird';

class MessageBirdClient {
  private client: any;

  constructor(apiKey: string) {
    this.client = messagebird(apiKey);
  }

  sendSMS(to: string, message: string): Promise<any> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator: 'advYourBrand',
        recipients: [to],
        body: message,
        type: 'unicode' // For Arabic support
      }, (err: any, response: any) => {
        if (err) {
          reject(err);
        } else {
          resolve(response);
        }
      });
    });
  }
}

API 速率限制和吞吐量

约旦承运商实施各种费率限制:

  • 每个发件人 ID 每秒最多发送 100 条消息
  • 每日音量限制因承运商而异
  • 大型活动建议批量发送

管理高容量的策略

  • 实现具有重试逻辑的排队系统
  • 尽可能使用批处理 API
  • 监控吞吐量并调整发送速率
  • 将流量分配到多个发件人 ID

错误处理和报告

常见错误场景及解决方法

  • 发件人 ID 无效:确保注册正确
  • 网络拥塞:实施指数退避
  • 数字格式无效:根据 E.164 格式进行验证
  • 内容过滤:检查限制内容

记录最佳实践

interface SMSLog {
  messageId: string;
  recipient: string;
  senderId: string;
  timestamp: Date;
  status: string;
  errorCode?: string;
  retryCount?: number;
}

// Example logging implementation
function logSMSEvent(log: SMSLog): void {
  // Add correlation ID for tracking
  const correlationId = generateUniqueId();
  
  console.log(JSON.stringify({
    ...log,
    correlationId,
    environment: process.env.NODE_ENV,
    service: 'sms-service'
  }));
}

回顾和其他资源

关键要点

  1. 合规重点
    • 发送前注册发件人 ID
    • 在促销信息中添加“adv”前缀
    • 尊重时间限制(晚上 9 点后不进行促销)
    • 维护退出列表
  2. 技术考虑
    • 对阿拉伯语文本使用 Unicode 编码
    • 实施适当的错误处理
    • 监控配送率
    • 在所有运营商上进行测试

下一步

  1. 向约旦运营商注册您的发件人 ID
  2. 审查并实施退出处理
  3. 设置监控和日志系统
  4. 测试所有运营商之间的消息传递。
滚动至顶部