mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-06 18:30:01 +00:00
Merge branch 'master' into v1.4
Conflicts: debian/bootstrap.sh debian/util.sh docs/SubmittingPatches src/mod/endpoints/mod_verto/mod_verto.c
This commit is contained in:
commit
507a0f22c5
61
.clang-format
Normal file
61
.clang-format
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
---
|
||||||
|
Language: Cpp
|
||||||
|
AccessModifierOffset: 0
|
||||||
|
AlignAfterOpenBracket: true
|
||||||
|
AlignEscapedNewlinesLeft: false
|
||||||
|
AlignOperands: true
|
||||||
|
AlignTrailingComments: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
AllowShortBlocksOnASingleLine: true
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: All
|
||||||
|
AllowShortIfStatementsOnASingleLine: true
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: false
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: false
|
||||||
|
BinPackArguments: true
|
||||||
|
BinPackParameters: true
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeBraces: Linux
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializersBeforeComma: false
|
||||||
|
ColumnLimit: 120
|
||||||
|
CommentPragmas: '^ IWYU pragma:'
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
DisableFormat: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
|
||||||
|
IndentCaseLabels: false
|
||||||
|
IndentFunctionDeclarationAfterType: false
|
||||||
|
IndentWidth: 4
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
NamespaceIndentation: None
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 19
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 60
|
||||||
|
PointerAlignment: Right
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInContainerLiterals: true
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Cpp11
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Always
|
||||||
|
...
|
6
debian/bootstrap.sh
vendored
6
debian/bootstrap.sh
vendored
@ -9,7 +9,7 @@ fs_description="FreeSWITCH is a scalable open source cross-platform telephony pl
|
|||||||
mod_build_depends="." mod_depends="." mod_recommends="." mod_suggests="."
|
mod_build_depends="." mod_depends="." mod_recommends="." mod_suggests="."
|
||||||
supported_debian_distros="squeeze wheezy jessie sid"
|
supported_debian_distros="squeeze wheezy jessie sid"
|
||||||
supported_ubuntu_distros="trusty utopic"
|
supported_ubuntu_distros="trusty utopic"
|
||||||
supported_distros=" $supported_debian_distros $supported_ubuntu_distros "
|
supported_distros="$supported_debian_distros $supported_ubuntu_distros"
|
||||||
avoid_mods=(
|
avoid_mods=(
|
||||||
applications/mod_limit
|
applications/mod_limit
|
||||||
applications/mod_mongo
|
applications/mod_mongo
|
||||||
@ -285,9 +285,7 @@ list_freeswitch_all_dbg_replaces () {
|
|||||||
print_source_control () {
|
print_source_control () {
|
||||||
local libtool_dep="libtool, libtool-bin"
|
local libtool_dep="libtool, libtool-bin"
|
||||||
case "$codename" in
|
case "$codename" in
|
||||||
squeeze|wheezy|trusty)
|
squeeze|wheezy|trusty) libtool_dep="libtool" ;;
|
||||||
libtool_dep="libtool"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Source: freeswitch
|
Source: freeswitch
|
||||||
|
7
debian/rules
vendored
7
debian/rules
vendored
@ -20,6 +20,11 @@ export CFLAGS:=$(FS_CFLAGS)
|
|||||||
export CXXFLAGS:=$(FS_CXXFLAGS)
|
export CXXFLAGS:=$(FS_CXXFLAGS)
|
||||||
export LDFLAGS:=$(FS_LDFLAGS)
|
export LDFLAGS:=$(FS_LDFLAGS)
|
||||||
|
|
||||||
|
NJOBS=1
|
||||||
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
||||||
|
NJOBS=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
||||||
|
endif
|
||||||
|
|
||||||
show_vars= \
|
show_vars= \
|
||||||
echo; \
|
echo; \
|
||||||
echo "Making target $@"; \
|
echo "Making target $@"; \
|
||||||
@ -91,7 +96,7 @@ override_dh_auto_configure: .stamp-configure
|
|||||||
|
|
||||||
.stamp-build: .stamp-configure
|
.stamp-build: .stamp-configure
|
||||||
@$(call show_vars)
|
@$(call show_vars)
|
||||||
make
|
make -j$(NJOBS)
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
override_dh_auto_build: .stamp-build
|
override_dh_auto_build: .stamp-build
|
||||||
|
25
debian/util.sh
vendored
25
debian/util.sh
vendored
@ -357,6 +357,16 @@ build_debs () {
|
|||||||
echo ${dsc%.dsc}_${arch}.changes
|
echo ${dsc%.dsc}_${arch}.changes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default_distros () {
|
||||||
|
local host_distro="Debian"
|
||||||
|
test -z "$(which lsb_release)" || host_distro="$(lsb_release -is)"
|
||||||
|
case "$host_distro" in
|
||||||
|
Debian) echo "sid jessie wheezy" ;;
|
||||||
|
Ubuntu) echo "utopic trusty" ;;
|
||||||
|
*) err "Unknown host distribution \"$host_distro\"" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
build_all () {
|
build_all () {
|
||||||
local OPTIND OPTARG
|
local OPTIND OPTARG
|
||||||
local orig_opts="" dsc_opts="" deb_opts="" modlist=""
|
local orig_opts="" dsc_opts="" deb_opts="" modlist=""
|
||||||
@ -385,20 +395,7 @@ build_all () {
|
|||||||
done
|
done
|
||||||
shift $(($OPTIND-1))
|
shift $(($OPTIND-1))
|
||||||
[ -n "$archs" ] || archs="amd64 i386"
|
[ -n "$archs" ] || archs="amd64 i386"
|
||||||
if [ -z "$distros" ]; then
|
[ -n "$distros" ] || distros="$(default_distros)"
|
||||||
case "$(lsb_release -is)" in
|
|
||||||
Debian)
|
|
||||||
distros="sid jessie wheezy"
|
|
||||||
;;
|
|
||||||
Ubuntu)
|
|
||||||
distros="utopic trusty"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown distribution"
|
|
||||||
exit -1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
! $depinst || aptitude install -y \
|
! $depinst || aptitude install -y \
|
||||||
rsync git less cowbuilder ccache \
|
rsync git less cowbuilder ccache \
|
||||||
devscripts equivs build-essential
|
devscripts equivs build-essential
|
||||||
|
@ -45,7 +45,7 @@ Create a Pull Request
|
|||||||
# navigate to FreeSWITCH Stash
|
# navigate to FreeSWITCH Stash
|
||||||
chromium https://freeswitch.org/stash
|
chromium https://freeswitch.org/stash
|
||||||
|
|
||||||
# Using the saem credentials as Jira, login to Stash; create a forked FS repository; read
|
# Using the same credentials as Jira, login to Stash; create a forked FS repository; read
|
||||||
# the details here:
|
# the details here:
|
||||||
chromium https://freeswitch.org/confluence/display/FREESWITCH/Pull+Requests
|
chromium https://freeswitch.org/confluence/display/FREESWITCH/Pull+Requests
|
||||||
|
|
||||||
@ -214,4 +214,4 @@ Finally, feel free to join us in our weekly conference call. Many of
|
|||||||
the core developers are often on the call and you'll have an
|
the core developers are often on the call and you'll have an
|
||||||
opportunity at the beginning or end of the call to ask your questions:
|
opportunity at the beginning or end of the call to ask your questions:
|
||||||
|
|
||||||
> https://wiki.freeswitch.org/wiki/Weekly_Conference_Call
|
> https://freeswitch.org/confluence/display/FREESWITCH/ClueCon+Weekly+Conference+call
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -763,7 +763,7 @@ case EXPR_NODEFUNC_CLAMP:
|
|||||||
err = exprEvalNode(obj, nodes->data.function.nodes, 1, &d1);
|
err = exprEvalNode(obj, nodes->data.function.nodes, 1, &d1);
|
||||||
|
|
||||||
if (!err)
|
if (!err)
|
||||||
err = exprEvalNode(obj, nodes->data.function.nodes, 1, &d2);
|
err = exprEvalNode(obj, nodes->data.function.nodes, 2, &d2);
|
||||||
|
|
||||||
if (!err) {
|
if (!err) {
|
||||||
EXPR_RESET_ERR();
|
EXPR_RESET_ERR();
|
||||||
@ -771,7 +771,7 @@ case EXPR_NODEFUNC_CLAMP:
|
|||||||
EXPR_CHECK_ERR();
|
EXPR_CHECK_ERR();
|
||||||
|
|
||||||
if (tmp < 0.0)
|
if (tmp < 0.0)
|
||||||
*val = tmp * d2;
|
*val = tmp + d2;
|
||||||
else
|
else
|
||||||
*val = tmp + d1;
|
*val = tmp + d1;
|
||||||
} else
|
} else
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -283,7 +283,7 @@ SWITCH_STANDARD_API(memcache_function)
|
|||||||
|
|
||||||
val = memcached_get(memcached, key, strlen(key), &string_length, &flags, &rc);
|
val = memcached_get(memcached, key, strlen(key), &string_length, &flags, &rc);
|
||||||
if (rc == MEMCACHED_SUCCESS) {
|
if (rc == MEMCACHED_SUCCESS) {
|
||||||
stream->write_function(stream, "%.*s", (int) string_length, val);
|
stream->raw_write_function(stream, (uint8_t*)val, (int)string_length);
|
||||||
} else {
|
} else {
|
||||||
switch_safe_free(val);
|
switch_safe_free(val);
|
||||||
switch_goto_status(SWITCH_STATUS_SUCCESS, mcache_error);
|
switch_goto_status(SWITCH_STATUS_SUCCESS, mcache_error);
|
||||||
|
@ -1518,7 +1518,7 @@ new_req:
|
|||||||
!strncmp(request.content_type, "application/x-www-form-urlencoded", 33)) {
|
!strncmp(request.content_type, "application/x-www-form-urlencoded", 33)) {
|
||||||
|
|
||||||
char *buffer = NULL;
|
char *buffer = NULL;
|
||||||
switch_size_t len = 0, bytes = 0;
|
switch_ssize_t len = 0, bytes = 0;
|
||||||
|
|
||||||
if (request.content_length > 2 * 1024 * 1024 - 1) {
|
if (request.content_length > 2 * 1024 * 1024 - 1) {
|
||||||
char *data = "HTTP/1.1 413 Request Entity Too Large\r\n"
|
char *data = "HTTP/1.1 413 Request Entity Too Large\r\n"
|
||||||
@ -1538,8 +1538,8 @@ new_req:
|
|||||||
while(bytes < request.content_length) {
|
while(bytes < request.content_length) {
|
||||||
len = request.content_length - bytes;
|
len = request.content_length - bytes;
|
||||||
|
|
||||||
if ((switch_ssize_t)(len = ws_raw_read(&jsock->ws, buffer + bytes, len, jsock->ws.block)) < 0) {
|
if ((len = ws_raw_read(&jsock->ws, buffer + bytes, len, jsock->ws.block)) < 0) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Read error %" SWITCH_SIZE_T_FMT"\n", len);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Read error %" SWITCH_SSIZE_T_FMT"\n", len);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,13 +54,10 @@ struct sndfile_context {
|
|||||||
|
|
||||||
typedef struct sndfile_context sndfile_context;
|
typedef struct sndfile_context sndfile_context;
|
||||||
|
|
||||||
static switch_status_t sndfile_perform_open(sndfile_context *context, const char *path, const char *mask, int mode);
|
|
||||||
|
|
||||||
static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const char *path)
|
static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const char *path)
|
||||||
{
|
{
|
||||||
sndfile_context *context;
|
sndfile_context *context;
|
||||||
int mode = 0;
|
int mode = 0;
|
||||||
const char *mask = "rb";
|
|
||||||
char *ext;
|
char *ext;
|
||||||
struct format_map *map = NULL;
|
struct format_map *map = NULL;
|
||||||
switch_status_t status = SWITCH_STATUS_SUCCESS;
|
switch_status_t status = SWITCH_STATUS_SUCCESS;
|
||||||
@ -87,10 +84,8 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
|||||||
|
|
||||||
if (switch_test_flag(handle, SWITCH_FILE_FLAG_WRITE)) {
|
if (switch_test_flag(handle, SWITCH_FILE_FLAG_WRITE)) {
|
||||||
if (switch_test_flag(handle, SWITCH_FILE_WRITE_APPEND) || switch_test_flag(handle, SWITCH_FILE_WRITE_OVER) || handle->offset_pos) {
|
if (switch_test_flag(handle, SWITCH_FILE_WRITE_APPEND) || switch_test_flag(handle, SWITCH_FILE_WRITE_OVER) || handle->offset_pos) {
|
||||||
mask = "ab+";
|
|
||||||
mode += SFM_RDWR;
|
mode += SFM_RDWR;
|
||||||
} else {
|
} else {
|
||||||
mask = "wb+";
|
|
||||||
mode += SFM_WRITE;
|
mode += SFM_WRITE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -186,7 +181,7 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
|||||||
ldup = strdup(last);
|
ldup = strdup(last);
|
||||||
switch_assert(ldup);
|
switch_assert(ldup);
|
||||||
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", handle->samplerate, SWITCH_PATH_SEPARATOR, ldup);
|
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", handle->samplerate, SWITCH_PATH_SEPARATOR, ldup);
|
||||||
if (sndfile_perform_open(context, alt_path, mask, mode) == SWITCH_STATUS_SUCCESS) {
|
if ((context->handle = sf_open(alt_path, mode, &context->sfinfo))) {
|
||||||
path = alt_path;
|
path = alt_path;
|
||||||
} else {
|
} else {
|
||||||
/* Try to find the file at the highest rate possible if we can't find one that matches the exact rate.
|
/* Try to find the file at the highest rate possible if we can't find one that matches the exact rate.
|
||||||
@ -194,7 +189,7 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
|||||||
*/
|
*/
|
||||||
for (i = 3; i >= 0; i--) {
|
for (i = 3; i >= 0; i--) {
|
||||||
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", rates[i], SWITCH_PATH_SEPARATOR, ldup);
|
switch_snprintf(last, alt_len - (last - alt_path), "%d%s%s", rates[i], SWITCH_PATH_SEPARATOR, ldup);
|
||||||
if (sndfile_perform_open(context, alt_path, mask, mode) == SWITCH_STATUS_SUCCESS) {
|
if ((context->handle = sf_open(alt_path, mode, &context->sfinfo))) {
|
||||||
path = alt_path;
|
path = alt_path;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -203,7 +198,7 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!context->handle) {
|
if (!context->handle) {
|
||||||
if (sndfile_perform_open(context, path, mask, mode) != SWITCH_STATUS_SUCCESS) {
|
if ((context->handle = sf_open(path, mode, &context->sfinfo)) == 0) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening File [%s] [%s]\n", path, sf_strerror(context->handle));
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Opening File [%s] [%s]\n", path, sf_strerror(context->handle));
|
||||||
status = SWITCH_STATUS_GENERR;
|
status = SWITCH_STATUS_GENERR;
|
||||||
goto end;
|
goto end;
|
||||||
@ -241,20 +236,6 @@ static switch_status_t sndfile_file_open(switch_file_handle_t *handle, const cha
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static switch_status_t sndfile_perform_open(sndfile_context *context, const char *path, const char *mask, int mode)
|
|
||||||
{
|
|
||||||
FILE *fd = NULL;
|
|
||||||
fd = fopen(path, mask);
|
|
||||||
if (!fd) {
|
|
||||||
return SWITCH_STATUS_FALSE;
|
|
||||||
}
|
|
||||||
if ((context->handle = sf_open_fd(fileno(fd), mode, &context->sfinfo, SWITCH_TRUE)) == 0) {
|
|
||||||
fclose(fd);
|
|
||||||
return SWITCH_STATUS_FALSE;
|
|
||||||
}
|
|
||||||
return SWITCH_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static switch_status_t sndfile_file_truncate(switch_file_handle_t *handle, int64_t offset)
|
static switch_status_t sndfile_file_truncate(switch_file_handle_t *handle, int64_t offset)
|
||||||
{
|
{
|
||||||
sndfile_context *context = handle->private_info;
|
sndfile_context *context = handle->private_info;
|
||||||
|
@ -1789,7 +1789,7 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void *
|
|||||||
switch_core_session_set_read_codec(session, &read_codecs[i]);
|
switch_core_session_set_read_codec(session, &read_codecs[i]);
|
||||||
}
|
}
|
||||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||||
if (SWITCH_READ_ACCEPTABLE(status)) {
|
if (SWITCH_READ_ACCEPTABLE(status) && !switch_test_flag(read_frame, SFF_CNG)) {
|
||||||
data = (int16_t *) read_frame->data;
|
data = (int16_t *) read_frame->data;
|
||||||
if (datalen < read_frame->datalen) {
|
if (datalen < read_frame->datalen) {
|
||||||
datalen = read_frame->datalen;
|
datalen = read_frame->datalen;
|
||||||
@ -1802,7 +1802,7 @@ static void *SWITCH_THREAD_FUNC early_thread_run(switch_thread_t *thread, void *
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||||
if (SWITCH_READ_ACCEPTABLE(status)) {
|
if (SWITCH_READ_ACCEPTABLE(status) && !switch_test_flag(read_frame, SFF_CNG)) {
|
||||||
datalen = read_frame->datalen;
|
datalen = read_frame->datalen;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -3239,7 +3239,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
|
|||||||
silence = 600;
|
silence = 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ringback.fh || silence || ringback.audio_buffer || oglobals.bridge_early_media > -1) && write_frame.codec && write_frame.datalen) {
|
if ((ringback.fh || silence || ringback.audio_buffer || oglobals.bridge_early_media > -1) && write_frame.codec && write_frame.codec->implementation && write_frame.datalen) {
|
||||||
if (silence) {
|
if (silence) {
|
||||||
write_frame.datalen = read_impl.decoded_bytes_per_packet;
|
write_frame.datalen = read_impl.decoded_bytes_per_packet;
|
||||||
switch_generate_sln_silence((int16_t *) write_frame.data, write_frame.datalen / 2, write_frame.codec->implementation->number_of_channels, silence);
|
switch_generate_sln_silence((int16_t *) write_frame.data, write_frame.datalen / 2, write_frame.codec->implementation->number_of_channels, silence);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user