您的位置:首页 > 其它

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库的角度分析接电话的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: