Add support for calls using RTP over the Datagram Congestion Control Protocol (DCCP) instead of only RTP over UDP. This updates oRTP and mediastreamer2 to support DCCP and includes API and configuration changes to allow selection of transport portocol.
osip_message_set_content_type(msg,"application/sdp");
osip_message_set_body(msg,call->sdpc->answerstr,strlen(call->sdpc->answerstr));
eXosip_call_send_answer(call->tid,200,msg);
- call->audio_stream=audio_stream_new(call->audio.localport,call->audio.localport+1,call->root->ipv6);
+ call->audio_stream=audio_stream_new(call->audio.localport,call->audio.localport+1,call->root->ipv6, FALSE, 0);
audio_stream_start_with_files(call->audio_stream, call->profile,
call->audio.remaddr,call->audio.remoteport,call->audio.remoteport+1,
call->audio.pt,20,hellofile,record_file);
static void add_local_endpoint(LinphoneConference *conf,LinphoneCore *lc){
/*create a dummy audiostream in order to extract the local part of it */
/* network address and ports have no meaning and are not used here. */
- AudioStream *st=audio_stream_new(65000,65001,FALSE);
+ AudioStream *st=audio_stream_new(65000,65001,FALSE,FALSE,0);
MSSndCard *playcard=lc->sound_conf.lsd_card ?
lc->sound_conf.lsd_card : lc->sound_conf.play_sndcard;
MSSndCard *captcard=lc->sound_conf.capt_sndcard;
int dscp;
if (call->audiostream != NULL) return;
- call->audiostream=audiostream=audio_stream_new(call->audio_port,call->audio_port+1,linphone_core_ipv6_enabled(lc));
+ call->audiostream=audiostream=audio_stream_new(call->audio_port,call->audio_port+1,
+ linphone_core_ipv6_enabled(lc),linphone_core_get_dccp(lc),
+ linphone_core_get_ccid(lc));
dscp=linphone_core_get_audio_dscp(lc);
if (dscp!=-1)
audio_stream_set_dscp(audiostream,dscp);
if ((lc->video_conf.display || lc->video_conf.capture) && call->params.has_video){
int video_recv_buf_size=lp_config_get_int(lc->config,"video","recv_buf_size",0);
int dscp=linphone_core_get_video_dscp(lc);
-
- call->videostream=video_stream_new(call->video_port,call->video_port+1,linphone_core_ipv6_enabled(lc));
+ call->videostream=video_stream_new(call->video_port,call->video_port+1,
+ linphone_core_ipv6_enabled(lc),linphone_core_get_dccp(lc),
+ linphone_core_get_ccid(lc));
if (dscp!=-1)
video_stream_set_dscp(call->videostream,dscp);
video_stream_enable_display_filter_auto_rotate(call->videostream, lp_config_get_int(lc->config,"video","display_filter_auto_rotate",0));
return lp_config_get_int(lc->config,"rtp","video_dscp",0x2e);
}
-
/**
* Sets the database filename where chat messages will be stored.
* If the file does not exist, it will be created.
}
}
+void linphone_core_set_dccp(const LinphoneCore *lc, bool_t val){
+ return lp_config_set_int(lc->config,"rtp", "dccp", val);
+}
+
+bool_t linphone_core_get_dccp(const LinphoneCore *lc){
+ return lp_config_get_int(lc->config,"rtp", "dccp", 0);
+}
+void linphone_core_set_ccid(const LinphoneCore *lc, int val){
+ return lp_config_set_int(lc->config,"rtp", "ccid", val);
+}
+
+int linphone_core_get_ccid(const LinphoneCore *lc){
+ return lp_config_get_int(lc->config,"rtp", "ccid", 3);
+}
void linphone_core_set_video_dscp(LinphoneCore *lc, int dscp);
int linphone_core_get_video_dscp(const LinphoneCore *lc);
+void linphone_core_set_dccp(const LinphoneCore *lc, bool_t val);
+bool_t linphone_core_get_dccp(const LinphoneCore *lc);
+
+void linphone_core_set_ccid(const LinphoneCore *lc, int val);
+int linphone_core_get_ccid(const LinphoneCore *lc);
#ifdef __cplusplus
}
-Subproject commit ff9b20e9fbccb0c3ca401544d2cdc39dd8ee629e
+Subproject commit 1fda4f80bb1af07dd60c2ec733d57eff821d6f03
-Subproject commit 462296433f10bd84cb605edb0b38d16a4cd81d9e
+Subproject commit e7ebed986b3049f19259d703a1b0af7b467498ec