WhatsApp SIP 通话集成

概述

WhatsApp 现在支持通过 WhatsApp 云 API 进行 SIP 通话,从而可以使用基于 TLS/SRTP 的 SIP 进行语音通话。

这使得 WhatsApp 和 3CX 之间能够实现原生集成,将现有的仅限消息传递的集成扩展到支持 WhatsApp 语音通话,这些通话可以路由到 3CX 分机、队列、IVR 或 AI 坐席。

请注意,目前的语音通话功能仅支持通过 WhatsApp 拨入 3CX 的呼叫。。

此集成需要V20 Update 8

先决条件

  • 要启用 WhatsApp SIP 通话,您需要在 Meta 开发者门户中拥有一个已上线(Live)的 WhatsApp 应用,并且该应用需具备对目标业务电话号码的消息权限。
  • 如果您尚未完成上述设置,请先按照我们的《WhatsApp 集成指南》进行设置,并获取指南中提到的 电话号码 ID(Phone Number ID) 和 用户访问令牌(User Access Token)。这两个参数用于向 Meta Graph API 发送启用 SIP 所需的认证请求。
  • 由于目前无法通过 Meta 的用户界面门户在 WhatsApp 应用中启用 SIP 通话功能,您必须使用第三方工具,例如:Postman向 Meta 的 Graph API 发送 POST 请求。
  • 您可以在官方网站上阅读更多内容。指导用于 WhatsApp SIP。

步骤 1:创建 WhatsApp 应用程序

  • 如果您已在 3CX 上配置了 WhatsApp 消息功能,则可以跳过此步骤并获取您的信息。电话号码 ID 和 用户访问令牌 在 3CX 管理控制台 > 语音和聊天 > 您的 WhatsApp 消息中继中,从您已配置的 WhatsApp 进行设置。
  • 如果不行,请按照我们网站上说明的步骤操作。WhatsApp 集成指南并获得您的电话号码 ID 和 用户访问令牌

步骤 2:在您的 WhatsApp 号码上启用 SIP

  • 使用 curl 或其他工具向 Meta Graph API 发送以下 POST 请求:
  • 您可将以下 curl 命令直接导入 Postman:点击 “File → Import”,然后粘贴以下内容:

curl -X POST "https://graph.facebook.com/v24.0/<PHONE_NUMBER_ID>/settings" \

  -H "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \

  -H "Content-Type: application/json" \

  -d '{

    "calling": {

      "status": "ENABLED",

      "callback_permission_status": "ENABLED",

      "call_icon_visibility": "DEFAULT",

      "srtp_key_exchange_protocol": "SDES",

      "sip": {

        "status": "ENABLED",

        "servers": [

          {

            "hostname": "<YOUR_3CX_FQDN>",

            "port": <YOUR_SIPS_PORT>

          }

        ]

      }

    }

  }'

  • 发送前,请将以下占位符替换为您自己的信息:
  • <PHONE_NUMBER_ID> = 步骤 1 中获取的电话号码 ID
  • <YOUR_ACCESS_TOKEN> = 这用户访问令牌 您在上述步骤 1 中获得的结果
  • <YOUR_3CX_FQDN> = 你的3CX PBX FQDN;例如:mypbx.3cx.com
  • <YOUR_SIPS_PORT> = 通常为 5061(若 PBX 使用默认端口)
  • 如果请求成功:

{"success":true}

  • 你应该会在 curl 命令中收到成功响应。

  • 或者在 Postman 中看到

步骤 3:验证您的 SIP 配置

  • 向 Meta 的 Graph API 发送以下 GET 请求:

curl -X GET "https://graph.facebook.com/v17.0/<PHONE_NUMBER_ID>/settings?fields=calling&include_sip_credentials=true" \

  -H "Authorization: Bearer <YOUR_ACCESS_TOKEN>"

  • 发送命令前,请务必将上述命令中的以下内容替换为您自己的信息:
  • <PHONE_NUMBER_ID> = 步骤 1 中获取的电话号码 ID
  • <YOUR_ACCESS_TOKEN> = 步骤 1 中获取的用户访问令牌
  • 如果请求成功,您应该会收到类似以下的响应:

{

    "calling": {

        "status": "ENABLED",

        "call_icon_visibility": "DEFAULT",

        "callback_permission_status": "ENABLED",

        "srtp_key_exchange_protocol": "SDES",

        "sip": {

            "status": "ENABLED",

            "servers": [

                {

                    "app_id": 112233445566778,

                    "hostname": "pbx.3cx-example.com",

                    "port": 5061,

                    "sip_user_password": "aabbccddeeffgghhiijjkkllmmnnoopp"

                }

            ]

        }

    },

    "storage_configuration": {

        "status": "DEFAULT"

    }

}

  • 在 curl 的响应结果

  • 或者在 Postman 看响应

步骤 4:在 WhatsApp Business Manager 中启用通话设置

  • 打开通话设置标签页请确保您已启用以下选项:
  • 允许语音通话
  • 允许回调
  • 显示呼叫按钮

步骤 5:在 3CX 上创建 SIP 中继

创建新的 WhatsApp SIP 中继:

  • 此处下载 WhatsApp 模板
  • 在您的 3CX 管理控制台中,转到“管理员 → 高级 → 模板 → 提供商模板制表
  • 点击导入提供商按钮,选择您上方下载的模板,然后点击导入 按钮:

  • 为您的 WhatsApp SIP 中继设置一个名称
  • 设置呼入 WhatsApp SIP 通话的默认路由
  • 取消勾选 “Create an outbound rule”(创建外呼规则)
  • 将主中继号码(Main Trunk Number)设为您的 WhatsApp 号码
  • 其他字段保留默认值
  • 点击 “保存”
  • 您现在可以接听来自您 WhatsApp 号码的 WhatsApp 来电,来电将被转接到您选择的 3CX 目的地。

或者,您可以手动在 3CX 上创建通用 SIP 中继,请确保使用以下配置:

  • 认证类型(Authentication Type):基于 IP(IP-based)
  • 主机(Host):wa.meta.vc
  • 端口(Port):自动发现(Auto discovery)
  • 传输协议(Transport Protocol):TLS
  • SRTP 模式(SRTP Mode):强制启用(Enforced)
  • 编解码器(Codecs):OPUS

另请参阅

最后更新时间

本文件最后更新日期为2026年2月10日。

https://www.3cx.cn/docs/whatsapp-sip-calling-integration/