Commit Graph

26691 Commits

Author SHA1 Message Date
Joshua Colp c49b0dc2a1 Merge "cdr: Fix 'core show channel' CDR variable truncation." 2015-05-15 10:20:51 -05:00
snuffy e48d29054f cdr: Fix 'core show channel' CDR variable truncation.
When the new Bridging API was implemented, the workspace variable
changed to a malloc'd string, causing sizeof() to always be 8 (char).

Revert back to stored on stack string for workspace.

ASTERISK-25090 #close

Change-Id: I51e610ae87371df771ce7693a955510efb90f8f7
2015-05-15 09:59:29 -05:00
Joshua Colp 87470f7d81 Merge "tcptls: Enable multiple TLS certificate chains (RSA+ECC+DSA) for server socket." 2015-05-15 09:38:57 -05:00
Alexander Traud 8f3f414d8c tcptls: Enable multiple TLS certificate chains (RSA+ECC+DSA) for server socket.
When a client connects to a server via SSL/TLS, the server commonly utilizes an
RSA key-pair. However, other such algorithms exist (i.e. DSA and ECDSA), and if
the server socket is configured with a certificate for either one of those, it
would lose its compatibility with RSA-only clients.

Now, the server socket can be configured with up to one RSA, ECDSA and DSA key
each. For example, if a client is not compatible with SHA-2 hashed certificates
like Nokia mobile phones, the server socket still can use RSA/SHA-1 for legacy
clients and ECDSA/SHA-2 for everyone else.

ASTERISK-24815 #close
Reported by: Alexander Traud
patches:
  tls_rsa_ecc_dsa.patch uploaded by Alexander Traud (License 6520)

Change-Id: Iada5e00d326db5ef86e0af7069b4dfa1b979da9a
2015-05-15 10:01:04 +02:00
Maciej Szmigiero 2415a14ce9 Add X.509 subject alternative name support to TLS certificate
verification.

This way one X.509 certificate can be used for hosts that
can be reached under multiple DNS names or for multiple hosts.

Signed-off-by: Maciej Szmigiero <mail@maciej.szmigiero.name>

ASTERISK-25063 #close

Change-Id: I13302c80490a0b44c43f1b45376c9bd7b15a538f
2015-05-15 00:12:41 +02:00
Joshua Colp 1ba7845851 Merge "sorcery: Add API to insert/remove a wizard to/from an object type's list" 2015-05-14 15:20:32 -05:00
Jonathan Rose 3e89f01b55 Message.c: Clear message channel frames on cleanup
The message channel is a special channel that doesn't actually process frames.
However, certain actions can cause frames to be placed in the channel's read
queue including the Hangup application which is called on the channel after
each message is processed. Since the channel will continually be reused for
many messages, it's necessary to flush these frames at some point.

ASTERISK-25083 #close
Reported by: Jonathan Rose

Change-Id: Idf18df73ccd8c220be38743335b5c79c2a4c0d0f
2015-05-14 11:25:09 -05:00
Joshua Colp e092a89694 Merge "MALLOC_DEBUG: Replace WRAP_LIBC_MALLOC with ASTMM_LIBC." 2015-05-14 10:57:04 -05:00
Corey Farrell 0a46d43b9c Fix potential crash after unload of func_periodic_hook or test_message.
These modules save a pointer to the context they create on load, and
use that pointer to destroy the context at unload.  It is not safe
to save this pointer, it is replaced during load of pbx_config,
pbx_lua or pbx_ael.

This change causes the modules to pass NULL to ast_context_destroy,
a safer way to perform the unregistration since it does not use
a pointer that could become invalid.

ASTERISK-25085 #close
Reported by: Corey Farrell

Change-Id: I6a00ec8e38046058f97dc703e1adcde9bf517835
2015-05-14 05:41:30 -05:00
Joshua Colp 2bbfcfc647 Merge "cdr_adaptive_odbc: Add ability to set character for quoted identifiers." 2015-05-14 05:28:16 -05:00
Joshua Colp 35ff01823b Merge "AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro." 2015-05-14 05:03:43 -05:00
Joshua Colp 9dfee35fce Merge "main/manager.c: Bugfix sort action_manager by alphabetically" 2015-05-14 05:03:07 -05:00
Joshua Colp 1b7febe18f Merge "cel/cel_pgsql.c: Use the 'SEP' macro when appending a column name" 2015-05-14 05:02:14 -05:00
Corey Farrell 478fb4a388 MALLOC_DEBUG: Replace WRAP_LIBC_MALLOC with ASTMM_LIBC.
There are 3 ways that calls directly to standard allocator functions can
be dealt with:
1. Block their use, cause them to generate an error.  This is the default.
2. Replace them with the Asterisk equivalent function calls.
3. Leave them alone.

This change allows one of these 3 options to be selected by any source.
The source just needs to define ASTMM_LIBC to ASTMM_BLOCK, ASTMM_REDIRECT,
or ASTMM_IGNORE to use option 1, 2 or 3 respectively.  Normally ASTMM_BLOCK
is the correct option, so it is default when ASTMM_LIBC is not defined.
In some cases when building 3rd party code it is desirable to have it use
Asterisk functions, without changing the whole source - ASTMM_REDIRECT
accomplishes this.  When using 3rd party libraries sometimes a static
inline function will make use of malloc or free.  In these cases it may
be unsafe to replace the allocator in the header, as it's possible the
memory could be freed by the library using standard allocators.  For
those cases ASTMM_IGNORE is needed.

Change-Id: I8afef4bc7f3b93914263ae27d3a5858b69663fc7
2015-05-13 21:55:07 -04:00
Rodrigo Ramírez Norambuena eec010829a AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro.
Change-Id: Icf88f9f861c6b2a16e5f626ff25795218a6f2723
2015-05-13 16:34:23 -05:00
Rodrigo Ramírez Norambuena 46bb8449e8 cel/cel_pgsql.c: Use the 'SEP' macro when appending a column name
When appending a column name to the sql buffer, the predicate, "if first is
non-null, use empty string; else, use comma", is identical to the 'SEP' macro
definition. Since they are the same, this patch replaces the redundant
predicate statement with the 'SEP' macro.

Change-Id: Ib8b6138b06a48381723108a05ab8752cb8700509
2015-05-13 15:49:37 -05:00
Joshua Colp 0347465515 Merge "app_voicemail: fix moving when old messages full" 2015-05-13 15:44:30 -05:00
Jonathan Rose 0d97d7cb94 app_voicemail: fix moving when old messages full
When completing voicemail playback of a message in the 'INBOX', the
message gets moved to the 'Old' messages folder. Without this patch, if
the 'Old' folder is already at its set limit, then the 'INBOX' message will
simply be deleted. With this patch, the flag to delete the message will be
removed if the save_to_folder function indicates that the message could
not be moved due to a full folder.

ASTERISK-25082 #close
Reported by: Jonathan Rose
Review: https://gerrit.asterisk.org/#/c/448/

Change-Id: I2be440a09f42e2d06d50975c40d1ad7f836ecb3f
2015-05-13 15:28:36 -05:00
Joshua Colp 4505f5e676 Merge "cdr_pgsql, cel_pgsql: Store maximum buffer size to prevent reallocation" 2015-05-13 15:17:48 -05:00
Joshua Colp 4e482bf901 Merge "cel_pgsql: Add support for setting schema" 2015-05-13 15:17:19 -05:00
Joshua Colp a561a7781f Merge "General: Fix recent menuselect-related cross compile regression" 2015-05-13 14:20:35 -05:00
Joshua Colp 577f15ac5c Merge "res_config_mysql: Fix broken column type checking" 2015-05-13 12:25:59 -05:00
Joshua Colp 3eeba1023b Merge "chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision." 2015-05-13 12:24:44 -05:00
Joshua Colp 74165b9d6c Merge "res_rtp_asterisk: Correction for the limit which detects that a packet is DTLS." 2015-05-13 10:38:24 -05:00
Joshua Colp d5acf9f1ea Merge "cdr_pgsql: Use PQescapeStringConn for escaping names." 2015-05-13 04:35:55 -05:00
Richard Mudgett 0bb0d4a603 chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision.
If an ISDN call is hungup by both sides at the same time a crash could
happen.

* Added missing NULL checks for the owner channel after calling
pri_queue_pvt_cause_data() in two places.  Code after those calls need to
check the owner channel pointer for NULL before use because
pri_queue_pvt_cause_data() needs to do deadlock avoidance to lock the
owner and the owner may get hung up.

ASTERISK-21893 #close
Reported by:  Alexandr Gordeev

Change-Id: Ica3e266ebc7a894b41d762326f08653e1904bb9a
2015-05-12 17:43:35 -05:00
Joshua Colp 3858e67dd5 Merge "Allow command-line options to override asterisk.conf." 2015-05-12 11:59:04 -05:00
Joshua Colp 29513333e1 Merge "cdr: standardizes tab for options of AST_MODULE_INFO" 2015-05-12 11:58:30 -05:00
Corey Farrell 57386dcb67 Allow command-line options to override asterisk.conf.
Previous versions of Asterisk processed command-line options before
processing asterisk.conf.  This meant that if an option was set in
asterisk.conf, it could not be overridden with the equivelent command
line option.  This change causes Asterisk to process the command-line
twice.  First it processes options that are needed to load asterisk.conf,
then it processes the remaining options after the config is read.

This changes the function of -X slightly.  Previously using -X without
disabling execincludes in asterisk.conf caused #exec to be usable in any
config.  Now -X only enables #exec for the load of asterisk.conf, if it
is wanted in the rest of the system it must be enabled with execincludes
in asterisk.conf.  Updated 'asterisk -h' and 'man asterisk' to reflect
the limited function of -X.

ASTERISK-25042 #close
Reported by: Corey Farrell

Change-Id: I1450d45c15b4467274b871914d893ed4f6564cd7
2015-05-12 12:44:12 -04:00
George Joseph 52407088f8 sorcery: Add API to insert/remove a wizard to/from an object type's list
Currently you can 'apply' a wizard to an object type but the wizard
always goes at the end of the object type's wizard list.  This patch
adds a new ast_sorcery_insert_wizard_mapping function that allows
you to insert a wizard anyplace in the list.  I.E.  You could
add a caching wizard to an object type and place it before all
wizards.

ast_sorcery_get_wizard_mapping_count and
ast_sorcery_get_wizard_mapping were added to allow examination
of the mapping list.

ast_sorcery_remove_mapping was added to remove a mapping by name.

As part of this patch, the object type's wizard list was converted
from an ao2_container to an AST_VECTOR_RW.

A new test was added to test_sorcery for this capability.

ASTERISK-25044 #close

Change-Id: I9d2469a9296b2698082c0989e25e6848dc403b57
2015-05-12 11:04:02 -05:00
Corey Farrell cc853dcf90 Fix processing of asterisk.conf debug=yes.
The code which reads asterisk.conf supports processing the debug
option with ast_true, but ast_true returns -1.  This causes debug
to still be off, convert to 1 so debug will be on as requested.

ASTERISK-25042
Reported by: Corey Farrell

Change-Id: I3c898b7d082d914b057e111b9357fde46bad9ed6
2015-05-12 09:37:20 -05:00
Sebastian Kemper c624e4bae1 General: Fix recent menuselect-related cross compile regression
MAKE_MENUSELECT currently sets CC to CC, which is the compiler for the
target platform. But menuselect is to be run on the build system, so
BUILD_CC needs to be used instead - like it was in the past, before the
recent changes (https://reviewboard.asterisk.org/r/4370/). This is the
patch for ASTERISK-25074.

ASTERISK-25074 #close
Reported by: Sebastian Kemper
Tested by: Sebastian Kemper

Change-Id: I8a2b1fc5deb6ad2b80f49baca35b1b13d468ebf8
2015-05-12 08:01:27 -05:00
Joshua Colp 58d0db347e Merge "vector: Add REMOVE, ADD_SORTED and RESET macros" 2015-05-12 05:39:08 -05:00
Rodrigo Ramírez Norambuena e6daafb8a6 cdr_pgsql, cel_pgsql: Store maximum buffer size to prevent reallocation
The code previously used a fixed size of 512 for the SQL
queries. Depending on the size this may require it to grow.

This change makes it so if the buffer size does grow the size
is stored and next time the buffer will be large enough.

Change-Id: I55385899f1c06dee47e4274c2d21538037b2d895
2015-05-12 05:11:39 -05:00
Joshua Colp 9bb9d22563 Merge "pbx/pbx_spool: Fix issue when call files were executed too early" 2015-05-12 05:06:23 -05:00
Joshua Colp 4f84142c94 Merge "dns_srv: Fix SRV sorting when records with priority zero exist with non-zero." 2015-05-12 04:59:19 -05:00
George Joseph 87d8b36755 vector: Add REMOVE, ADD_SORTED and RESET macros
Based on feedback from Corey Farrell and Y Ateya, a few new
macros have been added...

AST_VECTOR_REMOVE which takes a parameter to indicate if
order should be preserved.

AST_VECTOR_ADD_SORTED which adds an element to
a sorted vector.

AST_VECTOR_RESET which cleans all elements from the vector
leaving the storage intact.

Change-Id: I41d32dbdf7137e0557134efeff9f9f1064b58d14
2015-05-11 15:49:06 -05:00
Ivan Poddubny e6ebddd9ae pbx/pbx_spool: Fix issue when call files were executed too early
pbx_spool used to delete/move the call file upon successful outgoing
call completion, but did not delete it from in-memory list of files
(dirlist, used only when compiled with inotify/kqueue support).
That resulted in an extra attempt to process that filename after
retrytime seconds.
Then, if a new file with the same name appears that is scheduled
in future further than the completed one plus its retrytime,
then it gets executed earlier than expected.

This patch fixes remove_from_queue function to also remove the entry
from the dirlist.

ASTERISK-17069 #close
Reported by: Jeremy Kister

ASTERISK-24442 #close
Reported by: tootai

Change-Id: If9ec9b88073661ce485d6b008fd0b2612e49a28b
2015-05-11 20:34:11 +00:00
Joshua Colp 4da2934592 Merge "main/asterisk.c: Update Asterisk copyright year" 2015-05-11 14:44:52 -05:00
Joshua Colp 4907209823 Merge "utils: Remove trailing whitespace" 2015-05-11 14:43:05 -05:00
Rodrigo Ramírez Norambuena c61b146238 cdr_pgsql: Use PQescapeStringConn for escaping names.
Use function PQescapeStringConn for escaping the name
of the table and schema instead of doing it manually.

Change-Id: I6709165e2d00463e9c813d24f17830ad4910b599
2015-05-11 07:42:22 -05:00
Joshua Colp 7b7bef722c Merge "Fix error's produced by astmm.h when standard allocators are used." 2015-05-11 05:34:06 -05:00
Yousf Ateya 2ab5d22c0d res_rtp_asterisk: Correction for the limit which detects that a packet is DTLS.
First byte of DTLS packet shall be in range 20-63, not 20-64. Refer to RFC
https://tools.ietf.org/html/rfc5764#section-5.1.2 for correct values.

Change-Id: Iae6fa0d72b37c36a27fe40686e0ae6fba3afec31
2015-05-10 16:28:26 +02:00
Joshua Colp f82bd76e3c dns_srv: Fix SRV sorting when records with priority zero exist with non-zero.
The DNS SRV sorting code currently has an issue when records with a priority
of zero exist with records of a non-zero priority. This occurs because the
sorting code considers zero to mean unset when in reality is a valid
value. If the current priority is zero it will get replaced with any remaining
record that has a priority of non-zero, until no records of those exist after
which the records of priority zero are handled.

This change makes it so that the priority of the first remaining record is
the current starting priority. There is also a small optimization to prevent
iterating records when the starting priority is already zero.

Change-Id: I103511f35b50428f770bd4db3ffef70fb6f82d35
2015-05-10 10:39:32 -03:00
Joshua Colp 4f0d2320d0 Merge "configs/basic-pbx: Modified main IVR to play new Allison prompt." 2015-05-10 08:15:29 -05:00
Matt Jordan 32eb812b28 Merge "Fix crash in codec_lpc10 when MALLOC_DEBUG is enabled." 2015-05-08 23:33:36 -05:00
Alexandre Fournier 1503d0c14c res_config_mysql: Fix broken column type checking
MySQL configuration engine contains a bug in require_mysql(). This
function is used for column type checking in tables. This bug only
affects DATETIME, DATE and FLOAT types.

It came from mixing the first condition (switch-case-like
if/then/else), to check the expected column type, with the second
condition, to check the actual column type against the expected column
type. Both conditions must be checked separately in order to avoid the
execution of the wrong block.

ASTERISK-18252 #comment This patch might fix the issue
Reported by: Gareth Blades

ASTERISK-25041 #close
Reported by: Alexandre Fournier
Tested by: Alexandre Fournier

Change-Id: I0b8bf7e68ab938be8e6525a249260cb648cb0bfa
2015-05-09 01:01:26 +02:00
Rusty Newton 5e361e1476 configs/basic-pbx: Modified main IVR to play new Allison prompt.
The main IVR was playing demo-congrats. I've switched it over to the
basic-pbx-ivr-main file that we added in core sounds 1.4.27. This prompt
has Allison prompting the user with the actual IVR menu.

ASTERISK-24892 #close

Change-Id: Ifb749616ff8e156a1031ddaddfcc9244767a095d
2015-05-08 14:47:51 -05:00
Corey Farrell 2d4dc0c963 Fix error's produced by astmm.h when standard allocators are used.
astmm.h includes defines that are meant to cause error's when standard
allocators (malloc, calloc, free, etc) are used.  It actually only
causes a warning, which is not always caught on certain sources.  In
modules this unknown symbol is not detected until runtime, where the
module fails to load.  This modifies the define's so that using one
of the blocked functions will cause a compile error regardless of
CFLAGS.

Moved spandsp header includes to before asterisk.h so the static inline
functions can continue using malloc and free.  Although these functions
are never called and optimized away, the updated replacement macro's
would still cause a failure.

Change-Id: I532640aca0913ba9da3b18c04a0f010ca1715af5
2015-05-08 15:38:03 -04:00
Sean Bright 63c71c9f4a res_rtp_asterisk: Issue ERROR if res_srtp is not found.
While trying to get WebRTC working with chan_pjsip, I was running
into the following error:

    Attempted to set an invalid DTLS-SRTP configuration on RTP
    instance...

Josh helpfully pointed out that res_srtp.so might not be loaded, and
sure enough, it wasn't. This patch adds a ERROR indiciating as much
to hopefully help others having a similar problem.

Change-Id: I13aa477b47b299876728a21b130998a0ea6cd19f
2015-05-08 13:34:18 -05:00