热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

FreeSwitch的呼叫Timeout的originate实测

首先看看有哪几个timeout?call_timeoutbridge_answer_timeoutoriginate_continue_on_timeout originate_t

首先看看有哪几个timeout?

call_timeout

bridge_answer_timeout

originate_continue_on_timeout 

originate_timeout

leg_progress_timeout

leg_timeout

 

 

作用则分别是:

1. call_timeout 在进行bridge等时,b leg响铃时长,但在具体应用中,对于内线还可以用,而外线,由于国内运营商的原因,会有挂断语音,所以使用它会存在一些问题,同时它是设置在a leg之上的。

    如果您没有使用 {ignore_early_media=true},则一旦收到早期媒体信号, call_timeout 就不再适用。

2. bridge_answer_timeout  可以容忍处于早期媒体中的bridge没有被应答(可以在任何一条腿上设置)时间。

3. originate_continue_on_timeout  控制bridge是否在超时后继续运行。 此变量在每个 | 之后重置超时。可以用于顺震。 默认为 false:第一次超时就挂断。

4. originate_timeout 用于定义originate/bridge过程中的呼叫时长,定义了这个时长如果没有answer就会timeout了。

5. leg_progress_timeout 指定在获得媒体之前等待的最长时间(无论是早期媒体、振铃还是应答),从而避免转到特定线路的语音邮件。

6. leg_timeout 它类同于originate_timeout,但是它的可自定义面应算是更广,比如顺振时

<action application="bridge" data="[leg_timeout=15]user/hastoanswerquickly/some.domain.com,[leg_timeout=60]user/hasaminutetoanswer@some.domain.com"/>

一般来说,如果是一个主动外呼动作,要定义超时,那么应是:

originate {originate_time=30}sofia/gateway/xx/018621575908 &echo

如果是呼入时转到其它外线上,在dialplan中配为 :

 但是如果有早期媒体(铃声),就会失效,需要加参数 ignore_early_media=true  :

除了以上三个呼叫时的timeout还有个限定最长通话时长的需求,对吧!

execute_on_answer='sched_hangup +300'

 

 


以秒计

 

直接 originate 实际测试:    (fs v1.6.20)

---- 无效
originate [call_timeout=10,origination_caller_id_number=66666666]sofia/external/sip:18000000000@123.123.123.123 &echo
originate [leg_timeout=10,origination_caller_id_number=66666666]sofia/external/sip:18000000000@123.123.123.123 &echo
originate {leg_timeout=10,origination_caller_id_number=66666666}sofia/external/sip:18000000000@123.123.123.123 &echo
originate [originate_timeout=10,ignore_early_media=true,origination_caller_id_number=66666666]sofia/external/sip:18000000000@123.123.123.123 &echo
originate {originate_timeout=10,origination_caller_id_number=66666666}sofia/external/sip:18000000000@123.123.123.123 &echo
originate {call_timeout=10,ignore_early_media=true,origination_caller_id_number=66666666}sofia/external/sip:18000000000@123.123.123.123 &echo
----- 有效
originate {leg_timeout=10,ignore_early_media=true,origination_caller_id_number=66666666}sofia/external/sip:18000000000@123.123.123.123 &echo
originate {originate_timeout=10,ignore_early_media=true,origination_caller_id_number=66666666}sofia/external/sip:18000000000@123.123.123.123 &echo

 

上面是直接测试 originate ,没有测试 bridge 情况。

 

参考:

https://freeswitch.org/confluence/display/FREESWITCH/Variables+Master+List

https://freeswitch.org/confluence/display/FREESWITCH/call_timeout

FreeSwitch的呼叫Timeout - 宁卫 2018-12-25 - 微信公众号

--- auth:lzpong



推荐阅读
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细探讨了如何在Docker环境中实现单机部署Redis集群的方法,提供了详细的步骤和配置示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 使用Nginx反向代理实现多域名端口映射
    本文介绍如何通过配置本地hosts文件和Nginx反向代理,实现多个虚拟域名的端口映射,使用户可以通过标准HTTP端口80访问不同后端服务。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • 深入理解 JMeter 定时器
    本文详细介绍了JMeter中定时器的功能和使用方法,探讨了其在性能测试中的重要性,并结合实际案例解释了如何合理配置定时器以模拟真实的用户行为。文章还涵盖了定时器的执行顺序及其与其他元件的相互作用。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文旨在深入探讨HTTP长连接的工作原理及其配置方法,帮助初学者更好地理解和应用这一技术。通过本文,读者将了解如何利用长连接提高Web应用的性能。 ... [详细]
  • MySQL 'Too Many Connections' 错误处理及优化方案
    本文详细介绍了如何诊断和解决MySQL数据库中出现的‘Too Many Connections’错误,包括查看当前连接状态、调整配置文件以及优化应用代码等方法。 ... [详细]
author-avatar
nana-Wang2602915845
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有