FreeSWITCH拨号计划几种常见使用方式及拨号计划高可用HA浅谈

一、浅谈FreeSWITCH拨号计划的几中实现方式

1、直接在拨号计划中配置多条路由信息
(1)配置注册分机的路由

这个拨号计划匹配1000-1019这20个被叫号码,如果匹配上后,通过export设置被叫分机号dialed_extension通道变量,再执行其他操作,最后通过bridge去执行呼叫真正的被叫分机号。

(2)一条规则匹配所有的被叫号码,执行同一类路由操作

这个示例比较简单,通过 .+正则来匹配所有的被叫号码,通过export(如果呼叫还有b-leg,则export设置的通道变量还会在b-leg中生效)设置被叫号码通道变量,通过answer执行应答操作,呼叫建立成功后,通过playback进行放音,放音动作结束后,执行echo操作。

2、对所有的呼入做park处理,然后通过esl监听的事件控制后续呼叫路由动作

3、基于mod_xml_curl动态生成XML拨号计划

(1)xml_curl.conf.xml配置示例

(2)工作原理浅谈

加载mod_xml_curl模块时,通过SWITCH_MODULE_LOAD_FUNCTION(mod_xml_curl_load)调用do_config函数,在do_config函数中通过switch_xml_bind_search_function(xml_url_fetch, switch_xml_parse_section_string(binding->bindings), binding)向FreeSWITCH核心注册相dia应的回调函数,当FreeSWITCH收到呼入的呼叫后,就会调用相应的回调函数,然后在xml_url_fetch函数中通过http向路由中心获取当前呼叫的路由信息,收到Http响应后,mod_xml_curl的示例处理如下:

if (config_data.err) {
		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error encountered! [%s]\ndata: [%s]\n", binding->url, data);
		xml = NULL;
} else {
		if (httpRes == 200) {
			if (!(xml = switch_xml_parse_file(filename))) {
				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Parsing Result! [%s]\ndata: [%s]\n", binding->url, data);
			}
		} else {
			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Received HTTP error %ld trying to fetch %s\ndata: [%s]\n", httpRes, binding->url,
							  data);
			xml = NULL;
		}
}

4、三种拨号计划的优缺点

dialplan中xml拨号计划,适合那种操作不是特别负责的呼叫路由操作,如果要修改、增加和删除路由规则,需要通过esl执行reloadxml操作;

基于拨号计划park+esl处理呼叫路由的方式,优点是对呼叫路由处理比较灵活,但是编程复杂度要求会高点,重点在esl开发上;

基于mod_xml_curl动态获取路由的方式,有点是处理呼叫路由也是比较灵活,工作重点在生成动态拨号xml计划的路由中心。

5、拨号计划高可用HA,这里主要基于兜底的方式

如果通过mod_xml_curl模块向路由中心动态获取xml拨号计划,路由中心由于某种原因不可用或者返回的xml内容不对,FreeSWITCH使用dialplan拨号计划中事先配置好的路由规则进行兜底处理。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FreeSWITCH中,Jitter Buffer(抖动缓冲区)用于处理网络传输中的抖动问题,以确保音频流的稳定传输和播放。以下是在FreeSWITCH使用Jitter Buffer的一般方式: 1. 确定Jitter Buffer的设置:您可以在FreeSWITCH的配置文件中找到与Jitter Buffer相关的设置。一般来说,您需要定义Jitter Buffer的大小(以毫秒为单位)和其他相关参数,例如最小延迟和最大延迟等。 2. 针对不同的呼叫路由或应用程序,配置Jitter Buffer:您可以通过在呼叫路由或应用程序的配置文件中设置相关参数来启用或禁用Jitter Buffer,并为每个呼叫路由或应用程序单独配置Jitter Buffer的大小和其他参数。 3. 监控Jitter Buffer的性能:FreeSWITCH提供了一些命令和工具来监视Jitter Buffer的性能和状态。您可以使用命令行工具如fs_cli或Web管理界面来查看Jitter Buffer相关的统计信息,例如延迟、丢包等。 4. 调整Jitter Buffer的参数:根据实际情况,您可能需要根据网络条件和呼叫质量调整Jitter Buffer的参数。通过逐步调整Jitter Buffer的大小和其他参数,您可以优化音频传输的质量和稳定性。 需要注意的是,Jitter Buffer只是解决音频抖动的一种技术手段,具体的配置和调整可能因应用场景和网络环境而有所不同。建议您参考FreeSWITCH的官方文档和社区资源,以获取更详细和准确的配置指南和最佳实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值