linphone 分析2 接电话的过程1(mediastream角度解析)
2016-02-19 10:57
441 查看
做楼宇对讲的项目,需求电话来了直接看到视频,接听后产生语音。于是研究了下liphone接电话的过程
函数调用为:
lpc_cmd_answer
接到电话以后,answer命令接听
linphone_core_accept_call
linphone_core_accept_call_with_params
if (call==NULL){
//if just one call is present answer the only one ...
if(linphone_core_get_calls_nb (lc) != 1)
return -1;
else
call = (LinphoneCall*)linphone_core_get_calls(lc)->data;
}
先拿到这个call,然后各种检测
if (lc->ringstream!=NULL) {
ms_message("stop ringing");
ring_stop(lc->ringstream);
ms_message("ring stopped");
lc->ringstream=NULL;
was_ringing=TRUE;
}
if (call->ringing_beep){
linphone_core_stop_dtmf(lc);
call->ringing_beep=FALSE;
}
关闭振铃
new_md=sal_call_get_final_media_description(call->op);
拿sdp的协商
linphone_core_update_streams
if (lc->ringstream!=NULL){
ring_stop(lc->ringstream);
lc->ringstream=NULL;
}
再次确定铃声关闭
linphone_call_start_media_streams
linphone_call_start_audio_stream(call,cname,all_inputs_muted,send_ringbacktone,use_arc);
audio_stream_start_full()
音频filter的连接和开始
linphone_call_start_video_stream(call,cname,all_inputs_muted);
video_stream_start()
视频filter的连接和开始
这个过程是从mediastream角度解析去分析 linphone接电话的过程 看它如何调用到filter的连接 和开始。
下面还将以sip库和rtp库的角度分析接电话的过程。
函数调用为:
lpc_cmd_answer
接到电话以后,answer命令接听
linphone_core_accept_call
linphone_core_accept_call_with_params
if (call==NULL){
//if just one call is present answer the only one ...
if(linphone_core_get_calls_nb (lc) != 1)
return -1;
else
call = (LinphoneCall*)linphone_core_get_calls(lc)->data;
}
先拿到这个call,然后各种检测
if (lc->ringstream!=NULL) {
ms_message("stop ringing");
ring_stop(lc->ringstream);
ms_message("ring stopped");
lc->ringstream=NULL;
was_ringing=TRUE;
}
if (call->ringing_beep){
linphone_core_stop_dtmf(lc);
call->ringing_beep=FALSE;
}
关闭振铃
new_md=sal_call_get_final_media_description(call->op);
拿sdp的协商
linphone_core_update_streams
if (lc->ringstream!=NULL){
ring_stop(lc->ringstream);
lc->ringstream=NULL;
}
再次确定铃声关闭
linphone_call_start_media_streams
linphone_call_start_audio_stream(call,cname,all_inputs_muted,send_ringbacktone,use_arc);
audio_stream_start_full()
音频filter的连接和开始
linphone_call_start_video_stream(call,cname,all_inputs_muted);
video_stream_start()
视频filter的连接和开始
这个过程是从mediastream角度解析去分析 linphone接电话的过程 看它如何调用到filter的连接 和开始。
下面还将以sip库和rtp库的角度分析接电话的过程。
相关文章推荐
- 需要学习的内容
- 11.同一个Label中显示不同字体(NSAttributedString)
- Zabbix 3.0 发布:加强了云端运行监视的安全性
- MAC机中安装RUBY环境
- 滑动隐藏和显示标题栏
- Eclipse attach source code
- hrtimer内核配置
- android ListView和GridView拖拽移位实现代码
- Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is rec
- 卖书记
- Odoo8.0中允许用户动态调整TreeView栏位宽度
- 检查Android是否具有摄像头
- 关于大型网站技术演进的思考(八)--存储的瓶颈终篇(8)
- SQL数据批量提交的优化和心得
- Android 启动模式简析
- oracle distinct多字段去重
- 二、后台定位
- 全局变量、常量、共享数据、跨webview传参的综述
- 多媒体数据压缩
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记