本文主要是介绍FreeSwitch 信道状态(Channel Status),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
States
状态 | 描述 |
CS_NEW | 信道(Channel)刚建立之时 |
CS_INIT | 信道已被初始化 |
CS_ROUTING | 信道正在查找匹配的extension来等待执行(execute) |
CS_SOFT_EXECUTE | 信道从第三方控制中准备好执行 |
CS_EXECUTE | 信道执行它的拨号计划(dialplan) |
CS_EXCHANGE_MEDIA | 信道跟另一个信道进行媒体交换 |
CS_PARK | 信道接收媒体等待指令并处于悬空状态 |
CS_CONSUME_MEDIA | 信道正在处理(consuming)所有媒体(Media)并删除处理过的媒体 |
CS_HIBERNATE | 信道处于休眠状态 |
CS_RESET | 信道处于重置状态 |
CS_HANGUP | 信道被标记为挂断状态,并准备结束。媒体将不会结束,但不会有任何新的呼叫路由信息发生 |
CS_REPORTING | 信道已经结束,媒体也已经关闭,这时将处理各种报告程序例如CDR(Call Detail Record呼叫详细记录)记录等 |
CS_DESTROY | 信道已经被销毁了并处于状态机之外。内存池已交还给内核,信道中使用过的内存也将被释放 |
注:媒体(Media)包括铃声,视频通话信息等数据
状态句柄
状态句柄可以添加到全局或者是单个信道上。这样就可以添加自定义的处理函数了。
具体方法:
定义switch_states_handler_table_t的状态结构体并在对应的状态写上回调函数名即可。然后通过switch_core_add_state_handler()绑定,switch_core_remove_state_handler()移除
翻译出处:https://freeswitch.org/confluence/display/FREESWITCH/Channel+States
这篇关于FreeSwitch 信道状态(Channel Status)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!