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

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)"/>
### 如何在蓝耘元生代智算云平台一键部署 DeepSeek AI 模型 #### 访问官方网站并注册登录 为了启动DeepSeek模型的部署流程,需先访问蓝耘智算平台的官方网站。完成账号的注册与登录过程后,进入用户控制面板。 #### 创建工作空间 点击页面上的“创建工作空间”按钮来初始化一个新的工作环境。这一步骤对于组织后续的操作至关重要[^1]。 #### 选择应用和服务配置 从提供的选项列表中挑选适合的应用模板——这里应选择支持DeepSeek R1模型的服务项。接着定所需的硬件资源规格,包括但不限于CPU/GPU数量、内存大小等参数设置。同时确认所选服务对应的计费模式满足预算需求。 #### 授权并创建实例 阅读并同意相关协议条款之后提交申请表单以发起实例构建请求。系统会自动处理此请求直至实例准备就绪为止;此时可以在界面上看到状态提示由“正在创建”转变为“运行中”。 #### 连接至已激活的实例 一旦实例成功建立起来以后就可以利用SSH客户端或者其他远程桌面软件按照引连接上去进一步开展实验活动了。如果一切正常的话应该可以顺利加载预训练好的DeepSeek R1版本供即时测试调用[^2]。 ```bash ssh username@instance_ip_address ``` #### 使用命令行接口执行预测任务 通过上述方法登陆服务器端口后即可运用CLI工具向目标API发送POST请求从而实现对输入数据样本进行分类识别等功能: ```python import requests url = "http://localhost:8080/predict" data = {"text": "your input text here"} response = requests.post(url, json=data) print(response.json()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值