热门标签 | 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



推荐阅读
  • 本文介绍了Kettle资源库的基本概念、类型及其管理方法,同时探讨了Kettle的不同运行方式,包括图形界面、命令行以及API调用,并详细说明了日志记录的相关配置。 ... [详细]
  • 在研究Linux内核代码时,经常会遇到与‘队列’相关的术语。本文旨在全面介绍Linux系统中几种常见的队列类型及其应用,帮助读者更好地理解和使用这些机制。 ... [详细]
  • GNU GRUB(简称GRUB)是一个来自GNU项目的支持多启动的引导加载程序。它允许用户在同一台计算机上安装多个操作系统,并在启动时选择希望启动的系统。 ... [详细]
  • 本文探讨了在支付项目开发中使用SS5 Socket Server实现内部网络访问外部网络的技术方案。详细介绍了SS5的安装、配置及性能测试过程,旨在为面临相同需求的技术人员提供参考。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • Elasticsearch集群构建指南:本地环境搭建与管理
    本文详细介绍了如何在本地环境中搭建Elasticsearch集群,包括节点配置、主节点选举机制、以及如何通过单播和广播方式增加节点。同时,文章还探讨了集群的高可用性和扩展性,以及如何通过配置防止脑裂现象的发生。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 深入理解Kafka架构
    本文将详细介绍Kafka的内部工作机制,包括其工作流程、文件存储机制、生产者与消费者的具体实现,以及如何通过高效读写技术和Zookeeper支持来确保系统的高性能和稳定性。 ... [详细]
  • 本文通过生动的例子讲解了Python中多线程的阻塞操作(join)和守护线程(setDaemon)的使用方法。通过模拟一个聚会场景,详细解析了不同线程控制方式下的程序行为。 ... [详细]
  • 本文详细介绍了Java中io.rsocket.RSocket类的dispose()方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • css 网站页面内容占位加载动画效果的实现
    阅读目录阐述index.htmlindex.jsindex.css阐述内容占位动画效果,这个也是我们经常在一些网站上看到的效果,这种效果的设计 ... [详细]
  • 本文详细介绍了在EXTJS 3.1中如何实现列锁定以及确保合计行能够随滚动条同步移动的技术方案。 ... [详细]
  • This pull request aims to optimize the npm install retry time in branch 0.7, reducing delays caused by long timeouts when no network connection is available. ... [详细]
  • 一、搭建项目创建Maven项目导入rabbitmq包com.rabbitmqamqp-clien ... [详细]
  • 本文详细介绍了如何通过Selenium WebDriver设置不同的超时类型,包括页面加载超时(pageLoadTimeout)、脚本执行超时(setScriptTimeout)以及元素查找超时(implicitlyWait),帮助开发者有效处理页面加载缓慢或Ajax请求未响应的问题。 ... [详细]
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社区 版权所有