]> sjero.net Git - linphone/commitdiff
Add rtp config for disabling upnp for rtp streams
authorYann Diorcet <yann.diorcet@belledonne-communications.com>
Wed, 13 Mar 2013 09:20:41 +0000 (10:20 +0100)
committerYann Diorcet <yann.diorcet@belledonne-communications.com>
Wed, 13 Mar 2013 09:20:59 +0000 (10:20 +0100)
coreapi/linphonecall.c
coreapi/linphonecore.c
coreapi/private.h

index a7cad386c3895b0c87491c3d00b37840ae20465a..dba7381c7893e307770ca6f258f8c60cf9f901a1 100644 (file)
@@ -484,7 +484,9 @@ LinphoneCall * linphone_call_new_outgoing(struct _LinphoneCore *lc, LinphoneAddr
        }
 #ifdef BUILD_UPNP
        if (linphone_core_get_firewall_policy(call->core) == LinphonePolicyUseUpnp) {
-               call->upnp_session = linphone_upnp_session_new(call);
+               if(!lc->rtp_conf.disable_upnp) {
+                       call->upnp_session = linphone_upnp_session_new(call);
+               }
        }
 #endif //BUILD_UPNP
        call->camera_active=params->has_video;
@@ -558,12 +560,14 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro
                        break;
                case LinphonePolicyUseUpnp:
 #ifdef BUILD_UPNP
-                       call->upnp_session = linphone_upnp_session_new(call);
-                       if (call->upnp_session != NULL) {
-                               linphone_call_init_media_streams(call);
-                               if (linphone_core_update_upnp_from_remote_media_description(call, sal_call_get_remote_media_description(op))<0) {
-                                       /* uPnP port mappings failed, proceed with the call anyway. */
-                                       linphone_call_delete_upnp_session(call);
+                       if(!lc->rtp_conf.disable_upnp) {
+                               call->upnp_session = linphone_upnp_session_new(call);
+                               if (call->upnp_session != NULL) {
+                                       linphone_call_init_media_streams(call);
+                                       if (linphone_core_update_upnp_from_remote_media_description(call, sal_call_get_remote_media_description(op))<0) {
+                                               /* uPnP port mappings failed, proceed with the call anyway. */
+                                               linphone_call_delete_upnp_session(call);
+                                       }
                                }
                        }
 #endif //BUILD_UPNP
index 2bb9fab32b8c4c2e7840bb6e2a534189ab981e0b..b704347da4849796d4c9afa4dc4f04df04e5ab67 100644 (file)
@@ -751,6 +751,7 @@ static void rtp_config_read(LinphoneCore *lc)
        linphone_core_enable_audio_adaptive_jittcomp(lc, adaptive_jitt_comp_enabled);
        adaptive_jitt_comp_enabled = lp_config_get_int(lc->config, "rtp", "video_adaptive_jitt_comp_enabled", TRUE);
        linphone_core_enable_video_adaptive_jittcomp(lc, adaptive_jitt_comp_enabled);
+       lc->rtp_conf.disable_upnp = lp_config_get_int(lc->config, "rtp", "disable_upnp", FALSE);
 }
 
 static PayloadType * find_payload(RtpProfile *prof, const char *mime_type, int clock_rate, int channels, const char *recv_fmtp){
index 78344ee70db4acf07d4a37f729be65ad12701080..13087dc0497efac9e6f9d8acabe60b1b644ccdea 100644 (file)
@@ -459,6 +459,7 @@ typedef struct rtp_config
        int audio_jitt_comp;  /*jitter compensation*/
        int video_jitt_comp;  /*jitter compensation*/
        int nortp_timeout;
+       int disable_upnp;
        bool_t rtp_no_xmit_on_audio_mute;
                               /* stop rtp xmit when audio muted */
        bool_t audio_adaptive_jitt_comp_enabled;