news 2026/4/18 14:28:57

FreeSWITCH 的 effective_caller_id_name 和 effective_caller_id_number

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FreeSWITCH 的 effective_caller_id_name 和 effective_caller_id_number

在 FreeSWITCH 中,effective_caller_id_nameeffective_caller_id_number是两个非常重要的通道变量(Channel Variables)

它们的核心作用是:控制在呼叫去电(Outbound Call)时,被叫方(接收者)手机或话机屏幕上显示的“来电显示”信息。

以下是详细的解释和用法:

1. 核心作用

当你通过 FreeSWITCH 进行bridge(桥接)或者originate(发起呼叫)时,FreeSWITCH 需要决定告诉对方“谁在打这个电话”。

  • effective_caller_id_name:设置显示的名称(如:Company Support)。
  • effective_caller_id_number:设置显示的号码(如:01012345678)。

2. 为什么要用 “Effective”(有效的)?

在 FreeSWITCH 中,有两种类型的 Caller ID 变量,它们有微妙的区别:

  • caller_id_number:通常代表真实的源号码(即拨号者原本的号码)。
  • effective_caller_id_number:代表对外呈现的号码

关键逻辑:
当 FreeSWITCH 执行bridge操作发起呼出请求时,它会优先查找effective_caller_id_xxx。如果设置了这两个变量,FreeSWITCH 就会在 SIP 的From头部或者Remote-Party-ID头部使用这些值。如果没有设置,它才会退而求其次使用caller_id_xxx

3. 常见使用场景

场景 A:企业总线号码代发

公司内部员工的内部短号是1001,但他拨打外部客户手机时,不希望显示1001(因为客户回拨不进来),而是希望显示公司的统一对外大号010-88888888

  • 操作:在拨号计划(Dialplan)中,将effective_caller_id_number设置为01088888888
场景 B:呼叫转移(Call Forwarding)

A 打给 B,B 设置了呼叫转移到 C。

  • 如果 B 转发给 C 时,希望 C 看到是 A 在打过来,B 就会把effective_caller_id_number设置成 A 的号码。
  • 如果 B 希望 C 看到是 B 转过来的,就设置成 B 的号码。

4. 如何在 Dialplan 中设置

通常在conf/dialplan/default.xml中使用:

<extensionname="outbound_call"><conditionfield="destination_number"expression="^(\d+)$"><!-- 设置显示的名称 --><actionapplication="set"data="effective_caller_id_name=My Company"/><!-- 设置显示的号码 --><actionapplication="set"data="effective_caller_id_number=01012345678"/><!-- 执行外呼 --><actionapplication="bridge"data="sofia/gateway/my_provider/$1"/></condition></extension>

5. 注意事项

  1. 运营商限制:尽管你可以在 FreeSWITCH 里随便设置effective_caller_id_number,但当你通过中继线(Gateway/Trunk)打到公网(移动/联通/电信)时,运营商通常会强制修改或丢弃你自定义的号码,以防止诈骗电话。你只能设置成该中继线合法绑定的号码。
  2. 变量继承:这两个变量通常设置在“A腿”(主叫通道)上,当执行bridge时,它们会被传递并应用到“B腿”(被叫通道)的 SIP 消息中。
  3. origination_caller_id_number的区别:
    • 如果你是使用originate命令(通过 API 或脚本发起呼叫),通常使用origination_caller_id_number
    • 如果你是在 Dialplan 中处理现有的通话,通常使用effective_caller_id_number

总结

  • effective_caller_id_name: 你想让对方看到的名字
  • effective_caller_id_number: 你想让对方看到的来电号码
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 2:33:38

像搭积木一样简单!低代码开发助力企业数字化转型

一、引言在当今数字化时代&#xff0c;企业面临着日益激烈的市场竞争和快速变化的业务需求。为了提高工作效率、优化管理流程&#xff0c;越来越多的企业开始进行信息化升级&#xff0c;其中OA系统成为了企业高效办公的重要工具。那么&#xff0c;OA系统究竟是如何开启高效办公…

作者头像 李华
网站建设 2026/4/18 2:29:02

STM32CubeMX下载教程:Java环境依赖配置指南

STM32CubeMX启动失败&#xff1f;别急&#xff0c;先搞定Java环境配置 你是不是也遇到过这种情况&#xff1a;兴致勃勃地从ST官网下载了STM32CubeMX安装包&#xff0c;双击运行却弹出一个刺眼的错误提示——“ No Java Virtual Machine was found ”&#xff1f;或者程序刚启…

作者头像 李华
网站建设 2026/4/18 2:24:27

大模型时代的内容防线:Qwen3Guard-Gen-8B安全推理实战

大模型时代的内容防线&#xff1a;Qwen3Guard-Gen-8B安全推理实战 在生成式AI如潮水般涌入内容生产、客户服务和社交互动的今天&#xff0c;一个隐忧也随之浮现&#xff1a;当语言模型可以流畅地写诗、编程、辩论甚至模仿人类情感时&#xff0c;如何确保它不会“越界”&#xf…

作者头像 李华
网站建设 2026/4/18 2:33:38

7天挑战:从零开始打造可商用的物品识别服务

7天挑战&#xff1a;从零开始打造可商用的物品识别服务 物品识别是计算机视觉领域最基础也最实用的技术之一&#xff0c;无论是电商平台的商品分类、智能货柜的自动结算&#xff0c;还是工业质检中的缺陷检测&#xff0c;都离不开这项能力。但对于全栈开发者来说&#xff0c;从…

作者头像 李华
网站建设 2026/4/18 2:30:55

基于lvgl界面编辑器的智能面板设计:系统学习

用LVGL界面编辑器做智能面板&#xff0c;我终于告别“画像素”的日子了你有没有试过在嵌入式项目里手动写一个按钮&#xff1f;先定义坐标(x120, y85)&#xff0c;再设置宽高w100, h40&#xff0c;然后调字体、设颜色、绑事件……改一次布局&#xff0c;全代码重算一遍。更别提…

作者头像 李华
网站建设 2026/4/17 7:48:26

使用ms-swift模拟PyCharm激活码过期提醒机制

使用 ms-swift 模拟 PyCharm 激活码过期提醒机制 在智能软件系统日益复杂的今天&#xff0c;如何让机器不仅“执行命令”&#xff0c;还能“理解状态”并“主动决策”&#xff0c;正成为下一代自动化工具的核心命题。以 PyCharm 等主流 IDE 的激活码过期提醒功能为例&#xff0…

作者头像 李华