FreeSWITCH 使用指北(1)-回铃音设置

本文介绍了FreeSWITCH中ESL的快速连接方法,linger命令的注意事项,以及bridge和uuid_bridge在桥接通话中的区别。还提到了park_after_bridge通道变量在保持坐席等待中的作用,如何设置会话callId和主叫号码,以及解决回铃音问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. esl 快速连接

FreeSWITCH 的 conf/autoload_configs/event_socket.conf.xml 文件为 esl 内连相关配置,在这个文件中配置好端口密码后,重启 FreeSWITCH 即可生效。网络通畅的情况下使用 nc <IP> <PORT> 可以快速连接上 FreeSWITCH,连接后会提示输入密码验证,只需要输入 auth <密码> 然后按下两次回车就可以完成鉴权,接下来就可以使用相关命令控制 FreeSWITCH,注意每个命令后面都按两次回车

2. esl 中 linger 命令使用注意

如果对 esl 建立的外连 socket 使用 linger 命令而不带参数,则会使 FreeSWITCH 侧一直保持一条线程不断发送事件到 esl 事件监听端,即便 UA 已经挂断也是如此。这导致的直接后果是 show channels 命令统计结果异常,因为即便通话 UA 挂断,底层 SIP 会话已经结束,但在 FreeSWITCH 层面上这个 channel 依然存在,解决方法是在外连 socket 销毁前使用 nolinger 命令

3. bridge 与 uuid_bridge 的异同

二者的功能类似,都是将两个会话桥接在一起进行媒体交换实现通话,但实际上有相当的区别

  • bridge 属于 APP,作用在 channel 上,需要有 a 腿才能使用。使用的时候会有呼叫动作,呼叫用户产生 b 腿之后再将其桥接在 a 腿上
  • uuid_bridge 属于 API,作用范围是全局性的,功能是将已经存在的两条腿,通常是两条 park/hold 的腿,桥接在一起。需注意,从源码 switch_ivr_bridge.c#uuid_bridge_on_soft_execute()看使用这个 API 时要确保两条腿状态是 ready 的,否则会导致桥接失败,另一条腿也被挂断

4. 通道变量 park_after_bridge 的作用

在呼叫场景中,常见的需求是坐席作为 a 腿常驻,用户作为 b 腿接入,桥接两条腿即可进行通话。坐席接待完一个用户之后需要继续等待下一个用户,如果不做任何设置,b 腿挂断之后默认 a 腿也会挂断,下次需要重新拉起坐席的 a 腿,非常不便。为了达到 b 腿挂断 a 腿继续等待的目的,只需在 a 腿上设置 park_after_bridge 通道变量为 true 即可

5. 会话 callId 及主叫号码设置

在某些场景下需要设置 FreeSWITCH 的会话 ID 为指定格式,并且也需要设置主叫号码以便显示在被呼叫 SIP 客户端的来电显示上,这种需求可以通过在呼叫字符串上设置通道变量实现,示例如下

originate {origination_caller_id_number=1008611,origination_uuid=call-2219554683886258238,origination_caller_id_name=1008611}sofia/gateway/2199911062044401664/18851786791 9000 XML default

6. 回铃音(early media)设置

FreeSWITCH 通过外部线路拨打电话时很容易产生收不到回铃音的问题,要解决这个问题其实只要在拨号计划中添加如下内容,使用 mod_tone_stream 模块产生一个音频信号发送给被叫端即可

这是因为 FreeSWITCH 服务器通常被部署到公司内网,而与外部线路对接时要使用外网,如果不做权限加白等操作,外网线路率先发送的 early media 数据非常可能被防火墙拦截,无法送达 FreeSWITCH。但是只要 FreeSWITCH 先向外网线路服务器发送一个 RTP 数据包,外网线路服务器收到包后就能以回包的形式将 early media 数据发送到 FreeSWITCH 服务器的外网媒体地址,从而避免收不到回铃音的问题

  <action application="playback" data="tone_stream://%(1000,4000,450)"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值