Freeswitch一路呼叫的生命周期

摘要

本文描述FreeSWITCH如何处理一路典型的SIP呼叫。

 

  • 1 FreeSWITCH上注册分机间的典型SIP呼叫
  • 2 呼叫状态
  • 3 通道状态
    • 3.1状态处理程序
  • 另请参见

 

FreeSWITCH上注册分机间的典型SIP呼叫

 

呼叫状态机图:

 

呼叫状态

Routing 路由

        在路由状态下,FreeSWITCH搜索XML拨号计划。当它找到一个返回值为真的条件时,它构建一个待办事件列表,表中包含一系列name–value描述的动作描述,包括要设置的变量列表和稍后要执行的拨号计划APP,例如“bridge”。在路由状态下,除了少量带有"inline"属性的,可以立刻返回的APP之外,将不行执行任何的APP。

 

Execute 执行

        执行状态下执行路由状态编译的指令。前面找到的 name–value对,将被一一解析并执行。

Hangup 挂断

        挂断状态,要么把话务转回路由状态,要么直接挂断通话。如果还有需要执行的动作,话务是可以迁移回路由状态的。

 

Channel States通道状态

        一个通道(代表一路通话中的一条支路)将在其生命周期中呈现为许多不同的状态。下列列出可能出现的通道状态值,并给出相应的状态描述。

通道状态

描述

CS_NEW通道是新创建的
CS_INIT通道已经被初始化
CS_ROUTING通道正在查找拨号计划
CS_SOFT_EXECUTE通道已准备好从第三方控制执行
CS_EXECUTE通道正在执行拨号方案中的指令
CS_EXCHANGE_MEDIA通道正在与另一个通道交换媒体
CS_PARK通道正在接受媒体并等待命令
CS_CONSUME_MEDIA通道正在消耗媒体并丢弃它
CS_HIBERNATE通道处于休眠状态
CS_RESET通道处于复位状态
CS_HANGUP通道已经被标识为挂断并准备结束。此时媒体将结束,并且不会再发生进一步的呼叫路由
CS_REPORTING通道已经挂断,媒体已经结束,现在是痕迹报告时间,比如说写CDR记录
CS_DESTROY通道已经跳出状态机,准备好销毁资源。释放通道使用的内存,并将内存池返回给内核

状态处理程序

        可以向通道添加定制处理程序(回调钩子),处理程序既可以是全局的,也可以是基于每个通道的。例如,这将允许您执行自己的自定义报告或清理自己动态创建的对象。定制处理程序也可以从通道中移除。

 

另请参见

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值