[Freeswitch-svn] [commit] r9418 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nua
Freeswitch SVN
mikej at freeswitch.org
Wed Sep 3 14:27:56 EDT 2008
Author: mikej
Date: Wed Sep 3 14:27:56 2008
New Revision: 9418
Modified:
freeswitch/trunk/libs/sofia-sip/.update
freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c
Log:
Wed Sep 3 13:49:53 EDT 2008 Pekka Pessi <first.last at nokia.com>
* outbound.c: do not use OPTIONS keepalive by default but on UDP
On TCP, use TCP-level keepalives.
Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update (original)
+++ freeswitch/trunk/libs/sofia-sip/.update Wed Sep 3 14:27:56 2008
@@ -1 +1 @@
-Wed Sep 3 14:27:05 EDT 2008
+Wed Sep 3 14:27:37 EDT 2008
Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c (original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c Wed Sep 3 14:27:56 2008
@@ -77,7 +77,7 @@
unsigned gruuize:1; /**< Establish a GRUU */
unsigned outbound:1; /**< Try to use outbound */
unsigned natify:1; /**< Try to detect NAT */
- unsigned okeepalive:1; /**< Connection keepalive with OPTIONS */
+ signed okeepalive:2; /**< Connection keepalive with OPTIONS */
unsigned validate:1; /**< Validate registration with OPTIONS */
/* How to detect NAT binding or connect to outbound: */
unsigned use_connect:1; /**< Use HTTP connect */
@@ -270,7 +270,7 @@
prefs->gruuize = 1;
prefs->outbound = 0;
prefs->natify = 1;
- prefs->okeepalive = 1;
+ prefs->okeepalive = -1;
prefs->validate = 1;
prefs->use_rport = 1;
@@ -662,12 +662,18 @@
nta_outgoing_t *register_transaction)
{
unsigned interval = 0;
- int need_to_validate;
+ int need_to_validate, udp;
if (!ob)
return;
- if (ob->ob_prefs.natify && ob->ob_prefs.okeepalive)
+ udp = ob->ob_via && ob->ob_via->v_protocol == sip_transport_udp;
+
+ if (ob->ob_prefs.natify &&
+ /* On UDP, use OPTIONS keepalive by default */
+ (udp ? ob->ob_prefs.okeepalive != 0
+ /* Otherwise, only if requested */
+ : ob->ob_prefs.okeepalive > 0))
interval = ob->ob_prefs.interval;
need_to_validate = ob->ob_prefs.validate && !ob->ob_validated;
More information about the Freeswitch-svn
mailing list