diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 2ef760ab3..bcd8d5995 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -626,7 +626,7 @@ static void transfer_already_assigned_payload_types(SalMediaDescription *old, Sa static const char *linphone_call_get_bind_ip_for_stream(LinphoneCall *call, int stream_index){ const char *bind_ip = lp_config_get_string(call->core->config,"rtp","bind_address", - linphone_core_ipv6_enabled(call->core) ? "::0" : "0.0.0.0"); + call->af == AF_INET6 ? "::0" : "0.0.0.0"); if (stream_index<2 && call->media_ports[stream_index].multicast_ip[0]!='\0'){ if (call->dir==LinphoneCallOutgoing){ diff --git a/tester/call_tester.c b/tester/call_tester.c index 0bef52f79..004af44cb 100644 --- a/tester/call_tester.c +++ b/tester/call_tester.c @@ -6406,6 +6406,21 @@ static void v6_call_over_nat_64(void){ }else ms_warning("Test skipped, no ipv6 nat64 available"); } +static void call_with_ice_in_ipv4_with_v6_enabled(void) { + if (liblinphone_tester_ipv4_available() && liblinphone_tester_ipv6_available()){ + bool_t liblinphonetester_ipv6_save=liblinphonetester_ipv6; /*this test nee v6*/ + liblinphonetester_ipv6=TRUE; + + LinphoneCoreManager* marie = linphone_core_manager_new("marie_v4proxy_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new("pauline_v4proxy_rc"); + _call_with_ice_base(pauline,marie,TRUE,TRUE,TRUE,FALSE); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); + liblinphonetester_ipv6=liblinphonetester_ipv6_save; /*this test nee v6*/ + + } else ms_warning("Test skipped, need both ipv6 and v4 available"); +} + test_t call_tests[] = { TEST_NO_TAG("Early declined call", early_declined_call), @@ -6422,6 +6437,7 @@ test_t call_tests[] = { TEST_NO_TAG("Call with timeouted bye", call_with_timeouted_bye), TEST_NO_TAG("Direct call over IPv6", direct_call_over_ipv6), TEST_NO_TAG("IPv6 call over NAT64", v6_call_over_nat_64), + TEST_NO_TAG("Call with ICE in IPv4 with IPv6 enabled", call_with_ice_in_ipv4_with_v6_enabled), TEST_NO_TAG("Outbound call with multiple proxy possible", call_outbound_with_multiple_proxy), TEST_NO_TAG("Audio call recording", audio_call_recording_test), #if 0 /* not yet activated because not implemented */ diff --git a/tester/flexisip/flexisip.conf b/tester/flexisip/flexisip.conf index 9aaceda2f..5ad6cb028 100644 --- a/tester/flexisip/flexisip.conf +++ b/tester/flexisip/flexisip.conf @@ -18,7 +18,7 @@ auto-respawn=true # List of white space separated host names pointing to this machine. # This is to prevent loops while routing SIP messages. # Default value: localhost -aliases=localhost sip2.linphone.org sipopen.example.org sip.example.org auth.example.org auth1.example.org auth2.example.org client.example.org +aliases=localhost sip2.linphone.org sipopen.example.org sip.example.org auth.example.org auth1.example.org auth2.example.org client.example.org sipv4.example.org sipv4-nat64.example.org # List of white space separated SIP uris where the proxy must listen.Wildcard # (*) can be used to mean 'all local ip addresses'. If 'transport' diff --git a/tester/rcfiles/marie_nat64_rc b/tester/rcfiles/marie_nat64_rc index a59516c72..58358b579 100644 --- a/tester/rcfiles/marie_nat64_rc +++ b/tester/rcfiles/marie_nat64_rc @@ -16,8 +16,8 @@ realm=sip.example.org [proxy_0] -reg_proxy=sipv4.example.org;transport=tcp -reg_route=sipv4.example.org;transport=tcp;lr +reg_proxy=sipv4-nat64.example.org;transport=tcp +reg_route=sipv4-nat64.example.org;transport=tcp;lr reg_identity="Super Marie" reg_expires=3600 reg_sendregister=1 diff --git a/tester/rcfiles/marie_v4proxy_rc b/tester/rcfiles/marie_v4proxy_rc new file mode 100644 index 000000000..a59516c72 --- /dev/null +++ b/tester/rcfiles/marie_v4proxy_rc @@ -0,0 +1,55 @@ +[sip] +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 +default_proxy=0 +ping_with_options=0 +use_ipv6=1 +composing_idle_timeout=1 +store_ha1_passwd=0 #used for sipp + +[auth_info_0] +username=marie +userid=marie +passwd=secret +realm=sip.example.org + + +[proxy_0] +reg_proxy=sipv4.example.org;transport=tcp +reg_route=sipv4.example.org;transport=tcp;lr +reg_identity="Super Marie" +reg_expires=3600 +reg_sendregister=1 +publish=0 +dial_escape_plus=0 + +[friend_0] +url="Paupoche" +pol=accept +subscribe=0 + + +[rtp] +audio_rtp_port=18070-28000 +video_rtp_port=28070-38000 +text_rtp_port=39000-49000 + +[video] +display=0 +capture=0 +show_local=0 +size=qcif +enabled=0 +self_view=0 +automatically_initiate=0 +automatically_accept=0 +device=StaticImage: Static picture + +[sound] +echocancellation=0 #to not overload cpu in case of VG + +[net] +dns_srv_enabled=0 #no srv needed in general +stun_server=stun.linphone.org + diff --git a/tester/rcfiles/pauline_nat64_rc b/tester/rcfiles/pauline_nat64_rc index b2255c3c6..c90b6a363 100644 --- a/tester/rcfiles/pauline_nat64_rc +++ b/tester/rcfiles/pauline_nat64_rc @@ -15,8 +15,8 @@ realm=sip.example.org [proxy_0] -reg_proxy=sipv4.example.org;transport=tls -reg_route=sipv4.example.org;transport=tls +reg_proxy=sipv4-nat64.example.org;transport=tls +reg_route=sipv4-nat64.example.org;transport=tls reg_identity=sip:pauline@sip.example.org reg_expires=3600 reg_sendregister=1 diff --git a/tester/rcfiles/pauline_v4proxy_rc b/tester/rcfiles/pauline_v4proxy_rc new file mode 100644 index 000000000..b2255c3c6 --- /dev/null +++ b/tester/rcfiles/pauline_v4proxy_rc @@ -0,0 +1,51 @@ +[sip] +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 +default_proxy=0 +ping_with_options=0 +use_ipv6=1 +composing_idle_timeout=1 + +[auth_info_0] +username=pauline +userid=pauline +passwd=secret +realm=sip.example.org + + +[proxy_0] +reg_proxy=sipv4.example.org;transport=tls +reg_route=sipv4.example.org;transport=tls +reg_identity=sip:pauline@sip.example.org +reg_expires=3600 +reg_sendregister=1 +publish=0 +dial_escape_plus=0 + +#[friend_0] +#url="Mariette" +#pol=accept +#subscribe=0 + +[rtp] +audio_rtp_port=18070-28000 +video_rtp_port=39072-49000 + +[video] +display=0 +capture=0 +show_local=0 +size=qcif +enabled=0 +self_view=0 +automatically_initiate=0 +automatically_accept=0 +device=StaticImage: Static picture + +[sound] +echocancellation=0 #to not overload cpu in case of VG + +[net] +dns_srv_enabled=0 #no srv needed in general +stun_server=stun.linphone.org diff --git a/tester/tester_hosts b/tester/tester_hosts index 6416ddebc..686c42b88 100644 --- a/tester/tester_hosts +++ b/tester/tester_hosts @@ -1,4 +1,4 @@ -94.23.19.176 sip2.linphone.org sip.example.org sipopen.example.org auth.example.org auth1.example.org auth2.example.org altname.linphone.org sip.wildcard1.linphone.org altname.wildcard2.linphone.org +94.23.19.176 sip2.linphone.org sip.example.org sipopen.example.org auth.example.org auth1.example.org auth2.example.org altname.linphone.org sip.wildcard1.linphone.org altname.wildcard2.linphone.org sipv4.example.org 2001:41d0:2:14b0::1 sip2.linphone.org sip.example.org sipopen.example.org auth.example.org auth1.example.org auth2.example.org altname.linphone.org sip.wildcard1.linphone.org altname.wildcard2.linphone.org 188.165.46.90 tunnel.wildcard2.linphone.org -64:ff9b::94.23.19.176 sipv4.example.org +64:ff9b::94.23.19.176 sipv4-nat64.example.org