diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 1ac48dff7..d6b3f842c 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2262,7 +2262,15 @@ void linphone_core_iterate(LinphoneCore *lc){ if (lc->ringstream && lc->ringstream_autorelease && lc->dmfs_playing_start_time!=0 && (curtime-lc->dmfs_playing_start_time)>5){ - linphone_core_stop_dtmf_stream(lc); + MSPlayerState state; + bool_t stop=TRUE; + if (lc->ringstream->source && ms_filter_call_method(lc->ringstream->source,MS_PLAYER_GET_STATE,&state)==0){ + if (state==MSPlayerPlaying) stop=FALSE; + } + if (stop) { + ms_message("Releasing inactive tone player."); + linphone_core_stop_dtmf_stream(lc); + } } sal_iterate(lc->sal); @@ -4412,7 +4420,9 @@ void linphone_core_verify_server_cn(LinphoneCore *lc, bool_t yesno){ static void notify_end_of_ring(void *ud, MSFilter *f, unsigned int event, void *arg){ LinphoneCore *lc=(LinphoneCore*)ud; - lc->preview_finished=1; + if (event==MS_PLAYER_EOF){ + lc->preview_finished=1; + } } int linphone_core_preview_ring(LinphoneCore *lc, const char *ring,LinphoneCoreCbFunc func,void * userdata) diff --git a/mediastreamer2 b/mediastreamer2 index fd97e9048..e2a163d31 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit fd97e9048e2e5f5b8a2dd972d0d7848294742f89 +Subproject commit e2a163d31b7e51811dd907a640788c61b24e83b0 diff --git a/oRTP b/oRTP index daa314ae9..550e1e1e4 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit daa314ae9c0ba46910299ebc70301897aea7448f +Subproject commit 550e1e1e43ec64b3be96c34e0adb618f4752f34a