summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2014-11-05 19:52:26 +0000
committerMark Michelson <mmichelson@digium.com>2014-11-05 19:52:26 +0000
commit27dc7e47d711befe3862755b4347d3d116694e53 (patch)
tree54ef75d978f518ba2824fc211859baae752889ae
parent0d0131bf34af508e566c67e6ea556816f147b49c (diff)
Make the disable_tcp_switch PJSIP system object enabled by default.
Testing has shown repeatedly that PJSIP's default behavior of switching automatically to TCP for large messages can cause issues. The most common issues are that devices that we are communicating with do not handle the switch to TCP gracefully, thus causing situations such as broken calls or broken subscriptions. Now, in order to have this behavior happen, you must opt into it. The sample file has been updated to warn that enabling the TCP switch behavior may cause issues for you, so use at your own risk. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@427334 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--configs/samples/pjsip.conf.sample6
-rw-r--r--res/res_pjsip.c2
-rw-r--r--res/res_pjsip/config_system.c2
3 files changed, 6 insertions, 4 deletions
diff --git a/configs/samples/pjsip.conf.sample b/configs/samples/pjsip.conf.sample
index 36807df2d..ef26f6eb0 100644
--- a/configs/samples/pjsip.conf.sample
+++ b/configs/samples/pjsip.conf.sample
@@ -828,10 +828,12 @@
; should be disposed of (default: "60")
;threadpool_max_size=0 ; Maximum number of threads in the res_pjsip threadpool
; A value of 0 indicates no maximum (default: "0")
-;disable_tcp_switch=no ; Disable automatic switching from UDP to TCP transports
+;disable_tcp_switch=yes ; Disable automatic switching from UDP to TCP transports
; if outgoing request is too large.
; See RFC 3261 section 18.1.1.
- ; (default: "no")
+ ; Disabling this option has been known to cause interoperability
+ ; issues, so disable at your own risk.
+ ; (default: "yes")
;type= ; Must be of type system (default: "")
;==========================GLOBAL SECTION OPTIONS=========================
diff --git a/res/res_pjsip.c b/res/res_pjsip.c
index a3e33cbbf..f76d994f7 100644
--- a/res/res_pjsip.c
+++ b/res/res_pjsip.c
@@ -1136,7 +1136,7 @@
<synopsis>Maximum number of threads in the res_pjsip threadpool.
A value of 0 indicates no maximum.</synopsis>
</configOption>
- <configOption name="disable_tcp_switch" default="no">
+ <configOption name="disable_tcp_switch" default="yes">
<synopsis>Disable automatic switching from UDP to TCP transports.</synopsis>
<description><para>
Disable automatic switching from UDP to TCP transports if outgoing
diff --git a/res/res_pjsip/config_system.c b/res/res_pjsip/config_system.c
index 4d0ab467b..a41af90ed 100644
--- a/res/res_pjsip/config_system.c
+++ b/res/res_pjsip/config_system.c
@@ -147,7 +147,7 @@ int ast_sip_initialize_system(void)
OPT_UINT_T, 0, FLDSET(struct system_config, threadpool.idle_timeout));
ast_sorcery_object_field_register(system_sorcery, "system", "threadpool_max_size", "0",
OPT_UINT_T, 0, FLDSET(struct system_config, threadpool.max_size));
- ast_sorcery_object_field_register(system_sorcery, "system", "disable_tcp_switch", "no",
+ ast_sorcery_object_field_register(system_sorcery, "system", "disable_tcp_switch", "yes",
OPT_BOOL_T, 1, FLDSET(struct system_config, disable_tcp_switch));
ast_sorcery_load(system_sorcery);