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.
........
Merged revisions 427334 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@427335
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
; 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=========================
<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
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);