mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-23 06:08:07 +00:00
Disable ping options when uPnP is working
This commit is contained in:
parent
3694186ac9
commit
9cb68a7d8d
2 changed files with 31 additions and 16 deletions
|
|
@ -508,14 +508,21 @@ LinphoneCall * linphone_call_new_incoming(LinphoneCore *lc, LinphoneAddress *fro
|
|||
call->core=lc;
|
||||
|
||||
if (lc->sip_conf.ping_with_options){
|
||||
/*the following sends an option request back to the caller so that
|
||||
we get a chance to discover our nat'd address before answering.*/
|
||||
call->ping_op=sal_op_new(lc->sal);
|
||||
from_str=linphone_address_as_string_uri_only(from);
|
||||
sal_op_set_route(call->ping_op,sal_op_get_network_origin(op));
|
||||
sal_op_set_user_pointer(call->ping_op,call);
|
||||
sal_ping(call->ping_op,linphone_core_find_best_identity(lc,from,NULL),from_str);
|
||||
ms_free(from_str);
|
||||
#ifdef BUILD_UPNP
|
||||
if (lc->upnp != NULL && linphone_core_get_firewall_policy(lc)==LinphonePolicyUseUpnp &&
|
||||
linphone_upnp_context_get_state(lc->upnp) == LinphoneUpnpStateOk) {
|
||||
#else //BUILD_UPNP
|
||||
{
|
||||
#endif //BUILD_UPNP
|
||||
/*the following sends an option request back to the caller so that
|
||||
we get a chance to discover our nat'd address before answering.*/
|
||||
call->ping_op=sal_op_new(lc->sal);
|
||||
from_str=linphone_address_as_string_uri_only(from);
|
||||
sal_op_set_route(call->ping_op,sal_op_get_network_origin(op));
|
||||
sal_op_set_user_pointer(call->ping_op,call);
|
||||
sal_ping(call->ping_op,linphone_core_find_best_identity(lc,from,NULL),from_str);
|
||||
ms_free(from_str);
|
||||
}
|
||||
}
|
||||
|
||||
linphone_address_clean(from);
|
||||
|
|
|
|||
|
|
@ -2605,15 +2605,23 @@ LinphoneCall * linphone_core_invite_address_with_params(LinphoneCore *lc, const
|
|||
}
|
||||
|
||||
if (call->dest_proxy==NULL && lc->sip_conf.ping_with_options==TRUE){
|
||||
/*defer the start of the call after the OPTIONS ping*/
|
||||
call->ping_replied=FALSE;
|
||||
call->ping_op=sal_op_new(lc->sal);
|
||||
sal_ping(call->ping_op,from,real_url);
|
||||
sal_op_set_user_pointer(call->ping_op,call);
|
||||
call->start_time=time(NULL);
|
||||
}else{
|
||||
if (defer==FALSE) linphone_core_start_invite(lc,call);
|
||||
#ifdef BUILD_UPNP
|
||||
if (lc->upnp != NULL && linphone_core_get_firewall_policy(lc)==LinphonePolicyUseUpnp &&
|
||||
linphone_upnp_context_get_state(lc->upnp) == LinphoneUpnpStateOk) {
|
||||
#else //BUILD_UPNP
|
||||
{
|
||||
#endif //BUILD_UPNP
|
||||
/*defer the start of the call after the OPTIONS ping*/
|
||||
call->ping_replied=FALSE;
|
||||
call->ping_op=sal_op_new(lc->sal);
|
||||
sal_ping(call->ping_op,from,real_url);
|
||||
sal_op_set_user_pointer(call->ping_op,call);
|
||||
call->start_time=time(NULL);
|
||||
defer = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (defer==FALSE) linphone_core_start_invite(lc,call);
|
||||
|
||||
if (real_url!=NULL) ms_free(real_url);
|
||||
return call;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue