Files
asterisk/ChangeLog
Asterisk Autobuilder 5f2fc8aa90 Importing files for 12.0.0-alpha2 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/12.0.0-alpha2@400589 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-10-05 00:46:22 +00:00

19190 lines
968 KiB
Plaintext

2013-10-04 Asterisk Development Team <asteriskteam@digium.com>
* Asterisk 12.0.0-alpha2 Released.
2013-10-04 21:40 +0000 [r400567] Michael L. Young <elgueromexicano@gmail.com>
* channels/iax2/parser.c, main/netsock.c, main/netsock2.c,
channels/iax2/include/parser.h, main/acl.c,
include/asterisk/netsock2.h, CHANGES, channels/chan_iax2.c: Add
IPv6 Support To chan_iax2 This patch adds IPv6 support to
chan_iax2. Yay! (closes issue ASTERISK-22025) Patches:
iax2-ipv6-v5-reviewboard.diff by Michael L. Young (license 5026)
Review: https://reviewboard.asterisk.org/r/2660/
2013-10-04 19:31 +0000 [r400552] David M. Lee <dlee@digium.com>
* rest-api/api-docs/applications.json (added): Added missing file
from r400522
2013-10-04 18:42 +0000 [r400532-400542] Jonathan Rose <jrose@digium.com>
* res/res_pjsip_logger.c: chan_pjsip: Make logger togglable without
loading/unloading This patch makes the res_pjsip_logger do a few
things... First, it will be built and installed by default now,
so end users won't need to enable it in menuselect. Second, while
it is loaded, it no longer will immediately issue log messages.
Upon loading, it is in the disabled state and must be turned on
with the new CLI command. The CLI command 'pjsip set logger
<on/off/host> has been added and can be used to do the following:
pjsip set logger on: Enables logger for all PJSIP traffic pjsip
set logger off: Disables logger for all PJSIP traffic pjsip set
logger host <host>: Enables logger for the specific host Review:
https://reviewboard.asterisk.org/r/2900/
* configs/extconfig.conf.sample, configs/sorcery.conf.sample,
contrib/ast-db-manage/config/versions/43956d550a44_add_tables_for_pjsip.py
(added),
contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py:
chan_pjsip: Add alembic scripts for generating db tables for
PJSIP Also updates sample configurations for sorcery and
extconfig to demonstrate how to use databases created by that
alembic script. (closes issue ASTERISK-22133) Reported by: Matt
Jordan Review: https://reviewboard.asterisk.org/r/2892/
2013-10-04 15:54 +0000 [r400522] Matthew Jordan <mjordan@digium.com>
* res/ari.make, res/ari/resource_applications.c (added),
res/ari/resource_applications.h (added), res/res_stasis.c,
main/asterisk.c, rest-api/api-docs/endpoints.json,
rest-api/api-docs/events.json, res/stasis/app.c,
include/asterisk/endpoints.h,
rest-api-templates/ari_model_validators.h.mustache,
res/res_ari_applications.c (added), res/ari/resource_endpoints.h,
include/asterisk/stasis_app.h, res/stasis/app.h,
rest-api/resources.json, include/asterisk/_private.h,
main/endpoints.c, res/ari/ari_model_validators.c,
res/ari/ari_model_validators.h, res/res_ari_model.c, main/json.c:
ARI: Add subscription support This patch adds an /applications
API to ARI, allowing explicit management of Stasis applications.
* GET /applications - list current applications * GET
/applications/{applicationName} - get details of a specific
application * POST /applications/{applicationName}/subscription -
explicitly subscribe to a channel, bridge or endpoint * DELETE
/applications/{applicationName}/subscription - explicitly
unsubscribe from a channel, bridge or endpoint Subscriptions work
by a reference counting mechanism: if you subscript to an event
source X number of times, you must unsubscribe X number of times
to stop receiveing events for that event source. Review:
https://reviewboard.asterisk.org/r/2862 (issue ASTERISK-22451)
Reported by: Matt Jordan
2013-10-04 15:48 +0000 [r400510-400520] Joshua Colp <jcolp@digium.com>
* res/res_pjsip.c: Enclose the To URI and update its user portion
if a request user has been specified.
* res/res_pjsip_session.c: Replace the connection address at the
SDP level if altering the SDP with the external media address.
2013-10-04 04:54 +0000 [r400508] David M. Lee <dlee@digium.com>
* rest-api/api-docs/playback.json, res/res_ari_playback.c:
Corrected response class for stopPlayback
2013-10-03 23:11 +0000 [r400471] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Don't ignore expires value in
contact header if it lacks semicolon (closes issue
ASTERISK-22574) Reported by: Filip Jenicek Patches:
chan_sip_expires.patch uploaded by Filip Jenicek (license 6277)
........ Merged revisions 400469 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400470 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-10-03 21:40 +0000 [r400460] Matthew Jordan <mjordan@digium.com>
* main/channel_internal_api.c: Remove publication of a channel
snapshot when the technology is set This patch removes said
publication for a few reasons: (1) It is unnecessary. Association
of the channel technology with a specific channel is an
implementation detail that should be assumed to "just happen",
and consumers of Stasis don't need to be informed about it. (2)
Publication of said message can now cause crashes, as the actual
creation of a channel in normal locations now stages its
messages. As a result, things that create dummy channels (such as
the SIP RTP QOS unit test) and associate them with a channel
technology were now crashing, as the channel itself was not known
by Stasis.
2013-10-03 19:31 +0000 [r400442] Joshua Colp <jcolp@digium.com>
* main/cdr.c: When serializing CDR variables (like for "core show
channels") don't output an error if CDRs aren't enabled.
2013-10-03 19:29 +0000 [r400440] Kinsey Moore <kmoore@digium.com>
* /, main/security_events.c: Fix security events for AMI invalid
password In r337595, additional security events were added for
chan_sip authentication failures. The new IEs added to the
existing invalid password event were defined as required IEs, but
existing users of the event did not set the new IEs and could not
since they didn't apply to existing uses. They are now marked as
optional IEs. (closes issue ASTERISK-22578) Reported by: Matt
Jordan ........ Merged revisions 400421 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-10-03 19:11 +0000 [r400403] Mark Michelson <mmichelson@digium.com>
* include/asterisk/bridge_technology.h,
bridges/bridge_native_rtp.c: Fix assumption in
bridge_native_rtp.c regarding number of participants in a bridge.
When a party leaves a bridge, there may be more participants in
the bridge than expected. As such, it is important not to make
assumptions regarding the list of channels in a bridge. This
change makes it so that when a party leaves a native RTP bridge,
we unbridge it and the party it was bridged with. Previously, the
first and last channels in the list were unbridged since it was
assumed that these were the two channels that had been bridged.
As previously stated, a new party had been inserted into the
bridge, so this logic did not work properly. (closes issue
ASTERISK-22615) reported by Matt Jordan (closes issue
ASTERISK-22532) reported by Matt Jordan Review:
https://reviewboard.asterisk.org/r/2899
2013-10-03 19:05 +0000 [r400401] Joshua Colp <jcolp@digium.com>
* res/ari/resource_channels.c: Fix a crash caused by muting and
unmuting a channel in ARI without specifying a direction. (closes
issue ASTERISK-22637) Reported by: Scott Griepentrog Patch by
Matt Jordan, whose office I have taken over in the name of
Canada.
2013-10-03 18:44 +0000 [r400398] Richard Mudgett <rmudgett@digium.com>
* main/cel.c: cel: Some whitespace cleanups
2013-10-03 18:28 +0000 [r400384-400395] Kinsey Moore <kmoore@digium.com>
* res/res_rtp_multicast.c, /: Ensure res_rtp_mutlicast sets SSRC
properly This fixes a bug where the SSRC field on multicast RTP
can be stuck at 0 which can cause problems for endpoints trying
to make sense of incoming streams. (closes issue ASTERISK-22567)
Reported by: Simone Camporeale Patches:
22567_res_mulitcast_ssrc.patch uploaded by Simone Camporeale
(License 6536) ........ Merged revisions 400393 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400394 from
http://svn.asterisk.org/svn/asterisk/branches/11
* configure, include/asterisk/autoconfig.h.in, configure.ac,
main/xml.c: Detect and use xsltCleanupGlobals when available This
introduces usage of an additional libxslt cleanup function,
xsltCleanupGlobals, when the configure script detects that it is
available. Early versions of the library did not include this
function. (closes issue ASTERISK-22570) Reported by: Corey
Farrell Patches: xsltCleanupGlobals.patch uploaded by Corey
Farrell (License 5909)
2013-10-03 17:55 +0000 [r400383] Matthew Jordan <mjordan@digium.com>
* contrib/ast-db-manage/config/env.py,
contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py,
contrib/ast-db-manage/voicemail/env.py: Update Alembic database
scripts for external scripting and PostgreSQL, Oracle This patch
does the following: 1) The env scripts have been updated to be
tolerant of a NULL configuration file. This occurs when
configuration is provided by an external script, such that the
actual config.ini file is not used. 2) Enum types have all been
given names. This is needed for PostgreSQL script generation. 3)
The identifier meetme_confno_starttime_endtime is greater than 30
characters, and hence invalid for Oracle databases. This has been
truncated down to meetme_confno_start_end.
2013-10-03 16:22 +0000 [r400373] Richard Mudgett <rmudgett@digium.com>
* channels/chan_vpb.cc: chan_vpb: Make compile again.
2013-10-03 14:56 +0000 [r400362] Mark Michelson <mmichelson@digium.com>
* tests/test_cel.c: Get rid of uses of stasis_topic_wait()
2013-10-03 14:51 +0000 [r400360] Joshua Colp <jcolp@digium.com>
* res/res_pjsip_sdp_rtp.c, res/res_pjsip_t38.c: Fix crashes in
res_pjsip_sdp_rtp and res_pjsip_t38 when a stream is rejected and
external_media_address is set. The callback function for changing
the media address in streams wrongly assumes that a connection
line will always be present. This is false as no line is present
if a stream has been rejected. (closes issue ASTERISK-22645)
Reported by: Rusty Newton
2013-10-02 22:34 +0000 [r400318-400356] Mark Michelson <mmichelson@digium.com>
* tests/test_config.c, channels/chan_nbs.c,
bridges/bridge_native_rtp.c, addons/chan_mobile.c,
channels/chan_pjsip.c, channels/chan_mgcp.c,
res/res_clioriginate.c, channels/chan_unistim.c,
main/rtp_engine.c, channels/chan_multicast_rtp.c, main/ccss.c,
channels/chan_bridge_media.c, apps/app_meetme.c,
main/bridge_basic.c, apps/app_originate.c,
res/parking/parking_applications.c, channels/chan_gtalk.c,
res/ari/resource_bridges.c, channels/chan_jingle.c,
channels/chan_phone.c, channels/chan_dahdi.c, main/dial.c,
pbx/pbx_spool.c, channels/dahdi/bridge_native_dahdi.c,
main/format_cap.c, channels/chan_motif.c, res/res_agi.c,
channels/chan_h323.c, apps/app_confbridge.c, res/res_stasis.c,
addons/chan_ooh323.c, channels/chan_sip.c,
bridges/bridge_holding.c, res/res_pjsip_sdp_rtp.c,
tests/test_format_api.c, bridges/bridge_simple.c,
bridges/bridge_softmix.c, main/core_local.c,
channels/chan_console.c, channels/chan_iax2.c,
channels/chan_oss.c, include/asterisk/format_cap.h,
res/res_pjsip_session.c, main/media_index.c, main/channel.c,
channels/chan_misdn.c, main/manager.c, channels/chan_skinny.c,
main/file.c, res/res_pjsip/pjsip_configuration.c,
channels/chan_alsa.c: Cache string values of formats on
ast_format_cap() to save processing. Channel snapshots have
string representations of the channel's native formats. Prior to
this change, the format strings were re-created on ever channel
snapshot creation. Since channel native formats rarely change,
this was very wasteful. Now, string representations of formats
may optionally be stored on the ast_format_cap for cases where
string representations may be requested frequently. When formats
are altered, the string cache is marked as invalid. When strings
are requested, the cache validity is checked. If the cache is
valid, then the cached strings are copied. If the cache is
invalid, then the string cache is rebuilt and copied, and the
cache is marked as being valid again. Review:
https://reviewboard.asterisk.org/r/2879
* /: Remove svn:mergeinfo property.
* include/asterisk/stasis.h, tests/test_cel.c,
include/asterisk/stasis_endpoints.h, channels/chan_pjsip.c,
main/stasis.c, main/stasis_endpoints.c, main/stasis_wait.c
(removed), res/ari/resource_endpoints.c, /: Remove unnecessary
waits from stasis. Since caches are updated on publisher threads,
there is no need to wait for the cache updates to occur after a
stasis message is published. In the case of chan_pjsip device
state changes, this set of changes caused an improvement to
performance. Review: https://reviewboard.asterisk.org/r/2890
2013-10-02 21:32 +0000 [r400316] Michael L. Young <elgueromexicano@gmail.com>
* channels/chan_iax2.c, /: Cast Integer Argument To Unsigned Char
The member reg in the peercnt structure is an unsigned char and
peercnt_modify() is expecting an unsigned char argument which
gets assigned to peercnt->reg. This patch fixes that by casting
the integer argument being passed to peercnt_modify to unsigned
char. ........ Merged revisions 400314 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400315 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-10-02 21:25 +0000 [r400312] Matthew Jordan <mjordan@digium.com>
* main/manager.c, main/cel.c, main/cdr.c: Only create Stasis
subscriptions when enabled Subscribing to Stasis isn't free. As
such, this patch makes AMI, CDR, and CEL - the "big 3" - only
subscribe when enabled. Toggling their availability via a .conf
file will unsubscribe/subscribe as appropriate. Review:
https://reviewboard.asterisk.org/r/2888/
2013-10-02 20:30 +0000 [r400303] Richard Mudgett <rmudgett@digium.com>
* main/pbx.c: Originate: Make setting caller id on outgoing call
use either name or number. Previous code was requiring both name
and number to be available. Also restored a comment block on why
caller id is also set on an outgoing call leg in addition to
connected line from earlier versions of Asterisk.
2013-10-02 19:19 +0000 [r400291] Kinsey Moore <kmoore@digium.com>
* rest-api/api-docs/asterisk.json: Correct allowable values for ARI
general information filter
2013-10-02 18:57 +0000 [r400286] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Fix the CDR CLI command 'cdr show active {channel}'
When the switch from channel names to channel unique IDs
happened, the poor CLI command got left in the dust. This fixes
the command so that users can once again see how Asterisk is
messing up your billing information.
2013-10-02 18:42 +0000 [r400284] Joshua Colp <jcolp@digium.com>
* res/res_pjsip_t38.c: Fix a crash in res_pjsip_t38 caused by the
wrong assumption that a session will always have a channel. When
starting up or shutting down this assumption is false.
2013-10-02 18:25 +0000 [r400281] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* Makefile, doc/astdb2sqlite3.8 (added), /, doc/astdb2bdb.8
(added): man pages for astdb2bdb and astdb2sqlite3 Review:
https://reviewboard.asterisk.org/r/2898/ ........ Merged
revisions 400279 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-10-02 17:11 +0000 [r400268-400270] Richard Mudgett <rmudgett@digium.com>
* main/utils.c, apps/app_stack.c, res/stasis_recording/stored.c,
main/json.c, main/stasis_cache.c, res/res_ari.c: MALLOC_DEBUG:
Fix some misuses of free() when MALLOC_DEBUG is enabled. * There
were several places in ARI where an external library was
mallocing memory that must always be released with free(). When
MALLOC_DEBUG is enabled, free() is redirected to the MALLOC_DEBUG
version. Since the external library call still uses the normal
malloc(), MALLOC_DEBUG complains that the freed memory block is
not registered and will not free it. These cases must use
ast_std_free(). * Changed calls to asprintf() and vasprintf() to
the equivalent ast_asprintf() and ast_vasprintf() versions
respectively.
* channels/sig_ss7.c: sig_ss7: Fix compiler warnings.
2013-10-02 16:20 +0000 [r400245-400265] Joshua Colp <jcolp@digium.com>
* channels/chan_motif.c, channels/chan_alsa.c,
main/stasis_channels.c, channels/chan_pjsip.c,
channels/sig_ss7.c, channels/chan_mgcp.c,
channels/chan_unistim.c, apps/app_dial.c, main/pbx.c,
channels/chan_sip.c, main/bridge.c, include/asterisk/channel.h,
channels/chan_gtalk.c, channels/chan_console.c,
channels/sig_pri.c, channels/chan_iax2.c, channels/chan_jingle.c,
main/channel.c, main/dial.c, channels/chan_dahdi.c,
include/asterisk/stasis_channels.h, channels/chan_skinny.c:
Reduce channel snapshot creation and publishing by up to 50%.
This change introduces the ability to stage channel snapshot
creation and publishing by suppressing the implicit creation and
publishing that some functions have. Once all operations are
executed the staging is marked as done and a single snapshot is
created and published. Review:
https://reviewboard.asterisk.org/r/2889/
* res/res_pjsip_session.c: Fix a random one way audio issue in
PJSIP. Due to the asynchronous design of the PJMEDIA SDP
negotiator it was possible for the SDP to be negotiated *after* a
channel was created and after it was being wait on by an
application. It is only after negotiation occurs that the file
descriptors for RTP are placed on the channel. Since the channel
was already being waited on these file descriptors were not
monitored, causing incoming media to never be read. This change
wakes up any application waiting on the channel so that added
file descriptors end up being monitored. (closes issue AST-1227)
Reported by: John Bigelow
* res/stasis/control.c, include/asterisk/stasis_app.h,
res/ari/resource_channels.c: Allow specifying a channel to dial
an extension and context in an ARI dial operation. (issue
ASTERISK-22625) Reported by: Scott Griepentrog
* res/res_pjsip_session.c: Retrieve and store the hostname only
once so multiple threads do not potentially initialize it at the
same time.
2013-10-01 21:17 +0000 [r400227-400236] Richard Mudgett <rmudgett@digium.com>
* channels/chan_dahdi.c, channels/sig_analog.c: chan_dahdi: Fix
analog parking using flash-hook. Transferring an analog call
using a flash-hook to parking would fail to park the call and
result in an invalid ao2 object unref. * Park the correct bridged
channel.
* main/features_config.c: Features: Rearm the parking config
options have moved warning for each reload.
2013-10-01 15:48 +0000 [r400217] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Filter out internal channels for bridge leave
messages and parked call messages Granted, if you manage to park
a Conference announcer channel, something has gone horrifically
wrong.
2013-09-30 21:31 +0000 [r400205] Jonathan Rose <jrose@digium.com>
* configs/features.conf.sample, configs/res_parking.conf.sample:
configuration samples: Pull all parking related stuff out of
features.conf This patch also adds documentation for parking from
features.conf to res_parking.conf
2013-09-30 19:57 +0000 [r400194-400196] Matthew Jordan <mjordan@digium.com>
* funcs/func_cdr.c: Parse arguments passed to the CDR_PROP function
correctly I can only blame this on a bad merge, because this in
no way worked properly the way it was written. Mea culpa. The
function should now parse its arguments correctly and function
properly. (Note that the API used by the CDR_PROP function has
working unit tests... this was merely bad coding of the actual
registered function) (closes issue ASTERISK-22613) Reported by:
Private Name
* main/cdr.c: Remove spurious event raised when CDRs are reloaded
The Reload event is now raised by the module loading core. As
such, the Reload event in the CDR engine was a duplicate and not
needed.
2013-09-30 18:48 +0000 [r400178-400181] David M. Lee <dlee@digium.com>
* main/sounds_index.c, channels/sig_pri.c, apps/app_queue.c,
main/cel.c, res/parking/parking_bridge_features.c,
main/stasis_message_router.c, funcs/func_presencestate.c,
apps/confbridge/confbridge_manager.c, res/res_pjsip_mwi.c,
tests/test_stasis.c, res/parking/parking_manager.c,
main/manager_mwi.c, apps/app_voicemail.c, main/stasis_wait.c,
res/stasis/app.c, main/ccss.c, apps/app_meetme.c,
include/asterisk/stasis_internal.h, main/manager_endpoints.c,
main/devicestate.c, res/res_xmpp.c, main/taskprocessor.c,
main/endpoints.c, channels/chan_iax2.c, res/res_jabber.c,
res/res_chan_stats.c, main/stasis.c, main/cdr.c,
main/manager_bridges.c, channels/chan_dahdi.c, main/manager.c,
channels/chan_skinny.c, tests/test_devicestate.c, res/res_agi.c,
tests/test_taskprocessor.c, res/res_stasis_test.c,
main/manager_channels.c, channels/chan_mgcp.c,
res/res_pjsip_refer.c, res/res_security_log.c,
main/stasis_cache.c, main/pbx.c, channels/chan_sip.c,
include/asterisk/taskprocessor.h, include/asterisk/stasis.h,
res/parking/parking_applications.c: Remove dispatch object
allocation from Stasis publishing While looking for areas for
performance improvement, I realized that an unused feature in
Stasis was negatively impacting performance. When a message is
sent to a subscriber, a dispatch object is allocated for the
dispatch, containing the topic the message was published to, the
subscriber the message is being sent to, and the message itself.
The topic is actually unused by any subscriber in Asterisk today.
And the subscriber is associated with the taskprocessor the
message is being dispatched to. First, this patch removes the
unused topic parameter from Stasis subscription callbacks.
Second, this patch introduces the concept of taskprocessor local
data, data that may be set on a taskprocessor and provided along
with the data pointer when a task is pushed using the
ast_taskprocessor_push_local() call. This allows the task to have
both data specific to that taskprocessor, in addition to data
specific to that invocation. With those two changes, the dispatch
object can be removed completely, and the message is simply
refcounted and sent directly to the taskprocessor. Review:
https://reviewboard.asterisk.org/r/2884/
* main/manager_mwi.c, main/stasis_cache_pattern.c,
include/asterisk/vector.h (added), res/stasis/app.c,
main/channel_internal_api.c, include/asterisk/stasis.h,
apps/app_queue.c, main/cel.c, main/stasis.c,
tests/test_stasis_endpoints.c, main/cdr.c,
main/manager_bridges.c, main/manager.c, main/manager_system.c,
tests/test_stasis.c, main/manager_channels.c: Optimize how Stasis
forwards are dispatched This patch optimizes how forwards are
dispatched in Stasis. Originally, forwards were dispatched as
subscriptions that are invoked on the publishing thread. This did
not account for the vast number of forwards we would end up
having in the system, and the amount of work it would take to
walk though the forward subscriptions. This patch modifies Stasis
so that rather than walking the tree of forwards on every
dispatch, when forwards and subscriptions are changed, the
subscriber list for every topic in the tree is changed. This has
a couple of benefits. First, this reduces the workload of
dispatching messages. It also reduces contention when dispatching
to different topics that happen to forward to the same
aggregation topic (as happens with all of the channel, bridge and
endpoint topics). Since forwards are no longer subscriptions, the
bulk of this patch is simply changing stasis_subscription objects
to stasis_forward objects (which, admittedly, I should have done
in the first place.) Since this required me to yet again put in a
growing array, I finally abstracted that out into a set of
ast_vector macros in asterisk/vector.h. Review:
https://reviewboard.asterisk.org/r/2883/
* main/taskprocessor.c, main/sem.c (added), main/stasis.c,
main/stasis_config.c (removed), include/asterisk/taskprocessor.h,
configure, include/asterisk/autoconfig.h.in,
configs/stasis.conf.sample (removed), include/asterisk/sem.h
(added), configure.ac, include/asterisk/stasis.h: Taskprocessor
optimization; switch Stasis to use taskprocessors This patch
optimizes taskprocessor to use a semaphore for signaling, which
the OS can do a better job at managing contention and waiting
that we can with a mutex and condition. The taskprocessor
execution was also slightly optimized to reduce the number of
locks taken. The only observable difference in the taskprocessor
implementation is that when the final reference to the
taskprocessor goes away, it will execute all tasks to completion
instead of discarding the unexecuted tasks. For systems where
unnamed semaphores are not supported, a really simple semaphore
implementation is provided. (Which gives identical performance as
the original taskprocessor implementation). The way we ended up
implementing Stasis caused the threadpool to be a burden instead
of a boost to performance. This was switched to just use
taskprocessors directly for subscriptions. Review:
https://reviewboard.asterisk.org/r/2881/
2013-09-30 15:55 +0000 [r400141] Kinsey Moore <kmoore@digium.com>
* CHANGES, /, channels/chan_sip.c, configs/pjsip.conf.sample,
res/res_pjsip_outbound_registration.c, configs/sip.conf.sample:
Allow Asterisk to retry after 403 on register This adds a global
option in chan_sip to allow it to continue attempting
registration if a 403 is received, clearing the cached nonce and
treating it as a non-fatal response. Normally, this would cause
registration attempts to that endpoint to stop. This also adds a
similar per-outbound-registration option to chan_pjsip which
allows the retry interval to be altered for 403 responses to
REGISTER requests. (closes issue ASTERISK-17138) Review:
https://reviewboard.asterisk.org/r/2874/ Reported by: Rudi
........ Merged revisions 400137 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400140 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-30 15:24 +0000 [r400138] David M. Lee <dlee@digium.com>
* include/asterisk/stasis_message_router.h,
res/res_pjsip/include/res_pjsip_private.h, tests/test_stasis.c,
main/astobj2.c, main/stasis.c, main/stasis_message_router.c,
main/taskprocessor.c: Stasis performance improvements This patch
addresses several performance problems that were found in the
initial performance testing of Asterisk 12. The Stasis dispatch
object was allocated as an AO2 object, even though it has a very
confined lifecycle. This was replaced with a straight
ast_malloc(). The Stasis message router was spending an
inordinate amount of time searching hash tables. In this case,
most of our routers had 6 or fewer routes in them to begin with.
This was replaced with an array that's searched linearly for the
route. We more heavily rely on AO2 objects in Asterisk 12, and
the memset() in ao2_ref() actually became noticeable on the
profile. This was #ifdef'ed to only run when AO2_DEBUG was
enabled. After being misled by an erroneous comment in
taskprocessor.c during profiling, the wrong comment was removed.
Review: https://reviewboard.asterisk.org/r/2873/
2013-09-28 22:56 +0000 [r400058-400121] Matthew Jordan <mjordan@digium.com>
* configs/pjsip_notify.conf.sample (added), res/res_pjsip_notify.c:
res_pjsip_notify: Add documentation We forgot to add
documentation for res_pjsip_notify, which would prevent it from
being loaded. Whoops. This patch also updates res_pjsip_notify to
use pjsip_notify.conf, which now has its own sample file in the
configs directory as well. Review:
https://reviewboard.asterisk.org/r/2835/
* /, res/res_rtp_asterisk.c: res_rtp_asterisk: Correct erroneous
lost packet information in RTCP reports RTCP's calculation of the
number of lost packets in an RTP stream is based on that stream's
sequence number count, the number of received packets, and how
many packets we expect to receive. When the SSRC for an RTP
stream changes, there can - and almost always will be - a large
jump in the next packet's timestamp and sequence number. If we
don't reset the number of received packets, sequence number
count, and other metrics used by RTCP, the next RR/SR report will
use the previous SSRC's values to calculate the lost packet count
for the new SSRC - resulting in a very large number of lost
packets. This patch modifies res_rtp_asterisk such that, if it
detects a SSRC change, it will reset the various values used by
the RTCP calculations. From the perspective of RTCP, this appears
as a new media stream - which is what it is. Review:
https://reviewboard.asterisk.org/r/2886/ (closes issue AST-1174)
Reported by: Thomas Arimont ........ Merged revisions 400089 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400093 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, configure, configure.ac: Add check for openSUSE when detecting
bfd library In ASTERISK-17842, some additional library checks
were added to the configure script so that the bfd library could
be found on CentOS and Fedora systems. As it turns out, openSUSE
requires an additional library. This patch adds another check to
the configure script for openSUSE that will add that library.
Review: https://reviewboard.asterisk.org/r/2885/ (closes issue
AST-1169) Reported by: Guenther Kelleter ........ Merged
revisions 400073 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400075 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/cdr.c: CDR: Improve handling of parking; resolve assertion
when originating into park This patch covers two problems: 1)
Currently, when a call is transferred into a parking lot from a
bridge (using either the blind transfer or one touch parking
mechanisms), the application fails to be set to "Park" in the
resulting CDR record for the parked channel. This is due to the
ParkedCall message arriving before the BridgeEnter for the
channel entering the parking bridge. The ParkedCall message isn't
handled as the CDR for the channel has already been finalized
(due to the channel having left its two party bridge), and the
BridgeEnter - which creates the new CDR - doesn't have the
parking information. This patch modifies the behavior so that
reception of a ParkedCall message will - if not handled by a CDR
chain - cause a new CDR to be created and put into the Parking
state. 2) It fixes a FRACK that occurred when a channel is
originated into a parking space. The DialedPending state - which
occurs for both Dialed and Originated channels - assumed that it
couldn't handle the parking transitions due to it having a Party
B; however, Originated channels don't have a Party B. As such,
the existing CDR needs to transition into the parking state -
this patch does that. Review:
https://reviewboard.asterisk.org/r/2877/ (closes issue
ASTERISK-22482) Reported by: Richard Mudgett
* apps/app_queue.c: app_queue: Make manager events tolerant of
Local channel shenanigans app_queue currently attempts to handle
Local channel optimizations in an effort to provide accurate
information in Stasis messages (and their corresponding AMI
events) as well as the Queue log. Sometimes, however, things
don't go as planned. Consider the following scenario: SIP/foo <->
L;1 <-> L;2 <-> SIP/agent SIP/agent answers, triggering a Local
channel optimization. app_queue will normally do the following: *
Listen for the Local optimization events and update our agent
accordingly to SIP/agent in the queue log and messages * When we
get a hangup, publish the AgentComplete event based on our
information (SIP/foo and SIP/agent) However, as with all things
that depend on sanity from something as capricious as Local
channels, things can go wrong: (1) SIP/agent immediately hangs up
upon answering. This triggers a race condition between
termination messages coming from SIP/agent and the ongoing Local
channel optimization messages. (Note that this can also occur
with SIP/foo) (2) In a race condition, Asterisk can (rarely)
deliver the hangup messages prior to the Local channel
optimization. In that case, the messages *may* arrive to
app_queue in the following order: * Hangup SIP/Agent * Hangup
SIP/foo * Optimize L;1/L;2 * Hangup L;2 * Hangup L;1 When
app_queue receives the hangup of the agent or the caller, it will
attempt to publish the AgentComplete event. However, it now has a
problem - it thinks its agent is the ;1 side of the Local
channel, as it never received the optimization event. At the same
time, that channel is already gone. This results in getting NULL
from the Stasis cache. What's more, we can't really wait for the
optimization message, as we are currently handling the hangup of
the channel that the optimization event would tell us to use.
This patch modifies the behavior in app_queue such that, since we
still have a lot of pertinent queue information (interface, queue
name, etc.), we now raise the event with what information we
know. The channels involved now may or may not be present. Users
will still at least get the "AgentComplete" event, which
"completes" the known Agent information. Review:
https://reviewboard.asterisk.org/r/2878/ (closes issue
ASTERISK-22507) Reported by: Richard Mudgett
* main/manager.c: manager: Fix crash when appending a manager
channel variable In r399887, a minor performance improvement was
introduced by not allocating the manager variable struct if it
wasn't used. Unfortunately, when directly accessing an
ast_channel struct, manager assumed that the struct was always
allocated. Since this was no longer the case, things got a bit
crashy. This fixes that problem by simply bypassing appending
variables if the manager channel variable struct isn't there.
2013-09-27 21:56 +0000 [r400015-400020] Richard Mudgett <rmudgett@digium.com>
* res/res_parking.c, apps/app_cdr.c: app_cdr and res_parking: Fix
some resource leaks. * app_cdr left the ResetCDR application
registered. * res_parking leaked a ref to config global. (closes
issue ASTERISK-22566) Reported by: Corey Farrell Patches:
ASTERISK-22566-r2.patch (license #5909) patch uploaded by Corey
Farrell
* /, channels/chan_sip.c, channels/sip/reqresp_parser.c: chan_sip:
Increase some scratch buffer sizes dealing with caller id. *
Eliminated an unnecessary initialization in check_user_full().
(closes issue ASTERISK-22477) Reported by: Michael Shepelev
........ Merged revisions 400013 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 400014 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-27 18:26 +0000 [r399990] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip_session.c, include/asterisk/res_pjsip.h,
res/res_pjsip.exports.in, res/res_pjsip.c: res_pjsip: crash when
using localnet and external_signaling_address options There was a
collision of mod_data use on the transaction between using a nat
hook and an session response callback. During state change it was
assumed what was in the mod_data was nothing or the response
callback. However, it was possible for it to also contain a nat
hook thus resulting in a bad cast and a crash. Added the ability
to store multiple data elements in mod_data via a hash table. In
this instance, mod_data now stores a hash table of the two values
that can be retrieved using an associated string key. (closes
issue ASTERISK-22394) Reported by: Rusty Newton Review:
https://reviewboard.asterisk.org/r/2843/
2013-09-27 17:34 +0000 [r399976] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c, channels/sip/include/sip.h: chan_sip:
Reject calls on 200 OKs if no SDP has been received When Asterisk
receives a 200 OK in response to an invite, that peer should have
sent an SDP at some point by then. If the channel has never
received an SDP, media won't have been set and the remote address
won't be known. Endpoints in general should not be doing this.
This patch makes it so that Asterisk will simply hang up a call
if it sends a 200 OK at this point. So far this odd behavior for
endpoints has only been observed in tests which involved manually
created SIP transactions in SIPp. (closes issue ASTERISK-22424)
Reported by: Jonathan Rose Review:
https://reviewboard.asterisk.org/r/2827/ ........ Merged
revisions 399939 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399962 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-27 17:03 +0000 [r399937] Richard Mudgett <rmudgett@digium.com>
* tests/test_astobj2.c, main/astobj2.c, include/asterisk/astobj2.h:
astobj2: Remove OBJ_CONTINUE support. OBJ_CONTINUE was a strange
feature that came into the world under suspicious circumstances
to support an abuse of the ao2_container by chan_iax2. Since
chan_iax2 no longer uses OBJ_CONTINUE, it is safe to remove it.
The simplified code should help performance slightly and make
understanding the code easier. Review:
https://reviewboard.asterisk.org/r/2887/
2013-09-27 14:29 +0000 [r399924] Mark Michelson <mmichelson@digium.com>
* bridges/bridge_native_rtp.c: Fix refleaks of ast_rtp_instance
structures. These refleaks were causing bridged calls not to
close their RTP ports. Thus a call would leave open 4 ports (RTP
for party A, RTCP for party A, RTP for party B, and RTCP for
party B). This led to an eventual depletion of available RTP
ports.
2013-09-27 14:01 +0000 [r399912] Kinsey Moore <kmoore@digium.com>
* include/asterisk/cel.h, tests/test_cel.c, main/cel.c: Restore
usefulness of the CEL Peer field This change makes the CEL peer
field useful again for BRIDGE_ENTER and BRIDGE_EXIT events and
fills the field with a comma-separated list of all channels in
the bridge other than the channel that is entering or exiting the
bridge. Review: https://reviewboard.asterisk.org/r/2840/ (closes
issue ASTERISK-22393)
2013-09-26 18:48 +0000 [r399897] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip_registrar.c, include/asterisk/res_pjsip.h,
res/res_pjsip.exports.in, res/res_pjsip/security_events.c: pjsip:
race condition in registrar While handling a registration request
a race condition could occur if/when two+ clients registered at
the same time. This happened when one request obtained a copy of
the current contacts for an AOR and another request did the same
before the first request updated. Thus the second would update
and overwrite the first (or vice-versa depending on which
actually updated first). In the case of it being the same contact
two "add" events would be raised. pjsip registration handling is
now serialized to alleviate this issue. (closes issue AST-1213)
Reported by: John Bigelow Review:
https://reviewboard.asterisk.org/r/2860/
2013-09-26 15:41 +0000 [r399887] David M. Lee <dlee@digium.com>
* main/channel.c: Minor performance bump by not allocate manager
variable struct if we don't need it
2013-09-26 14:12 +0000 [r399874] Rusty Newton <rnewton@digium.com>
* apps/app_dial.c: Adding a few words to the Dial option 'r' help
text to clarify its tone argument description
2013-09-25 20:36 +0000 [r399842] Richard Mudgett <rmudgett@digium.com>
* /, channels/sig_ss7.c, channels/chan_dahdi.c: chan_dahdi: CLI
"core stop gracefully" has needless delay for PRI and SS7. The
PRI and SS7 link control threads are not stopped correctly when
the chan_dahdi.so module is unloaded. The link control threads
pri_dchannel() and ss7_linkset() are not awakened from a poll()
to cancel the thread. * Added a SIGURG signal after requesting
the thread cancel to break the link control thread poll()
immediately. For SS7 it was slightly worse, the link poll()
timeout would always be whatever was the last libss7 scheduled
event time used. If no libss7 scheduled event was pending, the
thread could run more often than necessary. * Set nextms to 60
seconds for the ss7_linkset() poll() if there is no other libss7
scheduled event. ........ Merged revisions 399818 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399834 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-25 19:40 +0000 [r399798] Rusty Newton <rnewton@digium.com>
* res/res_pjsip.c: Broke the build - Fixing XML DTD violation added
in r399782, missing <para> tags inside a <note>
2013-09-25 19:28 +0000 [r399796] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix Realtime Peer Update Problem When
Un-registering And Expires Header In 200ok 1st Issue When a
realtime peer sends an un-REGISTER request, Asterisk un-registers
the peer but the database table record still has regseconds and
fullcontact for the peer. This results in calls attempting to be
routed to the peer which is no longer registered. The expected
behavior is to get busy/congested when attempting to call an
un-registered peer through the dialplan. What was discovered is
that we are clearing out the peer's registration in the database
in parse_register_contact() when calling expire_register() but
then upon returning from parse_register_contact(), update_peer()
is run which stores back in the database table regseconds and
fullcontact. 2nd Issue The reporter pointed out that the 200 ok
being returned by Asterisk after un-registering a peer contains a
Contact header with ;expires= and the Expires header is not set
to 0. This is actually a regression. Tests were created for this
second issue (ASTERISK-22548). The tests have been reviewed and a
Ship It! was received on those tests. This patch does the
following: * Do not ignore the Expires header value even when it
is set to 0. The patch sets the pvt->expiry earlier on in the
function so that it is set properly and used. * If pvt->expiry is
0, do not call update_peer since that means the peer has already
been un-registered and there is no need to update the database
record again since nothing has changed. (closes issue
ASTERISK-22428) Reported by: Ben Smithurst Tested by: Ben
Smithurst, Michael L. Young Patches:
asterisk-22428-rt-peer-update-and-expires-header.diff by Michael
L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2869/ ........ Merged
revisions 399794 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399795 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-25 18:36 +0000 [r399781] Rusty Newton <rnewton@digium.com>
* res/res_pjsip.c: Fixing documentation for the configOption
"external_media_address" of both Endpoints and Transports
Re-using some of Mark Michelson's text from an E-mail discussion
for: * Modifying synopsis for both options * Adding description
to both options * Changing name of "external_media_address" for
Endpoint configuration to "media_address" in anticipation of the
option name being changed. (As it is not really specific to
external destinations) (issue ASTERISK-22405) (closes issue
ASTERISK-22405) Reported by: Rusty Newton Review:
https://reviewboard.asterisk.org/r/2850/
2013-09-24 22:50 +0000 [r399736-399749] Richard Mudgett <rmudgett@digium.com>
* main/astobj2.c: astobj2: Made use OBJ_SEARCH_xxx identifiers as
field enum values internally. * Made ao2_unlink to protect itself
from stray OBJ_SEARCH_xxx values passed in.
* channels/chan_iax2.c, /: chan_iax2: Prevent some needless
breaking of the native IAX2 bridge. * Clean up some twisted code
in the iax2_bridge() loop. * Add AST_CONTROL_VIDUPDATE and
AST_CONTROL_SRCCHANGE to a list of frames to prevent the native
bridge loop from breaking. * Passing the
AST_CONTROL_T38_PARAMETERS frame should also allow FAX over a
native IAX2 bridge. (issue ABE-2912) Review:
https://reviewboard.asterisk.org/r/2870/ ........ Merged
revisions 399697 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399708 from
http://svn.asterisk.org/svn/asterisk/branches/11 For v12 and
above this is really just documentation until IAX2 native
bridging is restored.
2013-09-24 19:22 +0000 [r399666-399695] Matthew Jordan <mjordan@digium.com>
* apps/app_queue.c: app_queue: Don't be quite so aggressive in
initializing the array We only need the first character.
* apps/app_queue.c: app_queue: Initialize array holding MixMonitor
exec options If the channel variable MONITOR_EXEC is set,
app_queue will pass the specified execution parameters to the
MixMonitor application when a queue is recorded. If that channel
variable is not set, the buffer that holds the escaped value was
not being initialized to NULL, and so would be passed to the
MixMonitor application with garbage. Hilarity ensued as
app_mixmonitor attempted to execute gobeldy-gook.
* main/stasis_bridges.c, tests/test_cdr.c, main/cdr.c: Fix a
performance problem CDRs There is a large performance price
currently in the CDR engine. We currently perform two
ao2_callback calls on a container that has an entry for every
channel in the system. This is done to create matching pairs
between channels in a bridge. As such, the portion of the CDR
logic that this patch deals with is how we make pairings when a
channel enters a mixing bridge. In general, when a channel enters
such a bridge, we need to do two things: (1) Figure out if anyone
in the bridge can be this channel's Party B. (2) Make pairings
with every other channel in the bridge that is not already our
Party B. This is a two step process. In the first step, we look
through everyone in the bridge and see if they can be our Party B
(single_state_process_bridge_enter). If they can - yay! We mark
our CDR as having gotten a Party B. If not, we keep searching. If
we don't find one, we wait until someone joins who can be our
Party B. Step 2 is where we changed the logic
(handle_bridge_pairings and bridge_candidate_process).
Previously, we would first find candidates - those channels in
the bridge with us - from the active_cdrs_by_channel container.
Because a channel could be a candidate if it was Party B to an
item in the container, the code implemented multiple
ao2_container callbacks to get all the candidates. We also had to
store them in another container with some other meta information.
This was rather complex and costly, particularly if you have 300
Local channels (600 channels!) going at once. Luckily, none of it
is needed: when a channel enters a bridge (which is when we're
figuring all this stuff out), the bridge snapshot tells us the
unique IDs of everyone already in the bridge. All we need to do
is: For all channels in the bridge: If the channel is us or our
Party B that we got in step 1, skip it Compare us and the
candidate to figure out who is Party A (based on some specific
rules) If we are Party A: Make a new CDR for us, append it to our
chain, and set the candidate as Party B If they are Party A: If
they don't have a Party B: Make a new CDR for them, append us to
their chain, and us as Party B Otherwise: Copy us over as Party B
on their existing CDR. This patch does that. Because we now use
channel unique IDs to find the candidates during bridging,
active_cdrs_by_channel now looks up things using uniqueid instead
of channel name. This makes the more complex code simpler; it
does, however, have the drawback that dialplan applications and
functions will be slightly slower as they have to iterate through
the container looking for the CDR by name. That's a small price
to pay however as the bridging code will be called a lot more
often. This patch also does two other minor changes: (1) It
reduces the container size of the channels in a bridge snapshot
to 1. In order to be predictable for multi-party bridges, the
order of the channels in the container must be stable; that is,
it must always devolve to a linked list. (2) CDRs and the
multi-party test was updated to show the relationship between two
dialed channels. You still want to know if they talked -
previously, dialed channels were always ignored, which is wrong
when they have managed to get a Party B. (closes issue
ASTERISK-22488) Reported by: Richard Mudgett Review:
https://reviewboard.asterisk.org/r/2861/
2013-09-23 12:02 +0000 [r399624] Joshua Colp <jcolp@digium.com>
* res/res_pjsip.c, res/res_pjsip_session.c: Fix crash in res_pjsip
on load if error occurs, and prevent unloading of res_pjsip and
res_pjsip_session. During load time in res_pjsip if an error
occurred the operation would attempt to rollback all operations
done during load. This is not permitted by PJSIP as it will
assert if the operation has not been done. This fix changes the
code so it will only rollback what has been initialized already.
Further changes also prevent res_pjsip and res_pjsip_session from
being unloaded. This is due to limitations within PJSIP itself.
The library environment can only be changed to a certain extent
and does not provide the ability, currently, to deinitialize
certain required functionality. (closes issue ASTERISK-22474)
Reported by: Corey Farrell
2013-09-21 04:48 +0000 [r399576-399607] Richard Mudgett <rmudgett@digium.com>
* res/res_rtp_asterisk.c: res_rtp_asterisk: Fix ref leaks in
ast_rtcp_read(). Moved rtcp_report RAII_VAR declaration into the
loop so it is unref'ed after every loop. Moved message_blob to
loop and switched it to a regular variable. The regular variable
was used since message_blob is used in a very contained way.
(closes issue ASTERISK-22565) Reported by: Corey Farrell Patches:
rtcp_report-leak.patch (license #5909) patch uploaded by Corey
Farrell Tested by: Corey Farrell
* main/media_index.c: media_index: Fix process_description_file()
memory leak of file_id_persist.
* main/features_config.c: features_config: Fix config ref leak of
parkinglots. This leak happend for just about every channel
created.
* apps/app_queue.c: app_queue: Fix json blob ref leak. The json ref
from queue_member_blob_create() was never released.
* main/json.c: json: Make it obvious that ast_json_unref() is NULL
safe. It looked like the safety check was done after the NULL
pointer was used.
2013-09-20 22:41 +0000 [r399565] Kinsey Moore <kmoore@digium.com>
* main/config_options.c, /: Ensure global types in the config
framework are initialized If a config object was allocated but
one of its global objects was never encountered, then the global
object's defaults were never applied. Ensure that global objects
are initialized properly upon allocation instead of on
configuration. Review: https://reviewboard.asterisk.org/r/2866/
........ Merged revisions 399564 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-20 22:04 +0000 [r399553] Jonathan Rose <jrose@digium.com>
* main/dial.c: originate/call forwarding: Fix a crash when
forwarding a call from originate (closes issue ASTERISK-22487)
Reported by: David M. Lee Review:
https://reviewboard.asterisk.org/r/2868/
2013-09-20 16:17 +0000 [r399531] Joshua Colp <jcolp@digium.com>
* channels/chan_pjsip.c: Add a missing session supplement
unregistration in chan_pjsip for ACKs. (closes issue
ASTERISK-22453) Reported by: Corey Farrell Patches:
chan_pjsip_session_unregister_supplement.patch uploaded by Corey
Farrell (license 5909)
2013-09-20 14:25 +0000 [r399514] Kevin Harwell <kharwell@digium.com>
* main/logger.c, /: Memory leak in logger. Fixed a memory leak
discovered in the logger where a temporary string buffer was not
being freed. (closes issue ASTERISK-22540) Reported by: John
Hardin ........ Merged revisions 399513 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-19 23:16 +0000 [r399501] Richard Mudgett <rmudgett@digium.com>
* main/optional_api.c: optional_api: Make always use the standard
malloc functions even with MALLOC_DEBUG.
2013-09-19 16:53 +0000 [r399458] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Make direct media reinvites for
T38 put Asterisk in the media path Prior to this patch, Asterisk
would incorrectly use the previous endpoint addresses in SDP in
spite of providing its own port. T38 is never meant to be done
through directmedia and Asterisk should always be in the media
path for these streams. (closes issue ASTERISK-17273) Reported
by: Kevin Stewart (closes issue ASTERISK-18706) Reported by:
Jeremy Kister Review: https://reviewboard.asterisk.org/r/2853/
........ Merged revisions 399456 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399457 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-18 19:59 +0000 [r399404] Kinsey Moore <kmoore@digium.com>
* /, main/abstract_jb.c: Fix jitter buffer log file creation This
adjusts '/'-to-'#' replacement to replace all instances of '/'
instead of just the first to ensure that the jitter buffer log
file gets the correct name as per Richard Kenner's suggestion.
(closes issue ASTERISK-21036) Reported by: Richard Kenner
........ Merged revisions 399402 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399403 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-18 17:23 +0000 [r399365-399376] Matthew Jordan <mjordan@digium.com>
* /, build_tools/prep_tarball: Update prep_tarball with new
documentation files on the Asterisk wiki This will now pull both
a command reference for the version being prepared, as well as an
Admin Guide that applies to all versions of Asterisk. (issue
ASTERISK-22439) Reported by: Olle Johansson ........ Merged
revisions 399351 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399373 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, bridges/bridge_softmix.c: Add a WARNING in bridge_softmix when
a timing module isn't loaded If bridge_softmix fails to be
created because no timing source is present in Asterisk, this
will currently fail gracefully but with (most likely) a generic
error message by whatever module tried to create the softmix
bridge. This patch adds a more explicit warning so you can
actually diagnose and fix the problem. Review:
https://reviewboard.asterisk.org/r/2857/ ........ Merged
revisions 399353 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-18 14:34 +0000 [r399339] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip_messaging.c: res_pjsip_messaging: Register message
technology as pjsip pjsip's message technology was being
registered as 'sip', which was causing it to not load due it
conflicting with chan_sip's registered 'sip' technology for
messaging. It now registers as 'pjsip'. However, due to this
change the "to" field for outgoing pjsip messages need to be
prefixed with 'pjsip:' instead of 'sip:'. Incoming messages to
res_pjsip_messaging will automatically have their "to" fields
altered in order to accommodate the change. Outgoing messages
also handle changing it back to 'sip' before being sent so the
pjsip library will properly handle it. (closes issue
ASTERISK-22445) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2833/
2013-09-18 00:12 +0000 [r399294] Michael L. Young <elgueromexicano@gmail.com>
* main/features_config.c: Fix Segfault In features-config.c When
Application Has No Arguments Some applications do not require
arguments. Therefore, when parsing application maps in
features.conf, it is possible that app_data will be set to NULL.
* This patch sets app_data to "" if it is NULL. Review:
https://reviewboard.asterisk.org/r/2804
2013-09-17 23:08 +0000 [r399283] Mark Michelson <mmichelson@digium.com>
* include/asterisk/res_pjsip.h, res/res_pjsip_sdp_rtp.c,
res/res_pjsip/pjsip_configuration.c, res/res_pjsip_t38.c: Change
the "external_media_address" PJSIP endpoint option to
"media_address". The endpoint option does not apply to
communication with external entities. Rather, the option is
applied to all communications with the endpoint. The
external_media_address transport configuration option may
override the endpoint option if it turns out that we are going to
be communicating with an external entity. Two things of note: 1)
I have not updated the XML documentation. This is being taken
care of by Rusty as part of his work on issue ASTERISK-22405 2)
This commit is likely to cause testsuite failures since there are
tests that use the external_media_address endpoint option, and
they will need to be changed over. Well, I'm planning to get that
updated ASAP after this commit. (closes issue ASTERISK-22528)
reported by Rusty Newton
2013-09-17 18:37 +0000 [r399268] Kevin Harwell <kharwell@digium.com>
* /, main/logger.c, main/asterisk.c: Remote console: more output
discrepancies The remote console continued to have issues with
its output. In this case CLI command output would either not show
up (if verbose level = 0) or would contain verbose prefixes (if
verbose level > 0) once log messages were sent to the remote
console. The fix now now adds verbose prefix data to all new
lines contained in a verbose log string. (closes issue
ASTERISK-22450) Reported by: David Brillert (closes issue
AST-1193) Reported by: Guenther Kelleter Review:
https://reviewboard.asterisk.org/r/2825/ ........ Merged
revisions 399267 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-17 17:54 +0000 [r399257] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/features_config.h: Fix doxygen to use correct
units of features.conf options.
2013-09-17 17:09 +0000 [r399237-399247] Mark Michelson <mmichelson@digium.com>
* main/bridge_basic.c, main/features_config.c: Fix other timeouts
(atxferloopdelay and atxfernoanswertimeout) to use seconds
instead of milliseconds. Thanks to Richard Mudgett for pointing
this out.
* include/asterisk/features_config.h, main/bridge_basic.c,
main/features_config.c: Switch transferdigittimeout to be
configured as seconds instead of milliseconds. This was an
unintentional consequence of the update of features.conf to use
the config framework in Asterisk 12. Thanks to Marco Signorini on
the Asterisk developers list for pointing out the problem.
2013-09-17 14:48 +0000 [r399225] Kevin Harwell <kharwell@digium.com>
* apps/confbridge/conf_state_multi_marked.c, /: Confbridge: empty
conference not being torn down Confbridge would not properly tear
down an empty conference bridge when all users were kicked via
end_marked=yes and at least one user was also set to wait_marked.
This occurred because while end_marked users were being kicked
and at least one was also set to wait_marked then the leave
wait_marked handler would be called on that user, but there would
be no waiting user (still considered active). The waiting users
would decrement and now be negative. The conference would remain,
but be put into an inactive state. The solution was to move from
the active list to the wait list, those users with wait_marked
set right before kicking. This allows both the active and wait
users to decrement correctly and the confbridge to tear down
properly. A crashed also occurred when trying to list the
specific conference from the CLI. This happened because the
conference specified was invalid. Since the conference properly
tears down now there is no way to reference it thus alleviating
the crash as well. (closes issue ASTERISK-21859) Reported by:
Chris Gentle Review: https://reviewboard.asterisk.org/r/2848/
........ Merged revisions 399222 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-16 18:34 +0000 [r399160-399207] Richard Mudgett <rmudgett@digium.com>
* tests/test_ari_model.c: Fix module load errors for
test_ari_model.so. You cannot use a function pointer variable
with an external function from another dynamically loaded module
because data variables are always resolved even with RTLD_LAZY. *
Added wrapper functions for ast_ari_validate_int() and
ast_ari_validate_string() to use instead for the function pointer
variable. (closes issue ASTERISK-22457) Reported by: David M. Lee
* apps/app_speech_utils.c, res/res_speech.exports.in:
app_speech_utils: Fix unresolved symbol ast_speech_get_setting().
Fixes regression introduced by -r374096. * Made
res_speech.export.in export ast_* symbols instead of specific
functions. * Made app_speech_utils.c declare that it is dependent
upon res_speech. (issue ASTERISK-17136) Reported by: Richard
Kenner
* /, channels/chan_iax2.c: chan_iax2: Fix saving the wrong expiry
time in astdb. When a new IAX2 client registers, the astdb
database is updated with the value of minregexpire defined in
iax.conf instead of using the expiry time that is provided by the
client. The provided expiry time of the client is updated after
inserting the astdb entry. As a consequence, restarting or
reloading asterisk creates clients whose registration may expire
before they reregister. The clients are therefore unavailable
after minregexpire seconds until they reregister. * Move updating
of the expiry time to before inserting into the astdb. (closes
issue ASTERISK-22504) Reported by: Stefan Wachtler Patches:
chan_iax2.c.patch (license #6533) patch uploaded by Stefan
Wachtler ........ Merged revisions 399158 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399159 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-16 02:33 +0000 [r399146] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Filter internal channels out of bridge enter/leave
message handling Some channels exist merely as an implementation
detail in Asterisk, such as ConfBridge's announcer/recorder
channels. These channels should never be exposed to the outside
world, or to interfaces that report on Asterisk. We already
filter out such channels in snapshot processing; however, we
failed to filter out bridge related messages that involved these
channels. This patch filters out bridge related messages that are
for such channels. This prevents a spurious WARNING message from
being displayed when those channels move in and out of bridges.
2013-09-13 22:05 +0000 [r399136] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c, include/asterisk/bridge.h,
apps/confbridge/conf_chan_announce.c, tests/test_cdr.c,
res/res_pjsip_refer.c, channels/chan_sip.c, res/stasis/control.c,
main/bridge.c, main/bridge_basic.c, main/core_unreal.c,
res/parking/parking_applications.c, main/core_local.c,
res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
include/asterisk/features.h, main/channel.c,
include/asterisk/bridge_channel.h, res/parking/parking_tests.c,
main/features.c, tests/test_cel.c: Restore Dial, Queue, and
FollowMe 'I' option support. The Dial, Queue, and FollowMe
applications need to inhibit the bridging initial connected line
exchange in order to support the 'I' option. * Replaced the
pass_reference flag on ast_bridge_join() with a flags parameter
to pass other flags defined by enum ast_bridge_join_flags. *
Replaced the independent flag on ast_bridge_impart() with a flags
parameter to pass other flags defined by enum
ast_bridge_impart_flags. * Since the Dial, Queue, and FollowMe
applications are now the only callers of ast_bridge_call() and
ast_bridge_call_with_flags(), changed the calling contract to
require the initial COLP exchange to already have been done by
the caller. * Made all callers of ast_bridge_impart() check the
return value. It is important. As a precaution, I also made the
compiler complain now if it is not checked. * Did some cleanup in
parking_tests.c as a result of checking the ast_bridge_impart()
return value. An independent, but associated change is: * Reduce
stack usage in ast_indicate_data() and add a dropping redundant
connected line verbose message. (closes issue ASTERISK-22072)
Reported by: Joshua Colp Review:
https://reviewboard.asterisk.org/r/2845/
2013-09-13 20:54 +0000 [r399100] David M. Lee <dlee@digium.com>
* /, main/astobj2.c: Don't write to /tmp/refs when REF_DEBUG is not
defined. If MALLOC_DEBUG is enabled, then the debug destructor
for the container is used, which would erroneously write to
/tmp/refs. This patch only uses the debug destructor if ref_debug
is used. (closes issue ASTERISK-22536) ........ Merged revisions
399098 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 399099 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-13 14:49 +0000 [r399083] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip.c, res/res_pjsip_pubsub.c, res/res_pjsip_session.c,
include/asterisk/res_pjsip.h, res/res_pjsip.exports.in: Create
more accurate Contact headers for dialogs when we are the UAS.
(closes issue AST-1207) reported by John Bigelow Review:
https://reviewboard.asterisk.org/r/2842
2013-09-13 14:25 +0000 [r399064] Rusty Newton <rnewton@digium.com>
* res/res_pjsip_endpoint_identifier_ip.c: Broke the build! Forgot
para tags within my description.
https://bamboo.asterisk.org/bamboo/browse/AST-ATRUNKBUILD-304
2013-09-13 14:24 +0000 [r399059] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip/config_auth.c,
res/res_pjsip_outbound_authenticator_digest.c,
res/res_pjsip_authenticator_digest.c: Change how realms are
handled for outbound authentication. With this change, if no
realm is specified in an outbound auth section, then we will
simply match the realm that was present in the 401/407 challenge.
(closes issue ASTERISK-22471) Reported by George Joseph (closes
issue ASTERISK-22386) Reported by Rusty Newton Patches:
outbound_auth_realm_v4.patch uploaded by George Joseph (License
#6322)
2013-09-13 14:21 +0000 [r399039-399049] David M. Lee <dlee@digium.com>
* res/res_rtp_asterisk.c, res/res_pjsip_log_forwarder.c (added),
res/res_pjsip_logger.c: res_pjsip: Forward PJSIP logging to
Asterisk logging This patch uses PJSIP's pj_log_set_log_func() to
forward PJSIP's log messages to Asterisk's logger. This is done
in a new module: res_pjsip_log_forwarder.so. This patch sets
defaultenabled on the existing res_pjsip_logger.so to no, since
logging every SIP packet seems a bit odd to do by default, and is
(hopefully) less necessary with regular PJSIP logging. It also
removes res_rtp_asterisk's disabling of PJSIP logging. (closes
issue ASTERISK-22360) Reported by: Joshua Colp Review:
https://reviewboard.asterisk.org/r/2830/
* res/res_http_websocket.c: ARI: Fix WebSocket response when
subprotocol isn't specified When I moved the ARI WebSocket from
/ws to /ari/events, I added code to allow a WebSocket to connect
without specifying the subprotocol if there's only one
subprotocol handler registered for the WebSocket. Naively, I
coded it to always respond with the subprotocol in use.
Unfortunately, according to RFC 6455, if the server's response
includes a subprotocol header field that "indicates the use of a
subprotocol that was not present in the client's handshake [...],
the client MUST _Fail the WebSocket Connection_.", emphasis
theirs. This patch correctly omits the Sec-WebSocket-Protocol if
one is not specified by the client. (closes issue ASTERISK-22441)
Review: https://reviewboard.asterisk.org/r/2828/
2013-09-13 13:54 +0000 [r399035] Kinsey Moore <kmoore@digium.com>
* /, apps/app_meetme.c: Fix several crashes in MeetMeAdmin This
change ensures that MeetMeAdmin commands requiring a user
actually get a user and fixes another issue where an extra
dereference could occur for a last-entered user being ejected if
a user identifier was also provided. (closes issue
ASTERISK-21907) Reported by: Alex Epshteyn Review:
https://reviewboard.asterisk.org/r/2844/ ........ Merged
revisions 399033 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 399034 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-13 13:27 +0000 [r399031] Rusty Newton <rnewton@digium.com>
* res/res_pjsip_endpoint_identifier_ip.c: 'identify' configObject
doesn't have a synopsis Add a straightforward synopsis and
description to the identify config object in XML documentation.
(issue ASTERISK-22311) (closes issue ASTERISK-22311) Reported By:
Rusty Newton
2013-09-12 23:41 +0000 [r399019-399021] Richard Mudgett <rmudgett@digium.com>
* main/bridge.c: CLI bridge: Fix "bridge destroy <id>" and "bridge
kick <id> <chan>" tab completion. These two commands must deal
with the live bridges container for tab completion and not the
stasis cache.
* main/bridge.c: astobj2: Register the bridges container for debug
inspection.
2013-09-12 23:21 +0000 [r399017] Rusty Newton <rnewton@digium.com>
* res/res_pjsip_acl.c: Documentation fix and improvements to XML
configuration help res_pjsip_acl * One bug fix. Made the synopsis
for "type" to accurate. * changing the usage of "IP-domains" to
"IP addresses" * clarifying the usage for the options, by adding
a relevant description for each * modified other areas of the XML
help for clarity, such as the module description and a few
synopsis changes here and there. See the patch. (issue
ASTERISK-22458) (closes issue ASTERISK-22458) Reported By: Rusty
Newton Review: https://reviewboard.asterisk.org/r/2823/
2013-09-12 20:20 +0000 [r398991] Jonathan Rose <jrose@digium.com>
* channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip:
Revert r398835 due to failing tests involving originate (issue
ASTERISK-22424) Reported by: Jonathan Rose ........ Merged
revisions 398977 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398986 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-12 16:38 +0000 [r398938] Richard Mudgett <rmudgett@digium.com>
* main/core_unreal.c: core_local: Fix memory corruption race
condition. The masquerade super test is failing on v12 with high
fence violations and crashing. The fence violations are showing
that party id allocated memory strings are somehow getting
corrupted in the bridge_reconfigured_connected_line_update()
function. The invalid string values happen to be the freed memory
fill pattern. After much puzzling, I deduced that the
bridge_reconfigured_connected_line_update() is copying a string
out of the source channel's caller party id struct just as
another thread is updating it with a new value. The copying
thread is using the old string pointer being freed by the
updating thread. A search of the code found the
unreal_colp_redirect_indicate() routine updating the caller party
id's without holding the channel lock. A latent bug in v1.8 and
v11 hatched in v12 because of the bridging and connected line
changes. :) (issue ASTERISK-22221) Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2839/
2013-09-12 15:23 +0000 [r398927] David M. Lee <dlee@digium.com>
* res/res_pjsip.c: Fix symbol collision with pjsua. We shouldn't be
exporting any symbols that start with pjsip_.
2013-09-12 00:04 +0000 [r398882-398886] Rusty Newton <rnewton@digium.com>
* apps/app_queue.c, /: 'queue add member' help text correction You
are adding dial strings to the queue, not channels. An aribitrary
string could be used, but you are typically referencing a
channel. Correcting the command help text. (issue ASTERISK-22263)
(closes issue ASTERISK-22263) Reported By: Rusty Newton ........
Merged revisions 398884 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398885 from
http://svn.asterisk.org/svn/asterisk/branches/11
* configs/chan_dahdi.conf.sample, /: Documentation fix -
waitfordialtone is not boolean, it's time in milliseconds
Changing text in chan_dahdi.conf sample to be accurate. (issue
ASTERISK-22308) (closes issue ASTERISK-22308) Reported By:
Malcolm Davenport ........ Merged revisions 398880 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398881 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-11 19:56 +0000 [r398837] Jonathan Rose <jrose@digium.com>
* channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip:
Reject calls without prior SDP on 200 OK If we receive a 200 OK
without SDP, we will now check to see if the remote address has
been established for that channel's RTP session and if the to tag
for that channel has changed from the most recent to tag in a
response less than 200. If either a change has been made since
the last to-tag was received or the remote address is unset, then
we will drop the call. (closes issue ASTERISK-22424) Reported by:
Jonathan Rose Review:
https://reviewboard.asterisk.org/r/2827/diff/#index_header
........ Merged revisions 398835 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398836 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-11 18:02 +0000 [r398821] Russell Bryant <russell@russellbryant.com>
* configs/confbridge.conf.sample, /: Fix typo in
confbridge.conf.sample The denoise filter requires func_speex,
not codec_speex. Fix this in the description of the denoise=yes
option in confbridge.conf. ........ Merged revisions 398820 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-11 14:14 +0000 [r398806] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip_caller_id.c, channels/chan_pjsip.c: pjsip: reinvite
for connected line updates occurs when it should not Connected
line updates are now only sent out if an actual update needs to
occur. This happens under the following conditions: 1. The
endpoint we are sending to is trusted. 2. Either a
P-Asserted-Identity or Remote Party-ID header needs to be
added/sent. 3. The connected id's number and name are valid. Also
added an SDP when an update is sent out. (closes issue AST-1212)
Reported by: John Bigelow Review:
https://reviewboard.asterisk.org/r/2831/
2013-09-10 18:03 +0000 [r398759] Richard Mudgett <rmudgett@digium.com>
* main/indications.c, main/asterisk.c, main/xmldoc.c, main/cli.c,
/, funcs/func_dialgroup.c, main/heap.c,
res/res_pjsip/pjsip_configuration.c, main/event.c,
res/res_musiconhold.c: Fix incorrect usages of ast_realloc().
There are several locations in the code base where this is done:
buf = ast_realloc(buf, new_size); This is going to leak the
original buf contents if the realloc fails. Review:
https://reviewboard.asterisk.org/r/2832/ ........ Merged
revisions 398757 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398758 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-10 17:49 +0000 [r398750-398754] David M. Lee <dlee@digium.com>
* /, utils/check_expr.c: Fixed utils directory breakage from
r398748, this time with extra hate. ........ Merged revisions
398752 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 398753 from
http://svn.asterisk.org/svn/asterisk/branches/11
* utils/ael_main.c, utils/conf2ael.c, utils/check_expr.c, /: Fixed
utils directory breakage from r398648 ........ Merged revisions
398748 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 398749 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-09 23:23 +0000 [r398726] Richard Mudgett <rmudgett@digium.com>
* /, main/astmm.c: MALLOC_DEBUG: Change fence magic number to be
completely different from the freed magic number. Race conditions
between freeing a nul terminated string and ast_strdup()'ing it
are more likely to be detected if the fence and freed magic
numbers are completely different. ........ Merged revisions
398703 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 398721 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-09 21:59 +0000 [r398694] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_endpoint_identifier_ip.c: Add extra debugging to
res_pjsip_endpoint_identifier_ip
2013-09-09 20:12 +0000 [r398638-398651] David M. Lee <dlee@digium.com>
* main/lock.c, /, main/utils.c, include/asterisk/lock.h: Fix
DEBUG_THREADS when lock is acquired in __constructor__ This patch
fixes some long-standing bugs in debug threads that were
exacerbated with recent Optional API work in Asterisk 12. With
debug threads enabled, on some systems, there's a lock ordering
problem between our mutex and glibc's mutex protecting its module
list (Ubuntu Lucid, glibc 2.11.1 in this instance). In one
thread, the module list will be locked before acquiring our
mutex. In another thread, our mutex will be locked before locking
the module list (which happens in the depths of calling
backtrace()). This patch fixes this issue by moving backtrace()
calls outside of critical sections that have the mutex acquired.
The bigger change was to reentrancy tracking for
ast_cond_{timed,}wait, which wrongly assumed that waiting on the
mutex was equivalent to a single unlock (it actually suspends all
recursive locks on the mutex). (closes issue ASTERISK-22455)
Review: https://reviewboard.asterisk.org/r/2824/ ........ Merged
revisions 398648 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398649 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/ari/resource_channels.h: Added note about expected behavior
of originate (the rest of the commit)
* rest-api/api-docs/channels.json: Added note about expected
behavior of originate
2013-09-08 23:25 +0000 [r398628] Matthew Jordan <mjordan@digium.com>
* tests/test_cdr.c: Update CDR Unit tests to reflect container
changes in r398579 When a channel joins a multi-party bridge, the
ordering of the CDRs that is created is determined by the
ordering of the channels who happen to be in that bridge. When
r398579 changed the number of buckets in the container to
something sensible, it changed the ordering that the CDRs was
created in, causing one of the multiparty tests to fail. This
fixes the test with the now expected ordering.
2013-09-07 01:02 +0000 [r398580-398619] Kinsey Moore <kmoore@digium.com>
* /, res/res_xmpp.c: Prevent XMPP timeout on blank responses
Sometimes the Google Voice servers have a bad habit of sending
out 1 byte replies to the xmpp resource. When a blank 1 byte
reply is received from the socket the buffer attempts to wait
(endlessly) for the rest of the reply from google which
effectively blocks the socket and google voice calls will no
longer come into the server. This patch allows the xmpp module to
correctly detect empty packets and send out ping replies to
google. It also sets a socket timeout on the default socket which
prevents the xmpp socket from closing and preventing future
google voice calls from coming into the server. Furthermore
instead of sending an empty reply back to google we send a proper
xmpp ping reply back. This also adds several more socket
messages. (closes issue ASTERISK-22347) Reported by: Andrew Nagy
Review: https://reviewboard.asterisk.org/r/2771 Patches:
xmpp_fix_1.diff uploaded by Andrew Nagy (License #6524) ........
Merged revisions 398618 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, res/res_xmpp.c, res/res_jabber.c: Multiple revisions
398558,398577 ........ r398558 | kmoore | 2013-09-06 14:28:16
-0500 (Fri, 06 Sep 2013) | 17 lines Fix Jabber/XMPP distributed
MWI The mailbox and context are swapped on the receiving end for
all users of Jabber and XMPP distributed MWI in Asterisk 1.8 and
all more recent versions. This swaps those values to be correct
when publishing to the internal event system from Jabber/XMPP
distributed MWI state. (closes issue ASTERISK-22435) Reported by:
abelbeck Tested by: Michael Keuter Patches:
asterisk-1.8-res_jabber-aji_handle_pubsub_event.patch uploaded by
abelbeck asterisk-11-res_xmpp-xmpp_pubsub_handle_event.patch
uploaded by abelbeck ........ Merged revisions 398523 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
r398577 | kmoore | 2013-09-06 16:00:56 -0500 (Fri, 06 Sep 2013) |
10 lines Commit the remainder of r398523 This is a missing part
of the commit in revision 398523 that corrects the name of a
variable. (issue ASTERISK-22435) ........ Merged revisions 398576
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 398558,398577 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-06 21:16 +0000 [r398579] Richard Mudgett <rmudgett@digium.com>
* main/cdr.c: cdr: Change the number of container buckets to be
similar to the channels container. * Fix the temporary cdr
candidate containers to use a prime number of buckets.
2013-09-06 21:03 +0000 [r398578] Kinsey Moore <kmoore@digium.com>
* /: Unblock r398558
2013-09-06 20:20 +0000 [r398533-398572] Richard Mudgett <rmudgett@digium.com>
* main/core_local.c: core_local: Fix LocalOptimizationBegin AMI
event missing Source channel snapshot. * Fix the
LocalOptimizationBegin AMI event by eliminating an artificial
buffer size limitation that is too small anyway.
* main/cdr.c: cdr: Fix some ref leaks. * Added missing unregister
of the cdr container in cdr_engine_shutdown(). * Fixed ref leak
in off nominal path of cdr_object_alloc(). * Removed some
unnecessary NULL checks in cdr_object_dtor().
* main/cel.c, main/features_config.c, apps/app_agent_pool.c,
main/cdr.c, main/udptl.c, main/parking.c, main/stasis_config.c,
include/asterisk/astobj2.h: astobj2: Add warn unused attribute to
some functions. * Fixed resulting warnings with improper use of
ao2_global_obj_replace(). * Made a couple uses of
ao2_global_obj_replace_unref(x, NULL) into the equivalent and
more appropriate ao2_global_obj_release() call.
2013-09-06 18:49 +0000 [r398511-398521] Kinsey Moore <kmoore@digium.com>
* res/stasis/app.c, main/http.c: Fix build warnings When
AST_DEVMODE is not defined, ast_asserts are not compiled into the
binary. In some cases, this means variables are not referenced or
are set but unused which causes warnings to show up. (closes
issue ASTERISK-22446) Reported by: Jason Parker (qwell)
* /, channels/chan_h323.c: Fix chan_h323 compilation This fixes the
things in chan_h323 that were missed or ignored in the great
channel opaquification and gets chan_h323 back into a compiling
state. (closes issue ASTERISK-22365) Reported by: Dmitry Melekhov
Patches: chan_h323.patch uploaded by Dmitry Melekhov ........
Merged revisions 398510 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-05 21:46 +0000 [r398381-398498] Richard Mudgett <rmudgett@digium.com>
* main/astobj2.c: astobj2: Only define ao2_bt() once. * Make
ao2_bt() not use single char variable names. * Fix ao2_bt()
formatting.
* /, channels/chan_iax2.c: chan_iax2: Reduce indentation in
__attempt_transmit(). * Reduce indentation in
__attempt_transmit(). * Don't update the static last error time
variable every time in __schedule_action() and socket_read().
........ Merged revisions 398456 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398457 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_iax2.c: chan_iax2: Fix stray reference to worker
thread idle_list. * Fix stray reference to idle_list in
cleanup_thread_list(). This may be the reason for the note in
iax2_process_thread() about threads not being removed from the
task lists. * Move cleanup_thread_list(&idle_list) to after the
other lists are cleaned up. ........ Merged revisions 398416 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398417 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_iax2.c: chan_iax2: Fix bridgecallno deadlock
avoidance. * Fix bridgecallno deadlock avoidance. When doing
deadlock avoidance, you need to retest the status of values for
each loop to see if you still need the lock for bridgecallno. *
As a safety check, after acquiring the bridgecallno lock you
should check if iaxs[bridgecallno] is NULL just like the current
callno checks. * Move setting thread->iostate to IAX_IOSTATE_IDLE
to after processing any deferred frames to ensure that the
iostate is IDLE when it is placed back into the idle list.
defer_full_frame() tries to ensure iax2_process_thread() wakes up
to process the frame. ........ Merged revisions 398379 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398380 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-05 14:09 +0000 [r398368] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_outbound_registration.c: Clarify server_uri and
client_uri registration settings. Used some of Rusty's suggested
language plus also included more SIPesque descriptions of where
the URIs are actually used in an outgoing REGISTER. (closes issue
ASTERISK-22390) reported by Rusty Newton
2013-09-04 23:06 +0000 [r398303] Richard Mudgett <rmudgett@digium.com>
* /, channels/iax2/parser.c: chan_iax2: Add missing control frame
names to debug frame decode output. ........ Merged revisions
398301 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 398302 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-04 22:28 +0000 [r398299] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_outbound_authenticator_digest.c: Give more detail
regarding failures to create request with auth credentials.
(issue ASTERISK-22386)
2013-09-04 21:36 +0000 [r398283-398286] Jonathan Rose <jrose@digium.com>
* /, tests/test_voicemail_api.c: unit tests: test_voicemail_api
leaks stringfields from snapshots (closes issue ASTERISK-22414)
Reported by: Corey Farrell Patches:
test_voicemail_api-leaks-11.patch uploaded by coreyfarrell
(license 5909) ........ Merged revisions 398285 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_voicemail.c, /: app_voicemail: Fix leaking config
objects when msg_id doesn't match (issues ASTERISK-22414)
Reported by: Corey Farrell Patch:
test_voicemail_api-leaks-11.patch uploaded by coreyfarrell
(license 5909) ........ Merged revisions 398281 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-04 16:00 +0000 [r398237] Richard Mudgett <rmudgett@digium.com>
* channels/chan_misdn.c, /: chan_misdn: Fix misdn debug output
printed with arbitrary verbose levels. Fix the misdn debug output
to remote consoles. chan_misdn uses ast_console_puts() which
doesn't know about verbose levels. Better to use ast_verbose()
instead. Without this patch the misdn debug messages are appended
to the verbose level which ever was set by the message sent to
the console before, i.e. any undefined level. (closes issue
AST-1218) Reported by: Guenther Kelleter Patches: misdnlog.patch
(license #6372) patch uploaded by Guenther Kelleter ........
Merged revisions 398235 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398236 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-04 14:29 +0000 [r398226] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip_outbound_registration.c: Debug messages for pjsip
outbound registration Added debug messages indicating that an
outbound registration attempt was made and it was successful in
pjsip. (closes issue ASTERISK-22388) Reported by: Rusty Newton
2013-09-03 19:49 +0000 [r398215] Alexandr Anikin <may@telecom-service.ru>
* /, addons/ooh323c/src/ooh245.c: Fix remote tcs sequence handling
on empty tcs received ........ Merged revisions 398214 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-09-03 18:08 +0000 [r398206] Kinsey Moore <kmoore@digium.com>
* res/res_pjsip_dtmf_info.c: Prevent a crash in
res_pjsip_dtmf_info.c This change makes sure that a content type
header exists before checking the contents of the header against
known SIP INFO DTMF content types.
2013-09-03 14:36 +0000 [r398198] David M. Lee <dlee@digium.com>
* Makefile: Fixed 'make clean' for wiki docs
2013-09-03 14:27 +0000 [r398196] Walter Doekes <walter+asterisk@wjd.nu>
* /, cel/cel_custom.c: Be a little more verbose when loading
cel_custom.conf. Review: https://reviewboard.asterisk.org/r/2805/
........ Merged revisions 398167 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398168 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-30 20:58 +0000 [r398149] David M. Lee <dlee@digium.com>
* main/asterisk.c, include/asterisk/optional_api.h,
main/optional_api.c: Fix graceful shutdown crash. The cleanup
code for optional_api needs to happen after all of the optional
API users and providers have unused/unprovided. Unfortunately,
regsitering the atexit() handler at the beginning of main() isn't
soon enough, since module destructors run after that.
2013-08-30 20:34 +0000 [r398147] Rusty Newton <rnewton@digium.com>
* configs/pjsip.conf.sample: New pjsip.conf.sample (issue
ASTERISK-22145) (closes issue ASTERISK-22145) Reported By: Matt
Jordan Review: https://reviewboard.asterisk.org/r/2811/
2013-08-30 19:51 +0000 [r398116-398139] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip.c, res/res_pjsip/config_transport.c,
main/sorcery.c, res/res_pjsip_outbound_registration.c,
include/asterisk/sorcery.h: Add a reloadable option for sorcery
type objects Some configuration objects currently won't place
nice if reloaded. Specifically, in this case the pjsip transport
objects. Now when registering an object in sorcery one may
specify that the object is allowed to be reloaded or not. If the
object is set to not reload then upon reloading of the
configuration the objects of that type will not be reloaded. The
initially loaded objects of that type however will remain. While
the transport objects will not longer be reloaded it is still
possible for a user to configure an endpoint to an invalid
transport. A couple of log messages were added to help diagnose
this problem if it occurs. (closes issue ASTERISK-22382) Reported
by: Rusty Newton (closes issue ASTERISK-22384) Reported by: Rusty
Newton Review: https://reviewboard.asterisk.org/r/2807/
* main/config.c, res/res_security_log.c, /, channels/chan_sip.c,
main/translate.c, main/named_acl.c, main/indications.c: Fix
various memory leaks main/config.c - cleanup cache fie includes
res/res_security_log.c - unregister logger level
channesl/chan_sip.c - cleanup io context and notify_types
main/translator.c - cleanup at shutdown main/named_acl.c -
cleanup cli commands main/indications.c -
ast_get_indication_tone() unref default_tone_zone if used (closes
issues ASTERISK-22378) Reported by: Corey Farrell Patches:
config_shutdown.patch uploaded by coreyfarrell (license 5909)
res_security_log.patch uploaded by coreyfarrell (license 5909)
chan_sip-11.patch uploaded by coreyfarrell (license 5909)
indications_refleak.patch uploaded by coreyfarrell (license 5909)
named_acl-cli_unreg-trunk.patch uploaded by coreyfarrell (license
5909) translate_shutdown.patch uploaded by coreyfarrell (license
5909) ........ Merged revisions 398102 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398103 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-30 18:35 +0000 [r398100] Matthew Jordan <mjordan@digium.com>
* UPGRADE.txt: Update UPGRADE.txt file for Asterisk 12 This simply
pulls in the changes that were breaking from the CHANGES file and
updates a few other areas accordingly. It also removes the 10 =>
11 notes, which are traditionally removed from each major version
and stored in the appropriate UPGRADE-X.txt file.
2013-08-30 18:18 +0000 [r398068] Jonathan Rose <jrose@digium.com>
* main/features_config.c, main/config_options.c: features_config:
Ignore parkinglots in features.conf instead of failing to load
Parkinglots are defined in res_features.conf now, but this patch
fixes features_config so that features don't fail to load when
parkinglots are present in features.conf Review:
https://reviewboard.asterisk.org/r/2801/
2013-08-30 17:57 +0000 [r398062] Kevin Harwell <kharwell@digium.com>
* main/manager.c, /, res/res_agi.c: Memory leak fix
ast_xmldoc_printable returns an allocated block that must be
freed by the caller. Fixed manager.c and res_agi.c to stop
leaking these results. (closes issue ASTERISK-22395) Reported by:
Corey Farrell Patches: manager-leaks-12.patch uploaded by
coreyfarrell (license 5909) res_agi-xmldoc-leaks.patch uploaded
by coreyfarrell (license 5909) ........ Merged revisions 398060
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 398061 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-30 17:10 +0000 [r398023-398025] Richard Mudgett <rmudgett@digium.com>
* tests/test_substitution.c: test_substitution: Fix failing test.
Revert the -r392190 change. The original test was correct. The
CDR code was actually returning an unititialized buffer.
* tests/test_substitution.c, /: test_substituition: Fix failed test
reporting to actually report failure. You cannot put the "Testing
<blah> pass/fail" on a single line before actually performing the
test. Now any additional failure information is logged before the
test pass/fail announcement. * Added an additional CDR(answer,u)
test. ........ Merged revisions 398018 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 398019 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-30 16:57 +0000 [r398020] Jonathan Rose <jrose@digium.com>
* main/udptl.c, main/features_config.c: features_config: Don't
require features.conf to be present for Asterisk to load (closes
issue ASTERISK-22426) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2806/
2013-08-30 16:26 +0000 [r398002-398016] Kevin Harwell <kharwell@digium.com>
* /, apps/app_mixmonitor.c: Fix memory leaks (closes issue
ASTERISK-22368) Reported by: Corey Farrell Patches:
issueA22368_mixmonitor_free_filename.patch uploaded by wdoekes
(license 5674) ........ Merged revisions 398004 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 398011 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/asterisk.c: Check return value on fwrite ........ Merged
revisions 398000 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-30 13:39 +0000 [r397985-397989] David M. Lee <dlee@digium.com>
* res/ari/internal.h, res/res_http_websocket.c, CHANGES,
include/asterisk/compiler.h, include/asterisk/ari.h,
main/loader.c, include/asterisk/optional_api.h,
build_tools/cflags.xml, configure, res/res_ari_events.c,
include/asterisk/http_websocket.h, main/optional_api.c (added),
rest-api-templates/swagger_model.py, res/ari/ari_websockets.c,
main/asterisk.c, channels/sip/include/sip.h, res/res_ari.c,
tests/test_optional_api.c (added), channels/chan_sip.c,
include/asterisk/autoconfig.h.in, configure.ac,
rest-api-templates/res_ari_resource.c.mustache: optional_api: Fix
linking problems between modules that export global symbols With
the new work in Asterisk 12, there are some uses of the
optional_api that are prone to failure. The details are rather
involved, and captured on [the wiki][1]. This patch addresses the
issue by removing almost all of the magic from the optional API
implementation. Instead of relying on weak symbol resolution, a
new optional_api.c module was added to Asterisk core. For modules
providing an optional API, the pointer to the implementation
function is registered with the core. For modules that use an
optional API, a pointer to a stub function, along with a
optional_ref function pointer are registered with the core. The
optional_ref function pointers is set to the implementation
function when it's provided, or the stub function when it's now.
Since the implementation no longer relies on magic, it is now
supported on all platforms. In the spirit of choice, an
OPTIONAL_API flag was added, so we can disable the optional_api
if needed (maybe it's buggy on some bizarre platform I haven't
tested on) The AST_OPTIONAL_API*() macros themselves remained
unchanged, so existing code could remain unchanged. But to help
with debugging the optional_api, the patch limits the #include of
optional API's to just the modules using the API. This also
reduces resource waste maintaining optional_ref pointers that
aren't used. Other changes made as a part of this patch: * The
stubs for http_websocket that wrap system calls set errno to
ENOSYS. * res_http_websocket now properly increments module use
count. * In loader.c, the while() wrappers around dlclose() were
removed. The while(!dlclose()) is actually an anti-pattern, which
can lead to infinite loops if the module you're attempting to
unload exports a symbol that was directly linked to. * The
special handling of nonoptreq on systems without weak symbol
support was removed, since we no longer rely on weak symbols for
optional_api. [1]: https://wiki.asterisk.org/wiki/x/wACUAQ
(closes issue ASTERISK-22296) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2797/
* res/res_stasis_recording.c, res/Makefile,
res/ari/ari_model_validators.c,
rest-api/api-docs/recordings.json, res/stasis_recording (added),
res/ari/resource_recordings.c, res/ari/ari_model_validators.h,
res/res_ari_recordings.c, res/res_stasis_playback.c,
include/asterisk/stasis_app_recording.h,
res/ari/resource_recordings.h: ARI: Implement /recordings/stored
API's his patch implements the ARI API's for stored recordings.
While the original task only specified deleting a recording, it
was simple enough to implement the GET for all recordings, and
for an individual recording. The recording playback operation was
modified to use the same code for accessing the recording as the
REST API, so that they will behave consistently. There were
several problems with the api-docs that were also fixed, bringing
the ARI spec in line with the implementation. There were some
'wishful thinking' fields on the stored recording model (duration
and timestamp) that were removed, because I ended up not
implementing a metadata file to go along with the recording to
store such information. The GET /recordings/live operation was
removed, since it's not really that useful to get a list of all
recordings that are currently going on in the system. (At least,
if we did that, we'd probably want to also list all of the
current playbacks. Which seems weird.) (closes issue
ASTERISK-21582) Review: https://reviewboard.asterisk.org/r/2693/
2013-08-30 01:19 +0000 [r397975-397977] Richard Mudgett <rmudgett@digium.com>
* main/pbx.c: pbx.c: Make pbx_substitute_variables_helper_full()
not mask variables.
* main/pbx.c, tests/test_substitution.c, funcs/func_cdr.c: Revert
last commit.
* main/pbx.c, tests/test_substitution.c, funcs/func_cdr.c: pbx.c:
Make ast_str_substitute_variables_full() not mask variables.
2013-08-30 00:10 +0000 [r397960-397968] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_pidf.c: Sanitize XML output for PIDF bodies.
PJSIP's PIDF API does not replace angle brackets with their
appropriate counterparts for XML. So we have to do it ourself. In
this particular case, the problem had to do with attempting to
place an unsanitized SIP URI into an XML node. Now we don't get a
488 from recipients of our PIDF NOTIFYs.
* res/res_pjsip_pidf.c: Fix method for creating activities string
in PIDF bodies. The previous method did not allocate enough space
to create the entire string, but adjusted the string's slen value
to be larger than the actual allocation. This resulted in garbled
text in NOTIFY requests from Asterisk. This method allocates the
proper amount of space first and then writes the content into the
buffer.
2013-08-29 22:45 +0000 [r397958] Kevin Harwell <kharwell@digium.com>
* apps/app_verbose.c, main/asterisk.c, channels/chan_misdn.c, /,
apps/app_dumpchan.c, main/logger.c: Verbose logging discrepancies
Refactored cases where a combination of
ast_verbose/options_verbose were present. Also in general tried
to eliminate, in as many places as possible, where the
options_verbose global variable was being used. Refactored the
way local and remote consoles handle verbose message logging in
an attempt to solve the various discrepancies that sometimes
would show between the two. (closes issue AST-1193) Reported by:
Guenther Kelleter Review:
https://reviewboard.asterisk.org/r/2798/ ........ Merged
revisions 397948 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-29 22:24 +0000 [r397955] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_pubsub.c: Fix when the subscription_terminated
callback is called for subscription handlers. The previous
placement would result in the resubscribe() callback called
instead of the subscription_terminated() callback being called
when a subscription was ended via a SUBSCRIBE request. This would
result in confusing PJSIP and having it throw an assertion.
2013-08-29 21:34 +0000 [r397946] Kevin Harwell <kharwell@digium.com>
* main/manager.c, main/stasis_config.c, main/file.c, main/app.c,
main/config_options.c, main/cel.c, main/asterisk.c, main/cdr.c:
Memory leaks fix (closes ASTERISK-22376) Reported by: John Hardin
Patches: memleak.patch uploaded by jhardin (license 6512)
memleak2.patch uploaded by jhardin (license 6512)
2013-08-29 21:33 +0000 [r397945] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_session.c: Fix a race condition where a canceled
call was answered. RFC 5407 section 3.1.2 details a scenario
where a UAC sends a CANCEL at the same time that a UAS sends a
200 OK for the INVITE that the UAC is canceling. When this
occurs, it is the role of the UAC to immediately send a BYE to
terminate the call. This scenario was reproducible by have a
Digium phone with two lines place a call to a second phone that
forwarded the call to the second line on the original phone. The
Digium phone, upon realizing that it was connecting to itself,
would attempt to cancel the call. The timing of this happened to
trigger the aforementioned race condition about 80% of the time.
Asterisk was not doing its job of sending a BYE when receiving a
200 OK on a cancelled INVITE. The result was that the ast_channel
structure was destroyed but the underlying SIP session, as well
as the PJSIP inv_session and dialog, were still alive. Attempting
to perform an action such as a transfer, once in this state,
would result in Asterisk crashing. The circumstances are now
detected properly and the session is ended as recommended in RFC
5407. (closes issue AST-1209) reported by John Bigelow
2013-08-29 20:21 +0000 [r397938] Matthew Jordan <mjordan@digium.com>
* configs/safe_asterisk.conf.sample (removed), CHANGES,
contrib/scripts/safe_asterisk, Makefile: Revert r394939 due to
(numerous) objections The patch from ASTERISK-21965 was committed
perhaps a bit too hastily. Walter and Tzafrir have pointed out
numerous issues with the approach and have propsed an alternative
in r/2757. Since it's not a time critical issue and is not worth
holding up the release of 12 for it, I've gone ahead and reverted
r394939 from 12/trunk and re-opened ASTERISK-21965.
2013-08-29 16:18 +0000 [r397927] David M. Lee <dlee@digium.com>
* rest-api-templates/make_ari_stubs.py,
rest-api-templates/api.wiki.mustache,
rest-api-templates/asterisk_processor.py: Account for {} in
Swagger notes
2013-08-29 16:04 +0000 [r397924] Matthew Jordan <mjordan@digium.com>
* Makefile: Recursively search for '.c' files when making
documentation with 'make full' Without this, documentation
defined in sub-folders is ignored. Since having properly
generated documentation is especially important in Asterisk 12 -
not having it can cause a module to not load - 'make full' needs
to look in all .c files.
2013-08-29 15:42 +0000 [r397921-397922] Mark Michelson <mmichelson@digium.com>
* main/cel.c: Remove extra debug message.
* apps/app_queue.c, main/cel.c, main/stasis_bridges.c: Resolve
assumptions that bridge snapshots would be non-NULL for transfer
stasis events. Attempting to transfer an unbridged call would
result in crashes in either CEL code or in the conversion to AMI
messages.
2013-08-29 12:27 +0000 [r397911] Matthew Jordan <mjordan@digium.com>
* contrib/ast-db-manage/config.ini.sample (added),
contrib/ast-db-manage/config/env.py (added),
contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py
(added), contrib/ast-db-manage/config (added),
contrib/ast-db-manage/config/script.py.mako (added),
contrib/ast-db-manage/voicemail.ini.sample (added),
contrib/ast-db-manage/voicemail/env.py (added),
contrib/ast-db-manage/voicemail (added),
contrib/ast-db-manage/voicemail/script.py.mako (added),
contrib/ast-db-manage/README.md (added),
contrib/ast-db-manage/config/versions (added),
contrib/ast-db-manage/voicemail/versions/a2e9769475e_create_tables.py
(added), contrib/ast-db-manage (added),
contrib/ast-db-manage/voicemail/versions (added): Actually *add*
the database schema management utilities In r397874, the scripts
were removed... but not replaced. Thanks to Michael Young for
noticing this!
2013-08-28 23:14 +0000 [r397885-397902] Richard Mudgett <rmudgett@digium.com>
* main/stdtime/localtime.c, main/cdr.c, funcs/func_cdr.c: Fix some
uninitialized buffers for CDR handling valgrind found. * Made
ast_strftime_locale() ensure that the output buffer is
initialized. The std library strftime() returns 0 and does not
touch the buffer if it has an error. However, the function can
also return 0 without an error. (closes issue ASTERISK-22412)
Reported by: rmudgett
* main/cdr.c: Fixed problems with ast_cdr_serialize_variables(). *
Fixed return value of ast_cdr_serialize_variables() on error. It
needs to return 0 indicating no CDR variables found. * Made
ast_cdr_serialize_variables() check the return value of
cdr_object_format_property() and assert if nonzero. A member of
the cdr_readonly_vars[] was not handled. * Removed unused
elements from cdr_readonly_vars[]: total_duration, total_billsec,
first_start, and first_answer.
* main/cdr.c: Made the on/off in CLI "cdr set debug [on|off]" case
insensitive.
* main/cdr.c: Make CDR variable name chandling consistently case
insensitive.
* main/cdr.c: Make CDR code deal with channel names case
insensitively.
* main/cdr.c, funcs/func_cdr.c: Some CDR code optimization.
* funcs/func_cdr.c: Whitespace and curly braces.
2013-08-28 21:05 +0000 [r397876] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_refer.c: Improve detection of answer on SIP blind
transfer. A problem encountered during testing was that
res_pjsip_refer would not ever send a NOTIFY with a 200 OK
sipfrag. This is because the framehook that was supposed to send
the NOTIFY would never be told that an answer had occurred. This
happened for two reasons: 1) The transferee channel on which the
framehook was on was already up. 2) Answers are rarely if ever
written to channels. Rather, the ast_answer() or ast_raw_answer()
function is used to answer channels. Thanks to a suggestion by
Matt Jordan, the best way to detect that the call had been
answered was to find out when the transferee channel joined a
bridge. With stasis this is an easy task. So now, in addition to
the framehook logic, there is a stasis subscription used to
determine when the transferee has entered a bridge. Once it has
entered, an appropriate NOTIFY is sent.
2013-08-28 20:55 +0000 [r397870-397874] Matthew Jordan <mjordan@digium.com>
* contrib/realtime/mysql/musiconhold.sql,
contrib/realtime/mysql/queue_log.sql,
contrib/realtime/mysql/voicemail.sql,
contrib/realtime/mysql/sippeers.sql,
contrib/realtime/mysql/iaxfriends.sql,
contrib/realtime/mysql/meetme.sql,
contrib/realtime/mysql/voicemail_messages.sql,
contrib/realtime/postgresql/realtime.sql,
contrib/realtime/mysql/voicemail_data.sql, CHANGES: Add database
schema management using Alembic This patch replaces
contrib/realtime/ with a new setup for managing the database
schema required for database integration with Asterisk. In
addition to initializing a database with the proper schema,
alembic can do a database migration to assist with upgrading
Asterisk in the future. Hopefully this helps make setting up and
operating Asterisk with a database easier. With this the schema
only needs to be maintained in one place instead of once per
database. The schemas I have added here have a bit of improvement
over the examples that were there before (some added consistency
and added some missing indexes). Managing the schema in one place
here also applies to all databases supported by SQLAlchemy. See
contrib/ast-db-manage/README.md for more details. Review:
https://reviewboard.asterisk.org/r/2731 patch by Russell Bryant
(license 6300)
* CHANGES: Update CHANGES file for Asterisk 12 This updates the
Asterisk 12 CHANGES file with the things that were missed during
the development cycle. Review:
https://reviewboard.asterisk.org/r/2795/
2013-08-28 16:12 +0000 [r397856-397859] Richard Mudgett <rmudgett@digium.com>
* main/pbx.c: pbx.c: Make ast_str_substitute_variables_full() not
mask variables.
* include/asterisk/threadstorage.h: Match use of ast_free() with
ast_calloc() and add some curly braces.
2013-08-28 15:40 +0000 [r397854] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip/pjsip_distributor.c: Fix dialog matching in the SIP
distributor. Dialog matching is performed in the distributor for
the sole purpose of retrieving an associated serializer so the
request may be serialized. This patch fixes two problems. First,
incoming CANCEL requests that had no to-tag (which really should
be *all* CANCEL requests) would not match with a dialog. An
earlier bug fix to deal with early CANCEL requests would result
in the CANCEL being replied to with a 481. The fix for this is to
find the matching INVITE transaction and get the dialog from that
transaction. Second, no SIP responses were matching dialogs. This
is because we were inverting the tags that we were passing into
PJSIP's dialog finding function. This logic has been corrected by
setting local and remote tag variables based on whether the
incoming message is a request or response.
2013-08-27 19:15 +0000 [r397816] David M. Lee <dlee@digium.com>
* res/res_ari_events.c, res/res_ari_asterisk.c,
rest-api-templates/res_ari_resource.c.mustache, res/stasis/app.h,
res/res_stasis.c, main/stasis_bridges.c,
rest-api-templates/param_parsing.mustache, res/res_ari_bridges.c,
res/stasis/app.c: ARI: WebSocket event cleanup Stasis events
(which get distributed over the ARI WebSocket) are created by
subscribing to the channel_all_cached and bridge_all_cached
topics, filtering out events for channels/bridges currently
subscribed to. There are two issues with that. First was a race
condition, where messages in-flight to the master
subscribe-to-all-things topic would get sent out, even though the
events happened before the channel was put into Stasis. Secondly,
as the number of channels and bridges grow in the system, the
work spent filtering messages becomes excessive. Since r395954,
individual channels and bridges have caching topics, and can be
subscribed to individually. This patch takes advantage, so that
channels and bridges are subscribed to on demand, instead of
filtering the global topics. The one case where filtering is
still required is handling BridgeMerge messages, which are
published directly to the bridge_all topic. Other than the change
to how subscriptions work, this patch mostly just moves code
around. Most of the work generating JSON objects from messages
was moved to .to_json handlers on the message types. The callback
functions handling app subscriptions were moved from res_stasis
(b/c they were global to the model) to stasis/app.c (b/c they are
local to the app now). (closes issue ASTERISK-21969) Reported by:
Matt Jordan Review: https://reviewboard.asterisk.org/r/2754/
2013-08-27 18:49 +0000 [r397809] Richard Mudgett <rmudgett@digium.com>
* main/astmm.c: Made MALLOC_DEBUG less CPU intensive by default.
Storing a backtrace for each allocation in anticipation of a
memory management problem is very CPU intensive. * Added the CLI
"memory backtrace {on|off}" command to request that the backtrace
be gathered only on request. The backtrace is off by default.
(issue ASTERISK-22221) Reported by: Matt Jordan
2013-08-27 18:05 +0000 [r397759] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: AST-2013-005: Fix crash caused by invalid
SDP If the SIP channel driver processes an invalid SDP that
defines media descriptions before connection information, it may
attempt to reference the socket address information even though
that information has not yet been set. This will cause a crash.
This patch adds checks when handling the various media
descriptions that ensures the media descriptions are handled only
if we have connection information suitable for that media. Thanks
to Walter Doekes, OSSO B.V., for reporting, testing, and
providing the solution to this problem. (closes issue
ASTERISK-22007) Reported by: wdoekes Tested by: wdoekes patches:
issueA22007_sdp_without_c_death.patch uploaded by wdoekes
(License 5674) ........ Merged revisions 397756 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397757 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 397758 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-27 16:47 +0000 [r397745] Richard Mudgett <rmudgett@digium.com>
* channels/sig_analog.c, /, channels/chan_sip.c,
channels/chan_motif.c, channels/chan_iax2.c, channels/sig_pri.c,
channels/sig_ss7.c, channels/chan_dahdi.c: Fix uninitialized
value in struct ast_control_pvt_cause_code usage. ........ Merged
revisions 397744 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-27 16:03 +0000 [r397690-397713] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: AST-2013-004: Fix crash when handling ACK
on dialog that has no channel A remote exploitable crash
vulnerability exists in the SIP channel driver if an ACK with SDP
is received after the channel has been terminated. The handling
code incorrectly assumed that the channel would always be
present. This patch adds a check such that the SDP will only be
parsed and applied if Asterisk has a channel present that is
associated with the dialog. Note that the patch being applied was
modified only slightly from the patch provided by Walter Doekes
of OSSO B.V. (closes issue ASTERISK-21064) Reported by: Colin
Cuthbertson Tested by: wdoekes, Colin Cutherbertson patches:
issueA21064_fix.patch uploaded by wdoekes (License 5674) ........
Merged revisions 397710 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397711 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 397712 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/bridge_channel.c: Better handle clearing the OUTGOING flag
when a channel leaves a bridge When a channel with the OUTGOING
flag leaves a bridge, and it will survive being pulled from the
bridge (either because it will execute dialplan, go into another
bridge, or live in a friendly autoloop), we have to clear the
OUTGOING flag. This is the signal to the CDR engine that this
channel is no longer a second class citizen, i.e., it is not
"dialed". The soft hangup flags are only half the picture. If a
channel is being moved from one bridge to another, the soft
hangup flags aren't set; however, the state of the bridge_channel
will not be hung up. Since the channel does not have one of the
two hang up states, that implies that the channel is still
technically alive. This patch modifies the check so that it
checks both the soft hangup flags as well as the bridge_channel
state. If either suggests that the channel is going to persist,
we clear the OUTGOING flag.
2013-08-26 21:30 +0000 [r397673] David M. Lee <dlee@digium.com>
* main/bucket.c: Fixed bucket.c for systems where tv_usec is not an
unsigned long.
2013-08-26 16:24 +0000 [r397643-397650] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c, include/asterisk/bridge_channel.h:
bridging: Fix a livelock with local channel optimization. Use a
better means of waking up the bridge channel thread.
* channels/Makefile: chan_dahdi: Add some missing build cleanup.
2013-08-25 18:12 +0000 [r397621-397630] Matthew Jordan <mjordan@digium.com>
* tests/test_bucket.c: Fix bucket unit tests After the review for
buckets was completed (r2715), the handling of names in the
bucket core was deferred to the wizards. As such, the bucket unit
tests cannot expect that passing a URI with a scheme specified
but no actual resource name will automatically fail. The tests
have been updated to not make this check.
* main/config_options.c, tests/test_config.c,
include/asterisk/config_options.h: Fix the config_options_test
The config options test requires the entire configuration item to
be transparent from the documentation system. So we let it do
that too. As an aside, please do not use this power for evil.
Documentation is your friend, and you really should document your
configurations. Hiding your module's configuration information
from the system attempting to enforce some sanity in the universe
is something only a Bond villain would contemplate.
* res/res_pjsip/pjsip_configuration.c: Add rtpengine configuration
parameter The rtpengine configuration parameter was documented in
the XML documentation, but it was not actually registered with
the sorcery object. This adds the parameter with a default of
"asterisk", such that res_rtp_asterisk is chosen as the default
RTP implementation. (closes issue ASTERISK-22380) Reported by:
Rusty Newton Tested by: Rusty Newton
2013-08-23 22:36 +0000 [r397614] Matthew Jordan <mjordan@digium.com>
* / (added): __________ | \ |_______ | | | ______| | / | _ _ _ _ _
| _______| / \ ___| |_ ___ _ __(_)___| | __ / || | / _ \ / __|
__/ _ \ '__| / __| |/ / | || |_______ / ___ \__ \| | __/ | | \__
\ < | || | /_/ \_\___/\__\___|_| |_|___/_|\_\ |_| \__________|
2013-08-23 22:20 +0000 [r397613] Joshua Colp <jcolp@digium.com>
* main/bucket.c: Fix building of trunk. Note: This is why I commit
on the weekend.
2013-08-23 22:12 +0000 [r397606] Matthew Jordan <mjordan@digium.com>
* main/pbx.c: Fix channel reference leak in Originated channels
When originating channels, ast_pbx_outgoing_* caused the dialed
channel reference to be bumped twice. Ostensibly, this routine is
bumping the channel lifetime such that the channel doesn't get
nuked in between locks/unlocks; however, since the routine should
return the dialed channel with its reference bumped, it only
needs to do this one time.
2013-08-23 21:53 +0000 [r397603] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip.c: Add some clarifying documentation to the
rewrite_contact endpoint option.
2013-08-23 21:51 +0000 [r397602] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c: Blank line tweaks.
2013-08-23 21:49 +0000 [r397599-397600] Joshua Colp <jcolp@digium.com>
* makeopts.in, main/asterisk.c, include/asterisk/bucket.h (added),
main/sorcery.c, include/asterisk/config_options.h,
tests/test_bucket.c (added), build_tools/menuselect-deps.in,
configure, include/asterisk/autoconfig.h.in, main/Makefile,
main/bucket.c (added), configure.ac, main/config_options.c: Add
the bucket API. Bucket is a URI based API for the creation,
retrieval, updating, and deletion of "buckets" and files
contained within them. Review:
https://reviewboard.asterisk.org/r/2715/
* include/asterisk/sorcery.h: Fix a bug where the argc value was
passed as no_doc when registering custom sorcery types. This also
adds a _nodoc equivalent.
2013-08-23 21:02 +0000 [r397593] Mark Michelson <mmichelson@digium.com>
* main/bridge_channel.c: Add test events necessary for bridge tests
to pass in the test suite. (closes issue AST-1200) reported by
John Bigelow Review: https://reviewboard.asterisk.org/r/2790/
2013-08-23 20:14 +0000 [r397585] Matthew Jordan <mjordan@digium.com>
* main/stasis_channels.c: Fix error in using
ast_channel_snapshot_type before initialization Starting Asterisk
would kick back an ERROR message stating that the Stasis message
type ast_channel_snapshot_type was used prior to initialization.
This occurred due to the caching topic being created prior to the
message type that it depended on. This patch re-orders the start
up such that the message type is initialized prior to the caching
topic. It also checks the return value of the initialization of
the agent login/logoff types.
2013-08-23 19:05 +0000 [r397578] Jonathan Rose <jrose@digium.com>
* bridges/bridge_native_rtp.c: bridge_native_rtp: Fix hold chain
bugs caused by native RTP bridge framehook Issuing hold/unhold
would lead to odd behavior. Between two chan_sip devices, a hold
could cause an endless chain of updates while with pjsip a
similar chain would begin but then end somewhat randomly. This
patch fixes that by no longer tweaking the RTP glue on both sides
of the call for every HOLD/UNHOLD/UPDATE_RTP_PEER frame. (issue
ASTERISK-22217) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2794/
2013-08-23 18:33 +0000 [r397577] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_builtin_interval_features.c,
include/asterisk/channel.h, res/res_musiconhold.c,
main/bridge_channel.c, main/channel.c,
include/asterisk/bridge_channel_internal.h, main/bridge.c,
include/asterisk/bridge_channel.h, main/channel_internal_api.c:
Handle DTMF and hold wrapup when a channel leaves the bridging
system. DTMF start/end and hold/unhold events have state because
a DTMF begin event and hold event must be ended by something. The
following cases need to be handled when a channel is moved around
in the system. * When a channel leaves a bridge it may owe a DTMF
end event to the bridge. * When a channel leaves a bridge it may
owe an UNHOLD event to the bridge. (This case is explicitly
ignored because things like transfers need explicit control over
this.) * When a channel leaves the bridging system it may need to
simulate a DTMF end event to the channel. * When a channel leaves
the bridging system it may need to simulate an UNHOLD event to
the channel. The patch also fixes the following: * Fixes playing
a file and restarting MOH using the latest MOH class used.
(closes issue ASTERISK-22043) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2791/
2013-08-23 18:10 +0000 [r397571] Matthew Jordan <mjordan@digium.com>
* tests/test_sorcery_astdb.c, tests/test_sorcery.c,
tests/test_sorcery_realtime.c: Fix sorcery unit tests When strict
XML documentation checking was re-enabled, the test objects used
in sorcery would fail to register as the types were not marked
internal and the nodoc option wasn't used for the options. This
fixes that problem, such that, as one would hope, they once again
pass.
2013-08-23 18:07 +0000 [r397570] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/backtrace.h, main/lock.c,
include/asterisk/utils.h, include/asterisk/astmm.h, /,
main/backtrace.c, main/logger.c, main/utils.c,
include/asterisk/lock.h, main/astmm.c, channels/sig_pri.c,
main/astobj2.c: Fix memory corruption when trying to get "core
show locks". Review https://reviewboard.asterisk.org/r/2580/
tried to fix the mismatch in memory pools but had a math error
determining the buffer size and didn't address other similar
memory pool mismatches. * Effectively reverted the previous patch
to go in the same direction as trunk for the returned memory pool
of ast_bt_get_symbols(). * Fixed memory leak in
ast_bt_get_symbols() when BETTER_BACKTRACES is defined. * Fixed
some formatting in ast_bt_get_symbols(). * Fixed sig_pri.c
freeing memory allocated by libpri when MALLOC_DEBUG is enabled.
* Fixed __dump_backtrace() freeing memory from
ast_bt_get_symbols() when MALLOC_DEBUG is enabled. * Moved
__dump_backtrace() because of compile issues with the utils
directory. (closes issue ASTERISK-22221) Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2778/ ........ Merged
revisions 397525 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397528 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-23 18:02 +0000 [r397568] Matthew Jordan <mjordan@digium.com>
* main/config_options.c: Prevent seg fault in off nominal path when
registered option fails to validate If an option is registered to
a type and it is the last known type in the list of registered
types, and the option fails to register, an overrun of the types
array can occur due to the index variable having been already
incremented.
2013-08-23 17:45 +0000 [r397567] Kevin Harwell <kharwell@digium.com>
* contrib/scripts/sip_to_res_sip/sip_to_res_sip.py,
contrib/scripts/sip_to_res_sip/astconfigparser.py,
contrib/scripts/sip_to_res_sip/astdicts.py: PSJIP - sip.conf to
res_sip.conf script Most, if not all, of the backing features of
a conf file should now be implemented (e.g. multi-line comments,
includes, templates, etc...). A few of the options still need to
be mapped. Those are currently listed in the 'sip_to_res_sip.py'
file. Things to do: (1) There is more work to do here, at least
for the sip.conf items that aren't currently parsed. An issue
will be created for that. (2) All of the scripts should probably
be passed through pylint and have as many PEP8 issues fixed as
possible. (3) A public review is probably warranted at that point
of the entire script. Reported by: Matt Jordan
2013-08-23 17:19 +0000 [r397565] David M. Lee <dlee@digium.com>
* res/ari/resource_bridges.c, res/res_ari_bridges.c,
res/stasis/control.c, include/asterisk/stasis_app.h,
include/asterisk/stasis_app_impl.h,
rest-api/api-docs/bridges.json: ARI: Correct error codes for
bridge operations This patch adds error checking to ARI bridge
operations, when adding/removing channels to/from bridges. In
general, the error codes fall out as follows: * Bridge not found
- 404 Not Found * Bridge not in Stasis - 409 Conflict * Channel
not found - 400 Bad Request * Channel not in Stasis - 422
Unprocessable Entity * Channel not in this bridge (on remove) -
422 Unprocessable Entity (closes issue ASTERISK-22036) Review:
https://reviewboard.asterisk.org/r/2769/
2013-08-23 15:49 +0000 [r397524-397527] Matthew Jordan <mjordan@digium.com>
* CHANGES: Update CHANGES file to reflect pass through support for
Opus/VP8
* channels/chan_pjsip.c, res/res_format_attr_opus.c (added),
main/channel.c, main/format.c, res/res_rtp_asterisk.c,
main/frame.c, main/rtp_engine.c, channels/chan_sip.c,
res/res_pjsip_sdp_rtp.c, include/asterisk/opus.h (added),
include/asterisk/format.h: Add pass through support for Opus and
VP8; Opus format attribute negotiation This patch adds pass
through support for Opus and VP8. That includes: * Format
attribute negotiation for Opus. Note that unlike some other
codecs, the draft RFC specifies having spaces delimiting the
attributes in addition to ';', so you have "attra=X; attrb=Y".
This broke the attribute parsing in chan_sip, so a small tweak
was also included in this patch for that. * A format attribute
negotiation module for Opus, res_format_attr_opus * Fast picture
update for VP8. Since VP8 uses a different RTCP packet number
than FIR, this really is specific to VP8 at this time. Note that
the format attribute negotiation in res_pjsip_sdp_rtp was written
by mjordan. The rest of this patch was written completely by
Lorenzo Miniero. Review: https://reviewboard.asterisk.org/r/2723/
(closes issue ASTERISK-21981) Reported by: Tzafrir Cohen patches:
asterisk_opus+vp8_passthrough_20130718.patch uploaded by lminiero
(License 6518)
* main/config_options.c, main/features_config.c,
res/res_pjsip/pjsip_options.c, res/res_pjsip.c, main/sorcery.c,
include/asterisk/config_options.h, include/asterisk/sorcery.h,
res/res_pjsip/pjsip_configuration.c: Update config
framework/sorcery with types/options without documentation There
are times when a configuration option should not have
documentation. 1. Some options are registered with a particular
object merely as a warning to users. These options aren't even
really 'deprecated' - which has its own separate API call - they
are actually provided by a different configuration file. The
options are merely registered so that the user gets a warning
that a different configuration file provides the item. 2. Some
object types - most notably some used by modules that use sorcery
- are completely internal and should never be shown to the user.
3. Sorcery itself has several 'hidden' fields that should never
be shown to a user. This patch updates the configuration
framework and sorcery with additional API calls that allow a
module to register types as internal and options as not requiring
documentation. This bypasses the XML documentation checking. This
patch also re-enables the strict XML documentation checking in
trunk, as well as updates some documentation that was missing.
Review: https://reviewboard.asterisk.org/r/2785/ (closes issue
ASTERISK-22359) Reported by: Matt Jordan (closes issue
ASTERISK-22112) Reported by: Rusty Newton
2013-08-23 13:58 +0000 [r397515] Joshua Colp <jcolp@digium.com>
* channels/chan_pjsip.c: Fix crash when answering after a transport
error occurs. If a response to an initial incoming INVITE results
in a transport error the INVITE transaction is removed from the
INVITE session. Any attempts to answer the INVITE session after
this results in a crash as it requires the INVITE transaction to
exist. This change explicitly locks the dialog and checks to
ensure that the INVITE transaction exists before answering.
(closes issue AST-1203) Reported by: John Bigelow
2013-08-23 13:18 +0000 [r397514] Kinsey Moore <kmoore@digium.com>
* configs/cel.conf.sample: Update CEL sample config
2013-08-23 00:26 +0000 [r397505] Jonathan Rose <jrose@digium.com>
* rest-api/api-docs/bridges.json, res/ari/resource_bridges.c,
res/res_ari_bridges.c, res/ari/resource_bridges.h,
include/asterisk/stasis_app.h, res/res_stasis.c: ARI: Music on
Hold/Background Music for bridges Adds ARI functions to be able
to turn on/off music on hold in a bridge. It actually functions
more as a background music without further actions on the bridge
since if the rest of the channels in the bridge aren't explicitly
muted, they will still be able to communicate. (closes issue
ASTERISK-21974) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2688/
2013-08-22 23:15 +0000 [r397494] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, bridges/bridge_holding.c, apps/app_followme.c:
Minor tweaks with ast_moh_start() callers.
2013-08-22 22:33 +0000 [r397493] Kinsey Moore <kmoore@digium.com>
* CHANGES, apps/app_directory.c, apps/app_chanspy.c,
include/asterisk/say.h, apps/app_voicemail.c, main/channel.c,
main/pbx.c, main/say.c, res/res_agi.c: Add SayAlphaCase and
similar functionality for AGI This adds a new dialplan
application, SayAlphaCase, that performs much the same function
as SayAlpha except that it takes additional options which allow
the user to specify whether the case of each letter should be
announced for uppercase, lowercase, or all letters. Similar
functionality has been added to the SAY ALPHA AGI command via an
optional parameter. Original Patch by: Kevin Scott Adams Reported
by: Kevin Scott Adams Review:
https://reviewboard.asterisk.org/r/2725/ (closes issue
ASTERISK-20782)
2013-08-22 22:09 +0000 [r397484] Kevin Harwell <kharwell@digium.com>
* res/res_pjsip_dtmf_info.c, res/res_pjsip.c: res_sip_dtmf_info:
Support sending of 'raw' DTMF Added the ability to handle 'raw'
DTMF within the body of an INFO message. Also made it so values
10-16 are mapped to valid DTMF values. (closes issue
ASTERISK-22144) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2776/
2013-08-22 21:39 +0000 [r397483] Kinsey Moore <kmoore@digium.com>
* res/res_pjsip.c: Add missing configOption close tags
2013-08-22 21:29 +0000 [r397482] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/musiconhold.h: Update MOH start/stop routine
doxygen.
2013-08-22 21:21 +0000 [r397481] Rusty Newton <rnewton@digium.com>
* res/res_pjsip.c: Fix missing xml doc configOption 'type' for for
both 'system' and 'global' configObjects (issue ASTERISK-22344)
(closes issue ASTERISK-22344)
2013-08-22 21:09 +0000 [r397472] Richard Mudgett <rmudgett@digium.com>
* res/res_parking.c, bridges/bridge_builtin_features.c,
include/asterisk/bridge_channel.h, main/features.c,
bridges/bridge_builtin_interval_features.c,
include/asterisk/bridge_internal.h, apps/app_confbridge.c,
main/bridge_channel.c, res/res_stasis.c,
include/asterisk/bridge.h, apps/app_dial.c, main/bridge.c,
main/bridge_basic.c, apps/app_bridgewait.c,
res/parking/parking_applications.c,
res/parking/parking_bridge_features.c, apps/app_agent_pool.c:
Bridge API: Set a cause code on a channel when it is ejected from
a bridge. The cause code needs to be passed from the
disconnecting channel to the bridge peers if the disconnecting
channel dissolves the bridge. * Made the call to an
app_agent_pool agent disconnect with the busy cause code if the
agent does not ack the call in time or hangs up before acking the
call. (closes issue ASTERISK-22042) Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2772/
2013-08-22 20:29 +0000 [r397471] Kinsey Moore <kmoore@digium.com>
* main/cel.c: Ensure CEL creates a default config if it isn't
provided with one
2013-08-22 20:18 +0000 [r397466] Mark Michelson <mmichelson@digium.com>
* apps/app_queue.c: Remove set but unused variable 'meid'.
2013-08-22 19:52 +0000 [r397461] Kinsey Moore <kmoore@digium.com>
* main/cel.c: Fix crash when getting CEL config
2013-08-22 18:52 +0000 [r397441-397451] Mark Michelson <mmichelson@digium.com>
* include/asterisk/bridge_basic.h, include/asterisk/core_unreal.h,
include/asterisk/features.h, include/asterisk/app.h,
main/bridge.c, main/bridge_basic.c, main/features.c, main/app.c,
main/core_local.c, CHANGES, apps/app_queue.c: Massively clean up
app_queue. This essentially makes app_queue usable again. From
reviewboard: * Reporting of transfers and call completion is done
by creating stasis subscriptions and listening for specific
events in order to determine when the call is finished (either
via a transfer or hangup). * Dial end messages have been added
where they were previously missing. * Queue stats are properly
being updated again once calls have finished. * AgentComplete
stasis messages and AMI events are now occurring again. *
Mixmonitor starting has been factored into its own function and
uses the Mixmonitor API now instead of using ast_pbx_run() In
addition to the changes in app_queue, there are several
supplementary changes as well: * Queue logging now differentiates
between attended and blind transfers. A note about this is in the
CHANGES file. * Local channel optimization events now report more
information. This includes which of the two local channels
involved is the destination of the optimization, the channel that
is replacing the destination local channel, and an identifier so
that begin and end events can be matched to each other. The end
events are now sent whether the optimization was successful or
not and includes an indicator of whether the optimization was
successful. * Changes were made to features and bridging_basic so
that additional flags may be set on a bridge. This is necessary
because the queue requires that its bridge only allows move-swap
local channel optimizations into the bridge. (closes issue
ASTERISK-21517) Reported by Matt Jordan (closes issue
ASTERISK-21943) Reported by Matt Jordan Review:
https://reviewboard.asterisk.org/r/2694
* res/res_pjsip_pubsub.c, res/res_pjsip_exten_state.c,
include/asterisk/res_pjsip_pubsub.h, res/res_pjsip_mwi.c: Handle
default body types for SIP event packages in res_pjsip_pubsub
Prior to this change, we would reject SUBSCRIBE requests that had
no Accept headers. Now event package handlers that handle the
default type for the event package indicate that they do so.
Therefore, if we have a handler that can handle the default type,
we can allow SUBSCRIBEs for the handler's event package that have
no Accept headers. (closes issue ASTERISK-22067) reported by Mark
Michelson Review: https://reviewboard.asterisk.org/r/2774
2013-08-22 17:34 +0000 [r397440] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c, main/abstract_jb.c: Made the abstract
jitter buffer resync on some more control frames. Resync the
abstract jitter buffer on the following additional control
frames: AST_CONTROL_HOLD AST_CONTROL_UNHOLD
AST_CONTROL_T38_PARAMETERS
2013-08-22 17:13 +0000 [r397431] Kinsey Moore <kmoore@digium.com>
* tests/test_cel.c, main/cel.c, include/asterisk/cel.h: Make CEL
behavior conform to the documentation This modifies the behavior
of the CEL engine to conform to documented behavior for Asterisk
12 as defined on the wiki
https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CEL+Specification
The primary changes deal with removal of the peer field from
function calls since it is no longer directly relevant to the
bridging system and removal of the layer of CDR-like business
logic that was providing a partial emulation of Asterisk 11 CEL
functionality. With this change, there is no longer a distinction
between "bridges" and "conferences" and all participation changes
are denoted with bridge enter and bridge exit messages. This
updates the CEL unit tests to handle these changes and simplifies
some of the macros used in the process. This also fixes a
segfault when attempting to ref a configuration that failed to
load. Review: https://reviewboard.asterisk.org/r/2788/ (issue
ASTERISK-21567)
2013-08-22 16:46 +0000 [r397426] Richard Mudgett <rmudgett@digium.com>
* main/bridge.c: Update BUGBUG comment.
2013-08-22 12:28 +0000 [r397379-397415] Walter Doekes <walter+asterisk@wjd.nu>
* main/asterisk.c: Don't store repeated commands in the editline
history buffer. The equivalent of bash HISTCONTROL=ignoredups.
Review: https://reviewboard.asterisk.org/r/2775/
* /, main/asterisk.exports.in, default.exports: Add _IO_stdin_used
in version-script to fix SIGBUSes on Sparc. The
--version-script,asterisk.exports linker flag (and the module
exports) didn't provide _IO_stdin_used in the list of exported
symbols. That causes some kind of libc compatibility mode to kick
in, where stdio file structures (stdout/stderr) land somewhere
else. In the case of the Sparc, they landed on misaligned memory.
This became apparent first after r376428 (Reorder startup
sequence) when a lot of ast_log's were replaced with fprintf's.
Writing to stderr triggered a SIGBUS. (Compared to x86 and amd64
architectures, the Sparc is very picky about memory alignment.)
(issue ASTERISK-21763) (issue ASTERISK-21665) Reported by: Jeremy
Kister Review: https://reviewboard.asterisk.org/r/2760/ ........
Merged revisions 397377 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397378 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-21 23:09 +0000 [r397366] Jonathan Rose <jrose@digium.com>
* main/udptl.c, /: UDPTL: Fix a regression where UDPTL won't load
default settings If the file udptl.conf is unavailable at
startup, UDPTL will fail to initialize and while it makes some
noise, it isn't immediately obvious why consumers start to fail
when using it. This patch makes UDPTL load as though an empty
config was provided when udptl is unavailable at startup. (closes
issue ASTERISK-22349) Reported by: Jonathan Rose Review:
https://reviewboard.asterisk.org/r/2773/ ........ Merged
revisions 397365 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-21 20:02 +0000 [r397346-397355] Richard Mudgett <rmudgett@digium.com>
* main/bridge_basic.c, main/features.c,
include/asterisk/bridge_basic.h: * Move
ast_bridge_channel_setup_features() into bridge_basic.c. * Made
application map hooks be removed on a basic bridge personality
change.
* main/bridge.c, main/bridge_channel.c: Deferred some more BUGBUG
comments to a JIRA issue or XXX comment.
2013-08-21 17:12 +0000 [r397310] David M. Lee <dlee@digium.com>
* /, main/http.c: Complete http_shutdown. This patch frees up some
resources allocated in http.c. * tcp listeners stopped * tls
settings freed * uri redirects freed * unregister internal http.c
uri's (closes issue ASTERISK-22237) Reported by: Corey Farrell
Patches: http.patch uploaded by Corey Farrell (license 5909)
........ Merged revisions 397308 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397309 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-21 16:31 +0000 [r397307] Matthew Jordan <mjordan@digium.com>
* include/asterisk/frame.h, /: Set 14400 as the default max bit
rate if T38MaxBitRate is not specified If an endpoint fails to
include the T38MaxBitRate attribute during negotiation, Asterisk
will negotiate a bit rate of 2400 instead of the ITU recommended
bit rate of 14400. This patch fixes this by making
AST_T38_RATE_14400 the 'default' value of the enum by assigning
it a value of 0, such that if an endpoint fails to include the
attribute, the default will be 14400. Note that Walter Doekes
included the nice comment in frame.h about why we are
purposefully assigning AST_T38_RATE_14400 a value of 0. (closes
issue ASTERISK-22275) Reported by: Andreas Steinmetz patches:
fax-fix.patch uploaded by anstein (License 6523) ........ Merged
revisions 397256 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397257 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-21 16:23 +0000 [r397295-397306] David M. Lee <dlee@digium.com>
* res/ari/resource_asterisk.c, res/res_ari_asterisk.c,
rest-api/api-docs/channels.json, res/ari/resource_channels.c,
res/res_ari_channels.c, rest-api/api-docs/asterisk.json: ARI:
Correct segfault with /variable calls are missing ?variable
parameter. Both /asterisk/variable and
/channel/{channelId}/variable requires a ?variable parameter to
be passed into the query. But we weren't checking for the
parameter being missing, which caused a segfault. All calls now
properly return 400 Bad Request errors when the parameter is
missing. The Swagger api-docs were updated accordingly. (closes
issue ASTERISK-22273)
* main/stasis_endpoints.c: ARI: Remove the 'channel:' scheme from
endpoint's channel list. For times when a reference in ARI might
be ambiguous, the reference is built as an URI (such as
channel:1376341790.3). An endpoint's channel list is not
ambiguous, and in fact the field is named 'channel_ids', but it
had channel URI's instead of channel id's. This patch changes the
list to be the raw id instead of the URI. (closes issue
ASTERISK-22291)
* res/res_stasis.c, res/stasis/control.h: res_stasis: remove call
to missing function control_continue. In the shuffling around of
res_stasis, control_continue was renamed to
stasis_app_control_continue, but the call in res_stasis wasn't
updated. In looking into it, it turns out it wasn't really the
right thing to do in res_stasis anyways. This patch changes the
handling of received a AST_CONTROL_HANGUP frame to be the same as
receiving a NULL frame, and removed the declaration of
control_continue(), since it doesn't exist any more. (closes
issue ASTERISK-22292) Reported by: Denis Smirnov
2013-08-21 15:51 +0000 [r397294] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_holding.c, main/bridge.c,
include/asterisk/bridge_channel.h, main/features.c,
bridges/bridge_builtin_interval_features.c,
apps/app_bridgewait.c, include/asterisk/bridge_features.h,
main/bridge_channel.c, res/parking/parking_bridge_features.c,
apps/app_agent_pool.c: Fix several interrelated issues dealing
with the holding bridge technology. * Added an option flags
parameter to interval hooks. Interval hooks now can specify if
the callback will affect the media path or not. * Added an option
flags parameter to the bridge action custom callback. The action
callback now can specify if the callback will affect the media
path or not. * Made the holding bridge technology reexamine the
participant idle mode option whenever the entertainment is
restarted. * Fixed app_agent_pool waiting agents needlessly
starting and stopping MOH every second by specifying the
heartbeat interval hook as not affecting the media path. * Fixed
app_agent_pool agent alert from restarting the MOH after the
alert beep. The agent entertainment is now changed from MOH to
silence after the alert beep. * Fixed holding bridge technology
to defer starting the entertainment. It was previously a mixture
of immediate and deferred. * Fixed holding bridge technology to
immediately stop the entertainment. It was previously a mixture
of immediate and deferred. If the channel left the bridging
system, any deferred stopping was discarded before taking effect.
* Miscellaneous holding bridge technology rework coding
improvements. Review: https://reviewboard.asterisk.org/r/2761/
2013-08-21 14:39 +0000 [r397255] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Prevent a crash on outbound SIP MESSAGE
requests. If a From header on an outbound out-of-call SIP MESSAGE
were malformed, the result could crash Asterisk. In addition, if
a From header on an incoming out-of-call SIP MESSAGE request were
malformed, the message was happily accepted rather than being
rejected up front. The incoming message path would not result in
a crash, but the behavior was bad nonetheless. (closes issue
ASTERISK-22185) reported by Zhang Lei ........ Merged revisions
397254 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-21 14:08 +0000 [r397244] Kinsey Moore <kmoore@digium.com>
* res/res_stasis.c: Allow channels in app_stasis to hangup properly
This detects hangups that occur while bridged to allow channels
to exit app_stasis even if the hangup frame was absorbed by the
bridge the channel was in. Reported by: David Lee (closes issue
ASTERISK-22297)
2013-08-21 13:41 +0000 [r397243] Matthew Jordan <mjordan@digium.com>
* channels/chan_sip.c, CHANGES: Allow the SIP_CODEC family of
variables to specify more than one codec The SIP_CODEC family of
variables let you set the preferred codec to be offered on an
outbound INVITE request. However, for video calls, you need to be
able to set both the audio and video codecs to be offered. This
patch lets the SIP_CODEC variables accept a comma delineated list
of codecs. The first codec in the list is set as the preferred
codec; additional codecs are still offered however. This lets a
dialplan writer set both audio and video codecs, e.g.,
Set(SIP_CODEC=ulaw,h264) Note that this feature was written by
both Dennis Guse and Frank Haase Review:
https://reviewboard.asterisk.org/r/2728 (closes issue
ASTERISK-21976) Reported by: Denis Guse Tested by: mjordan,
sysreq patches: patch-channels-chan__sip.c-393919 uploaded by
dennis.guse (license 6513)
2013-08-21 02:15 +0000 [r397206] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix Not Storing Current Incoming Recv
Address In 1.8, r384779 introduced a regression by retrieving an
old dialog and keeping the old recv address since recv was
already set. This has caused a problem when a proxy is involved
since responses to incoming requests from the proxy server, after
an outbound call is established, are never sent to the correct
recv address. In 11, r382322 introduced this regression. The fix
is to revert that change and always store the recv address on
incoming requests. Thank you Walter Doekes for helping to point
out this error and Mark Michelson for your input/review of the
fix. (closes issue ASTERISK-22071) Reported by: Alex Zarubin
Tested by: Alex Zarubin, Karsten Wemheuer Patches:
asterisk-22071-store-recvd-address.diff by Michael L. Young
(license 5026) ........ Merged revisions 397204 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397205 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-20 21:01 +0000 [r397111-397193] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_acl.c, include/asterisk/res_pjsip.h,
res/res_pjsip/config_security.c (removed),
res/res_pjsip/pjsip_configuration.c: Localize and rename ACL
configuration. This is more-or-less a reversion of previous ACL
behavior so that it is more self-contained. ACL sections are now
only parsed if res_pjsip_acl.so is loaded. Moreover, the
configuration section is now "type=acl" instead of
"type=security". The original reason for having ACLs configured
in a "type=security" section was to lump ACLs and other
security-related items into the same section. The problem is that
ACLs really should be in their own sections and there are no
other security-related options implemented anyways.
* /, channels/chan_sip.c: Remove REF_DEBUG definition. ........
Merged revisions 397156 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397157 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c, channels/sip/dialplan_functions.c: Fix
refcounting of sip_pvt in test_sip_rtpqos test and unlink it from
the list of pvts. (closes issue ASTERISK-22248) reported by Corey
Farrell patches: test_sip_rtpqos.patch uploaded by Corey Farrell
(license #5909) ........ Merged revisions 397112 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397133 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_pjsip.c: Clarify documentation for the "identify_by"
option for SIP endpoints. This also removes documentation for the
options that no longer exist. (closes issue ASTERISK-22306)
reported by Rusty Newton
2013-08-20 15:36 +0000 [r397110] Kinsey Moore <kmoore@digium.com>
* main/astfd.c, /, main/threadstorage.c: Unregister CLI commands on
exit This patch ensures that CLI commands enabled by
DEBUG_FD_LEAKS and DEBUG_THREADLOCALS are cleaned up properly on
exit. (closes issue ASTERISK-22238) Reported by: Corey Farrell
Tested by: Corey Farrell Patches: debug_cli_unregister.patch
uploaded by Corey Farrell ........ Merged revisions 397106 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 397107 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-20 15:32 +0000 [r397073-397109] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_endpoint_identifier_ip.c: Add debug message to
res_pjsip_endpoint_identifier_ip to indicate when an endpoint is
successfully retrieved. (closes issue ASTERISK-22101) reported by
Rusty Newton
* res/res_pjsip_registrar.c: Add warning messages for registration
failure paths. (closes issue ASTERISK-22089) reported by Rusty
Newton patches: patch1.txt uploaded by John Bigelow (License
#5091)
* res/res_pjsip.c: Add note to transport configuration that a
restart is required to change transports. (closes issue
ASTERISK-22094) reported by Rusty Newton
2013-08-20 14:26 +0000 [r397072] Kinsey Moore <kmoore@digium.com>
* /: Recorded merge of revisions 397067 from
http://svn.asterisk.org/svn/asterisk/branches/11 ........ Fix
xmldoc memory leak This fixes a single-attribute memory leak that
was occurring when the "required" attribute was not true. (closes
issue ASTERISK-22249) Reported by: Corey Farrell Tested by: Corey
Farrell Patches: xmldoc-free_attr_required.patch uploaded by
Corey Farrell ........ Merged revisions 397064 from
http://svn.asterisk.org/svn/asterisk/branches/1.8
2013-08-20 11:48 +0000 [r396996] Walter Doekes <walter+asterisk@wjd.nu>
* configs/h323.conf.sample, /, configs/sip.conf.sample: Add
"autoframing" option to sip.conf.sample and h323.conf.sample. The
autoframing option was added to chan_sip.c in r43243 (mogorman,
2006-09-19 01:32:57), but never made its way into the sample
configs. Review: https://reviewboard.asterisk.org/r/2768/
........ Merged revisions 396994 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396995 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-20 11:33 +0000 [r396993] Joshua Colp <jcolp@digium.com>
* res/res_pjsip_dtmf_info.c: Remove assumption in
res_pjsip_dtmf_info that all INFO messages will contain a body.
(closes issue ASTERISK-22320) Reported by: Matt Jordan
2013-08-20 00:08 +0000 [r396946-396949] Matthew Jordan <mjordan@digium.com>
* /, apps/app_queue.c: Let Queue wrap up time influence member
availability Queue members who happen to be in multiple queues at
the same time may not have any wrap up time. This problem
occurred due to a code change in Asterisk 11.3.0 that unified
device state tracking of Queue members in multiple Queues (which
fixed some other problems, but unfortunately caused this one).
This patch fixes the behavior by having the is_member_available
function check the queue's wrap up time and the time of the
member's last call, such that for a particular queue, the member
won't be considered available if their last call is within the
wrap up time. (closes issue ASTERISK-22189) Reported by: Tony
Lewis Tested by: Tony Lewis ........ Merged revisions 396948 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_meetme.c: Resolve conflicts between
CONFFLAG_DONT_DENOISE and CONFFLAG_INTROUSER_VMREC When r382230
added an option to not denoise the MeetMe conference (if a user
had a channel whose format's sample rate changed frequently, for
example), the value added was the maximum allowed value for the
constants that define the options for MeetMe in 1.8. Not so in 11
- unfortunately, the option CONFFLAG_DONT_DENOISE conflicts with
CONFFLAG_INTROUESR_VMREC. This patch fixes that, and also tweaks
one of the way in which the constants was declared for
consistency. Thanks to Tony Mountifield for pointing out the
problem and solution. (closes issue ASTERISK-22269) Reported by:
Tony Mountifield ........ Merged revisions 396944 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-19 16:10 +0000 [r396930] Richard Mudgett <rmudgett@digium.com>
* main/bridge.c: Update BUGBUG comment.
2013-08-19 14:54 +0000 [r396923] Jonathan Rose <jrose@digium.com>
* main/bridge.c: attended transfers: Fix a bug affecting external
blond transfers Performing a blond transfer (attended transfer
that is completed before the transfer recipient picks up)
externally through chan_sip or chan_pjsip would result in lost
references to the channels involved with the transfer as well as
their bridge. (closes issue ASTERISK-22092) Reported by:
mmichelson Review: https://reviewboard.asterisk.org/r/2766/
2013-08-19 14:53 +0000 [r396915-396922] Matthew Jordan <mjordan@digium.com>
* channels/sip/include/sip.h: Whitespace cleanup Remove some
extraneous blobs
* main/data.c: Fix invalid access to disposed memory in main/data
unit test It is not safe to iterate over a macro'd list of ao2
objects, deref them such that the item's destructor is called,
and leave them in the list. The list macro to iterate over items
requires the item to be a valid allocated object in order to
proceed to the next item; with MALLOC_DEBUG on the corruption of
the linked list is caught in the crash. This patch fixes the
invalid access to free'd memory by removing the ao2 item from the
list before de-refing it.
2013-08-18 03:05 +0000 [r396908-396909] Kinsey Moore <kmoore@digium.com>
* channels/chan_mgcp.c: Update chan_mgcp to the modified parking
API
* res/res_corosync.c: Disable build of res_corosync until it is
back in a compiling state
2013-08-17 18:13 +0000 [r396899-396902] Rusty Newton <rnewton@digium.com>
* res/res_pjsip.c: xml doc changes for 'aor' config object and a
few of its options Added or modified text in the xml doc for the
'aor' config object to address a few issues: * help for the
'mailboxes' option didn't make it clear how the "list" should be
formatted. * AoR object's involvement in inbound registration
wasn't mentioned. * help for the 'contact' option didn't describe
how to specify multiple contacts. * help for the 'max_contacts'
option didn't tell whether it limited the amount of contacts
defined through static configuration. (issue ASTERISK-22118)
(closes issue ASTERISK-22118)
* res/res_pjsip.c: 'domain_alias' config object XML help doesn't
make it clear that the name used for the object is the domain
alias (issue ASTERISK-22114) (closes issue ASTERISK-22114)
* res/res_pjsip.c: xml doc changes for clarity - 'auth' config
object and auth's 'auth_type' config option (issue
ASTERISK-22108) (closes issue ASTERISK-22108)
* res/res_pjsip.c: xml doc change for transport config object -
remove non-applicable warning and add text regarding Asterisk
restart (closes issue ASTERISK-22105)
2013-08-17 15:01 +0000 [r396887-396890] Kinsey Moore <kmoore@digium.com>
* res/parking/parking_applications.c, include/asterisk/parking.h,
main/bridge_channel.c, res/parking/parking_bridge_features.c,
channels/chan_dahdi.c, res/parking/res_parking.h,
res/res_parking.c, channels/sig_analog.c, channels/chan_skinny.c,
main/parking.c, main/bridge.c: Allow res_parking to be unloadable
This change protects accesses of res_parking such that it can
unload safely once transient uses of its registered functions are
complete. The parking API has been restructured such that its
consumers do not have access to the vtable exposed by the parking
provider, but instead route through stubs to prevent consumers
from holding on to function pointers. This adds calls to all the
parking unload functions and moves application loading and
unloading into functions in parking_applications.c similar to the
rest of the parts of res_parking. Review:
https://reviewboard.asterisk.org/r/2763/ (closes issue
ASTERISK-22142)
* include/asterisk/cel.h, cel/cel_tds.c, tests/test_event.c,
include/asterisk/_private.h, main/cel.c, cel/cel_odbc.c,
include/asterisk/event.h, include/asterisk/event_defs.h,
cel/cel_manager.c, cel/cel_custom.c, tests/test_cel.c,
cel/cel_sqlite3_custom.c, main/event.c, main/asterisk.c,
cel/cel_pgsql.c, cel/cel_radius.c: Refactor CEL to avoid using
the event system core This removes usage of the event system for
CEL backend data distribution and strips unused pieces out of the
event system. Review: https://reviewboard.asterisk.org/r/2732/
* apps/app_voicemail.c, res/parking/parking_ui.c,
channels/chan_unistim.c, main/pbx.c,
include/asterisk/devicestate.h, main/security_events.c,
channels/chan_sip.c, main/ccss.c, tests/test_event.c,
main/devicestate.c, res/parking/parking_applications.c,
res/res_xmpp.c, channels/sig_pri.c, channels/chan_iax2.c,
apps/app_queue.c, res/res_jabber.c, main/presencestate.c,
channels/sig_pri.h, res/res_parking.c, channels/chan_dahdi.c,
main/manager.c, funcs/func_presencestate.c,
include/asterisk/event.h, include/asterisk/event_defs.h,
channels/chan_skinny.c, tests/test_cel.c, main/event.c,
include/asterisk/security_events_defs.h,
res/parking/parking_manager.c, channels/chan_mgcp.c,
res/res_security_log.c: Strip down the old event system This
removes unused code, event types, IE pltypes, and event IE types
where possible and makes several functions private that were once
public. This includes a renumbering of the remaining event and IE
types which breaks binary compatibility with previous versions.
The last remaining consumers of the old event system (or parts
thereof) are main/security_events.c, res/res_security_log.c,
tests/test_cel.c, tests/test_event.c, main/cel.c, and the CEL
backends. Review: https://reviewboard.asterisk.org/r/2703/
(closes issue ASTERISK-22139)
2013-08-16 20:48 +0000 [r396849-396877] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c, include/asterisk/bridge.h, main/bridge.c,
include/asterisk/bridge_channel.h: Fix CLI "bridge kick <bridge>
<channel>" to check if the bridge needs dissolving. SIP/foo --
Local;1==Local;2 -- .... -- Local;1==Local;2 -- SIP/bar Kick a ;1
channel and the chain toward SIP/foo goes away. Kick a ;2 channel
and the chain toward SIP/bar goes away. This can leave a local
channel chain between the kicked ;1 and ;2 channels that are
orphaned until you manually request one of those channels to
hangup or request the bridge to dissolve. * Added
ast_bridge_kick() as a companion to ast_bridge_remove(). The
functional difference is that ast_bridge_kick() may dissolve the
bridge as a result of the channel leaving the bridge. * Made CLI
"bridge kick <bridge> <channel>" use ast_bridge_kick() instead of
ast_bridge_remove() so the bridge can dissolve if needed. *
Renamed bridge_channel_handle_hangup() to
ast_bridge_channel_kick() and made it accessible to other files.
* include/asterisk/doxygen/architecture.h,
include/asterisk/bridge_channel_internal.h: Fix some doxygen
bridging file references.
* main/bridge_channel.c, main/message.c, tests/test_cdr.c,
main/db.c, main/xmldoc.c, main/format.c, res/res_rtp_asterisk.c,
main/pbx.c, main/rtp_engine.c, tests/test_abstract_jb.c,
channels/chan_sip.c, main/pickup.c, apps/app_queue.c,
main/indications.c, res/parking/parking_bridge_features.c,
main/cdr.c, main/data.c, main/manager.c, tests/test_jitterbuf.c,
main/features.c, tests/test_voicemail_api.c, main/file.c,
tests/test_cel.c, main/stasis_channels.c: Doxygen comment tweaks.
* main/hashtab.c, main/utils.c: Fix utilities compilation/linking.
The horrid structure of the source in the utils directory strikes
again. Moved the _ast_mem_backtrace_buffer[] definition from the
logical location in utils.c to hashtab.c so the aelparse and
conf2ael utilities can link.
* include/asterisk/utils.h: utils.h: Minor formatting tweaks.
2013-08-16 16:03 +0000 [r396842] David M. Lee <dlee@digium.com>
* main/stasis_channels.c, tests/test_stasis.c, main/stasis.c,
main/stasis_cache_pattern.c, main/stasis_cache.c,
include/asterisk/astobj2.h: Stasis: address refcount races;
implementation comments Change r395954 reordered some stasis
object destruction, which should have been fine. Unfortunately,
it caused some hard to reproduce issues related to objects being
accessed after they had been destroyed. The patch in r396329
fixed the destruction order problem; this patch addresses the
underlying issue. A few other stasis-related fixes were also
added. * Add ref-bumps around areas where objects may get
transitively destroyed. (For example, where we lock a topic,
unref a subscription, which unrefs the topic, which explodes the
topic when we try to unlock it.) * Wrote an extensive doxygen
page about Stasis implementation, relationships between objects,
lifecycles of objects, how the refcounting works, etc. Many other
comments were added, corrected, or cleaned up. * Added an assert
to the topic dtor to catch extra ref decrements. * Fixed type
used after destruction errors for graceful shutdown in
stasis_channels.c. * I added two unit tests in an attempt to
catch destruction order issues. Since the underlying cause is a
race condition, though, the tests rarely failed even when the
code was wrong. * Fixed a leak in stasis_cache_pattern.c. (closes
issue ASTERISK-22243) Review:
https://reviewboard.asterisk.org/r/2746/
2013-08-16 12:20 +0000 [r396829] Kinsey Moore <kmoore@digium.com>
* main/utils.c, main/sounds_index.c, main/loader.c: Improve sounds
indexer CLI commands This reworks the CLI commands used to access
sounds information from "sounds show[ soundid]" to "core show
sounds" and "core show sound <soundid>". This also reworks the
"sounds reload" CLI command to fall under normal module reloading
("module reload sounds"). Also, make trunk build when
DEBUG_MALLOC is not enabled. Review:
https://reviewboard.asterisk.org/r/2745/ (closes issue
ASTERISK-22141)
2013-08-16 07:18 +0000 [r396822] Walter Doekes <walter+asterisk@wjd.nu>
* main/utils.c, include/asterisk/utils.h, main/pbx.c: Prevent heap
alloc functions from running out of stack space. When asterisk
has run out of memory (for whatever reason), the alloc function
logs a message. Logging requires memory. A recipe for infinite
recursion. Stop the recursion by comparing the function call
depth for sane values before attempting another OOM log message.
Review: https://reviewboard.asterisk.org/r/2743/
2013-08-15 22:10 +0000 [r396783-396814] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c: Bridge: Don't suspend/unspend the channel
for interception routines. By their nature, the connected line
and redirecting interception routines are not supposed to affect
the channel's media. Therefore, they should not suspend and
unsuspend the channel while running. The suspend/unsuspend
operations could be expensive depending upon the bridge and
channel technology involved.
* res/parking/res_parking.h, res/res_parking.c,
res/parking/parking_tests.c, main/features.c: Minor parking
cleanup.
* res/parking/parking_bridge_features.c: Parking: Eliminate local
channel name hack to get peer channel. (closes issue
ASTERISK-22034) Reported by: Matt Jordan
* main/features.c, main/bridge_channel.c: Remove early bridge
BUGBUG comments. Remove some unneeded features.c comments.
* configs/features.conf.sample: Update features.conf.sample
atxferdropcall option.
* apps/confbridge/conf_config_parser.c, main/bridge.c,
include/asterisk/bridge_channel.h, main/config_options.c,
main/bridge_channel.c: Changed some BUGBUG tags to associated
JIRA issue tags.
* main/bridge.c, main/features.c, bridges/bridge_softmix.c,
include/asterisk/bridge.h: Resolve some BUGBUG comments.
2013-08-15 16:37 +0000 [r396747] Kinsey Moore <kmoore@digium.com>
* main/asterisk.c, main/cli.c, /: Remove leading spaces from the
CLI command before parsing If you've mistakenly put a space
before typing in a command, the leading space will be included as
part of the command, and the command parser will not find the
corresponding command. This patch rectifies that situation by
stripping the leading spaces on commands. Review:
https://reviewboard.asterisk.org/r/2709/ Patch-by: Tilghman
Lesher ........ Merged revisions 396745 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396746 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-15 15:12 +0000 [r396732-396734] Richard Mudgett <rmudgett@digium.com>
* main/features.c, include/asterisk/channel.h,
channels/chan_iax2.c, channels/chan_vpb.cc: Remove some dead code
dealing with: AST_BRIDGE_REC_CHANNEL_0, AST_BRIDGE_REC_CHANNEL_1,
and AST_BRIDGE_IGNORE_SIGS.
* include/asterisk/bridge_channel_internal.h, main/manager.c,
main/bridge_channel.c: Fix Bridge API DTMF hook matching for
begin and end DTMF events. The Bridge API DTMF hook matching
would not deal with DTMF end events only. It required a DTMF
begin event to start matching the DTMF hooks. There are many
places in Asterisk where code only generates DTMF end events
without the corresponding begin event. One such place is the AMI
action Atxfer. * Fixed DTMF hook matching if there is a string of
DTMF frames in the read queue. We could potentially miss some of
them before. * Fixed AMI Atxfer action documentation. (closes
issue ASTERISK-22037) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2752/
2013-08-15 12:17 +0000 [r396722-396724] Kinsey Moore <kmoore@digium.com>
* main/features.c, apps/app_confbridge.c, main/bridge.c: Fix
feature_attended_transfer test The feature_attended_transfer test
is failing due to Asterisk not passing DTMF in the bridges
created for internal attended transfers. This sets the features
initialization routine to set this flag by default and adjusts
the basic bridge and confbridge's use of the bridging system
accordingly as per Richard's suggestion instead of adjusting this
individual case. This change allows the necessary DTMF to pass
through the attended transfer bridge and complete the test
successfully. Review: https://reviewboard.asterisk.org/r/2759/
(closes issue ASTERISK-22222)
* channels/chan_sip.c, main/utils.c, include/asterisk/lock.h: Fix
deadlocks in chan_sip in REFER and BYE handling This resolves
several deadlocks in chan_sip relating to usage of
ast_channel_bridge_peer and improves accessibility of lock
debugging function calls. Review:
https://reviewboard.asterisk.org/r/2756/ (closes issue
ASTERISK-22215)
* res/res_stasis.c: Prevent automagic things from happening to
Stasis application bridges This prevents swap optimization,
merges, and transfers involving Stasis application bridges. It
wouldn't be nice if the bridge you thought you owned disappeared
from under you. Reported-by: Richard Mudgett
2013-08-15 00:16 +0000 [r396695-396713] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, channels/chan_vpb.cc, include/asterisk/channel.h:
Remove unsupported channel technology callbacks.
* channels/chan_vpb.cc: chan_vpb: Effectively remove native
support. Left enough bread crumbs to be able to convert later if
needed.
* channels/chan_iax2.c: chan_iax2: Conditionally remove native
support for now. (issue ASTERISK-21944)
* channels/chan_misdn.c: chan_misdn: Effectively remove native
support. Left enough bread crumbs to be able to convert later if
needed.
* apps/app_bridgewait.c: app_bridgewait: Inhibit local channel
optimizations to the bridge. Holding bridges can allow local
channel move/swap optimization to the bridge. However, we cannot
allow it for the BridgeWait holding bridge because the call will
lose the channel roles and dialplan location as a result.
2013-08-14 19:06 +0000 [r396621-396658] Joshua Colp <jcolp@digium.com>
* /, tests/test_hashtab_thrash.c: Tweak comment for why usleep is
used. ........ Merged revisions 396656 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396657 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, tests/test_hashtab_thrash.c: Tweak test_hashtab_thrash test to
allow the critical threads to execute. Depending on certain
conditions it was possible for the hashtab counting thread to
starve other threads, preventing them from executing in the
expected fashion. This change adds a sleep to allow the others to
do what they need to do. While this doesn't thrash the hashtab as
much as previously, it at least works. (closes issue
ASTERISK-22276) Reported by: Matt Jordan ........ Merged
revisions 396619 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396620 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-13 18:47 +0000 [r396581-396584] Walter Doekes <walter+asterisk@wjd.nu>
* /, channels/chan_sip.c: chan_sip: Convert 'just did sched_add
waitid...' from warning to debug message. Patches:
reviewboard-2377.patch uploaded by Paul Belanger Review:
https://reviewboard.asterisk.org/r/2377/ ........ Merged
revisions 396582 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396583 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: chan_sip: Fix IP-addr in warning when
rejecting a contact ACL. Patches: reviewboard-2155.patch uploaded
by Paul Belanger Review: https://reviewboard.asterisk.org/r/2155/
........ Merged revisions 396579 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396580 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-13 15:27 +0000 [r396559-396568] David M. Lee <dlee@digium.com>
* include/asterisk/bridge_features.h, res/res_stasis.c,
res/ari/resource_bridges.c, res/res_stasis_bridge_add.c
(removed), res/res_stasis_playback.c, res/stasis/control.c,
res/res_stasis_bridge_add.exports.in (removed),
include/asterisk/stasis_app.h,
include/asterisk/stasis_app_impl.h, res/res_stasis_recording.c,
res/stasis/control.h, include/asterisk/bridge_internal.h: ARI:
allow other operations to happen while bridged This patch changes
ARI bridging to allow other channel operations to happen while
the channel is bridged. ARI channel operations are designed to
queue up and execute sequentially. This meant, though, that while
a channel was bridged, any other channel operations would queue
up and execute only after the channel left the bridge. This patch
changes ARI bridging so that channel commands can execute while
the channel is bridged. For most operations, things simply work
as expected. The one thing that ended up being a bit odd is
recording. The current recording implementation will fail when
one attempts to record a channel that's in a bridge. Note that
the bridge itself may be recording; it's recording a specific
channel in the bridge that fails. While this is an annoying
limitation, channel recording is still very useful for use cases
such as voice mail, and bridge recording makes up much of the
difference for other use cases. (closes issue ASTERISK-22084)
Review: https://reviewboard.asterisk.org/r/2726/
* tests/test_hashtab_thrash.c: Missed a spot in r396559
* tests/test_hashtab_thrash.c: Fix build warnings when printf a
tv_usec. The debug logs added in r396528 neglected to account for
suseconds_t being an int. See r392076 for more info.
2013-08-12 22:05 +0000 [r396552] John Bigelow <jbigelow@digium.com>
* res/res_pjsip_registrar.c: Add test suite events for when
contacts are added or removed from an AOR These are needed by the
pjsip inbound registration test suite tests. (issue
ASTERISK-21833) (issue ASTERISK-21834) (issue ASTERISK-21835)
(issue ASTERISK-21837) Review:
https://reviewboard.asterisk.org/r/2700/ Review:
https://reviewboard.asterisk.org/r/2739/
2013-08-12 15:59 +0000 [r396542-396543] Matthew Jordan <mjordan@digium.com>
* main/bridge.c, main/features.c, main/bridge_channel.c: Fix two
race conditions and ref counting issue when joining a bridge
These problems were all caught by a test in the Asterisk Test
Suite that originated some Local channels and attempted to move
the ;2 half of the Local channel into a bridge using the Bridge
AMI action. (1) When originating a channel, the Newchannel event
is emitted quickly; however, the ;2 channel will not have a pbx
thread assigned to it until after the outbound 'dialing' for the
;1 is complete. Thus, there is a period of time where the outside
world "knows" of the channel's existence and can influence it but
Asterisk has not yet started the dialplan execution thread. If a
Bridge AMI action is taken on the channel, the channel appears to
be a Dialed channel with no PBX thread; hence, the channel will
be imparted into the Bridge by first 'yanking' the channel. At
the same time, a race condition can occur after the yank (but
before entering the bridge) when ;1 answers and starts a PBX on
the ;2. The end result currently is an assertion failure in the
Bridging API, as a channel with a PBX is imparted into the
Bridge. There's no way to prevent AMI from attempting to Bridge a
channel immediately after creation; likewise, holding the channel
lock through the entire Dial operation is unwise (and
impossible). Instead of treating the presence of a PBX thread as
an error, we simply bail out of the adding the channel to the
bridge through ast_bridge_impart. The Bridge action will then
fail - but we avoid a situation where the channel is both
executing a PBX thread and simultaneously being given a separate
thread in the bridging system (which would be a "bad thing").
Since imparting a channel with a PBX *can* occur and is not a
programming error, the asserts have been removed. (2) When the
first condition occurs, we have to take one of two actions:
either hangup the yanked channel as it did not enter the bridge,
or deref it because we don't own it. We can determine if we own
it or not by testing for the presence of the PBX thread. If we
hung it up directly, we'd crash. (3) bridge_find_channel does not
increase the reference count of the ast_bridge_channel object.
The RAII_VAR usage in ast_bridge_add_channel thus created a
ticking time bomb in whatever bridge the channel moved into, as
the destructor for the ast_bridge_channel object would be called.
Review: https://reviewboard.asterisk.org/r/2741/
* main/pbx.c: Unlock outgoing dial lock on off nominal path If the
thread servicing the dial request isn't created successfully, the
outgoing dial lock will still be held when the function returns.
This patch unlocks the lock on this off nominal path.
2013-08-10 20:29 +0000 [r396521-396535] Matthew Jordan <mjordan@digium.com>
* tests/test_hashtab_thrash.c: Pipe test output through test object
not stdout Otherwise, it doesn't show up in the automated test
failures
* tests/test_hashtab_thrash.c: Add some debugging when
test_hashtab_thrash fails Disabling DEBUG_THREADS caused this
test to fail on the 32-bit build agent. Adding some debugging to
see why it thinks the test is timing out.
* main/pbx.c: Unlock the dial operation lock on a failed dial If a
dial operation fails, the pbx_outgoing_attempt routine will exit
without first having unlocked the outgoing dial lock. This would
be a "bad thing".
2013-08-09 21:50 +0000 [r396512] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_native_rtp.c: bridge_native_rtp: Remove some
unnecessary NULL checks on c1.
2013-08-09 20:29 +0000 [r396505] Walter Doekes <walter+asterisk@wjd.nu>
* main/autoservice.c: Don't leak frames when memory is full in
autoservice_run. Review: https://reviewboard.asterisk.org/r/2566/
2013-08-09 17:28 +0000 [r396497-396498] Jonathan Rose <jrose@digium.com>
* main/pbx.c, channels/chan_sip.c: pbx: Make originate threads
indicate dial status when synchronous This makes it so that we
can detect failures to originate as with earlier versions of
Asterisk, which restores the Asterisk 11 behavior for the
originate manager action. This was causing the ACL tests for SIP
and IAX2 to fail since those tests expected originate failures
when ACLs would cause rejections. Also, this patch fixes crashes
in chan_sip when ACLs rejected peers during registration
verification. (closes issue ASTERISK-22212) Reported by: Matt
Jordan Review: https://reviewboard.asterisk.org/r/2753/
* main/core_unreal.c, main/bridge_channel.c,
include/asterisk/bridge.h, res/ari/resource_bridges.c,
include/asterisk/core_unreal.h: bridge_channel: Support the
lonely flag and make ARI use it. The lonely flag is an optional
flag for bridge channels that will make them leave a bridge when
a channel leaves if only lonely channels are in the bridge at
that point. This is useful for things like ending recording and
playback channels when they cease to be interacting with other
channels in the bridge. (closes issue ASTERISK-22117) Reported
by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2721/
2013-08-09 13:58 +0000 [r396490] Matthew Jordan <mjordan@digium.com>
* apps/confbridge/conf_config_parser.c: Update documentation for
ConfBridge with some additional markup Add some additional markup
for items that needed it, e.g., replaceable tags, literal tags,
etc.
2013-08-08 22:57 +0000 [r396480] Richard Mudgett <rmudgett@digium.com>
* tests/test_stasis.c: Fix stasis/core unit test. Should have had
the CR/LF.
2013-08-08 22:09 +0000 [r396474] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* channels/chan_dahdi.c: chan_dahdi: create channels at run-time
This code adds chan_dahdi the command 'dahdi create channels
<range>' (where <range> is a single <n>-<m> or 'new') and updates
'dahdi destroy channel' with a similar 'dahdi destroy channels'.
It allows DAHDI channels and spans to be added after the initial
channel load (without destroying all other channels as in 'dahdi
restart'). It also includes some fixes to the D-Channel / span
destruction code (r394552). This change is intended to provide a
hook for a script running from udev once a span has been assigned
("registered") / unassigned ("unregistered") for its channels.
The udev hook configures the span's channels with dahdi_cfg -S,
and can then ask Asterisk to create ethe channels. See the
scripts added to DAHDI-tools in 2.7.0. Review:
https://reviewboard.asterisk.org/r/1598/
2013-08-08 20:52 +0000 [r396417-396463] Richard Mudgett <rmudgett@digium.com>
* tests/test_stasis.c: Add missing CR/LF to FakeMI stasis test AMI
event.
* main/stasis_bridges.c: Remove extra CR/LF from AMI event.
* apps/confbridge/confbridge_manager.c, include/asterisk/manager.h,
main/stasis_bridges.c, main/manager_bridges.c: Make bridge
snapshots use prefixes. * Changed
ast_manager_build_bridge_state_string() to assume an empty prefix
string just like ast_manager_build_channel_state_string(). *
Created ast_manager_build_bridge_state_string_prefix() to work
just like ast_manager_build_channel_state_string_prefix(). * Made
BridgeMerge AMI event use To/From prefixes.
2013-08-08 18:40 +0000 [r396412] Matthew Jordan <mjordan@digium.com>
* formats/format_wav_gsm.c: Improve disk writes for wav49 format
Writing to a file in the wav49 format performs rather
inefficiently. The procedure is approximately: (1) Write GSM
frame to the end of the file (2) Seek to the end of the file (3)
Seek to the header (4) Update the file size (5) Seek (again) to
the end of the file (6) Repeat This pattern negates any attempt
to use the stdio buffering setup in ast_writefile. It also
results in many small writes that require a seek going to the
disk each second which translates to poor disk performance on
certain file systems, particularly when there are multiple wav49
files being written simultaneously. (closes issue ASTERISK-19595)
Reported by: Byron Clark Tested by: Byron Clark patches:
gsm_wav_only_update_header_on_close.patch uploaded by byronclark
(License 6157)
2013-08-08 17:51 +0000 [r396401] Richard Mudgett <rmudgett@digium.com>
* main/bridge.c, main/channel_internal_api.c, main/features.c,
include/asterisk/bridge_features.h: Remove some resolved or
obsolete BUGBUG comments.
2013-08-08 14:13 +0000 [r396391-396392] Matthew Jordan <mjordan@digium.com>
* include/asterisk/channel.h, main/cel.c,
apps/confbridge/conf_chan_announce.c, main/manager_channels.c,
main/channel.c, main/manager_bridges.c,
channels/chan_bridge_media.c, apps/confbridge/conf_chan_record.c,
main/channel_internal_api.c: Hide the Surrogate channels from
external consumers; kill Masquerade events This patch does three
things: 1. It provides a Surrogate channel technology with a
consolidated "implementation detail flag" on the channel
technology. This tells consumers of Stasis that the creation of
this channel is an implementation detail in Asterisk and can be
ignored (if they so choose). This consolidates the conference
recorder/announcer flags as well - these flags had no additional
meaning beyond "ignore this channel please". 2. It modifies
allocation of a channel in two ways: (a) If a channel technology
can be determined from the name, we set it directly in the
allocation routine. This prevents the initial publication of the
message from going out with a NULL channel technology where
possible. This lets Stasis consumers get the right channel
technology on the first publication. (b) It reorganizes
allocation to make use of the 'finalized' property on the
channel. This was already used to know that a channel had
completely finished its construction in the masquerade routine;
now we also use it to know whether or not the setting of certain
channel properties is occurring during or post construction. The
various set routines were modified accordingly as well. 3. The
masquerade event is now dead, Jim. It no longer served any
purpose whatsoever - if you perform a call pickup you'll get a
Pickup event; if you perform an attended transfer you will still
get those events; if you steal a channel to put it elsewhere
you'll get the corresponding NewExten or BridgeEnter events.
Review: https://reviewboard.asterisk.org/r/2740
* main/utils.c: Prevent spurious memory error when appending
backtrace with MALLOC_DEBUG Backtraces are allocated outside of
the usual memory tracking performed by MALLOC_DEBUG. This allows
them to be used by the memory tracking enabled by that build
option; however, it also means that when backtraces are disposed
of they have to be done so outside of the re-defined free. This
patch undef's free prior to disposing of the allocated backtrace
when a backtrace is appended as a result of 'core show locks'.
2013-08-08 12:38 +0000 [r396385] Kinsey Moore <kmoore@digium.com>
* main/bridge.c: Prevent unreal channels from optimizing during
DTMF emulation This prevents unreal channel optimization during
the prequalification phase when either channel is involved in
DTMF emulation. This prevents a situation where an emulated digit
would be missed because the emulation was never completed.
Review: https://reviewboard.asterisk.org/r/2747/ (closes issue
ASTERISK-22214)
2013-08-08 07:05 +0000 [r396378] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c, /: - Fix different issues with call
transfer cancel. In case 3rd party busy or congestion call was
not returned. - Fix displaying soft button 'Redial' in case of no
redial number exists ........ Merged revisions 396377 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-08 02:58 +0000 [r396365-396371] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Handle Surrogate channels in Dial message processing
Depending on when a Surrogate channel replaces an existing
channel, it is possible to get a Dial message for the Surrogate
channel. When this occurs, no CDR will exist for the channel as
Surrogate channels are ignored. Safely handle the case when a CDR
doesn't exist for a Dial message.
* apps/app_queue.c: Perform Ring-No-Answer checks before processing
Hangup logic The rna() routine will raise a Stasis message
involving both the caller and the agent. This doesn't work so
well if we already hung up the agent channel, as the channel
doesn't quite exist. Not surprisingly, this will crash. This
patch properly runs the rna subroutine (performing all of the
Ring-No-Answer logic) prior to hanging up the agent channel.
(closes issue ASTERISK-22258) Reported by: Kiril Valchev Tested
by: Kiril Valchev
2013-08-06 21:20 +0000 [r396329-396347] David M. Lee <dlee@digium.com>
* apps/app_meetme.c: Fixed app_meetme for cache split changes
* include/asterisk/app.h, include/asterisk/stasis_app_recording.h,
res/ari/resource_recordings.h, funcs/func_frame_trace.c,
apps/app_minivm.c, main/app.c, res/res_stasis_recording.c,
include/asterisk/frame.h, rest-api/api-docs/recordings.json,
res/ari/resource_recordings.c, apps/app_voicemail.c,
main/channel.c, res/res_ari_recordings.c: ARI: Add recording
controls This patch implements the controls from ARI recordings.
The controls are: * DELETE /recordings/live/{recordingName} -
stop recording and discard it * POST
/recordings/live/{recordingName}/stop - stop recording * POST
/recordings/live/{recordingName}/pause - pause recording * POST
/recordings/live/{recordingName}/unpause - resume recording *
POST /recordings/live/{recordingName}/mute - mute recording
(record silence to the file) * POST
/recordings/live/{recordingName}/unmute - unmute recording. Since
this underlying functionality did not already exist, is was added
to app.c by a set of control frames, similar to how playback
control works. The pause/mute control frames are toggles, even
though the ARI controls are idempotent, to be consistent with the
playback control frames. (closes issue ASTERISK-22181) Review:
https://reviewboard.asterisk.org/r/2697/
* tests/test_stasis.c, main/stasis_cache_pattern.c,
main/stasis_cache.c, include/asterisk/stasis.h: Tweak caching
topics to fix CEL tests The Stasis changes in r395954 had an
unanticipated side effect: messages published directly to an _all
topic does not get forwarded to the corresponding caching topic.
This patch fixes that by changing how caching topics forward
messages, and how the caching pattern forwards are setup. For the
caching pattern, the all_topic is forwarded to the
all_topic_cached. This forwards messages published directly to
the all_topic to all_topic_cached. In order to avoid duplicate
messages on all_topic_cached, caching topics were changed to no
longer forward uncached messages. Subscribers to an individual
caching topic should only expect to receive cache updates, and
subscription change messages. Since individual caching topics are
new, this shouldn't be a problem. There are a few minor changes
to the pre-cache split behavior. * For topics changed to use the
caching pattern, the all_topic_cached will forward snapshots in
addition to cache updates. Since subscribers by design ignore
unexpected messages, this should be fine. * Caching topics that
don't use the caching pattern no longer forward non-cache
updates. This makes no difference for the current caching topics.
* mwi_topic_cached, channel_by_name_topic and
presence_state_topic_cached have no subscribers *
device_state_topic_cached's only subscriber only processes cache
udpates (issue ASTERISK-22243) Review:
https://reviewboard.asterisk.org/r/2738
2013-08-06 13:08 +0000 [r396320-396321] Kinsey Moore <kmoore@digium.com>
* res/res_pjsip/config_system.c,
res/res_pjsip/include/res_pjsip_private.h, res/res_pjsip.c:
Expose res_pjsip threadpool options Expose initial size,
automatic increment, maximum size, and idle timeout as
configurable parameters for the res_pjsip thread pool. Review:
https://reviewboard.asterisk.org/r/2704/ (closes issue
ASTERISK-22143)
* main/cdr.c: Fix memory leaks in the CDR engine Fix refcount bugs
and a possible locking problem in the CDR engine relating to use
of ao2_iterators. Review:
https://reviewboard.asterisk.org/r/2724/ (closes issue
ASTERISK-22126)
2013-08-06 12:39 +0000 [r396319] Joshua Colp <jcolp@digium.com>
* res/res_pjsip_messaging.c, res/res_pjsip_exten_state.c,
res/res_pjsip_notify.c, res/res_pjsip_outbound_registration.c:
Fix crash in res_pjsip_outbound_registration when the remote
server can not be resolved. This crash was caused by decrementing
the reference count of a newly created message when it should not
be. This change fixes that but also fixes all other cases where
this was incorrectly done. (closes issue ASTERISK-22188) Reported
by: Kinsey Moore
2013-08-06 08:43 +0000 [r396309-396311] Walter Doekes <walter+asterisk@wjd.nu>
* /, funcs/func_strings.c: Check result of ast_var_assign() calls
for memory allocation failure (2). Missed a spot in the previous
commit. ........ Merged revisions 396310 from
http://svn.asterisk.org/svn/asterisk/branches/11
* funcs/func_strings.c, pbx/pbx_dundi.c, utils/extconf.c,
apps/app_stack.c, apps/app_playback.c, funcs/func_global.c,
main/cdr.c, pbx/pbx_loopback.c, main/pbx.c, /: Check result of
ast_var_assign() calls for memory allocation failure. We try to
keep the system running even when all available memory is spent.
Review: https://reviewboard.asterisk.org/r/2734/ ........ Merged
revisions 396279 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 396287 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-05 20:20 +0000 [r396253] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix Registration Failure When A Peer And
TLS Are Used If a peer is used in a register line and TLS is
defined as the transport, the registration fails since the
transport on the dialog is never set properly resulting in UDP
being used instead of TLS. This patch sets the dialog's transport
based on the transport that was defined in the register line. If
the register line does not specify a transport, the parsing
function for the register line always defaults back to UDP.
(closes issue ASTERISK-21964) Reported by: Doug Bailey Tested by:
Doug Bailey Patches: asterisk-21964-set-reg-dialog-transport.diff
by Michael L. Young (license 5026) ........ Merged revisions
396240 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 396248 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-05 20:18 +0000 [r396245] Jonathan Rose <jrose@digium.com>
* main/bridge_basic.c, main/features.c,
include/asterisk/bridge_basic.h: bridge features: Dial and Queue
add features instead of replace them. Dial and Queue would
previously apply a new set of features whenever bridging. These
options would be based purely on the options supplied to the
dial/queue applications. This patch changes the function those
applications use to bridge calls so that the features will be
added to the set of existing features for each channel rather
than having them override the existing features. (closes issue
ASTERISK-22209) Reported by: Jonathan Rose Review:
https://reviewboard.asterisk.org/r/2713/
2013-08-05 19:01 +0000 [r396201] Matthew Jordan <mjordan@digium.com>
* res/res_pjsip_outbound_registration.c: Add AMI registration
events for PJSIP outbound registration attempts This patch adds
AMI events whenever an outbound registration attempt succeeds or
fails from res_pjsip_outbound_registration. This brings it inline
with the existing SIP channel driver and IAX channel driver.
Review: https://reviewboard.asterisk.org/r/2729/
2013-08-05 18:52 +0000 [r396198-396200] Michael L. Young <elgueromexicano@gmail.com>
* /, UPGRADE-11.txt: Change "from" to "From". (related to issue
ASTERISK-21903) ........ Merged revisions 396199 from
http://svn.asterisk.org/svn/asterisk/branches/11
* UPGRADE-11.txt, /: Adding a note to UPGRADE.txt about a change
made to res_agi in order to indicate when streaming an audio file
fails like it is done in other parts of the code to indicate an
error. Note was requested by Paul Belanger:
http://lists.digium.com/pipermail/asterisk-dev/2013-July/061420.html
(related to issue ASTERISK-21903) ........ Merged revisions
396196 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 396197 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-08-05 17:48 +0000 [r396175-396189] Jonathan Rose <jrose@digium.com>
* bridges/bridge_holding.c: bridge_holding: Add suspsend/unsuspend
callbacks Suspend and unsuspend callbacks are added to the
holding bridge so that entertainment can be disabled and
re-enabled when operations would suspend a channel on the bridge
(such as playback operations). This fixes entertainment so that
when those operations end, the entertainment can pick back up and
it also serves as an optimization. Also, this patch fixes a bug
caused by triggering ringing frames immediately instead of
pushing them to the queue which created a race condition where
sometimes parking with ringing during attended transfers would
cause the ringing to be interrupted by an unhold frame. (closes
issue ASTERISK-22006) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2711/
* res/ari/resource_bridges.c, res/res_ari_bridges.c,
include/asterisk/bridge_roles.h, res/ari/resource_bridges.h,
res/stasis/control.c, include/asterisk/stasis_app.h,
main/bridge_roles.c, rest-api/api-docs/bridges.json: ARI:
bridges/{bridgeID}/addChannel: add roles parameter Roles are now
cleared with each entry into a bridge with addChannel. If the
roles parameter is present, the role specified will be applied to
all channels being added with the addChannel command. (closes
issue ASTERISK-21973) Reported by: Matt Jordan
https://reviewboard.asterisk.org/r/2691/
* res/parking/res_parking.h, res/res_parking.c,
res/parking/parking_tests.c (added),
res/parking/parking_bridge.c: res_parking: Unit tests Adds the
following unit tests: * create_lot: tests adding and removal of a
new parking lot (baseline) * park_extensions: creates a parking
lot that registers extensions and then confirms that all of the
expected extensions exist * extensions_conflicts: creates
numerous parking lots to test that extension conflicts in parking
lots result in parking lot creation failing *
dynamic_parking_variables: Tests that the creation of dynamic
parking lots respects the related channel variables set on the
channel that requests them. * park_call: Tests adding a channel
to a parking lot's holding bridge by standard parking functions.
* retrieve_call: Tests pulling a channel out of a parking lot's
holding bridge via parked call retrieval functions. (closes issue
ASTERISK-22138) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2714/
2013-08-05 14:35 +0000 [r396166] David M. Lee <dlee@digium.com>
* res/ari/resource_asterisk.c, utils/extconf.c,
include/asterisk/options.h, main/asterisk.c, main/cli.c,
main/channel.c, main/pbx.c, main/manager.c: Fix res_ari_asterisk
load issue The new res_ari_asterisk.so module presents several
config options from asterisk main. Unfortunately, they aren't
exported, so the module won't load on Linux. This patch renames
the variables, adding the ast_ prefix so they will be exported.
Review: https://reviewboard.asterisk.org/r/2737
2013-08-03 03:53 +0000 [r396158] Matthew Jordan <mjordan@digium.com>
* main/manager_bridges.c: Don't unsubscribe from the AMI message
router from manager_bridges The AMI message router is owned
wholly by manager.c. Previously, each of the manager_{item}
source files had their own message router and they unsubscribed
from each; once they moved over to using a single message router
only a single unsubscribe became necessary.
2013-08-02 17:50 +0000 [r396145] Mark Michelson <mmichelson@digium.com>
* channels/sig_pri.c: And get rid of another ast_bridged_channel()
2013-08-02 17:29 +0000 [r396136-396143] David M. Lee <dlee@digium.com>
* main/stasis_bridges.c: Clean up ast_json with ast_json_unref
* /: Removed svnmerge-integrated from trunk
2013-08-02 15:01 +0000 [r396126] Mark Michelson <mmichelson@digium.com>
* res/snmp/agent.c: Get the SNMP code to compile.
2013-08-02 14:46 +0000 [r396119-396125] David M. Lee <dlee@digium.com>
* res/ari/ari_model_validators.h, rest-api/api-docs/asterisk.json,
res/ari/resource_asterisk.c, res/ari/ari_model_validators.c: ARI
- GET /ari/asterisk/info This patch adds basic system information
access to ARI. The results are roughly what you get from 'core
show settings', with a few minor differences. * Data is
structured, with 'build', 'system', 'config' and 'status'
sub-objects. * Each sub-object is selectable, using the ?only=
parameter. A comma separated list can be provided to select
multiple sections. * A few config options are numeric, for which
0 means 'unlimited'. Instead of having a special interpretation
of those fields, they are simply omitted if they're 0. * The
information is limited to what might be useful to building
external applications. (closes issue ASTERISK-21575) Review:
https://reviewboard.asterisk.org/r/2702/
* rest-api-templates/param_cleanup.mustache (added),
rest-api/api-docs/events.json, /, res/ari/resource_events.c,
rest-api-templates/ari_resource.h.mustache,
res/res_ari_asterisk.c, res/res_ari_playback.c,
rest-api-templates/res_ari_resource.c.mustache,
res/ari/resource_events.h, rest-api/api-docs/sounds.json,
res/res_ari_channels.c, rest-api/api-docs/bridges.json,
rest-api-templates/param_parsing.mustache,
res/ari/resource_bridges.c, res/ari/resource_sounds.h,
res/res_ari_recordings.c, res/ari/resource_bridges.h,
res/res_ari_endpoints.c, res/res_ari_events.c,
res/ari/resource_asterisk.h, rest-api/api-docs/channels.json,
res/res_ari_sounds.c, res/res_ari_bridges.c: ARI - implement
allowMultiple for parameters Swagger allows parameters to be
specified as 'allowMultiple', meaning that the parameter may be
specified as a comma separated list of values. I had written some
of the API docs using that, but promptly forgot about
implementing it. This patch finally fills in that gap. The
codegen template was updated to represent 'allowMultiple' fields
as array/size fields in the _args structs. It also parses the
comma separated list using ast_app_separate_args(), so quoted
strings in the argument will be handled properly. Review:
https://reviewboard.asterisk.org/r/2698/
* include/asterisk/json.h, main/cel.c, res/ari/ari_websockets.c,
tests/test_json.c, main/json.c, res/res_sorcery_astdb.c: Address
JSON thread safety issues. In tracking down some unit tests
failures, I ended up reading the fine print[1] regarding
Jansson's thread safety. In short: 1. Ref-counting is non-atomic.
2. json_dumps() and friends are not thread safe. This patch adds
locking where necessary to our ast_json_* wrapper API, with
documentation in json.h describing the thread safety limitations
of the API. [1]:
http://www.digip.org/jansson/doc/2.4/portability.html#thread-safety
Review: https://reviewboard.asterisk.org/r/2716/
2013-08-02 14:13 +0000 [r396107] Mark Michelson <mmichelson@digium.com>
* main/manager_bridges.c, include/asterisk/stasis_bridges.h,
main/cel.c, include/asterisk/parking.h, main/bridge_channel.c,
main/stasis_bridges.c, res/parking/parking_manager.c,
res/parking/parking_bridge.c: Make a couple of changes to help
AMI events to be more clear in what is occurring. * BridgeEnter
now contains the unique ID of the channel that is to be swapped
out, if applicable. * There is a ParkedCallSwap event that is
sent when a parked channel has a new channel take its place.
(closes issue ASTERISK-22193) reported by Mark Michelson Review:
https://reviewboard.asterisk.org/r/2712
2013-08-02 14:08 +0000 [r396105] Kinsey Moore <kmoore@digium.com>
* include/asterisk/astobj2.h, include/asterisk/strings.h,
main/astobj2.c, utils/Makefile, utils/refcounter.c,
main/strings.c: Move ast_str_container_alloc and friends This
moves ast_str_container_alloc, ast_str_container_add,
ast_str_container_remove, and related private functions into
strings.c/h since they really don't belong in astobj2.c/h. As a
result of this move, utils also had to be updated. Review:
https://reviewboard.asterisk.org/r/2719/ (closes issue
ASTERISK-22041)
2013-08-02 14:05 +0000 [r396102-396103] Mark Michelson <mmichelson@digium.com>
* include/asterisk/channel.h, channels/chan_iax2.c,
apps/app_chanspy.c, channels/chan_oss.c, channels/chan_mgcp.c,
main/channel.c, channels/chan_dahdi.c, channels/chan_misdn.c,
main/rtp_engine.c, channels/chan_sip.c, channels/chan_skinny.c,
funcs/func_channel.c, main/channel_internal_api.c: Get rid of
ast_bridged_channel() and the bridged_channel field on
ast_channels. This commit is smaller than the initial review
placed on review board. This is because a change to allow for
channel drivers to access parking functionality externally was
committed and invalidated quite a few of the changes initially
made. (closes issue ASTERISK-22039) reported by Matt Jordan
Review: https://reviewboard.asterisk.org/r/2717
* include/asterisk/pickup.h: Make sure that pickup.h does not use
an include guard name used elsewhere.
2013-08-02 13:29 +0000 [r396087-396099] Kinsey Moore <kmoore@digium.com>
* main/pickup.c: Correct the last of the Newchannel xi:includes
* res/res_pjsip/include/res_pjsip_private.h,
res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
res/res_pjsip_notify.c, res/res_pjsip_outbound_registration.c:
Add CLI/AMI commands to force chan_pjsip actions For chan_pjsip,
this introduces CLI/AMI remote unregistration commands, reworks
CLI syntax for sending NOTIFYs, adds AMI qualification support,
and adds documentation for PJSIPNotify. This also fixes two
refcounting bugs in the outbound registration code. Review:
https://reviewboard.asterisk.org/r/2695/ (closes issue
ASTERISK-21939)
2013-08-02 04:48 +0000 [r396075] David M. Lee <dlee@digium.com>
* channels/sig_analog.c: Fixed chan_dahdi compilation failure
2013-08-02 03:12 +0000 [r396060-396062] Matthew Jordan <mjordan@digium.com>
* tests/test_cdr.c, tests/test_cel.c: Fix test modules More missing
include files. :-\
* channels/chan_mgcp.c, channels/chan_dahdi.c: Add pickup.h include
lines for chan_dahdi and chan_mgcp
* main/cdr.c, res/res_parking.c, channels/chan_skinny.c,
apps/app_directed_pickup.c, main/features.c, tests/test_cel.c,
include/asterisk/parking.h, include/asterisk/pickup.h (added),
main/asterisk.c, res/parking/parking_manager.c, tests/test_cdr.c,
channels/chan_unistim.c, main/pbx.c, res/stasis/control.c,
main/pickup.c (added), channels/chan_sip.c, main/bridge.c,
UPGRADE.txt, res/parking/parking_applications.c,
include/asterisk/_private.h, channels/chan_gtalk.c, main/cel.c,
CHANGES, include/asterisk/features.h: Remove dead code from
features.c; refactor pickup code into pickup.c This patch does
the following: * It moves the pickup code out of features.c and
into pickup.c * It removes the vast majority of dead code out of
features.c. In particular, this includes the parking code. (issue
ASTERISK-22134)
2013-08-01 23:38 +0000 [r396048] Joshua Colp <jcolp@digium.com>
* res/res_pjsip_registrar.c: Fix a crash due to performing full URI
validation on a contact which only contains '*'. (closes issue
AST-1198) Reported by: John Bigelow
2013-08-01 21:19 +0000 [r396035] David M. Lee <dlee@digium.com>
* main/sorcery.c: Fix sorcery for some rather picky regex
implementations. Some regex implementations won't compile an
empty string. Assuming that it's equivalent of a regex that will
match anything, use ".?" instead.
2013-08-01 20:55 +0000 [r396010-396028] Matthew Jordan <mjordan@digium.com>
* main/bridge.c, main/features.c, channels/chan_iax2.c,
include/asterisk/parking.h, main/bridge_channel.c,
res/parking/parking_bridge_features.c, channels/chan_mgcp.c,
include/asterisk/features.h, channels/chan_dahdi.c,
res/res_parking.c, channels/sig_analog.c, channels/chan_skinny.c,
main/parking.c: Support externally initiated parking requests;
remove some dead code This patch does the following: * It adds
support for externally initiated parking requests. In particular,
chan_skinny has a protocol level message that initiates a call
park. This patch now supports that option, as well as the
protocol specific mechanisms in chan_dahdi/sig_analog and
chan_mgcp. * A parking bridge features virtual table has been
added that provides access to the parking functionality that the
Bridging API needs. This includes requests to park an entire
'call' (with little or no additional information, thank you
chan_skinny), perform a blind transfer to a parking extension,
determine if an extension is a parking extension, as well as the
actual "do the parking" request from the Bridging API. *
Refactoring in chan_mgcp, chan_skinny, and chan_dahdi to make use
of the new functions * The removal of some - but not all - dead
parking code from features.c This also fixed blind transferring a
multi-party bridge to a parking lot (which was implemented, but
had at least one code path where using the parking features kK
might not have worked) Review:
https://reviewboard.asterisk.org/r/2710 (closes issue
ASTERISK-22134) Reported by: Matt Jordan
* CHANGES, apps/app_queue.c: Add queue member paused hints This
patch adds the ability in Queue to raise a hint when a member's
paused state changes. The hint uses the form
'Queue:{queue_name}_pause_{member_name}', where {queue_name} and
{member_name} are the name of the queue and the name of the
member to subscribe to, respectively. For example: exten =>
8501,hint,Queue:sales_pause_mark. Members will show as In Use
when paused. Note that the format of the queue pause hint was
changed slightly from what is on the issue to accomodate
suggestion on the code review. Review:
https://reviewboard.asterisk.org/r/2254 (closes issue
ASTERISK-20842) Reported by: Philippe Lindheimer patches:
qpause-10-378206.diff uploaded by Philippe Lindheimer (license
5519) qpause-11-378206.diff uploaded by Philippe Lindheimer
(license 5519) qpause-trunk-378206.diff uploaded by Philippe
Lindheimer (license 5519)
2013-08-01 17:23 +0000 [r395985-395998] Kinsey Moore <kmoore@digium.com>
* configure: Regenerate configure for configure.ac changes
* apps/confbridge/confbridge_manager.c, makeopts.in,
doc/appdocsxml.dtd, apps/app_stack.c,
res/parking/parking_manager.c, main/manager_mwi.c,
main/rtp_engine.c, apps/app_meetme.c,
include/asterisk/autoconfig.h.in, main/xml.c,
main/stasis_bridges.c, contrib/scripts/install_prereq,
main/manager_bridges.c, channels/chan_dahdi.c, main/manager.c,
doc/snapshots.xslt (added), main/features.c, apps/app_minivm.c,
res/res_agi.c, main/stasis_channels.c, main/manager_channels.c,
channels/chan_sip.c, main/Makefile, configure.ac, UPGRADE.txt,
main/aoc.c, main/core_local.c, channels/sig_pri.c,
apps/app_queue.c, CHANGES, funcs/func_global.c,
apps/app_agent_pool.c, Makefile: Fix documentation replication
issues This prevents XML documentation duplication by expanding
channel and bridge snapshot tags into channel and bridge snapshot
parameter sets with a given prefix or defaulting to no prefix.
This also prevents documentation from becoming fractured and out
of date by keeping all variations of the documentation in
template form such that it only needs to be updated once and
keeps maintenance to a minimum. Review:
https://reviewboard.asterisk.org/r/2708/
2013-08-01 16:56 +0000 [r395954-395984] David M. Lee <dlee@digium.com>
* utils/astman.c: Fixed warning in astman for gcc-4.8.
* res/res_pjsip_mwi.c, channels/chan_pjsip.c: Fixed compile errors
introduced in r395954. Just a merge error due to a file rename.
Grrr...
* include/asterisk/channel_internal.h,
include/asterisk/presencestate.h, include/asterisk/channel.h,
channels/sig_pri.c, main/cel.c, main/stasis_bridges.c,
main/stasis.c, res/ari/resource_bridges.c, channels/chan_dahdi.c,
include/asterisk/app.h, include/asterisk/stasis_channels.h,
apps/confbridge/confbridge_manager.c, res/res_agi.c,
include/asterisk/stasis_cache_pattern.h (added),
tests/test_cel.c, res/ari/resource_channels.c,
include/asterisk/stasis_endpoints.h, res/res_stasis.c,
include/asterisk/bridge.h, main/manager_channels.c,
apps/app_voicemail.c, main/stasis_cache.c, main/stasis_wait.c
(added), res/stasis/control.c, channels/chan_sip.c,
main/manager_endpoints.c, main/channel_internal_api.c,
include/asterisk/stasis_bridges.h, include/asterisk/stasis.h,
main/devicestate.c, res/res_xmpp.c, main/endpoints.c,
channels/chan_iax2.c, res/res_jabber.c, main/presencestate.c,
res/res_chan_stats.c, tests/test_stasis_endpoints.c, main/cli.c,
main/cdr.c, main/manager_bridges.c, main/manager.c,
tests/test_devicestate.c, main/app.c, main/stasis_channels.c,
tests/test_stasis.c, channels/chan_mgcp.c,
main/stasis_cache_pattern.c (added), channels/chan_unistim.c,
main/stasis_endpoints.c, main/pbx.c,
include/asterisk/devicestate.h, res/ari/resource_endpoints.c,
apps/app_meetme.c, main/bridge.c: Split caching out from the
stasis_caching_topic. In working with res_stasis, I discovered a
significant limitation to the current structure of
stasis_caching_topics: you cannot subscribe to cache updates for
a single channel/bridge/endpoint/etc. To address this, this patch
splits the cache away from the stasis_caching_topic, making it a
first class object. The stasis_cache object is shared amongst
individual stasis_caching_topics that are created per
channel/endpoint/etc. These are still forwarded to global
whatever_all_cached topics, so their use from most of the code
does not change. In making these changes, I noticed that we
frequently used a similar pattern for bridges, endpoints and
channels: single_topic ----------------> all_topic ^ |
single_topic_cached ----+----> all_topic_cached | +----> cache
This pattern was extracted as the 'Stasis Caching Pattern',
defined in stasis_caching_pattern.h. This avoids a lot of
duplicate code between the different domain objects. Since the
cache is now disassociated from its upstream caching topics, this
also necessitated a change to how the 'guaranteed' flag worked
for retrieving from a cache. The code for handling the caching
guarantee was extracted into a 'stasis_topic_wait' function,
which works for any stasis_topic. (closes issue ASTERISK-22002)
Review: https://reviewboard.asterisk.org/r/2672/
2013-08-01 11:21 +0000 [r395938] Joshua Colp <jcolp@digium.com>
* res/res_pjsip_session.c: Answer with multiple codecs if the
underlying pjproject supports it.
2013-08-01 00:07 +0000 [r395906-395907] Matthew Jordan <mjordan@digium.com>
* channels/chan_sip.c: Raise Registry AMI events on registration
failures This patch makes it so that all registration attempts
that fail that also permanently modify the registration state
will raise an appropriate AMI event. Note that this patch was
forward ported to trunk and the Stasis Core message bus by
mjordan. (closes issue ASTERISK-21368) Reported by: Dmitriy Serov
patches: chan_sip.c.diff uploaded by Demon (license 6479)
* CHANGES, res/res_agi.c: Update CONTROL STREAM FILE to accept an
'offsetms' parameter This patch allows starting playback of audio
through the CONTROL STREAM FILE AGI command to start at a
particular offset. It will also return the final position of the
file in the 'endpos' attribute. (closes issue ASTERISK-17803)
Reported by: Murray Melvin patches: res_agi.c.r316293.diff
uploaded by murraytm (license 6221)
2013-07-31 15:43 +0000 [r395884] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip/pjsip_options.c: Found another missed "sip" ->
"pjsip" CLI command.
2013-07-31 15:27 +0000 [r395881] Kinsey Moore <kmoore@digium.com>
* tests/test_cel.c: Disable CEL tests that need rearchitecting to
operate properly
2013-07-31 14:45 +0000 [r395868] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_endpoint_identifier_constant.c (removed): Remove
"constant" endpoint identifier. This was created as a debugging
tool before proper endpoint identifiers were created. Using it
now can actually lead to harmful results.
2013-07-31 14:29 +0000 [r395866] Joshua Colp <jcolp@digium.com>
* bridges/bridge_native_rtp.c: Fix hold/unhold in
bridge_native_rtp, use tech_pvt instead of bridge_pvt, reduce
bridging attempts, and fix breaking native RTP bridges. (closes
issue ASTERISK-22128) (closes issue ASTERISK-22104)
2013-07-31 13:31 +0000 [r395837-395851] Kinsey Moore <kmoore@digium.com>
* include/asterisk/res_pjsip.h,
include/asterisk/res_pjsip_pubsub.h,
include/asterisk/res_pjsip_exten_state.h,
include/asterisk/res_pjsip_session.h, configs/pjsip.conf.sample,
res/res_pjsip/include/res_pjsip_private.h, channels/chan_pjsip.c:
Fix remnants of the pjsip renaming
* tests/test_cel.c: Enforce conference exit order for CEL tests
2013-07-30 22:41 +0000 [r395810-395824] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_endpoint_identifier_ip.c: Missed a conversion to
pjsip.conf in documentation and sorcery.
* main/abstract_jb.c: Remove ast_bridged_channel call from
abstract_jb.c Interestingly, this only happens in dead code.
2013-07-30 20:44 +0000 [r395793] David M. Lee <dlee@digium.com>
* res/res_pjsip: Setting svn:ignore for res/res_pjsip
2013-07-30 19:10 +0000 [r395748-395779] Mark Michelson <mmichelson@digium.com>
* res/res_pjsip_endpoint_identifier_constant.c: Update
res_pjsip_endpoint_identifier_constant.c to use reorganized
endpoint structure.
* res/res_sip_nat.c (removed),
res/res_pjsip_outbound_registration.c (added),
res/res_sip_session.c (removed),
res/res_pjsip_endpoint_identifier_anonymous.c (added),
res/res_sip_rfc3326.c (removed), res/res_pjsip_acl.c (added),
res/res_pjsip/pjsip_distributor.c (added),
res/res_sip_endpoint_identifier_constant.c (removed),
res/res_sip_mwi.c (removed), res/res_pjsip_diversion.c (added),
res/res_sip (removed), res/res_pjsip_dtmf_info.c (added),
res/res_sip_pubsub.c (removed),
include/asterisk/res_pjsip_exten_state.h (added),
res/res_pjsip_sdp_rtp.c (added), res/res_pjsip_messaging.c
(added), res/res_pjsip_registrar_expire.c (added),
res/res_pjsip_caller_id.c (added),
res/res_sip_authenticator_digest.c (removed),
res/res_sip_session.exports.in (removed),
res/res_pjsip_exten_state.c (added), res/res_sip_logger.c
(removed), res/res_sip.c (removed),
res/res_pjsip_pubsub.exports.in (added),
res/res_pjsip_endpoint_identifier_constant.c (added),
res/res_sip_outbound_registration.c (removed),
res/res_sip_endpoint_identifier_anonymous.c (removed),
res/res_pjsip_pubsub.c (added), res/res_pjsip/config_transport.c
(added), res/res_pjsip_transport_websocket.c (added),
res/res_pjsip_registrar.c (added), channels/chan_pjsip.c (added),
res/res_pjsip/pjsip_outbound_auth.c (added),
res/res_pjsip/config_global.c (added), res/res_sip_acl.c
(removed), res/res_sip_diversion.c (removed),
res/res_pjsip_authenticator_digest.c (added),
res/res_pjsip_session.exports.in (added), res/res_sip_dtmf_info.c
(removed), res/res_pjsip/config_domain_aliases.c (added),
include/asterisk/res_sip_session.h (removed), res/res_pjsip_t38.c
(added), res/res_sip_notify.c (removed), res/res_pjsip_logger.c
(added), res/res_pjsip/pjsip_options.c (added),
res/res_sip_endpoint_identifier_ip.c (removed),
res/res_sip_sdp_rtp.c (removed), res/res_sip_messaging.c
(removed), include/asterisk/res_pjsip_pubsub.h (added),
res/res_sip_caller_id.c (removed),
res/res_sip_endpoint_identifier_user.c (removed),
res/res_sip_pidf.c (removed),
res/res_pjsip_outbound_authenticator_digest.c (added),
res/res_sip_exten_state.c (removed),
res/res_pjsip_one_touch_record_info.c (added),
res/res_sip_pubsub.exports.in (removed), res/res_pjsip_refer.c
(added), include/asterisk/res_pjsip_session.h (added),
res/res_pjsip_notify.c (added), res/res_sip_transport_websocket.c
(removed), res/res_sip_registrar.c (removed),
res/res_pjsip_endpoint_identifier_ip.c (added),
include/asterisk/res_sip.h (removed),
res/res_pjsip/config_security.c (added), res/res_sip.exports.in
(removed), res/Makefile, res/res_sip_exten_state.exports.in
(removed), res/res_pjsip_endpoint_identifier_user.c (added),
res/res_pjsip/include (added), res/res_pjsip_pidf.c (added),
res/res_pjsip_nat.c (added), res/res_pjsip_session.c (added),
res/res_sip_t38.c (removed), channels/chan_gulp.c (removed),
res/res_pjsip/location.c (added), res/res_pjsip_rfc3326.c
(added), res/res_pjsip/config_system.c (added),
configs/pjsip.conf.sample (added),
include/asterisk/res_sip_pubsub.h (removed), res/res_pjsip_mwi.c
(added), res/res_pjsip/pjsip_configuration.c (added),
res/res_sip_outbound_authenticator_digest.c (removed),
res/res_pjsip (added), res/res_pjsip/include/res_pjsip_private.h
(added), res/res_sip_one_touch_record_info.c (removed),
include/asterisk/res_pjsip.h (added), res/res_pjsip/config_auth.c
(added), res/res_pjsip.exports.in (added),
configs/res_sip.conf.sample (removed), res/res_sip_refer.c
(removed), res/res_pjsip_exten_state.exports.in (added),
res/res_pjsip/security_events.c (added),
include/asterisk/res_sip_exten_state.h (removed),
res/res_pjsip/pjsip_global_headers.c (added), res/res_pjsip.c
(added), res/res_sip_registrar_expire.c (removed): The large
GULP->PJSIP renaming effort. The general gist is to have a clear
boundary between old SIP stuff and new SIP stuff by having the
word "SIP" for old stuff and "PJSIP" for new stuff. Here's a
brief rundown of the changes: * The word "Gulp" in dialstrings,
functions, and CLI commands is now "PJSIP" * chan_gulp.c is now
chan_pjsip.c * Function names in chan_gulp.c that were "gulp_*"
are now "chan_pjsip_*" * All files that were "res_sip*" are now
"res_pjsip*" * The "res_sip" directory is now "res_pjsip" * Files
in the "res_pjsip" directory that began with "sip_*" are now
"pjsip_*" * The configuration file is now "pjsip.conf" instead of
"res_sip.conf" * The module info for all PJSIP-related files now
uses "PJSIP" instead of "SIP" * CLI and AMI commands created by
Asterisk's PJSIP modules now have "pjsip" as the starting word
instead of "sip"
* res/res_sip_session.c, res/res_sip/sip_options.c,
res/res_sip_outbound_authenticator_digest.c,
res/res_sip_outbound_registration.c, res/res_sip_mwi.c,
res/res_sip_one_touch_record_info.c, res/res_sip_pubsub.c,
res/res_sip_diversion.c, res/res_sip/sip_configuration.c,
include/asterisk/res_sip.h, res/res_sip/sip_distributor.c,
res/res_sip.exports.in, res/res_sip_authenticator_digest.c,
res/res_sip/sip_outbound_auth.c, res/res_sip_sdp_rtp.c,
res/res_sip_messaging.c, res/res_sip_t38.c, channels/chan_gulp.c,
res/res_sip_caller_id.c, res/res_sip.c, res/res_sip_nat.c:
Reorganize the ast_sip_endpoint structure into substructures.
(closes issue ASTERISK-22135) reported by Matt Jordan Review:
https://reviewboard.asterisk.org/r/2707
2013-07-30 14:16 +0000 [r395731] Joshua Colp <jcolp@digium.com>
* include/asterisk/res_sip_session.h,
res/res_sip_session.exports.in, channels/chan_gulp.c,
res/res_sip_t38.c (added), res/res_sip.c,
res/res_sip/sip_configuration.c, res/res_sip_session.c,
include/asterisk/res_sip.h: Add support for T.38 fax to
chan_pjsip. Review: https://reviewboard.asterisk.org/r/2692/
2013-07-30 13:46 +0000 [r395728] Kinsey Moore <kmoore@digium.com>
* res/res_pktccops.c: Fix compilation on gcc 4.8.1
2013-07-29 17:51 +0000 [r395686] David M. Lee <dlee@digium.com>
* main/mixmonitor.c, res/parking/parking_devicestate.c,
include/asterisk/mixmonitor.h: Removed quotes from svn:keywords
props on a few files. Subversion doesn't do quote processing, so
it actually thinks that the closing quote in 'Revision"' is a
part of the keyword.
2013-07-29 16:16 +0000 [r395674] Mark Michelson <mmichelson@digium.com>
* res/res_sip.c: Clarify documentation for trust of identification.
(closes issue ASTERISK-22023) Reported by Rusty Newton
2013-07-29 15:58 +0000 [r395672-395673] Matthew Jordan <mjordan@digium.com>
* main/loader.c: Put the include in there Mea culpa...
* main/loader.c: When performing a reload, reload the new
features_config and not the old Performing a module reload of
core components causes specific functions compiled into the
Asterisk binary to be reloaded. The table of said functions was
still pointing to the old features reload mechanism, and not the
new one.
2013-07-29 14:51 +0000 [r395653] Kinsey Moore <kmoore@digium.com>
* tests/test_cel.c: Clean up and improve test_cel Improve
reliability of attended transfer merge and link tests. Stop using
ast_log(LOG_ERROR, ...); in favor of ast_test_status_update
Remove fred and eve channel helpers since they are not necessary
2013-07-29 14:08 +0000 [r395636] David M. Lee <dlee@digium.com>
* res/ari: Set svn:ignore in res/ari directory
2013-07-29 12:10 +0000 [r395619] Kinsey Moore <kmoore@digium.com>
* res/res_sip.c: Remove comment that no longer applies The monitor
thread is already properly torn down on unload and load failure.
2013-07-27 23:11 +0000 [r395588-395603] Kinsey Moore <kmoore@digium.com>
* res/res_stasis_http.c (removed), res/ari/config.c (added),
res/stasis_http (removed), res/res_ari.c (added),
include/asterisk/stasis_http.h (removed), res/ari (added),
res/res_ari_playback.c (added), res/res_ari_model.exports.in,
res/res_stasis_http_recordings.c (removed),
include/asterisk/ari.h (added), res/res_ari_channels.c (added),
res/res_stasis_http_events.c (removed), res/ari.make (added),
res/res_stasis_http_sounds.c (removed),
res/ari/resource_recordings.c (added),
rest-api-templates/ari_model_validators.c.mustache,
res/res_stasis_http_asterisk.c (removed),
rest-api-templates/res_stasis_http_resource.c.mustache (removed),
rest-api-templates/make_ari_stubs.py, res/ari/resource_events.c
(added), res/ari/resource_recordings.h (added),
rest-api-templates/res_ari_resource.c.mustache (added),
res/ari/resource_events.h (added), res/Makefile,
res/ari/resource_sounds.c (added), res/ari/ari_model_validators.c
(added), res/res_stasis_http_endpoints.c (removed),
res/ari/resource_sounds.h (added), res/ari/ari_model_validators.h
(added), res/ari/resource_asterisk.c (added),
res/res_ari_endpoints.c (added), res/res_ari.exports.in (added),
rest-api-templates/stasis_http_resource.c.mustache (removed),
res/ari/resource_asterisk.h (added),
res/res_stasis_http_bridges.c (removed), tests/test_stasis_http.c
(removed), res/ari/ari_websockets.c (added),
rest-api-templates/ari_resource.c.mustache (added),
res/res_ari_bridges.c (added), tests/test_ari.c (added),
res/res_stasis_http_playback.c (removed),
res/ari/resource_endpoints.c (added),
rest-api-templates/ari_model_validators.h.mustache,
res/res_stasis_http_channels.c (removed),
res/ari/resource_endpoints.h (added),
rest-api-templates/stasis_http.make.mustache (removed),
res/stasis_http.make (removed), res/ari/resource_bridges.c
(added), tests/test_ari_model.c, res/res_ari_recordings.c
(added), res/res_ari_model.c,
rest-api-templates/ari.make.mustache (added),
res/ari/resource_bridges.h (added), res/res_ari_events.c (added),
res/ari/resource_playback.c (added), res/res_statsd.c,
res/ari/resource_playback.h (added), res/ari/resource_channels.c
(added), res/res_ari_sounds.c (added),
rest-api-templates/stasis_http_resource.h.mustache (removed),
res/ari/cli.c (added), res/ari/resource_channels.h (added),
main/stasis_config.c, rest-api-templates/ari_resource.h.mustache
(added), rest-api-templates/rest_handler.mustache,
res/res_ari_asterisk.c (added), res/ari/internal.h (added),
configs/ari.conf.sample, res/res_stasis_http.exports.in
(removed): Rename everything Stasis-HTTP to ARI This renames all
files and API calls from several variants of Stasis-HTTP to ARI
including: * Stasis-HTTP -> ARI * STASIS_HTTP -> ARI *
stasis_http -> ari (ast_ari for global symbols, file names as
well) * stasis http -> ARI Review:
https://reviewboard.asterisk.org/r/2706/ (closes issue
ASTERISK-22136)
* tests/test_cel.c: Improve reliability of bridge merge CEL test
2013-07-26 21:34 +0000 [r395559-395574] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_builtin_features.c, main/parking.c, main/bridge.c,
main/bridge_basic.c, main/features.c,
bridges/bridge_builtin_interval_features.c,
apps/app_bridgewait.c, apps/app_confbridge.c,
include/asterisk/bridge_features.h, include/asterisk/parking.h,
main/bridge_channel.c, res/parking/parking_bridge_features.c,
apps/app_agent_pool.c, apps/confbridge/conf_config_parser.c:
Remove the unsafe bridge parameter from
ast_bridge_hook_callback's. Most hook callbacks did not need the
bridge parameter. The pointer value could become invalid if the
channel is moved to another bridge while it is executing. * Fixed
some issues in feature_attended_transfer() as a result. * Reduce
the bridge inhibit count in
attended_transfer_properties_shutdown() after it has restored the
bridge channel hooks. * Removed basic bridge requirement on
feature_blind_transfer(). It does not require the basic bridge
like feature_attended_transfer().
* bridges/bridge_builtin_interval_features.c,
apps/app_bridgewait.c, include/asterisk/bridge_features.h,
res/parking/parking_bridge_features.c, main/bridge.c: Improved
feature limits interval hook implementaion. * Fixed feature
limits to not use special members of struct ast_bridge_features.
* Fixed memory leak in off nominal paths of
bridge_builtin_set_limits(). * Fixed off nominal path in
ast_bridge_features_limits_construct() freeing unallocated memory
if it was not called by bridge_builtin_set_limits(). * Made
bridge_builtin_interval_features.so unloadable. * Simplified
parking's use of its duration interval hook. * Made BridgeWait S
option not depend upon another module being loaded. (closes issue
ASTERISK-22107) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2701/
2013-07-26 17:42 +0000 [r395527] David M. Lee <dlee@digium.com>
* res/stasis/app.c, res/stasis_http/resource_events.c: Fix
/stasis/res/app_replaced unit test. A typo in recent changes
caused the JSON ApplicationReplaced message to fail to build, so
the message wasn't being sent out the WebSocket. Related, the
replaced application would also unregister itself when it
disconnected, which would actually unregister the new
application. This was also fixed.
2013-07-26 16:34 +0000 [r395509] Jonathan Rose <jrose@digium.com>
* main/bridge.c, apps/app_bridgewait.c, main/bridge_channel.c,
include/asterisk/bridge.h,
include/asterisk/bridge_channel_internal.h: Add name argument to
BridgeWait() so multiple holding bridges may be used Changes
arguments for BridgeWait from BridgeWait(role, options) to
BridgeWait(bridge_name, role, options). Now multiple holding
bridges may be created and referenced by this application.
(closes issue ASTERISK-21922) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2642/
2013-07-26 00:03 +0000 [r395466-395477] Richard Mudgett <rmudgett@digium.com>
* apps/app_bridgewait.c: Remove some unnecessary parentheses.
* bridges/bridge_builtin_interval_features.c: Revision
2013-07-25 20:54 +0000 [r395439-395455] Joshua Colp <jcolp@digium.com>
* res/res_sip_session.c: Fix crash due to trying to send a
re-invite while in the incorrect state. This crash would occur if
a re-invite was queued while the initial INVITE transaction was
still occurring and the response to the INVITE was not ACKed.
This lack of ACK would cause the INVITE session state to never
reach confirmed. Once the transaction terminated, however, the
queued re-invite would occur and cause a crash due to this lack
of state change. This fix checks the INVITE session state before
performing the re-invite to ensure it is in the required
confirmed state.
* res/res_sip.c, res/res_sip/sip_configuration.c: Change the
default value for "allowsubscribe" to yes to match chan_sip.
2013-07-25 18:27 +0000 [r395430] Richard Mudgett <rmudgett@digium.com>
* main/bridge_channel.c, include/asterisk/bridge.h,
include/asterisk/bridge_basic.h, include/asterisk/bridge_roles.h,
main/bridge.c, main/bridge_basic.c,
include/asterisk/stasis_bridges.h, main/bridge_roles.c,
main/stasis_bridges.c, include/asterisk/bridge_after.h,
include/asterisk/bridge_channel_internal.h,
main/manager_bridges.c, include/asterisk/bridge_channel.h,
main/bridge_after.c, include/asterisk/bridge_technology.h,
include/asterisk/bridge_internal.h,
include/asterisk/bridge_features.h: Restore bridging files
history.
2013-07-25 15:29 +0000 [r395367-395410] Matthew Jordan <mjordan@digium.com>
* include/asterisk/features.h, main/features.c: Remove some dead
parking call Since nothing is using these global parking
functions, remove them! The first of many.
* main/features.c: Remove dead bridging code from features This
removes the previously #if 0'd code. The functionality removed
has either been subsumed by the Bridging API or is no longer
applicable.
* main/manager.c, res/stasis_http/resource_bridges.c,
tests/test_cel.c, res/res_stasis.c, main/stasis_bridges.c,
tests/test_cdr.c, main/cli.c, main/cdr.c, main/manager_bridges.c:
Fix incorrect reference to stasis/bridging.h
* main/bridging_basic.c (removed), include/asterisk/bridge_basic.h
(added), channels/chan_sip.c, include/asterisk/stasis_bridges.h
(added), include/asterisk/bridging_after.h (removed),
res/stasis_http/resource_bridges.c, main/bridge_roles.c (added),
res/parking/parking_applications.c, main/core_local.c,
main/cel.c, include/asterisk/stasis_bridging.h (removed),
res/parking/parking_bridge_features.c,
include/asterisk/bridging_channel.h (removed),
include/asterisk/features.h,
include/asterisk/bridge_channel_internal.h (added),
channels/dahdi/bridge_native_dahdi.c, funcs/func_channel.c,
include/asterisk/bridging.h (removed),
include/asterisk/bridge_internal.h (added),
bridges/bridge_native_rtp.c, main/bridge_channel.c (added),
res/parking/parking_manager.c, include/asterisk/core_unreal.h,
include/asterisk/doxygen/architecture.h, main/parking.c,
res/res_sip_refer.c, main/bridge.c (added), main/bridge_basic.c
(added), apps/app_bridgewait.c, main/stasis_bridges.c (added),
include/asterisk/bridge_after.h (added), main/bridging_after.c
(removed), res/parking/parking_bridge.c, main/channel.c,
channels/chan_dahdi.c, main/manager.c, channels/sig_analog.c,
apps/confbridge/include/confbridge.h, main/stasis_bridging.c
(removed), include/asterisk/bridging_features.h (removed),
res/stasis_http/resource_channels.c, main/bridging_channel.c
(removed), apps/app_dumpchan.c, main/features.c,
bridges/bridge_builtin_interval_features.c,
include/asterisk/bridging_roles.h (removed), main/bridging.c
(removed), channels/chan_mgcp.c, apps/app_dial.c,
channels/chan_bridge_media.c, apps/confbridge/conf_chan_record.c,
res/parking/parking_controller.c, main/core_unreal.c,
bridges/bridge_simple.c,
include/asterisk/bridging_channel_internal.h (removed),
apps/app_queue.c, channels/sig_pri.c, apps/app_agent_pool.c,
res/parking/res_parking.h, channels/chan_misdn.c,
include/asterisk/bridging_internal.h (removed),
main/bridge_after.c (added),
apps/confbridge/confbridge_manager.c,
include/asterisk/bridging_basic.h (removed), tests/test_cel.c,
apps/confbridge/conf_chan_announce.c, channels/chan_unistim.c,
main/bridging_roles.c (removed), include/asterisk/bridge_roles.h
(added), res/stasis/control.c, bridges/bridge_holding.c,
bridges/bridge_softmix.c, channels/chan_iax2.c, main/cli.c,
apps/confbridge/conf_config_parser.c,
res/res_stasis_bridge_add.c, main/manager_bridges.c (added),
include/asterisk/bridging_technology.h (removed),
bridges/bridge_builtin_features.c, channels/chan_skinny.c,
include/asterisk/bridge_channel.h (added),
main/manager_bridging.c (removed),
include/asterisk/bridge_technology.h (added),
apps/app_confbridge.c, main/stasis_channels.c,
include/asterisk/bridge_features.h (added),
include/asterisk/bridge.h (added), tests/test_cdr.c: A great big
renaming patch This patch renames the bridging* files to bridge*.
This may seem pedantic and silly, but it fits better in line with
current Asterisk naming conventions: * channel is not
"channeling" * monitor is not "monitoring" etc. A bridge is an
object. It is a first class citizen in Asterisk. "Bridging" is
the act of using a bridge on a set of channels - and the API that
fulfills that role is more than just the action. (closes issue
ASTERISK-22130)
* apps/app_dial.c, include/asterisk/bridging_after.h (added),
bridges/bridge_softmix.c,
include/asterisk/bridging_channel_internal.h, apps/app_queue.c,
res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
include/asterisk/bridging_channel.h, main/bridging_after.c
(added), include/asterisk/bridging_technology.h,
include/asterisk/bridging_internal.h,
bridges/bridge_builtin_features.c,
include/asterisk/bridging_features.h, funcs/func_channel.c,
main/bridging_channel.c, main/features.c,
include/asterisk/bridging.h,
bridges/bridge_builtin_interval_features.c, main/bridging.c,
main/bridging_basic.c: Move after bridge callbacks into their own
file One more major refactoring to go.
2013-07-25 00:44 +0000 [r395351] Joshua Colp <jcolp@digium.com>
* res/res_sip_session.c, res/res_sip/sip_distributor.c,
channels/chan_gulp.c: Improve initial INVITE handling and fix
crash due to rapidly arriving CANCEL. (closes issue
ASTERISK-22150) Review: https://reviewboard.asterisk.org/r/2696/
2013-07-24 23:40 +0000 [r395316-395340] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c, include/asterisk/bridging_features.h,
main/bridging_channel.c,
include/asterisk/bridging_channel_internal.h: Simplify interval
hooks since there is only one bridge threading model now. *
Convert interval timers to use the ast_waitfor_nandfds() timeout.
* Remove bridge channel action for intervals. Now the main loop
handles running interval hooks.
* main/bridging.c, include/asterisk/bridging_features.h,
main/bridging_channel.c, apps/app_confbridge.c: Refactor
ast_bridge_features struct. * Reduced the number of hook
containers to just dtmf_hooks, interval_hooks, and other_hooks.
As a result, several functions dealing with the different hook
containers could be combined. * Extended the generic hook struct
for DTMF and interval hooks instead of using a variant record. *
Merged the special talk detector hook into the other_hooks
container. * Replaced ast_bridge_features_set_talk_detector()
with ast_bridge_talk_detector_hook(). (issue ASTERISK-22107)
* main/features.c: * Refactor setup_bridge_features_builtin(). *
Add an error message so you know when a feature is not available
and you tried to use it. It usually means the module has not been
loaded.
2013-07-24 19:32 +0000 [r395295-395298] Matthew Jordan <mjordan@digium.com>
* main/asterisk.exports.in: Export exports.in as well Because is is
rather needed.
* bridges/bridge_builtin_interval_features.c,
include/asterisk/bridging_channel_internal.h, main/bridging.c,
res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
include/asterisk/bridging_channel.h, main/bridging_basic.c,
bridges/bridge_builtin_features.c,
include/asterisk/bridging_features.h, main/bridging_channel.c:
Update bridge_channel refactorings; export bridge_ symbol
2013-07-24 18:51 +0000 [r395283] Jason Parker <jparker@digium.com>
* contrib/scripts/install_prereq: Add pjproject to install_prereq.
Also fixes spacing, in passing. (closes issue ASTERISK-22131)
2013-07-24 18:08 +0000 [r395267-395271] Kinsey Moore <kmoore@digium.com>
* res/res_sip.c: Tweak another magic number
* main/manager_bridging.c: Make AMI BridgeInfo action more verbose
Ensure that the BridgeInfo command provides adequate state
information about channels by publishing the full channel
snapshot for BridgeInfoChannel subevents. This prevents a
two-stage lookup since most consumers will be keying on channel
names instead of uniqueids. (closes issue ASTERISK-22140)
* res/res_sip/sip_global_headers.c: Tweak a magic number (closes
issue ASTERISK-22146)
2013-07-24 16:01 +0000 [r395254-395255] Richard Mudgett <rmudgett@digium.com>
* main/bridging_channel.c,
include/asterisk/bridging_channel_internal.h,
include/asterisk/bridging_channel.h, main/channel.c: Add missing
end-of-file line terminators.
* bridges/bridge_native_rtp.c: Add missing line terminator to debug
message.
2013-07-24 15:38 +0000 [r395253] Matthew Jordan <mjordan@digium.com>
* include/asterisk/bridging_technology.h,
include/asterisk/bridging_internal.h,
bridges/bridge_builtin_features.c, main/bridging_channel.c
(added), main/features.c, include/asterisk/bridging.h,
bridges/bridge_builtin_interval_features.c, main/bridging.c,
main/bridging_basic.c, include/asterisk/channel.h,
include/asterisk/bridging_channel_internal.h (added),
res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
include/asterisk/bridging_channel.h (added),
res/parking/parking_bridge.c, include/asterisk/features.h,
main/channel.c: Perform the initial renaming of the Bridging API
This patch does the following: * It pulls out bridge_channel and
puts it into its own translation unit * It adds public and
protected headers for bridging_channel. Protected functions are
appropriate only for the Bridging API and sub-classes of a
bridge. (issue ASTERISK-22130)
2013-07-24 14:35 +0000 [r395243] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Let the compiler do more type checking with
bridge hook callbacks.
2013-07-23 22:32 +0000 [r395227] Joshua Colp <jcolp@digium.com>
* bridges/bridge_native_rtp.c: Fix a check in bridge_native_rtp
which determined if attaching the framehook failed or not.
2013-07-23 21:32 +0000 [r395215] Jonathan Rose <jrose@digium.com>
* funcs/func_channel.c, include/asterisk/bridging_basic.h,
main/bridging_basic.c: func_channel: dtmf_features setting Allows
reading andsetting dtmf features via a channel function
CHANNEL(dtmf_features) (closes issue ASTERISK-21876) Reported by:
Matt Jordan Review: https://reviewboard.asterisk.org/r/2648/
2013-07-23 21:14 +0000 [r395203-395205] Joshua Colp <jcolp@digium.com>
* bridges/bridge_native_rtp.c: Add some debug messages to make it
clear what RTP bridging functionality is in use.
* bridges/bridge_native_rtp.c: Fix some logic so native RTP bridge
will occur when monitor, audiohooks, or framehooks are not
present.
2013-07-23 19:14 +0000 [r395188] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/bridging.h, bridges/bridge_softmix.c,
main/bridging.c: Pull softmix bridge parameters into a sub
structure.
2013-07-23 18:41 +0000 [r395183] Joshua Colp <jcolp@digium.com>
* channels/chan_gulp.c: Drop the reference count on the correct
object.
2013-07-23 18:41 +0000 [r395154-395182] Richard Mudgett <rmudgett@digium.com>
* main/utils.c, channels/chan_dahdi.c: Reinclude sys/stat.h in
chan_dahdi.c and remove redundant include in utils.c
* channels/dahdi/bridge_native_dahdi.c, channels/chan_dahdi.h,
channels/chan_mgcp.c, channels/chan_dahdi.c: Some chan_dahdi
protected function renaming. analog_lib_handles -->
dahdi_analog_lib_handles enable_dtmf_detect -->
dahdi_dtmf_detect_enable disable_dtmf_detect -->
dahdi_dtmf_detect_disable dahdi_enable_ec --> dahdi_ec_enable
dahdi_disable_ec --> dahdi_ec_disable update_conf -->
dahdi_conf_update dahdi_link --> dahdi_master_slave_link
dahdi_unlink --> dahdi_master_slave_unlink (closes issue
ASTERISK-22129) Reported by: rmudgett
* main/bridging.c, channels/chan_dahdi.c,
channels/dahdi/bridge_native_dahdi.c, channels/chan_dahdi.h
(added), channels/dahdi (added),
channels/dahdi/bridge_native_dahdi.h, bridges/bridge_softmix.c,
channels/Makefile: Restore chan_dahdi native bridging and PRI
tromboned call elimination. Created a native_dahdi bridging
technology for use with the new bridging API. The new bridging
technology is part of the chan_dahdi channel driver because it is
very specific to that driver. Rather than include the new code
directly into chan_dahdi.c the new bridge technology is in its
own file and linked into chan_dahdi.so. A large part of this
change is the mechanical process of moving declarations around so
chan_dahdi.c can be split up into more files later. * Changed the
bridging core to pass NULL frames into the channel technologies
instead of discarding them. The channel technologies may need the
proding to determine if their configuration is still valid.
(closes issue ASTERISK-21886) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2681/
2013-07-23 15:28 +0000 [r395151] Mark Michelson <mmichelson@digium.com>
* main/cel.c, main/features_config.c,
include/asterisk/stasis_bridging.h, main/bridging.c,
main/bridging_basic.c, main/bridging_roles.c,
include/asterisk/bridging_internal.h (added),
bridges/bridge_builtin_features.c, main/stasis_bridging.c,
include/asterisk/bridging_features.h,
include/asterisk/features_config.h, include/asterisk/bridging.h,
main/features.c, include/asterisk/bridging_roles.h: Make DTMF
attended transfer support feature-complete. This greatly modifies
the operation of DTMF attended transfers so that the full range
of options from features.conf applies. In addition, a new option
has been added that allows for a transferer to switch between
bridges during a transfer before completing the transfer. (closes
issue ASTERISK-21543) reported by Matt Jordan Review:
https://reviewboard.asterisk.org/r/2654
2013-07-23 14:57 +0000 [r395136] David M. Lee <dlee@digium.com>
* res/res_stasis_http_channels.c, res/res_stasis_http_sounds.c,
res/res_stasis_http_bridges.c, res/res_stasis_http_recordings.c,
res/res_stasis_http.c, res/res_stasis_http_endpoints.c,
res/res_stasis_http_asterisk.c, res/res_stasis_http_playback.c,
rest-api-templates/res_stasis_http_resource.c.mustache: No more
teapots. Now that the ARI implementation is nearing some
definition of completeness, we should properly respond with 501's
for unimplemented functionality, instead of the almost humorous
418.
2013-07-23 14:49 +0000 [r395135] Matthew Jordan <mjordan@digium.com>
* main/channel.c: Kill the zombies In previous versions of
Asterisk, the zombies roamed freely, unchecked and uncontrolled.
They ravaged Asterisk systems with their biting and their nashing
and their pointy teeth. Sometimes, you couldn't even hang them
up. Now, zombies are rare. They still *technically* exist in
certain places, but they are controlled. Kind of like a zombie
zoo: you can see them, but you can't touch them, and they can't
touch you. Bring your kids! Because zombies are now population
controlled with a very short lifespan, there's no reason to
rename the channels to '%s<ZOMBIE>'. The channels are guaranteed
to die off quickly; the rename really is just confusing at this
point. This patch finally removes the renaming. On the plus side:
this made my life easier in CDRs during call pickup and attended
transfers to an Asterisk application. It will make other folks
lives easier as well! Review:
https://reviewboard.astierks.org/r/2690/ (closes issue
ASTERISK-21699) Reported by: Matt Jordan
2013-07-23 13:52 +0000 [r395121] Kinsey Moore <kmoore@digium.com>
* res/res_sip.c, channels/chan_sip.c,
res/res_sip/sip_configuration.c, res/res_sip_session.c,
include/asterisk/res_sip.h, include/asterisk/res_sip_session.h,
res/res_sip_sdp_rtp.c, channels/chan_gulp.c: Add DTLS-SRTP
support to chan_pjsip This patch introduces DTLS-SRTP support to
chan_pjsip and the options necessary to configure it including an
option to allow choosing between 32 and 80 byte SRTP tag lengths.
During the implementation and testing of this patch, three other
bugs were found and their fixes are included with this patch. The
two in chan_sip were a segfault relating to DTLS setup and
mistaken call rejection. The third bug fix prevents chan_pjsip
from attempting to perform bridge optimization between two
endpoints if either of them is running any form of SRTP. Review:
https://reviewboard.asterisk.org/r/2683/ (closes issue
ASTERISK-21419)
2013-07-23 13:42 +0000 [r395118-395120] David M. Lee <dlee@digium.com>
* res/stasis/app.c, res/stasis/app.h, res/res_stasis.c: Continue
events when ARI WebSocket reconnects This patch addresses a bug
in the /ari/events WebSocket in handling reconnects. When a
Stasis application's associated WebSocket was disconnected and
reconnected, it would not receive events for any channels or
bridges it was subscribed to. The fix was to lazily clean up
Stasis application registrations, instead of removing them as
soon as the WebSocket goes away. When an application is
unregistered at the WebSocket level, the underlying application
is simply deactivated. If the application WebSocket is
reconnected, the application is reactivated for the new
connection. To avoid memory leaks from lingering, unused
application, the application list is cleaned up whenever new
applications are registered/unregistered. (closes issue
ASTERISK-21970) Review: https://reviewboard.asterisk.org/r/2678/
* main/cdr.c, main/stasis_message_router.c,
main/manager_bridging.c,
include/asterisk/stasis_message_router.h, tests/test_stasis.c,
main/manager_channels.c: Fix bridge/channel AMI event ordering
issues The stasis_cache_update messages are somewhat cumbersome
to handle with the stasis_message_router. Since all updates have
the same message type, they are normally handled with the same
route. Since caching itself is a first class component of
stasis-core, it makes sense for the router to handle the cache
update messages itself. This patch adds
stasis_message_router_add_cache_update() and
stasis_message_router_remove_cache_update() to handle the routing
of stasis_cache_update messages. This patch also corrects an
issue with manager_{bridging,channels}.c, where events might be
reordered. The reordering occurs because the components use
different message routers, which they needed because they both
needed to route cache update messages. They now both use
manager's router, and add cache routes for just the cache updates
they are interested in. (closes issue ASTERISK-22038) Review:
https://reviewboard.asterisk.org/r/2677/
2013-07-23 12:56 +0000 [r395107] Kinsey Moore <kmoore@digium.com>
* res/res_sip/sip_options.c: Add missing newline
2013-07-23 12:27 +0000 [r395102] Joshua Colp <jcolp@digium.com>
* include/asterisk/res_sip_session.h,
res/res_sip_session.exports.in, channels/chan_gulp.c,
res/res_sip_session.c: Expose the chan_pjsip implementation pvt
and session in a defined manner. This allows modules outside of
chan_pjsip itself to get the session given only an Asterisk
channel. Review: https://reviewboard.asterisk.org/r/2674/
2013-07-23 00:16 +0000 [r395089] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Fix unbalanced lock when serializing CDR variables
I'm only surprised that this didn't cause larger problems.
2013-07-23 00:02 +0000 [r395088] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Remove some BUGBUG notes that have been handled.
2013-07-22 20:42 +0000 [r395074] Kinsey Moore <kmoore@digium.com>
* tests/test_cel.c: Make the CEL blind transfer test pass
consistently
2013-07-22 13:52 +0000 [r394881-395034] Matthew Jordan <mjordan@digium.com>
* main/asterisk.c, /: Update copyright year to 2013 in asterisk.c;
some whitespace fixes (closes issue ASTERISK-22179) Reported by:
Malcolm Davenport ........ Merged revisions 395032 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 395033 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, funcs/func_channel.c: Clean up documentation This patch cleans
up documentation in func_channel for the following items: *
rtpsource * secure_signaling * secure_media * various OOH323
parameters (closes issue ASTERISK-20969) Reported by: snuffy
patches: func_chan-update.diff uploaded by snuffy (License 5024)
........ Merged revisions 394980 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394981 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, configs/indications.conf.sample: Provide proper ring tone in
indications.conf for Malaysia The ring tone provided in the
sample indications.conf was incorrect. This patch modifies the
sample ring tone to be what it should: ring =
425/400,0/200,425/400,0/2000 This brings it in line with the tone
definition in DAHDI 2.7.0. (zonedata.c) (closes issue
ASTERISK-21997) Reported by: Filip Jenicek patches:
malaysia_ring.patch uploaded by phill (License 6277) ........
Merged revisions 394940 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394941 from
http://svn.asterisk.org/svn/asterisk/branches/11
* configs/safe_asterisk.conf.sample (added), CHANGES,
contrib/scripts/safe_asterisk, Makefile: Always install
safe_asterisk; add configuration file support This patch modifies
the behavior of safe_asterisk in two ways: (1) It modifies the
Asterisk Makefile such that safe_asterisk is always installed on
a 'make install'. This was done as bugfixes in the safe_asterisk
script were not applied in previous version of Asterisk without
first removing the old version of the script. (2) In order to
keep a newly installed version of safe_asterisk from impacting
local modifications, a new config file -
safe_asterisk.conf.sample - has been provided. Settings that were
previously modified in safe_asterisk can be set there instead.
(closes issue ASTERISK-21965) Reported by: Jeremy Kister patches:
safe_asterisk.patch uploaded by jkister (License 6232)
* /, main/http.c: Tolerate presence of RFC2965 Cookie2 header by
ignoring it This patch modifies parsing of cookies in Asterisk's
http server by doing an explicit comparison of the "Cookie"
header instead of looking at the first 6 characters to determine
if the header is a cookie header. This avoids parsing "Cookie2"
headers and overwriting the previously parsed "Cookie" header.
Note that we probably should be appending the cookies in each
"Cookie" header to the parsed results; however, while clients can
send multiple cookie headers they never really do. While this
patch doesn't improve Asterisk's behavior in that regard, it
shouldn't make it any worse either. Note that the solution in
this patch was pointed out on the issue by the issue reporter,
Stuart Henderson. (closes issue ASTERISK-21789) Reported by:
Stuart Henderson Tested by: mjordan, Stuart Henderson ........
Merged revisions 394899 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394900 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, contrib/realtime/postgresql/realtime.sql: Update PostgreSQL
realtime scripts with schema for queue_log table This patch
updates the realtime SQL scripts with an entry that will create
the queue_log table. This brings the PostgreSQL scripts inline
with the MySQL scripts, with respect to what tables they will
create. (closes issue ASTERISK-21021) Reported by: Eugene
patches: queue_log.sql uploaded by varnav (license 6360) ........
Merged revisions 394896 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394897 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/iax2/parser.c: Add additional control frame types to the
IAX2 parser for debug messages This patch adds some of the more
recent control frame types to the IAX2 parser. When IAX2
debugging is enabled, it will now show more of the control frame
types. (closes issue ASTERISK-22120) Reported by: Birger "WIMPy"
Harzenetter patches: iaxcmds.diff uploaded by wimpy
* configs/iax.conf.sample, /: Document connectedline parameter for
chan_iax2 The connectedline parameter for a chan_iax2 peer was
undocumented. This patch documents the options in the sample
configuration file. (closes issue ASTERISK-21953) Reported by:
Birger "WIMPy" Harzenetter ........ Merged revisions 394886 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394890 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/manager.c, CHANGES: Allow setting allowmultiplelogin on an
account basis This patch modifies manager to allow the
allowmultiplelogin setting to be set on an account by account
basis. When set in the general context, it will act as the
default for the defined accounts. Setting it in the account will
override the general setting. (closes issue ASTERISK-21324)
Reported by: vldmr patches:
asterisk-manager-per-user-allowmultiplelogin.patch uploaded by
vldmr (License 6487)
2013-07-20 13:25 +0000 [r394858-394870] Kinsey Moore <kmoore@digium.com>
* tests/test_cel.c, CHANGES, main/cel.c, main/asterisk.c,
include/asterisk/cel.h: Add CEL local optimization record type
This adds a new CEL event type, AST_CEL_LOCAL_OPTIMIZE, to
represent local channel optimizations. Local channel
optimizations were one of several things conveyed by the now
defunct BRIDGE_UPDATE event type. This also adds a unit test to
test generation of this new CEL event. Review:
https://reviewboard.asterisk.org/r/2676/
* tests/test_cel.c, CHANGES, apps/app_queue.c, main/cel.c,
apps/app_dial.c, main/channel.c, channels/chan_dahdi.c,
main/pbx.c, channels/sig_analog.c, channels/chan_sip.c,
include/asterisk/cel.h, apps/app_celgenuserevent.c,
apps/app_directed_pickup.c, main/features.c: Add transfer support
to CEL This adds CEL support for blind and attended transfers and
call pickup. During the course of adding this functionality I
noticed that CONF_ENTER, CONF_EXIT, and BRIDGE_TO_CONF events are
particularly useless without a bridge identifier, so I added that
as well. This adds tests for blind transfers, several types of
attended transfers, and call pickup. The extra field in CEL
records now consists of a JSON blob whose fields are defined on a
per-event basis. Review: https://reviewboard.asterisk.org/r/2658/
(closes issue ASTERISK-21565)
2013-07-20 01:11 +0000 [r394825-394846] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/astobj2.h: Regroup the ao2 search_flags. Moved
the OBJ_POINTER, OBJ_KEY, and OBJ_PARTIAL_KEY flags together into
a field and renamed them to OBJ_SEARCH_OBJECT, OBJ_SEARCH_KEY,
and OBJ_SEARCH_PARTIAL_KEY respectively. The values were selected
to keep existing code compiling and working until the codebase
can be changed to stop using these values as bit flags and use
them as an enum field. The old names are defined to the new names
for backward compatibility.
* include/asterisk/audiohook.h, main/audiohook.c, main/channel.c:
Minor optimizations. * Made ast_audiohook_detach_list() and
ast_audiohook_write_list_empty() NULL tolerant. * Made
ast_audiohook_detach_list() return void since it is a destructor.
* main/channel.c, include/asterisk/channel.h,
bridges/bridge_native_rtp.c, main/bridging.c: Extract a repeated
test into ast_channel_has_audio_frame_or_monitor().
2013-07-19 19:40 +0000 [r394809-394810] Jonathan Rose <jrose@digium.com>
* res/stasis/control.c, res/stasis_http/resource_channels.c,
res/res_stasis_http_channels.c, include/asterisk/stasis_app.h,
res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json: ARI: MOH start and stop for a
channel (issue ASTERISK-21974) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2680/
* res/stasis_http/resource_channels.c,
rest-api/api-docs/playback.json, rest-api/api-docs/channels.json,
res/res_stasis_http_bridges.c, res/res_stasis.c,
rest-api/api-docs/recordings.json,
include/asterisk/core_unreal.h, res/res_stasis_http_playback.c,
res/res_stasis_playback.c, channels/chan_bridge_media.c (added),
res/stasis/control.c, res/stasis_http/ari_model_validators.c,
res/res_stasis_http_channels.c, main/core_unreal.c,
include/asterisk/stasis_app.h,
res/stasis_http/resource_bridges.c,
res/stasis_http/ari_model_validators.h,
res/stasis_http/resource_bridges.h,
include/asterisk/stasis_app_playback.h,
rest-api/api-docs/bridges.json, include/asterisk/logger.h: ARI:
Bridge Playback, Bridge Record Adds a new channel driver for
creating channels for specific purposes in bridges, primarily to
act as either recorders or announcers. Adds ARI commands for
playing announcements to ever participant in a bridge as well as
for recording a bridge. This patch also includes some
documentation/reponse fixes to related ARI models such as
playback controls. (closes issue ASTERISK-21592) Reported by:
Matt Jordan (closes issue ASTERISK-21593) Reported by: Matt
Jordan Review: https://reviewboard.asterisk.org/r/2670/
2013-07-19 19:23 +0000 [r394795-394808] Kinsey Moore <kmoore@digium.com>
* main/manager_bridging.c, include/asterisk/channel.h,
main/stasis_channels.c, main/cel.c,
apps/confbridge/conf_chan_announce.c, main/manager_channels.c,
res/parking/parking_manager.c, main/cdr.c,
include/asterisk/stasis_channels.h,
apps/confbridge/conf_chan_record.c,
apps/confbridge/confbridge_manager.c: Filter channels used as
internal mechanisms This adds new flags to the channel tech
properties that flag it as different types of implementation
detail used exclusively to provide a feature. Examples of
channels that would have these flags include the announcement and
recording channels used by confbridge which are the only two
marked as such by this patch. Review:
https://reviewboard.asterisk.org/r/2633/ (closes issue
ASTERISK-21873)
* channels/chan_sip.c: Fix crash when using temporary peers
Temporary peers do not have an associated Stasis endpoint and
quite a bit of code in chan_sip assumes that all peers have a
Stasis endpoint. All endpoint accesses in chan_sip are now
wrapped in an endpoint NULL-check.
2013-07-19 18:00 +0000 [r394793] Jason Parker <jparker@digium.com>
* main/ccss.c, include/asterisk/stasis_system.h,
main/stasis_system.c: Convert CCSS manager events to stasis.
(closes issue ASTERISK-21473) Review:
https://reviewboard.asterisk.org/r/2682/
2013-07-19 17:55 +0000 [r394776-394791] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Made audiohooks, framehooks, and monitor prevent
local channel optimization. Audiohooks, framehooks, and monitor
represent state on a local channel that will go away if it is
optimized out. (closes issue ASTERISK-21954) Reported by:
rmudgett Review: https://reviewboard.asterisk.org/r/2685/
* include/asterisk/channel.h: Fixup doxygen on ast_hangup().
2013-07-18 19:25 +0000 [r394759] Mark Michelson <mmichelson@digium.com>
* res/res_sip_pubsub.c, res/res_sip/config_transport.c,
res/res_sip/sip_configuration.c, res/res_sip_refer.c,
include/asterisk/res_sip.h, res/res_sip/config_global.c (added),
res/res_sip/include/res_sip_private.h, res/res_sip.exports.in,
res/res_sip_sdp_rtp.c, channels/chan_gulp.c,
res/res_sip_caller_id.c, res/res_sip.c, res/res_sip_session.c,
res/res_sip/sip_global_headers.c (added),
res/res_sip/config_system.c (added),
res/res_sip_one_touch_record_info.c, res/res_sip_mwi.c: Add a
bunch of options from sip.conf to res_sip.conf For a complete
list of the options added, see the review linked at the bottom of
this commit message. (closes issue ASTERISK-21506) reported by
Matt Jordan Review: https://reviewboard.asterisk.org/r/2671
2013-07-18 18:05 +0000 [r394744] David M. Lee <dlee@digium.com>
* res/res_http_websocket.c: Fixed null dereference when WebSocket
subprotocol isn't specified
2013-07-18 16:49 +0000 [r394731] Jonathan Rose <jrose@digium.com>
* bridges/bridge_holding.c, apps/app_bridgewait.c,
main/bridging_roles.c: bridge_holding/app_bridgewait: Add new
entertainment options This patch adds more entertainment options
to holding bridges and the bridge_wait application. Also, holding
bridges will now use music on hold as the default entertainment
option instead of none. The parameters for app_bridgewait have
changed to (role, options) from the previous (options) and the
options themselves have changed as well (entertainment options
are now contained in an enumerator, role specification is handled
by the role parameter, etc) (closes issue ASTERISK-21923)
Reported by: Matthew Jordan Review:
https://reviewboard.asterisk.org/r/2679/
2013-07-18 16:03 +0000 [r394715] Jason Parker <jparker@digium.com>
* res/stasis/control.c, res/stasis_http/resource_channels.c,
include/asterisk/stasis_app.h, include/asterisk/channel.h,
res/res_mutestream.c, main/channel.c: ARI: Add support for
suppressing media streams. Also convert res_mutestream to use the
core feature behind this. (closes issue ASTERISK-21618) Review:
https://reviewboard.asterisk.org/r/2652/
2013-07-18 14:50 +0000 [r394701] Matthew Jordan <mjordan@digium.com>
* main/http.c: Tweak debug statements This patch does two things:
1. It moves the debug statement that shows the HTTP sub-protocols
being compared after the string length calculation such that it
shows the correct string length in the output 2. It adds some
additional debug that displays when it matches on a sub-protocol
and when it fails
2013-07-18 14:08 +0000 [r394686] David M. Lee <dlee@digium.com>
* main/stasis_cache.c: Fix caching topic shutdown assertions The
recent changes to update stasis_cache_topics directly from the
publisher thread uncovered a race condition, which was causing
asserts in the /stasis/core tests. If the caching topic's
subscription is the last reference to the caching topic, it will
destroy the caching topic after the final message has been
processed. When dispatching to a different thread, this usually
gave the unsubscribe enough time to finish before destruction
happened. Now, however, it consistently destroys before
unsubscription is complete. This patch adds an extra reference to
the caching topic, to hold it for the duration of the
unsubscription. This patch also removes an extra unref that was
happening when the final message was received by the caching
topic. It was put there because of an extra ref that was put into
the caching topic's constructor. Both have been removed, which
makes the destructor a bit less confusing. Review:
https://reviewboard.asterisk.org/r/2675/
2013-07-18 12:54 +0000 [r394642] Michael L. Young <elgueromexicano@gmail.com>
* /, res/res_agi.c: Properly indicate failure to open an audio
stream in res_agi If there is an error streaming an audio file,
the current return status makes it difficult for an AGI script to
determine that there was an error with the audio file. This
patches changes the result to return -1 and the function returns
RESULT_FAILURE instead of RESULT_SUCCESS. From looking at other
parts of res_agi, this would appear to be the proper way to
handle an error. (closes issue ASTERISK-21903) Reported by: Ariel
Wainer Tested by: Ariel Wainer Patches:
asterisk-21903-return-stream-res_1.8.diff by Michael L. Young
(license 5026) Review: https://reviewboard.asterisk.org/r/2625/
........ Merged revisions 394640 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394641 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-07-17 22:30 +0000 [r394600-394623] Richard Mudgett <rmudgett@digium.com>
* main/dial.c, apps/app_meetme.c, tests/test_app.c,
main/features.c, tests/test_voicemail_api.c, tests/test_cel.c,
include/asterisk/channel.h, addons/chan_mobile.c,
tests/test_cdr.c, tests/test_stasis_endpoints.c,
apps/app_voicemail.c, main/channel.c: Change ast_hangup() to
return void and be NULL safe. Since ast_hangup() is effectively a
channel destructor, it should be a void function. * Make the few
silly callers checking the return value no longer do so. Only the
CDR and CEL unit tests checked the return value. * Make all
callers take advantage of the NULL safe change and remove the
NULL check before the call.
* main/features.c: Remove some completed and no longer relevant
BUGBUG notes.
2013-07-17 18:26 +0000 [r394583] Jonathan Rose <jrose@digium.com>
* apps/confbridge/conf_chan_announce.c: app_confbridge: Eliminate a
reference leak for confbridge announcer channels
2013-07-17 17:49 +0000 [r394552-394567] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* channels/chan_dahdi.c: Left over spacing issues of review 726.
* channels/chan_dahdi.c: handle DAHDI_EVENT_REMOVED on a pri
D-Channel When a DAHDI device is removed at run-time it sends the
event DAHDI_EVENT_REMOVED on each channel. This is intended to
signal the userspace program to close the respective file handle,
as the driver of the device will need all of them closed to
properly clean-up. This event has long since been handled in
chan_dahdi (chan_zap at the time). However the event that is sent
on a D-Channel of a "PRI" (ISDN) span simply gets ignored. This
commit adds handling for closing the file descriptor (and
shutting down the span, while we're at it). It also adds a CLI
command 'pri destroy span <N>' to destroy the span and its DAHDI
channels. Review: https://reviewboard.asterisk.org/r/726/
2013-07-16 22:33 +0000 [r394530-394531] Matthew Jordan <mjordan@digium.com>
* apps/app_confbridge.c, CHANGES: Add 'kick all' capability to
ConfBridge CLI command This patch adds the ability to kick all
users out of a conference from the ConfBridge kick CLI command.
It is invoked by passing 'all' as the channel parameter to the
CLI command, i.e., "confbridge kick <conf> all". Note that this
patch was modified slightly to conform to trunk. (closes issue
ASTERISK-21827) Reported by: dorianlogan patches:
kickall-patch_v2.diff uploaded by dorianlogan (License 6504)
* main/cel.c: Re-order handlers in CEL to ensure that HANGUP events
happen after APP_END When a channel is hungup, both an APP_END
event and a HANGUP event can be fired. To ensure that HANGUP
events occur after APP_END events, the method callbacks for the
APP_END event should be processed prior to the callbacks for the
HANGUP event.
2013-07-16 21:44 +0000 [r394513] David M. Lee <dlee@digium.com>
* res/stasis_http/ari_websockets.c: Debug logging to help with
WebSocket connection problems
2013-07-16 20:00 +0000 [r394489] Richard Mudgett <rmudgett@digium.com>
* channels/chan_gulp.c: chan_gulp: Fix gulp_indicate() handling of
AST_CONTROL_PVT_CAUSE_CODE.
2013-07-16 19:13 +0000 [r394473] Mark Michelson <mmichelson@digium.com>
* res/res_sip_session.c: Prevent crash from trying to end a session
in an invalid way. This ensures that code that was only meant to
be run on a reinvite failure only runs on a reinvite failure.
(closes issue ASTERISK-22061) reported by Rusty Newton
2013-07-16 18:49 +0000 [r394470-394471] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, channels/chan_sip.c: Remove some dead code
dealing with old bridging method.
* bridges/bridge_simple.c: Simplify bridge_simple chan join code.
2013-07-16 18:22 +0000 [r394469] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Re-order cleanup This patch attempts to fix some
possible race conditions in shutdown of the CDR engine. It: *
Adds a cleanup handler to only unsubscribe and join on stasis
messages during graceful shutdown. The cleanup handler should
execute before the regular atexit handler, as we want to
unsubscribe for any further messages before dispatching the CDRs.
* The CDRs are now locked when we dispatch them on shutdown.
2013-07-16 15:30 +0000 [r394442] David M. Lee <dlee@digium.com>
* res/res_http_websocket.c: Fixed null dereference when WebSocket
protocol is omitted
2013-07-15 23:20 +0000 [r394417] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/stasis_channels.h, channels/chan_agent.c
(removed), configs/queues.conf.sample,
include/asterisk/bridging.h, UPGRADE.txt, main/stasis_channels.c,
CHANGES, main/bridging.c, apps/app_agent_pool.c (added),
configs/agents.conf.sample, include/asterisk/config_options.h:
Replace chan_agent with app_agent_pool. The ill conceived
chan_agent is no more. It is now replaced by app_agent_pool.
Agents login using the AgentLogin() application as before. The
AgentLogin() application no longer does any authentication.
Authentication is now the responsibility of the dialplan.
(Besides, the authentication done by chan_agent did not match
what the voice prompts asked for.) Sample extensions.conf [login]
; Sample agent 1001 login ; Set COLP for in between calls so the
agent does not see the last caller COLP. exten =>
1001,1,Set(CONNECTEDLINE(all)="Agent Waiting" <1001>) ; Give the
agent DTMF transfer and disconnect features when connected to a
caller. same => n,Set(CHANNEL(dtmf-features)=TX) same =>
n,AgentLogin(1001) same => n,NoOp(AGENT_STATUS is
${AGENT_STATUS}) same => n,Hangup() [caller] ; Sample caller
direct connect to agent 1001 exten => 800,1,AgentRequest(1001)
same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS}) same =>
n,Hangup() ; Sample caller going through a Queue to agent 1001
exten => 900,1,Queue(agent_q) same => n,Hangup() Sample
queues.conf [agent_q] member =>
Local/800@caller,,SuperAgent,Agent:1001 Under the hood operation
overview: 1) Logged in agents wait for callers in an agents
holding bridge. 2) Caller requests an agent using AgentRequest()
3) A basic bridge is created, the agent is notified, and caller
joins the basic bridge to wait for the agent. 4) The agent is
either automatically connected to the caller or must ack the call
to connect. 5) The agent is moved from the agents holding bridge
to the basic bridge. 6) The agent and caller talk. 7) The
connection is ended by either party. 8) The agent goes back to
the agents holding bridge. To avoid some locking issues with the
agent holding bridge, I needed to make some changes to the after
bridge callback support. The after bridge callback is now a list
of requested callbacks with the last to be added the only active
callback. The after bridge callback for failed callbacks will
always happen in the channel thread when the channel leaves the
bridging system or is destroyed. (closes issue ASTERISK-21554)
Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2657/
2013-07-15 22:05 +0000 [r394402] Mark Michelson <mmichelson@digium.com>
* include/asterisk/stasis_channels.h: Remove misleading
documentation for channel snapshot creation.
2013-07-15 21:22 +0000 [r394397] David M. Lee <dlee@digium.com>
* res/res_stasis_http.c: Document the ari.conf allowed_origins
setting
2013-07-15 13:43 +0000 [r394370] Joshua Colp <jcolp@digium.com>
* res/res_sip_session.c, include/asterisk/res_sip_session.h: Remove
some callbacks and functions which are not needed.
2013-07-14 02:41 +0000 [r394278-394346] Matthew Jordan <mjordan@digium.com>
* apps/app_queue.c, /: Provide error message for QUEUE_MEMBER when
member is not in queue When QUEUE_MEMBER is used and the member
specified is not in the queue, Asterisk provides an ERROR message
that indicates that the option specified is not valid. This patch
now properly displays an ERROR message that the member is not in
the queue if an interface is specified. (closes issue
ASTERISK-21980) Reported by: Avraam David ........ Merged
revisions 394345 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/dns.c: Remove redundant code in dns.c Peter J Philipp
pointed out that there are two checks that ensure that len is not
less than 0. If len is less than 0, the function returns. Having
both of them is clearly redundant. This removes the second and
attempts to clarify (slightly) the error condition. (closes issue
ASTERISK-21772) Reported by: Peter J Philipp
* /, funcs/func_strings.c: Clarify documentation for function
PASSTHRU It is not apparent to the average user that the PASSTHRU
function should not be passed as ${PASSTHRU(string)} but just as
PASSTHRU(string) to functions which take a variable name and not
its contents. This patch clarifies the behavior in the
documentation and provides an example. (closes issue
ASTERISK-21717) Reported by: Richard Miller patches:
func_strings.diff uploaded by Richard Miller (license 5685)
........ Merged revisions 394302 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394303 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/bridging.c, main/cdr.c: Fix FRACK message from external
redirects; handle outbound channels better This patch does the
following: * It simplifies the Dial handling in CDRs. As a rule,
the caller in a dial relationship is always the Party A. There
was some logic present in the handling of the dial message that
could, conceivably, pick the caller as Party A for the beginning
of the dial and the peer as Party A for the end of the dial. This
shouldn't have happened if the code in the bridging framework was
doing its job; however, that was broken and it led to the FRACK.
As it is, this code was overly ocmplex and not needed: the
caller, if present, should always be Party A. Period. * It
properly checks to see if a channel will continue on in the
dialplan. ast_check_hangup - much like cake at the end - is a
lie. It will tell you that you are hungup when you are not. Do
not believe it. I would make this function tell the truth, but
I'm nervous that we've been depending on it sitting on its throne
of lies for far too long, and it would probably break lots of
things. So I'm just checking the "internal" soft hangup flags,
like everyone else. (closes issue ASTERISK-22060) Reported by:
Mark Michelson (issue ASTERISK-21831) Reported by: Matt Jordan
* channels/chan_sip.c: Pretty up a debug message if the
referred-by-uri isn't available Instead of formatting a NULL
pointer into a "%s" format string (which is usually not a good
thing to do), we instead print "Unknown".
2013-07-12 22:35 +0000 [r394263] Moises Silva <moises.silva@gmail.com>
* channels/chan_dahdi.c, /: Fix a longstanding issue with MFC-R2
configuration that prevented users from mixing different variants
or general MFC-R2 settings within the same E1 line. Most users do
not have a problem with this since MFC-R2 lines are usually
fractional E1s, or the whole E1 has the same country variant and
R2 settings. In Venezuela however is common to have inbound
MFC-R2 and outbound DTMF-R2 within the same E1. This fix now
properly parses the chan_dahdi.conf file to generate a new openr2
context every time a new channel => section is found and the
configuration was changed. (closes issue ASTERISK-21117) Reported
by: Rafael Angulo Related Elastix issue:
http://bugs.elastix.org/view.php?id=1612 ........ Merged
revisions 394106 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 394173 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-07-12 21:42 +0000 [r394249] Joshua Colp <jcolp@digium.com>
* main/bridging.c, main/channel.c, main/channel_internal_api.c,
include/asterisk/channel.h: Add support to the bridging core for
performing COLP updates when channels join a 2 party bridge.
(closes issue ASTERISK-21829) Review:
https://reviewboard.asterisk.org/r/2636/
2013-07-12 21:01 +0000 [r394232] Mark Michelson <mmichelson@digium.com>
* main/bridging_basic.c: Prevent potential race condition in
multiparty basic bridges. For more details about the race
condition see the linked review at the bottom of this commit
(closes issue ASTERISK-21882) Reported by Matt Jordan Review:
https://reviewboard.asterisk.org/r/2663
2013-07-12 19:35 +0000 [r394216] Jason Parker <jparker@digium.com>
* channels/chan_skinny.c: Fix a compiler warning.
2013-07-12 18:23 +0000 [r394203] David M. Lee <dlee@digium.com>
* tests/test_json.c: Fixed intermittent crash when loading
test_json.so The JSON test attempted an overly clever use of
RAII_VAR to run code at the beginning and end of each test, in
order to validate that no JSON objects were leaked during the
test. The problem is that the validation code would run during
the initial load, when the tests were initialized. This happens
during startup, when other parts of the system might actively be
allocating and freeing JSON objects. This patch changes the
RAII_VAR to use the new ast_test_register_{init,cleanup}
functions to run the validations properly. (closes issue
ASTERISK-21978) Review: https://reviewboard.asterisk.org/r/2669/
2013-07-12 17:52 +0000 [r394189] Jason Parker <jparker@digium.com>
* res/stasis_http/internal.h, res/stasis_http/config.c,
res/stasis_http/cli.c, res/res_stasis_http.c: ARI: Add support
for Cross-Origin Resource Sharing (CORS), origin headers This
rejects requests from any unknown origins. (closes issue
ASTERISK-21278) Review: https://reviewboard.asterisk.org/r/2667/
2013-07-11 21:01 +0000 [r394158] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/bridging_technology.h: Fix bridge tech write
callback parameter name.
2013-07-11 20:59 +0000 [r394156] David M. Lee <dlee@digium.com>
* channels/chan_skinny.c: Fixed chan_skinny for systems were
pthread_t isn't an int. I'm looking at you, OS X.
2013-07-11 20:17 +0000 [r394147] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Refactor and cleanup of skinny session
handling. Major changes are to pull all packet reading functions
into skinny_session and move timeout handling to scheduling
arrangements. Thread cancelling is now undertaken directly rather
than waiting for the read to timeout (cleanup is popped on thread
cancel). Also added some keepalive timings in debugging messages.
Keepalive timeout has been increased from 1.1 by keepalive to 3
times keepalive. This seems to align (after keepalives stabilise)
with when devices reset after not receiving keepalives. Probably
needs more work, especially around the first and/or second
keepalives that vary significantly by device and firmware
version. Review: https://reviewboard.asterisk.org/r/2611/
2013-07-11 16:23 +0000 [r394103] Joshua Colp <jcolp@digium.com>
* res/res_sip_exten_state.c: Tweak the subscription failure warning
message to include endpoint name and context.
2013-07-11 15:37 +0000 [r394037-394089] David M. Lee <dlee@digium.com>
* tests/test_cel.c: Correct test_cel cleanup. When I corrected the
CEL test crash in r394037, I didn't quite pay attention to how
the globals and locals were being shuffled around in the cleanup
callback. I removed the nulling of the global variables, which
caused them to be double cleaned. This patch puts the global
nulling code back (since the vars are cleaned up by RAII_VARs),
and removes the explicit ao2_cleanup() (since they were no-ops,
because the variables had just been nulled).
* res/stasis_http/config.c, configs/ari.conf.sample,
res/res_stasis_http.c: Change ARI user config to use a type field
When I initially wrote the configuration support for ARI users, I
determined the section type by a category prefix (i.e.,
[user-admin]). This is neither idiomatic Asterisk configuration,
nor is it really that user friendly. This patch replaces the
category prefix with a type field in the section, which is much
cleaner. Review: https://reviewboard.asterisk.org/r/2664/
* res/stasis_http/config.c: Apply defaults to ari.conf's general
section
* tests/test_voicemail_api.c: test_voicemail_api: fix warning found
by gcc-4.8 The voicemail_api test had code like strncmp(a, b,
sizeof(a)), but a was a char pointer, instead of a literal or
char array. This meant that sizeof was the size of the pointer,
not the length of the string. Since the string is in a
stringfield and should be null terminated, I just changed it to a
plain strcmp.
* tests/test_cel.c: Fixed some CEL test crashes
2013-07-10 22:26 +0000 [r394024] Kevin Harwell <kharwell@digium.com>
* contrib/scripts/sip_to_res_sip/astdicts.py (added),
contrib/scripts/sip_to_res_sip/sip_to_res_sip.py (added),
contrib/scripts/sip_to_res_sip (added),
contrib/scripts/sip_to_res_sip/astconfigparser.py (added): PSJIP
- sip.conf to res_sip.conf script ** This script is in no way
finished. Started the initial "cut" at converting a sip.conf file
to a res_sip.conf file. Hopefully the bulk of the framework is in
place and only a few minor adjustments need to be made when an
option mapping is added that "doesn't fit". This script and
supporting files should be executable against python version 2.5.
An OrderedDict class (backported from a newer version of python)
is included. A MultiOrderedDict class is implemented so options,
when added, should be able to be added in order and allowed to
have multiple values. Currently the scripts supports the majority
of endpoint options found in res_sip.conf. Support has also been
added for Aor(s) and the ACL/security sections. Inside the
sip_to_res_sip.py file one can see a list of options that still
need to be mapped. Also items that still need to be done:
templates, includes, parsing '=>' delimiter. Note that some code
is hopefully in place already to support templates (e.g.
lookup/retrieving defaults from them). However, the parsing of
and adding of the section needs to be done.
2013-07-10 20:02 +0000 [r394004] Joshua Colp <jcolp@digium.com>
* res/res_sip_outbound_registration.c: Handle outbound registration
failures that do not occur as a result of a real response.
(closes issue ASTERISK-22064) Reported by: Rusty Newton
2013-07-10 17:13 +0000 [r393968-393987] David M. Lee <dlee@digium.com>
* res/res_stasis_http_channels.c, rest-api/api-docs/channels.json:
Document the 400 error response for originate
* rest-api/api-docs/channels.json,
res/stasis_http/ari_model_validators.h,
res/res_stasis_http_asterisk.c, rest-api/api-docs/asterisk.json,
res/stasis_http/ari_model_validators.c,
res/res_stasis_http_channels.c: Corrected api-docs for channel
variables
2013-07-10 01:56 +0000 [r393930] Russell Bryant <russell@russellbryant.com>
* configs/sla.conf.sample, /, apps/app_meetme.c: astobj2-ify the
SLA code The SLA code within app_meetme was written before
asotbj2 had been merged into Asterisk. Worse, support for reloads
did not exist at first and was added later as a bolt-on feature.
I knew at the time that reloading was not safe at all while SLA
was in use, so the reload would be queued up to execute when the
system was idle. Unfortunately, this approach was still prone to
errors beyond the fact that this was the only place in Asterisk
where configuration was not reloaded instantly when requested.
This patch converts various SLA objects to be reference counted
objects using astobj2. This allows reloads to be processed while
the system is in use. The code ensures that the objects will not
disappear while one of the other threads is using them. However,
they will be immediately removed from the global trunk and
station containers so no new calls will use them if removed from
configuration. Review: https://reviewboard.asterisk.org/r/2581/
........ Merged revisions 393928 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 393929 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-07-09 21:40 +0000 [r393919] Jason Parker <jparker@digium.com>
* include/asterisk/lock.h: Make SCOPED_LOCK use RAII_VAR. This
fixes an issue with requiring SCOPED_LOCK to be the last variable
declaration and removes duplicate code in the process. Review:
https://reviewboard.asterisk.org/r/2665/
2013-07-09 21:06 +0000 [r393910] Richard Mudgett <rmudgett@digium.com>
* main/xmldoc.c: Fix printf NULL string (null) substituion for NULL
config framework default.
2013-07-09 20:07 +0000 [r393897] Mark Michelson <mmichelson@digium.com>
* channels/chan_gulp.c: Use correct function for getting bridged
peer when doing direct media checks. (closes issue
ASTERISK-21947) reported by Matt Jordan
2013-07-09 19:38 +0000 [r393896] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/manager.h, include/asterisk/stasis_channels.h:
Fix some stasis doxygen comments.
2013-07-09 11:05 +0000 [r393857-393870] Joshua Colp <jcolp@digium.com>
* res/res_sip_outbound_registration.c: Ensure all pjsip_regc_*
access occurs within a pjlib thread. (closes issue
ASTERISK-22054) Reported by: Rusty Newton
* res/res_sip/config_auth.c: Tweak log message slightly.
* res/res_sip/config_auth.c: Treat the authentication object as
invalid if digest configuration is chosen and the digest is not
of the correct length. (closes issue ASTERISK-22003) Reported by:
Rusty Newton
2013-07-08 20:31 +0000 [r393834-393843] David M. Lee <dlee@digium.com>
* res/res_stasis_recording.c: Oh menuconfig, why do you hate
margins?
* res/stasis_http/ari_websockets.c: Better structure for the
WebSocket validation failure message
2013-07-08 19:53 +0000 [r393831-393833] Joshua Colp <jcolp@digium.com>
* res/res_sip/config_transport.c: Ensure that a valid bind host is
specified for transports. (closes issue ASTERISK-22017) Reported
by: Rusty Newton
* main/channel_internal_api.c, res/res_agi.c,
main/manager_bridging.c, include/asterisk/channel.h,
main/stasis_channels.c, main/bridging.c, main/manager_channels.c,
main/cli.c, main/channel.c, build_tools/cflags-devmode.xml,
main/pbx.c, include/asterisk/stasis_channels.h, main/manager.c:
Refactor operations to access the stasis cache instead of objects
directly when retrieving information. (closes issue
ASTERISK-21883) Review: https://reviewboard.asterisk.org/r/2645/
2013-07-08 16:04 +0000 [r393816] David M. Lee <dlee@digium.com>
* res/res_stasis_http.c: res_stasis_http doesn't depend on
res_stasis any more
2013-07-08 15:59 +0000 [r393815] Jonathan Rose <jrose@digium.com>
* res/parking/parking_bridge.c, res/parking/res_parking.h,
res/parking/parking_controller.c, main/bridging.c: res_parking:
Apply ringing role option on swap with a channel that rings
(closes issue ASTERISK-21877) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2656/
2013-07-08 15:11 +0000 [r393807] Joshua Colp <jcolp@digium.com>
* res/stasis/control.c: Fix building.
2013-07-08 14:46 +0000 [r393804-393806] Jason Parker <jparker@digium.com>
* res/res_stasis_http_channels.c, include/asterisk/stasis_app.h,
res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json,
res/stasis_http/resource_asterisk.c,
res/res_stasis_http_asterisk.c, res/stasis/control.c,
res/stasis_http/resource_asterisk.h,
rest-api/api-docs/asterisk.json,
res/stasis_http/resource_channels.c: ARI: Add support for
getting/setting channel and global variables. This allows for
reading and writing of functions on channels. (closes issue
ASTERISK-21868) Review: https://reviewboard.asterisk.org/r/2641/
* main/manager_system.c (added), res/res_stun_monitor.c,
main/file.c, main/sounds_index.c,
include/asterisk/stasis_system.h (added), channels/chan_iax2.c,
include/asterisk/manager.h, main/asterisk.c, include/asterisk.h,
main/stasis_system.c (added), main/manager.c,
channels/chan_sip.c: Move channel driver Registry manager events
to core. This also shuffles the stasis system topic and related
handling. (closes issue ASTERISK-21488) Review:
https://reviewboard.asterisk.org/r/2631/
2013-07-08 14:26 +0000 [r393801] Matthew Jordan <mjordan@digium.com>
* main/core_local.c, CHANGES, main/bridging.c,
include/asterisk/core_unreal.h, include/asterisk/core_local.h,
include/asterisk/bridging.h, main/core_unreal.c: Create Local
channel messages on the Stasis message bus and produce AMI events
This patch does the following: * It adds a virtual table of
callbacks to core_unreal. These callbacks can be supplied by
concrete implementations of "unreal" channel drivers, which lets
the unreal channel driver call specific functionality when it
performs some action. Currently, this is done to notify
implementations when an optimization operation has begun, and
when an optimization operation has succeeded. * It adds
Stasis-Core messages for Local channel bridging and Local channel
optimization. Local channel optimization is now two events: a
Begin and an End. Some consumers of Stasis-Core may want to know
when an operation is beginning so that they can 'prepare' their
information; others will be more concerned about when the
operation has completed, so that they can 'fix up' information.
Stasis-Core allows for both, as does AMI. Review:
https://reviewboard.asterisk.org/r/2552
2013-07-08 13:57 +0000 [r393793] Mark Michelson <mmichelson@digium.com>
* res/res_sip_caller_id.c: Fix some broken logic in sending
outbound caller ID. * trust_id_outbound was required even when
the caller ID was not marked private. This is against intentions
and documentation. * We now check both name and number privacy
instead of checking name privacy twice.
2013-07-07 21:29 +0000 [r393777-393785] Matthew Jordan <mjordan@digium.com>
* main/channel.c: In a channel destructor dispose of items that
raise Stasis message properly This patch reorders certain actions
that may raise Stasis messages in the channel destructor such
that they occur before the Stasis cache is cleared. Once the
Stasis cache is cleared, its rather a bad idea to be trying to
publish information about a channel. (closes issue
ASTERISK-22001) Reported by: Jonathan Rose
* main/manager_channels.c, main/cdr.c, main/channel.c, main/pbx.c,
include/asterisk/stasis_channels.h, main/channel_internal_api.c,
include/asterisk/cdr.h, include/asterisk/channel.h,
main/stasis_channels.c, CHANGES, main/cel.c: Handle hangup logic
in the Stasis message bus and consumers of Stasis messages This
patch does the following: * It adds a new soft hangup flag
AST_SOFTHANGUP_HANGUP_EXEC that is set when a channel is
executing dialplan hangup logic, i.e., the 'h' extension or a
hangup handler. Stasis messages now also convey the soft hangup
flag so consumers of the messages can know when a channel is
executing said hangup logic. * It adds a new channel flag,
AST_FLAG_DEAD, which is set when a channel is well and truly
dead. Not just a zombie, but dead, Jim. Manager, CEL, CDRs, and
other consumers of Stasis have been updated to look for this flag
to know when the channel should by lying six feet under. * The
CDR engine has been updated to better handle a channel entering
and leaving a bridge. Previously, a new CDR was automatically
created when a channel left a bridge and put into the 'Pending'
state; however, this way of handling CDRs made it difficult for
the 'endbeforehexten' logic to work correctly - there was always
a new CDR waiting in the hangup logic and, even if 'ended',
wouldn't be the CDR people wanted to inspect in the hangup
routine. This patch completely removes the Pending state and
instead defers creation of the new CDR until it gets a new
message that requires a new CDR.
2013-07-05 22:08 +0000 [r393749-393768] David M. Lee <dlee@digium.com>
* res/res_stasis_http.c: ARI: return a 503 if Asterisk isn't fully
booted
* res/stasis_http/ari_websockets.c: Print error details when set
nonblock fails
* res/stasis_http/ari_model_validators.h,
res/stasis_http/resource_events.c, res/res_stasis_http_events.c,
rest-api/api-docs/events.json,
res/stasis_http/ari_model_validators.c: Document MissingParams
error message for /ari/events
2013-07-05 17:33 +0000 [r393740] Matthew Jordan <mjordan@digium.com>
* channels/chan_unistim.c, res/res_rtp_asterisk.c,
channels/chan_multicast_rtp.c, main/rtp_engine.c,
channels/chan_sip.c, include/asterisk/cdr.h,
include/asterisk/channel.h, channels/chan_gtalk.c,
include/asterisk/json.h, channels/chan_gulp.c,
channels/chan_jingle.c, main/json.c, main/manager.c,
channels/chan_skinny.c, channels/chan_motif.c,
channels/chan_h323.c, include/asterisk/rtp_engine.h,
main/asterisk.c, channels/chan_mgcp.c: Refactor RTCP events over
to Stasis; associate with channels This patch does the following:
* It merges Jaco Kroon's patch from ASTERISK-20754, which
provides channel information in the RTCP events. Because Stasis
provides a cache, Jaco's patch was modified to pass the channel
uniqueid to the RTP layer as opposed to a pointer to the channel.
This has the following benefits: (1) It keeps the RTP engine
'clean' of references back to channels (2) It prevents circular
dependencies and other potential ref counting issues * The RTP
engine now allows any RTP implementation to raise RTCP messages.
Potentially, other implementations (such as res_rtp_multicast)
could also raise RTCP information. The engine provides structs to
represent RTCP headers and RTCP SR/RR reports. * Some general
refactoring in res_rtp_asterisk was done to try and tame the RTCP
code. It isn't perfect - that's *way* beyond the scope of this
work - but it does feel marginally better. * A few random bugs
were fixed in the RTCP statistics. (Example: performing an
assignment of a = a is probably not correct) * We now raise RTCP
events for each SR/RR sent/received. Previously we wouldn't raise
an event when we sent a RR report. Note that this work will be of
use to others who want to monitor call quality or build modules
that report call quality statistics. Since the events are now
moving across the Stasis message bus, this is far easier to
accomplish. It is also a first step (though by no means the last
step) towards getting Olle's pinefrog work incorporated. Again:
note that the patch by Jaco Kroon was modified slightly for this
work; however, he did all of the hard work in finding the right
places to set the channel in the RTP engine across the channel
drivers. Much thanks goes to Jaco for his hard work here. Review:
https://reviewboard.asterisk.org/r/2603/ (closes issue
ASTERISK-20574) Reported by: Jaco Kroon patches:
asterisk-rtcp-channel.patch uploaded by jkroon (License 5671)
(closes issue ASTERISK-21471) Reported by: Matt Jordan
2013-07-05 14:54 +0000 [r393729] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: OneTouchRecord: Add function defined earlier:
ast_bridge_features_do()
2013-07-05 03:08 +0000 [r393716] Matthew Jordan <mjordan@digium.com>
* main/stasis_channels.c, include/asterisk/stasis_channels.h:
Remove parkinglot from the channel snapshot Legacy channel
drivers often include the ability to set a default parking lot on
an endpoint basis; when channels are created for that endpoint,
they inherit the parkinglot option. Parking used to use this
option more frequently; while it is still supported, other
options (such as using channel variables or creation of a custom
parkinglot) are supported. More importantly, conveying the
parkinglot information through a channel snapshot isn't terribly
useful - it is rarely (if ever) changed on a channel and some
consumers of channel snapshots, such as ARI, will never use the
information. (closes issue ASTERISK-21968) Reported by: Matt
Jordan
2013-07-04 18:46 +0000 [r393704] Jonathan Rose <jrose@digium.com>
* main/cel.c, CHANGES, res/parking/parking_bridge_features.c,
res/parking/parking_bridge.c, main/channel.c,
res/parking/res_parking.h, bridges/bridge_builtin_features.c,
main/features.c, include/asterisk/parking.h, main/bridging.c,
res/parking/parking_manager.c, res/parking/parking_ui.c,
main/parking.c, res/parking/parking_controller.c, UPGRADE.txt,
res/parking/parking_applications.c, include/asterisk/channel.h:
res_parking: Replace Parker snapshots with ParkerDialString This
process also involved a large amount of rework regarding how to
redial the Parker when a channel leaves a parking lot due to
timeout. An attended transfer channel variable has been added to
attended transfers to extensions that will eventually park (but
haven't at the time of transfer) as well. This resolves one of
the two BUGBUG comments remaining in res_parking. (issues
ASTERISK-21877) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2638/
2013-07-04 13:37 +0000 [r393675-393687] David M. Lee <dlee@digium.com>
* res/res_ari_model.c: Fix int width problem for 32-bit... again
* tests/test_ari_model.c: Fix int width problem for 32-bit
* main/crypt.c (added), main/Makefile, main/utils.c: Fix utils
directory breakage.
2013-07-03 23:59 +0000 [r393600-393633] Richard Mudgett <rmudgett@digium.com>
* main/config_options.c: Add BUGBUG note for ASTERISK-22009
* main/bridging.c, apps/app_agent_pool.c (removed),
configs/agents.conf.sample, include/asterisk/config_options.h,
include/asterisk/stasis_channels.h, channels/chan_agent.c
(added), configs/queues.conf.sample, include/asterisk/bridging.h,
UPGRADE.txt, main/config_options.c, main/stasis_channels.c,
CHANGES: Revert accidental overcommit.
* main/stasis_channels.c, CHANGES, main/bridging.c,
apps/app_agent_pool.c (added), configs/agents.conf.sample,
include/asterisk/config_options.h,
include/asterisk/stasis_channels.h, channels/chan_agent.c
(removed), configs/queues.conf.sample,
include/asterisk/bridging.h, UPGRADE.txt, main/config_options.c:
Add BUGBUG note for ASTERISK-22009
* channels/chan_dahdi.c, /: chan_dahdi: Fix segfault reloading
chan_dahdi when round robin is used. * Clear round_robin[] in
dahdi_restart(). (closes issue ASTERISK-21847) Reported by: Ivo
Andonov Patches: jira_asterisk_21847_v1.8.patch (license #5621)
patch uploaded by rmudgett ........ Merged revisions 393627 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 393628 from
http://svn.asterisk.org/svn/asterisk/branches/11
* bridges/bridge_builtin_features.c,
include/asterisk/bridging_features.h: OneTouchRecord: Make so
Monitor/MixMonitor can be toggled/started/stopped. The
OneTouchRecord feature has historically been a toggle. This patch
adds the ability to make the OneTouchRecord hook optionally
start/stop recording only. If OneTouchRecord is already doing
what is requested then only the invoker hears the courtesy tone
and/or start/stop recording message. The new feature is written
so we could easily add explicit start/stop recording DTMF hooks
for Monitor and MixMonitor. The majority of the changes in
bridge_builtin_features.c is a refactoring of the OneTouchRecord
code (Monitor and MixMonitor versions) so it is easy to direct
the toggle/start/stop functionality. Review:
https://reviewboard.asterisk.org/r/2655/
* main/bridging.c: Move when bridge channel enter is published so
it does not interrupt the thought of some lines of code.
* main/stasis_config.c: Fix some indentation in stasis_config.c.
2013-07-03 22:04 +0000 [r393589-393599] Matthew Jordan <mjordan@digium.com>
* main/cdr.c: Fix some bugs in CDRs; add some CLI commands to help
debugging This patch fixes a few minor bugs and one major one:
the CDR by bridge container was less than helpful. The mechanism
previously used to try and find all of the CDRs in a particular
bridge ended up missing CDRs, resulting in incorrect records.
When looking up CDRs in a bridge, we now just bite the bullet and
do a selection across all existing CDRs.
* main/stasis_config.c: Let Stasis load itself with default values
While a Stasis configuration file is nice, it shouldn't be
mandatory. We can carry on with default values.
2013-07-03 20:41 +0000 [r393586] Mark Michelson <mmichelson@digium.com>
* main/bridging.c: Publish a bridge enter before pulling on a
push-and-swap operation. Prior to this patch, the order of
procedures on a bridge push was * Add new bridge channel to
bridge's array. * Pull the swap channel out of the bridge *
Publish a bridge enter event. The problem is that when the swap
channel was pulled from the bridge, a bridge leave event would be
published. The bridge snapshot published during the bridge leave
showed the new channel that had been added to the bridge, but
there had been no bridge enter event for that channel. The fix
provided here was to change the order a bit * Add new bridge
channel to bridge's array. * Publish bridge enter event. * Pull
the swap channel out of the bridge. This makes it so that the
bridge snapshots during the stasis events are accurate.
2013-07-03 19:46 +0000 [r393528-393576] David M. Lee <dlee@digium.com>
* rest-api-templates/res_stasis_http_resource.c.mustache,
rest-api-templates/ari_model_validators.h.mustache,
res/stasis_http/ari_model_validators.c,
res/res_stasis_http_channels.c, res/res_stasis_http_sounds.c,
res/res_stasis_http_bridges.c, res/res_stasis_http_recordings.c,
res/stasis_http/ari_model_validators.h,
res/res_stasis_http_endpoints.c, res/res_stasis_http_events.c,
rest-api-templates/ari_model_validators.c.mustache: Fix load
errors related to the new ari_model_validators. The Asterisk
strategy of loading modules with RTLD_LAZY to extract metadata
from the module works well enough, until you try to take the
address of a function. If a module takes the address of a
function, that function needs to be resolved at load time. That
kinda defeats RTLD_LAZY. This patch adds some
ari_validator_{id}_fn() wrapper functions for safely getting the
function pointer from a different module.
* res/res_ari_model.c: Violating the margins to make menuconfig
happy
* rest-api/api-docs/recordings.json,
res/stasis_http/resource_recordings.h, main/asterisk.c,
rest-api-templates/asterisk_processor.py, apps/app_voicemail.c,
include/asterisk/utils.h, res/res_stasis_playback.c,
include/asterisk/stasis_app_recording.h (added),
res/res_stasis_http_channels.c, main/utils.c,
include/asterisk/channel.h, res/res_stasis_http_recordings.c,
res/res_stasis_recording.exports.in (added), Makefile,
include/asterisk/file.h, include/asterisk/paths.h,
main/channel.c, include/asterisk/app.h,
res/stasis_http/resource_channels.c, tests/test_utils.c,
apps/app_minivm.c, main/file.c,
res/stasis_http/resource_recordings.c, main/app.c,
res/res_stasis_recording.c (added),
rest-api-templates/swagger_model.py,
rest-api/api-docs/channels.json,
res/stasis_http/resource_channels.h,
res/res_stasis_http_bridges.c: ARI - channel recording support
This patch is the first step in adding recording support to the
Asterisk REST Interface. Recordings are stored in
/var/spool/recording. Since recordings may be destructive
(overwriting existing files), the API rejects attempts to escape
the recording directory (avoiding issues if someone attempts to
record to ../../lib/sounds/greeting, for example). (closes issue
ASTERISK-21594) (closes issue ASTERISK-21581) Review:
https://reviewboard.asterisk.org/r/2612/
* configs/stasis_core.conf.sample (removed), main/asterisk.c,
main/stasis.c, main/stasis_config.c (added),
configs/stasis.conf.sample (added), include/asterisk/stasis.h:
Configuration for Stasis threadpool The appropriate settings for
the Stasis threadpool is very system specific, depending upon
both workload and system configuration. This patch adds a
stasis.conf file which can be used to configure the key
attributes of the threadpool for the Stasis message bus. (closes
issue ASTERISK-21280) Review:
https://reviewboard.asterisk.org/r/2651/
* res/stasis_http/internal.h (added),
configs/stasis_http.conf.sample (removed), main/Makefile,
res/stasis_http/config.c (added), main/http.c, main/utils.c,
res/stasis_http/cli.c (added), res/Makefile,
configs/ari.conf.sample (added), makeopts.in,
res/res_stasis_http.c: No message for rev 393530 found
* res/res_stasis_http_asterisk.c,
rest-api-templates/res_stasis_http_resource.c.mustache,
rest-api/api-docs/events.json,
res/res_stasis_json_sounds.exports.in (removed),
res/res_stasis_json_endpoints.c (removed),
include/asterisk/json.h, res/res_stasis_json_bridges.exports.in
(removed), res/res_stasis_json_asterisk.exports.in (removed),
main/stasis_bridging.c, res/stasis_http/ari_websockets.c,
rest-api-templates/stasis_json_resource.h.mustache (removed),
rest-api/api-docs/channels.json, res/res_stasis_json_asterisk.c
(removed), rest-api/api-docs/recordings.json,
res/res_stasis_json_events.exports.in (removed),
rest-api/api-docs/endpoints.json, res/res_stasis_http_playback.c,
rest-api-templates/ari_model_validators.h.mustache (added),
res/res_stasis_http_channels.c, tests/test_stasis_channels.c,
rest-api-templates/event_function_decl.mustache (removed),
res/res_ari_model.exports.in (added),
rest-api/api-docs/sounds.json, res/res_stasis_http_recordings.c,
rest-api-templates/res_stasis_json_resource.exports.mustache
(removed), res/res_stasis_http_endpoints.c,
res/res_stasis_http_events.c, tests/test_ari_model.c (added),
main/json.c, rest-api/api-docs/asterisk.json,
rest-api/api-docs/playback.json, res/res_stasis_http_sounds.c,
rest-api-templates/swagger_model.py, res/res_stasis_http.c,
res/res_stasis_json_playback.c (removed),
res/res_stasis_json_endpoints.exports.in (removed),
res/res_stasis_json_channels.c (removed),
main/stasis_endpoints.c, rest-api-templates/make_ari_stubs.py
(added), tests/test_res_stasis.c,
res/res_stasis_json_recordings.c (removed),
res/stasis_http/ari_model_validators.c (added),
rest-api-templates/api.wiki.mustache (added), res/Makefile,
res/res_stasis_json_events.c (removed),
res/stasis_http/ari_model_validators.h (added),
res/res_stasis_json_sounds.c (removed), res/res_ari_model.c
(added), res/res_stasis_json_playback.exports.in (removed),
res/res_stasis_json_bridges.c (removed),
res/stasis_http/resource_recordings.c, main/stasis_channels.c,
res/stasis_json (removed),
rest-api-templates/res_stasis_json_resource.c.mustache (removed),
res/stasis_http/resource_recordings.h,
rest-api-templates/asterisk_processor.py,
include/asterisk/stasis_http.h, rest-api/api-docs/bridges.json,
Makefile, rest-api-templates/models.wiki.mustache (added),
rest-api-templates/transform.py,
res/res_stasis_json_channels.exports.in (removed),
res/res_stasis_http_bridges.c,
res/res_stasis_json_recordings.exports.in (removed),
res/res_stasis.c, doc/rest-api (added),
rest-api-templates/make_stasis_http_stubs.py (removed),
rest-api-templates/ari_model_validators.c.mustache (added): No
message for rev 393529 found
* rest-api-templates/asterisk_processor.py,
include/asterisk/utils.h, res/res_stasis_http_playback.c,
rest-api/api-docs/events.json, res/res_stasis_http_channels.c,
include/asterisk/stasis_http.h, configure.ac,
res/res_stasis_http_recordings.c, res/res_stasis_http_events.c,
configure, res/res_stasis_http_sounds.c,
res/stasis_http/resource_events.c,
rest-api-templates/stasis_http_resource.h.mustache,
res/res_stasis_http_asterisk.c,
rest-api-templates/res_stasis_http_resource.c.mustache,
res/res_http_websocket.exports.in,
res/stasis_http/resource_events.h, res/res_stasis_websocket.c
(removed), include/asterisk/autoconfig.h.in,
rest-api-templates/rest_handler.mustache, res/Makefile,
res/res_http_websocket.c,
rest-api-templates/param_parsing.mustache (added),
res/res_stasis_http_endpoints.c, include/asterisk/http.h,
res/res_stasis_http.exports.in, tests/test_utils.c,
res/stasis_http/ari_websockets.c (added),
rest-api-templates/stasis_http_resource.c.mustache,
rest-api-templates/swagger_model.py,
res/res_stasis_http_bridges.c, tests/test_stasis_http.c,
res/res_stasis_http.c: No message for rev 393528 found
2013-07-02 22:01 +0000 [r393508] Jason Parker <jparker@digium.com>
* main/manager.c, CHANGES: Add a SystemName field to all AMI
events. This only gets sent out if configured in asterisk.conf
(closes issue ASTERISK-21494)
2013-07-02 21:19 +0000 [r393485-393500] Richard Mudgett <rmudgett@digium.com>
* apps/app_mixmonitor.c: MixMonitor: Minor code cleanup.
* apps/app_mixmonitor.c: MixMonitor: Make
start_mixmonitor_callback() options parameter NULL tolerant. *
Removed some unnecessary code in start_mixmonitor_callback().
* apps/app_mixmonitor.c: MixMonitor: Don't use ast_strdupa() in a
loop.
* apps/app_mixmonitor.c: MixMonitor: Update XML documentation and
CLI "mixmonitor {start|stop|list}" help.
* apps/app_mixmonitor.c: MixMonitor: Fix refleak in
manager_stop_mixmonitor() if could not stop monitoring.
* apps/app_mixmonitor.c: MixMonitor: Remove some unnecessary
channel locking.
* apps/app_mixmonitor.c: Fix MixMonitor b option. The option had
not been converted to use the replacement for
ast_bridged_channel(). One touch mixmonitor now records files
again.
* channels/chan_gtalk.c: Fix chan_gtalk.c compile error.
2013-07-02 20:34 +0000 [r393484] David M. Lee <dlee@digium.com>
* res/res_sip_notify.c: Add pjproject dependency to res_sip_notify
2013-07-02 18:28 +0000 [r393463] Mark Michelson <mmichelson@digium.com>
* include/asterisk/stasis_bridging.h: Remove unused blind transfer
publication structure. I ended up using a bridge blob, so this
structure was unused. Keeping it in the header would just cause
confusion.
2013-07-02 17:20 +0000 [r393442-393449] Kevin Harwell <kharwell@digium.com>
* main/manager.c, main/aoc.c: Stasis - Refactor AOC Events
Refactored the AMI events in AOC onto Stasis-Core. The
ast_aoc_manager_event function now publishes a channel snapshot,
along with a JSON blob describing the advice of charge. A
"to_ami" handler has also been added that converts the channel
snapshot and AOC event data back into the appropriate data
structure for use with AMI. (closes issue ASTERISK-21472)
Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2643/
* res/res_sip_acl.c, res/res_sip.c,
res/res_sip/sip_configuration.c, include/asterisk/res_sip.h,
res/res_sip/sip_distributor.c, res/res_sip/config_auth.c,
res/res_sip.exports.in,
res/res_sip_outbound_authenticator_digest.c,
res/res_sip_authenticator_digest.c, res/res_sip/config_security.c
(added): New SIP Channel driver: Always Auth Reject If no
matching endpoint is found for the incoming request Asterisk will
respond with a 401 Unauthorized (rejecting the request), but will
first challenge if no authorization creditials are given. Changes
also included moving ACL options into a new global 'security'
configuration section in res_sip.conf. (closes issue
ASTERISK-21433) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2554/
2013-07-02 16:11 +0000 [r393410-393429] Kinsey Moore <kmoore@digium.com>
* main/stasis_bridging.c: Fix transfer AMI event parameter naming
* include/asterisk/cel.h, tests/test_cel.c (added), main/cel.c: Add
CEL unit tests and do some cleanup This adds several unit tests
for CEL functionality and provides the requisite framework for
creating additional unit tests. This also cleans up some
reference leaks that were occurring in Stasis-Core message
callback code. Review: https://reviewboard.asterisk.org/r/2646/
2013-07-02 10:16 +0000 [r393396] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c, /: Fix issue with inability to cancell
call transfer made by on-sceen menus. Reported by: Igor Olhovskiy
........ Merged revisions 393395 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-07-02 08:23 +0000 [r393383] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* contrib/scripts/ast_tls_cert: ast_tls_cert: don't recreate
generated files Don't regenrate cat.cfg, ca.crt and ca.key if
they were already created on a previous run. (closes issue
ASTERISK-21932)
2013-07-01 21:28 +0000 [r393364] Kevin Harwell <kharwell@digium.com>
* res/res_sip/sip_configuration.c, include/asterisk/res_sip.h,
res/res_sip/include/res_sip_private.h, res/res_sip/sip_options.c,
res/res_sip.exports.in, res/res_sip_notify.c (added): New SIP
Channel Driver - Add CLI/AMI initiated NOTIFY requests Added the
ability to send unsolicited NOTIFY requests to a particular
endpoint with a configured payload. Added both CLI and AMI
support. For a given endpoint, this module will iterate over all
its contacts sending the appropriate NOTIFY request to each.
(closes issue ASTERISK-21436) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2623/
2013-07-01 21:24 +0000 [r393361] Matthew Jordan <mjordan@digium.com>
* main/pbx.c, main/manager.c, include/asterisk/pbx.h: Prevent crash
during synchronous AMI origination by ref bumping returned
channel The originate APIs allow callers to provide a pointer to
a channel that will point to the originated channel if the
function call succeeds. This is used by AMI to provide channel
information when the originate is performed synchronously.
Unfortunately, if the originate fails in certain ways, the
outbound channel is already disposed of during the dialing
itself. This results in the channel being improperly dereferenced
by the internal originate function in pbx.c. This patch ref bumps
the channel to prevent this from occurring. Callers must now
unlock and unref the channel (which is more in line with general
channel management guidelines anyway). This only affects manager,
as it is the only consumer of this API function that actually
passes in a channel pointer. Review:
https://reviewboard.asterisk.org/r/2617/
2013-07-01 18:56 +0000 [r393326-393332] Jason Parker <jparker@digium.com>
* res/stasis/control.c, res/stasis_http/resource_channels.c,
include/asterisk/stasis_app.h: ARI: Implement channel
hold/unhold. This puts the channel on hold (rather than queueing
a frame from the channel). (closes issue ASTERISK-21619) Review:
https://reviewboard.asterisk.org/r/2647/
* res/stasis/control.c, res/stasis_http/resource_channels.c,
res/res_stasis_http_channels.c, include/asterisk/stasis_app.h,
res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json: ARI: Implement channel dial.
This creates a new outbound channel, and bridges it to a channel
already in the Stasis application. (closes issue ASTERISK-21620)
Review: https://reviewboard.asterisk.org/r/2634/
2013-07-01 16:01 +0000 [r393309] Jonathan Rose <jrose@digium.com>
* include/asterisk/features_config.h, include/asterisk/mixmonitor.h
(added), include/asterisk/channel.h, CHANGES,
main/features_config.c, apps/app_mixmonitor.c,
configs/features.conf.sample, main/mixmonitor.c (added),
bridges/bridge_builtin_features.c: bridge_features: Support One
touch Monitor/MixMonitor In addition to porting those features,
they now enjoy greater feature parity with one another.
Specifically, AutoMixMon now has a start and stop message that
can be specified with TOUCH_MIXMONITOR_MESSAGE_START and
TOUCH_MIXMONITOR_MESSAGE_STOP. (closes issue ASTERISK-21553)
Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2620/
2013-07-01 13:16 +0000 [r393284] Kinsey Moore <kmoore@digium.com>
* channels/chan_sip.c, apps/app_meetme.c,
include/asterisk/stasis.h, main/core_local.c,
include/asterisk/json.h, channels/chan_gtalk.c,
channels/sig_pri.c, channels/chan_iax2.c, apps/app_queue.c,
CHANGES, main/json.c, channels/chan_dahdi.c,
channels/sig_analog.c, res/res_agi.c, configs/sip.conf.sample,
channels/sip/include/sip.h: Refactor extraneous channel events
This change removes JitterBufStats, ChannelReload, and
ChannelUpdate and refactors the following events to travel over
Stasis-Core: * LocalBridge * DAHDIChannel * AlarmClear *
SpanAlarmClear * Alarm * SpanAlarm * DNDState * MCID *
SIPQualifyPeerDone * SessionTimeout Review:
https://reviewboard.asterisk.org/r/2627/ (closes issue
ASTERISK-21476)
2013-06-29 13:47 +0000 [r393262-393264] Joshua Colp <jcolp@digium.com>
* res/res_sip_pubsub.c: Nothing to see here, move along.
* res/res_sip_pubsub.c, include/asterisk/res_sip_pubsub.h,
res/res_sip_pubsub.exports.in: Implement the defined PUBLISH ESC
API within res_sip_pubsub. (closes issue ASTERISK-21452) Review:
https://reviewboard.asterisk.org/r/2630/
2013-06-29 00:31 +0000 [r393219-393241] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/bridging.h, main/bridging.c: Tweak after bridge
callback reason to string strings.
* main/bridging.c: Fix after bridge callback datastore data memory
leak.
* main/datastore.c: This is no longer needed.
* main/bridging.c: Promote local channel optimizing debug messages
to verbose 3 messages.
2013-06-28 19:22 +0000 [r393190-393197] Jonathan Rose <jrose@digium.com>
* res/parking/parking_applications.c, CHANGES,
res/parking/parking_ui.c, res/parking/res_parking.h,
res/res_parking.c: res_parking: Dynamic Parking Lots (closes
issue ASTERISK-21644) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2615/
* include/asterisk/features.h, main/features.c: features: call
pickup stasis refactoring (issue ASTERISK-21544) Reported by:
Matt Jordan Review: https://reviewboard.asterisk.org/r/2588/
2013-06-28 19:05 +0000 [r393184] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/bridging_features.h: Fix overlapping enum
ast_bridge_feature_flags. Things may no longer behave in an
unexpected fashion. Local channel optimization to holding bridges
will work again.
2013-06-28 18:42 +0000 [r393182] Mark Michelson <mmichelson@digium.com>
* main/bridging.c, main/manager.c,
bridges/bridge_builtin_features.c, channels/chan_sip.c,
channels/chan_skinny.c, main/stasis_bridging.c,
res/res_sip_refer.c, include/asterisk/bridging.h,
main/manager_bridging.c, channels/chan_iax2.c,
include/asterisk/stasis_bridging.h: Add stasis publications for
blind and attended transfers. This creates stasis messages that
are sent during a blind or attended transfer. The stasis messages
also are converted to AMI events. Review:
https://reviewboard.asterisk.org/r/2619 (closes issue
ASTERISK-21337) Reported by Matt Jordan
2013-06-28 17:31 +0000 [r393164] Matthew Jordan <mjordan@digium.com>
* main/cdr.c, tests/test_cdr.c: Handle an originated channel being
sent into a non-empty bridge Originated channels are a bit odd -
they are technically a dialed channel (thus the party B or peer)
but, since there is no caller, they are treated as the party A.
When entering into a bridge that already contains participants,
the CDR engine - if the CDR record is in the Dial state -
attempts to match the person entering the bridge with an existing
participant. The idea is that if you dialed someone and the
person you dialed is already in the bridge, you don't need a new
CDR record, the existing CDR record describes the relationship.
Unfortunately, for an originated channel, there is no Party B. If
no one was in the bridge this didn't cause any issues; however,
if participants were in the bridge the CDR engine would attempt
to match a non-existant Party B on the channel's CDR record and
explode. This patch fixes that, and a unit test has been added to
cover this case.
2013-06-28 16:23 +0000 [r393144] Jason Parker <jparker@digium.com>
* res/res_stasis_http_channels.c,
res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json,
res/stasis_http/resource_channels.c: Change ARI originate to also
allow dialing an exten/context/priority. The old way didn't make
much sense, so some of the fields were repurposed. (closes issue
ASTERISK-21658) Review: https://reviewboard.asterisk.org/r/2626/
2013-06-28 15:50 +0000 [r393130] Matthew Jordan <mjordan@digium.com>
* include/asterisk/cdr.h, include/asterisk/parking.h,
main/asterisk.c, main/bridging.c, main/cdr.c: Better handle
parking in CDRs Parking typically occurs when a channel is
transferred to a parking extension. When this occurs, the channel
never actually hits the dialplan if the extension it was
transferred to was a "parking extension", that is, the extension
in the first priority calls the Park application. Instead, the
channel is immediately sent into the holding bridge acting as the
parking bridge. This is problematic. Because we never go out to
the dialplan, the CDRs won't transition properly and the
application field will not be set to "Park". CDRs typically
swallow holding bridges, so the CDR itself won't even be
generated. This patch handles this by pulling out the holding
bridge handling into its own CDR state. CDRs now have an explicit
parking state that accounts for this specific subclass of the
holding bridge. In addition, we handle the parking stasis message
to set application specific data on the CDR such that the last
known application for the CDR properly reflects "Park". This is a
bit sad since we're working around the odd internal
implementation of parking that exists in Asterisk (and that we
had to maintain in order to continue to meet some odd use cases
of parking), but at least the code to handle that is where it
belongs: in CDRs as opposed to sprinkled liberally throughout the
codebase. This patch also properly clears the OUTBOUND channel
flag from a channel when it leaves a bridge, and tweaks up
dialing handling to properly compare the correct CDR with the
channel calling/being dialed.
2013-06-28 15:36 +0000 [r393128] Jason Parker <jparker@digium.com>
* res/stasis_http/resource_channels.c: Change some 500 errors to
400.
2013-06-28 02:14 +0000 [r393083-393100] David M. Lee <dlee@digium.com>
* res/res_stasis_http.c: Removed stray apostrophe. Apparently the
pluralization of an acronym does not use an apostophe, according
to most modern style guides. I feel like I've been living a lie
this whole time.
* res/res_stasis_http.c: Removed the automatic 302 redirects for
ARI URL's that end with a slash. There were some problems
redirecting RESTful API requests; notably the client would change
the request method to GET on the redirected requests. After some
looking into, I decided that a 404 would be simpler and have more
consistent behavior.
2013-06-27 21:01 +0000 [r393034-393066] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Change the name of some local variables in
bridging.c to reflect what they really mean.
* include/asterisk/config_options.h, main/config_options.c: Add
config framework non-empty string validation requirement option.
Add config framework OPT_CHAR_ARRAY_T and OPT_STRINGFIELD_T
non-empty requirement option. There are cases were you don't want
a config option string to be empty. To require the option string
to be non-empty, just set the aco_option_register() flags
parameter to non-zero. * Updated some config framework enum
aco_option_type comments.
2013-06-26 20:59 +0000 [r393005] Jonathan Rose <jrose@digium.com>
* funcs/func_channel.c, include/asterisk/bridging.h,
main/bridging.c: func_channel: Read/Write after_bridge_goto
option Allows reading and setting of a channel's
after_bridge_goto datastore (closes issue ASTERISK-21875)
Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2628/
2013-06-26 19:29 +0000 [r392987] Jason Parker <jparker@digium.com>
* res/stasis/control.c, res/stasis_http/resource_channels.c,
res/res_stasis_http_channels.c, include/asterisk/stasis_app.h,
res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json: ARI: Add support for continuing
to a different location in dialplan. This allows going elsewhere
in the dialplan, so that the location can be specified after
exiting the Stasis application. (closes issue ASTERISK-21870)
Review: https://reviewboard.asterisk.org/r/2644/
2013-06-26 19:15 +0000 [r392933-392972] Richard Mudgett <rmudgett@digium.com>
* res/res_parking.c: Remove some redundant parking config error
messages.
* main/bridging.c: Fix several problems with
ast_bridge_add_channel(). * Fix locking problems.
ast_bridge_move() locks two bridges. To do that, deadlock
avoidance must be done. Called bridge_move_locked() instead. *
Fix inconsistency in the bridge dissolve check callers. The
original caller has already removed the channel from the bridge.
The new caller has not removed the channel from the bridge.
Reverted bridge_dissolve_check() and added
bridge_dissolve_check_stolen() to be used by the new caller on
the original bridge after the channel is moved to the new bridge.
* Fix memory leak of features if the added channel was already in
a bridge. * Fix incorrect call to ast_bridge_impart(). * Renamed
bridge_chan to yanked_chan.
* apps/confbridge/conf_chan_announce.c, channels/chan_sip.c,
include/asterisk/bridging.h: Fix incorrect calls to
ast_bridge_impart(). There was a misunderstanding about
ast_bridge_impart()'s handling of the imparted channel's
reference. The channel reference is passed by the caller unless
ast_bridge_impart() returns an error. * Fixed a memory leak in
conf_announce_channel_push() if the impart failed.
* main/features.c: AMI Bridge action: Get channel xfer config after
we have found the second channel.
2013-06-25 22:28 +0000 [r392915] Jonathan Rose <jrose@digium.com>
* res/parking/parking_applications.c, CHANGES, main/bridging.c,
res/parking/parking_bridge_features.c,
res/parking/parking_manager.c, include/asterisk/features.h,
res/parking/parking_bridge.c, res/parking/res_parking.h,
main/features.c, res/parking/parking_controller.c: res_parking:
Add Parking manager action to the new parking system (closes
issue ASTERISK-21641) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2573/
2013-06-25 20:25 +0000 [r392898] Jason Parker <jparker@digium.com>
* Makefile: Fix typo with XML docs.
2013-06-25 19:22 +0000 [r392864-392879] Joshua Colp <jcolp@digium.com>
* include/asterisk/sorcery.h: Add a note about being ready to
accept observer invocations before adding an observer.
* res/res_sip/sip_options.c: Move where the sorcery observer is
added for qualify to guarantee the sched_qualifies container
exists.
2013-06-25 13:03 +0000 [r392829] Kinsey Moore <kmoore@digium.com>
* main/stasis_channels.c, apps/app_queue.c, main/cel.c,
apps/app_dial.c, include/asterisk/stasis_channels.h,
include/asterisk/cel.h, apps/app_celgenuserevent.c: CEL
refactoring cleanup This change removes AST_CEL_BRIDGE_UPDATE
since it should no longer be used because masquerade situations
are now accounted for in other ways. This also refactors usage of
AST_CEL_FORWARD to be produced by a Dial message which has been
extended with a "forward" field. (closes issue ASTERISK-21566)
Review: https://reviewboard.asterisk.org/r/2635/
2013-06-25 01:12 +0000 [r392797-392812] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_motif.c, main/http.c, main/config_options.c,
main/named_acl.c, res/res_calendar.c: Fix memory/ref counting
leaks in a variety of locations This patch fixes the following
memory leaks: * http.c: The structure containing the addresses to
bind to was not being deallocated when no longer used *
named_acl.c: The global configuration information was not
disposed of * config_options.c: An invalid read was occurring for
certain option types. * res_calendar.c: The loaded calendars on
module unload were not being properly disposed of. *
chan_motif.c: The format capabilities needed to be disposed of on
module unload. In addition, this now specifies the default
options for the maxpayloads and maxicecandidates in such a way
that it doesn't cause the invalid read in config_options.c to
occur. (issue ASTERISK-21906) Reported by: John Hardin patches:
http.patch uploaded by jhardin (license 6512) named_acl.patch
uploaded by jhardin (license 6512) config_options.patch uploaded
by jhardin (license 6512) res_calendar.patch uploaded by jhardin
(license 6512) chan_motif.patch uploaded by jhardin (license
6512) ........ Merged revisions 392810 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/devicestate.c, main/cel.c, main/presencestate.c,
main/sorcery.c, res/parking/parking_bridge.c, main/cdr.c,
main/manager.c, main/parking.c: Fix a variety of memory leaks
This patch addresses the following memory/ref counting leaks: *
main/devicestate.c - unsubscribe and join our devicestate message
subscription * main/cel.c - clean up the datastore and config
objects on exist * main/parking.c - cleanup memory leak of
retriever snapshot on message payload destruction *
res/parking/parking_bridge.c - cleanup memory leak of retrieve
snapshot on message payload destruction * main/presencestate.c -
unsubscribe and join the caching topic on exit * manager.c -
properly unregister the manager action "BlindTransfer" *
sorcery.c - shutdown the threadpool on exit and dispose of any
wizards (issue ASTERISK-21906) Reported by: John Hardin patches:
cel.patch uploaded by jhardin (license #6512) devicestate.patch
uploaded by jhardin (license #6512) manager.patch uploaded by
jardin (license #6512) presencestate.patch uploaded by jhardin
(license #6512) retriever-channel-snapshot.patch uploaded by
jhardin (license #6512) sorcery.patch uploaded by jhardin
(license #6512)
2013-06-24 22:05 +0000 [r392778-392779] David M. Lee <dlee@digium.com>
* tests/test_endpoints.c, tests/test_stasis_endpoints.c: Few more
menuselect fixes missed in r392777
* rest-api-templates/res_stasis_json_resource.c.mustache,
rest-api-templates/res_stasis_http_resource.c.mustache,
res/stasis_json/resource_sounds.h: Fixed templates so that the
changes from r392777 won't be overwritten the next time we run
the generators.
2013-06-24 21:40 +0000 [r392777] Richard Mudgett <rmudgett@digium.com>
* res/res_stasis_http_recordings.c, res/res_stasis_answer.c,
res/res_chan_stats.c, res/res_stasis_http_endpoints.c,
res/res_stasis_http_events.c, res/res_stasis_json_sounds.c,
res/res_stasis_bridge_add.c, res/res_stasis_json_bridges.c,
res/res_stasis_http_sounds.c, res/res_statsd.c,
res/res_stasis_http_bridges.c, res/res_stasis_json_asterisk.c,
res/res_stasis_test.c, res/res_stasis_json_playback.c,
res/res_stasis_http.c, res/res_stasis.c, apps/app_stasis.c,
res/res_stasis_http_asterisk.c, res/res_stasis_json_channels.c,
res/res_stasis_http_playback.c, res/res_stasis_playback.c,
res/res_stasis_websocket.c, res/res_stasis_json_recordings.c,
res/res_stasis_http_channels.c, res/res_stasis_json_endpoints.c,
res/res_stasis_json_events.c: Fix menuselect display for stasis
modules. The menuselect parser is very simple. It looks for
AST_MODULE_INFO and uses any quoted string on that line as the
module summary display.
2013-06-24 19:28 +0000 [r392729-392747] Mark Michelson <mmichelson@digium.com>
* /: Remove stray properties from merge.
* main/features_config.c, doc/appdocsxml.dtd, /: Add documentation
for features configuration. Review:
https://reviewboard.asterisk.org/r/2616 (closes issue
ASTERISK-21542) Reported by Matt Jordan
2013-06-24 13:49 +0000 [r392700] Kinsey Moore <kmoore@digium.com>
* include/asterisk/file.h, include/asterisk/http.h,
include/asterisk/sounds_index.h (added),
res/stasis_http/resource_sounds.c, include/asterisk/media_index.h
(added), main/file.c, main/http.c, include/asterisk/format.h,
rest-api/api-docs/sounds.json, include/asterisk/_private.h,
main/sounds_index.c (added), res/res_stasis_http.c,
main/asterisk.c, main/media_index.c (added): Index installed
sounds and implement ARI sounds queries This adds support for
stasis/sounds and stasis/sounds/{ID} queries via the Asterisk
RESTful Interface (ARI, formerly Stasis-HTTP). The following
changes have been made to accomplish this: * A modular indexer
was created for local media. * A new function to get an
ast_format associated with a file extension was added. *
Modifications were made to the built-in HTTP server so that URI
decoding could be deferred to the URI handler when necessary. *
The Stasis-HTTP sounds JSON documentation was modified to handle
cases where multiple languages are installed in different
formats. * Register and Unregister events for formats were added
to the system topic. (closes issue ASTERISK-21584) (closes issue
ASTERISK-21585) Review: https://reviewboard.asterisk.org/r/2507/
2013-06-23 19:19 +0000 [r392676] Matthew Jordan <mjordan@digium.com>
* res/res_fax.c: Properly pack the parameters into ast_json_pack
when sending a send fax message This patch properly packs the
parameters into the send fax message so that it actually work.
Missing a ',' between two string fields can be difficult to
debug, particularly when the actual packing succeeds.
Interestingly enough, this didn't actually crash until the JSON
blob we deref'd and disposed of. Since that happened in a
different thread, it was pretty tough to track down.
2013-06-23 18:59 +0000 [r392627-392667] Joshua Colp <jcolp@digium.com>
* res/res_sip_outbound_registration.c,
res/res_sip_endpoint_identifier_ip.c, res/res_sip_acl.c: Add some
more missing ast_sorcery_generic_alloc conversions.
* tests/test_sorcery_astdb.c, tests/test_sorcery_realtime.c: Add
missing ast_sorcery_generic_alloc conversions.
* main/manager_endpoints.c: Fix a bug where messages were getting
duplicated on AMI. This was caused by forwarding all endpoint
messages to manager which includes channel messages that are
related to the endpoint. This change causes only the PeerStatus
messages to be forwarded to manager thus eliminating the
duplicate channel messages.
2013-06-22 22:42 +0000 [r392607] Matthew Jordan <mjordan@digium.com>
* res/res_fax.c: Properly extract channel variables for the
SendFAX/ReceiveFAX Stasis messages By the time something extracts
the pointers from ast_json_pack, the channels will already be
disposed of. This patch properly pulls the information out of the
variables and packs them into the JSON blob.
2013-06-22 14:26 +0000 [r392565-392586] Joshua Colp <jcolp@digium.com>
* res/res_sip/config_transport.c, res/res_sip/sip_configuration.c,
include/asterisk/sorcery.h, res/res_sip/config_auth.c,
res/res_sip/sip_options.c, res/res_sip/location.c,
tests/test_sorcery.c, main/sorcery.c,
res/res_sip/config_domain_aliases.c: Make sorcery details opaque
and add extended fields. Sorcery specific object information is
now opaque and allocated with the object. This means that modules
do not need to be recompiled if the sorcery specific part is
changed. It also means that sorcery can store additional
information on objects and ensure it is freed or the reference
count decreased when the object goes away. To facilitate the
above a generic sorcery allocator function has been added which
also ensures that allocated objects do not have a lock. Extended
fields have been added thanks to all of the above which allows
specific fields to be marked as extended, and thus simply stored
as-is within the object. Type safety is *NOT* enforced on these
fields. A consumer of them has to query and ultimately perform
their own safety check. What does this mean? Extra modules can
extend already defined structures without having to modify them.
Tests have also been included to verify extended field
functionality. Review: https://reviewboard.asterisk.org/r/2585/
* res/res_sip_pubsub.c, channels/sip/srtp.c (removed),
res/res_sip/config_transport.c, res/res_sip_transport_websocket.c
(added), channels/chan_sip.c, res/res_sip_registrar.c,
include/asterisk/res_sip.h, res/res_sip/sip_distributor.c,
res/res_sip.exports.in, res/res_sip_exten_state.exports.in
(added), res/res_sip_session.exports.in,
res/res_sip/security_events.c (added), channels/chan_gulp.c,
res/res_sip.c, include/asterisk/res_sip_pubsub.h,
channels/sip/include/sdp_crypto.h (removed),
res/res_sip_outbound_registration.c, channels/sip/include/srtp.h
(removed), res/res_sip_endpoint_identifier_anonymous.c (added),
channels/sip/include/sip.h, res/res_sip_one_touch_record_info.c
(added), main/pbx.c, configs/res_sip.conf.sample,
res/res_sip/sip_configuration.c, res/res_sip_diversion.c (added),
res/res_sip_refer.c (added), res/res_sip_dtmf_info.c,
main/sdp_srtp.c (added), res/res_sip/include/res_sip_private.h,
include/asterisk/res_sip_session.h,
include/asterisk/res_sip_exten_state.h (added),
res/res_sip_sdp_rtp.c, res/res_sip_messaging.c (added),
res/res_sip_caller_id.c, res/res_sip_registrar_expire.c (added),
res/res_sip_pidf.c (added), res/res_sip_session.c,
res/res_sip_exten_state.c (added), res/res_sip/sip_options.c,
res/res_sip_pubsub.exports.in, res/res_sip/location.c,
include/asterisk/sdp_srtp.h (added), channels/sip/sdp_crypto.c
(removed): Merge in current pimp_my_sip work, including: 1.
Security events 2. Websocket support 3. Diversion header +
redirecting support 4. An anonymous endpoint identifier 5.
Inbound extension state subscription support 6. PIDF notify
generation 7. One touch recording support (special thanks Sean
Bright!) 8. Blind and attended transfer support 9. Automatic
inbound registration expiration 10. SRTP support 11. Media offer
control dialplan function 12. Connected line support 13.
SendText() support 14. Qualify support 15. Inband DTMF detection
16. Call and pickup groups 17. Messaging support Thanks everyone!
Side note: I'm reminded of the song "How Far We've Come" by
Matchbox Twenty.
2013-06-22 13:58 +0000 [r392564] Matthew Jordan <mjordan@digium.com>
* res/res_fax.c: Fix a deadlock and possible crash in res_fax This
patch fixes two bugs. (1) It unlocks the channel in the framehook
handlers before attempting to grab the peer from the bridge. The
locking order for the bridging framework is bridge first, then
channel - having the channel locked while attempting to obtain
the bridge lock causes a locking inversion and a deadlock. This
patch bumps the channel ref count prior to releasing the lock in
the framehook to avoid lifetime issues. Note that this does
expose a subtle problem in framehooks; that is, something could
modify the framehook list while we are executing, causing issues
in the framehook list traversal that the callback executes in.
Fixing this is a much larger problem that is beyond the scope of
this patch - (a) we already unlock the channel in this particular
framehook and we haven't run into a problem yet (as modifying the
framehook list when a channel is about to perform a fax gateway
would be a very odd operation) and (b) migrating to an ao2
container of framehooks would be more invasive at this point. See
the referenced ASTERISK issue for more information. (2) Directly
packing channel variables into a JSON object turned out to be
unsafe. A condition existed where the strings in the JSON blob
were no longer safe to be accessed if the channel object itself
was disposed of. (issue ASTERISK-21951)
2013-06-22 12:40 +0000 [r392538] Joshua Colp <jcolp@digium.com>
* include/asterisk/stasis_endpoints.h, channels/chan_iax2.c,
include/asterisk/manager.h, channels/chan_gulp.c,
main/stasis_endpoints.c, res/res_sip.c, main/manager.c,
channels/chan_sip.c, channels/chan_skinny.c,
res/res_sip/sip_configuration.c, include/asterisk/res_sip.h,
main/manager_endpoints.c (added): Migrate PeerStatus events to
stasis, add stasis endpoints, and add chan_pjsip device state.
(closes issue ASTERISK-21489) (closes issue ASTERISK-21503)
Review: https://reviewboard.asterisk.org/r/2601/
2013-06-21 22:39 +0000 [r392514] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/bridging_technology.h, bridges/bridge_holding.c,
include/asterisk/bridging.h, bridges/bridge_simple.c,
bridges/bridge_softmix.c, bridges/bridge_native_rtp.c,
main/bridging.c: Extract a useful routine from the softmix bridge
technology. * Extract a useful routine from the softmix bridge
technology for other technologies. Make other technologies use it
if they can. * Made native and 1-1 bridges write to all parties
if the bridge channel writing the frame into the bridge is NULL.
Softmix will also do the same for frame types that make sense. *
Tweak the bridge write routine return value meaning and adjust
the bridge technologies to match.
2013-06-21 21:22 +0000 [r392489] Matthew Jordan <mjordan@digium.com>
* channels/chan_gulp.c: Add BUGBUG for broken direct media in
chan_gulp (issue ASTERISK-21947)
2013-06-21 18:54 +0000 [r392464] Jason Parker <jparker@digium.com>
* rest-api/api-docs/channels.json: Fix typo.
2013-06-21 18:10 +0000 [r392437] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Add channel optimization interaction with frame
hooks BUGBUG comments.
2013-06-21 18:05 +0000 [r392436] Mark Michelson <mmichelson@digium.com>
* channels/chan_unistim.c: Change chan_unistim to use core transfer
API. Review: https://reviewboard.asterisk.org/r/2553 (closes
issue ASTERISK-21527) Reported by Matt Jordan
2013-06-21 17:48 +0000 [r392435] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c, include/asterisk/bridging_technology.h,
include/asterisk/bridging.h, main/features.c,
bridges/bridge_softmix.c: Change several bridge functions to
return error status. The bridge frame queue functions need to
return an error status if the frame failed to be queued because
of an error condition. The main calls that needed to return the
status are: ast_bridge_channel_queue_action_data() and
ast_bridge_channel_write_action_data(). The other return changes
are ripple effects.
2013-06-21 14:21 +0000 [r392409] Matthew Jordan <mjordan@digium.com>
* contrib/scripts/autosupport: Update autosupport script This patch
updates the autosupport script to collect all information
available to the Asterisk CLI command "digium_phones". It also
makes minor improvements in options handling. (closes issue
AST-1163) Reported by: Trey Blancher patches:
390347_autosupport.diff uploaded by tblancher (License 5821)
390348_autosupport.diff uploaded by tblancher (License 5821)
2013-06-20 21:13 +0000 [r392364] Joshua Colp <jcolp@digium.com>
* res/res_sip_session.c: Add a log message for when an incoming
session is rejected due to the extension not being found.
2013-06-20 17:21 +0000 [r392335] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c, res/parking/parking_bridge_features.c,
apps/confbridge/conf_config_parser.c,
include/asterisk/bridging_features.h, main/features.c: Fix
potential bridge hook resource leak if the hook install fails.
2013-06-20 16:29 +0000 [r392318] Mark Michelson <mmichelson@digium.com>
* main/threadpool.c: Fix threadpool rapid growth problem. When a
threadpool is set to autoincrement its threadcount, an issue may
arise when multiple tasks are queued at once into the threadpool.
Since threads start active, each new task would result in
autoincrementing the thread count. So if all threads were active,
and a thread's autoincrement value were 5, then 3 new tasks would
result in 15 threads being created even though the initial
autoincrement was sufficient to handle the number of tasks. This
change introduces three behavior changes: 1) New threads in the
threadpool start idle instead of active. 2) When a threadpool
autoincrements, one thread is activated after the growth. 3) When
a threadpool's size is incremented manually, all added threads
are activated. For a more detailed explanation about the changes,
please see the Review Board link at the bottom of this commit.
Review: https://reviewboard.asterisk.org/r/2629
2013-06-19 22:52 +0000 [r392279] David M. Lee <dlee@digium.com>
* main/Makefile, Makefile: Fix build problem on OS X Mountain Lion
(10.8) For about forever, our build flags for OS X have been
slightly off, but good enough to build and run. Apparently they
aren't good enough any more. Previously, we would compile with
macosx-version-min unset and link with it set. This combination,
using GCC 4.8, on Mountain Lion, would create a bad executable
("Illegal Instruction: 4", or something like that) This patch
consistently sets macosx-version-min for both compiling and
linking, which makes everything happy enough to build and run.
2013-06-19 12:55 +0000 [r392241] Kinsey Moore <kmoore@digium.com>
* include/asterisk/cel.h, main/cel.c: Pull CEL linkedid
manipulation into cel.c This finishes moving all CEL linkedid
tracking entirely within cel.c since that is now possible with
channel snapshots. This also removes another CEL linkedid
manipulation function from cel.h that has already been
internalized and is neither called nor available to link against.
Review: https://reviewboard.asterisk.org/r/2632/
2013-06-19 01:28 +0000 [r392190-392214] Matthew Jordan <mjordan@digium.com>
* funcs/func_cdr.c: Handle variable substitution in dummy variables
When func_cdr is used for variable substitution, there is no
channel name and hence no run-time information available for CDR
variable substitution. In that case, the correct thing to do is
to use the CDR object on the channel passed to the function. This
patch checks to see if the channel passed in has a name - if not,
it uses ast_cdr_format_var instead of ast_cdr_get_var. This
allows CDR backends to continue to use variable substitution in
order to resolve ast_cdr object properties.
* tests/test_substitution.c: Fix the test_substitution test In
r391947, the CDR function was modified such that it will return a
value for the start,answer, and end times if asked. That time
will just be 0 if it hasn't happened yet.
2013-06-18 19:31 +0000 [r392139-392166] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c, include/asterisk/bridging.h: Bridging: Fix crash
on destruction of a partially constructed bridge. * Promoted some
bridge construction debug messages to warnings.
* main/bridging.c: Add some safety cleanup for a failed push into a
bridge.
* main/bridging_basic.c: Remove stub comment on function that is
not a stub.
2013-06-18 14:30 +0000 [r392116] Kinsey Moore <kmoore@digium.com>
* include/asterisk/stasis_bridging.h,
rest-api/api-docs/bridges.json, main/stasis_bridging.c: Fix
bridge snapshot conversion to JSON This makes
ast_bridge_snapshot_to_json conform to the swagger Bridge model
by adding the two fields it required. Review:
https://reviewboard.asterisk.org/r/2583/
2013-06-17 18:58 +0000 [r392076] David M. Lee <dlee@digium.com>
* main/cdr.c, funcs/func_cdr.c: Fix build warnings related to
printf/scanf of tv_usec. The type of tv_usec is suseconds_t. On
Linux, this is usually a long int, but the specification is
actually pretty lax on what it might actually be. And, sadly,
there's no printf/scanf width specifier for suseconds_t. So it
could bit an int or a long, but there's not a great way to tell
which it is. This patch fixes scanf by reading into a long
temporary variable that's then stored into the tv_usec. It fixes
printf by casting the tv_usec to a long first. This patch also
adds some missing width specifiers for some debug statements,
which would cause ".000001" to be displayed at ".1".
2013-06-17 18:37 +0000 [r392053-392073] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, channels/chan_vpb.cc: chan_vpb: Fix compile error
and __ast_channel_alloc() prototype const inconsistency.
* channels/chan_misdn.c: chan_misdn: Fix compile error after CDR
merge.
2013-06-17 16:59 +0000 [r392032] Jason Parker <jparker@digium.com>
* include/asterisk/app.h: Fix a build warning with stasis messages.
2013-06-17 14:40 +0000 [r392004-392005] Matthew Jordan <mjordan@digium.com>
* main/manager_channels.c: Prevent sending a NewExten event after a
Hangup during a stack restore When a channel is originated, its
application is typically set to AppDial2, indicating that it was
a dialed channel through the Dial API. Asterisk during an
originate will perform a stack execute to direct the outgoing
channel to a particular place in the dialplan or application.
When the stack returns, the previous application (AppDial2) is
restored. Unfortunately, in the case of an originated channel,
the stack restore happens after hangup. A stasis message is sent
notifying everyone that the application was restored, and this
causes a NewExten event to go out after the Hangup event,
violating the basic contract consumers have of the channel
lifetime. While we could preclude the message from going out,
restoring the channel's state before it executed the next higher
frame in the stack has to occur, and other places in the code
depend on this behavior. Since we know that channel hung up (it's
a ZOMBIE!), this patch simply checks to see if the channel has
been zombified before sending a NewExten event. Note that this
will fix a number of bouncing tests in the Test Suite. Go tests.
* CHANGES: Restore bad merge on CHANGES The patch for CDRs moved
around a lot of content in CHANGES to try and organize the areas
that were affected. This missed some changes that went in with a
merge and removed some updates - this patch adds them back in.
2013-06-17 12:28 +0000 [r391982] Joshua Colp <jcolp@digium.com>
* main/cdr.c: Fix build warning (which is transmogrified into an
error) with my compiler due to uninitialized variable.
2013-06-17 03:31 +0000 [r391947-391964] Matthew Jordan <mjordan@digium.com>
* addons/cdr_mysql.c: Make cdr_mysql compile again by not directly
setting the run-time CDR object A stray ast_cdr_setvar was missed
in cdr_mysql (silly addons). This has now been refactored to not
set the property, as the property would have been set on a
run-time object that was already dispatched to the backend. The
module simply remembers the value it wanted to set and writes it
to MySQL later in the processing.
* main/bridging_basic.c, cdr/cdr_custom.c, channels/chan_mgcp.c,
channels/chan_sip.c, cdr/cdr_syslog.c,
main/channel_internal_api.c, UPGRADE.txt,
res/res_stasis_answer.c, apps/app_queue.c, cdr/cdr_tds.c,
apps/app_forkcdr.c, include/asterisk/stasis_channels.h,
include/asterisk/bridging.h, channels/chan_h323.c,
funcs/func_callerid.c, include/asterisk/time.h,
addons/chan_ooh323.c, include/asterisk/cel.h,
include/asterisk/channel_internal.h, cdr/cdr_adaptive_odbc.c,
channels/chan_iax2.c, main/cli.c, include/asterisk/test.h,
channels/chan_dahdi.c, channels/chan_skinny.c, main/features.c,
apps/app_dumpchan.c, main/stasis_channels.c, cdr/cdr_odbc.c,
tests/test_cdr.c (added), main/manager_channels.c,
main/bridging.c, cdr/cdr_manager.c, apps/app_dial.c, main/pbx.c,
main/stasis_cache.c, cel/cel_tds.c, channels/chan_agent.c,
apps/app_disa.c, include/asterisk/cdr.h,
include/asterisk/channel.h, main/cel.c, CHANGES,
res/res_monitor.c, funcs/func_channel.c, funcs/func_cdr.c,
main/test.c, addons/cdr_mysql.c, main/asterisk.c, apps/app_cdr.c,
channels/chan_unistim.c, cel/cel_radius.c,
include/asterisk/stasis_internal.h (added),
apps/app_authenticate.c, main/utils.c, cdr/cdr_pgsql.c,
apps/app_followme.c, cdr/cdr_radius.c, res/res_config_sqlite.c,
main/stasis.c, cdr/cdr_csv.c, main/channel.c, main/cdr.c,
main/dial.c, main/manager.c, apps/app_osplookup.c,
cel/cel_manager.c, res/res_agi.c: Update Asterisk's CDRs for the
new bridging framework This patch is the initial push to update
Asterisk's CDR engine for the new bridging framework. This patch
guts the existing CDR engine and builds the new on top of
messages coming across Stasis. As changes in channel state and
bridge state are detected, CDRs are built and dispatched
accordingly. This fundamentally changes CDRs in a few ways. (1)
CDRs are now *very* reflective of the actual state of channels
and bridges. This means CDRs track well with what an actual
channel is doing - which is useful in transfer scenarios (which
were previously difficult to pin down). It does, however, mean
that CDRs cannot be 'fooled'. Previous behavior in Asterisk
allowed for CDR applications, channels, and other properties to
be spoofed in parts of the code - this no longer works. (2) CDRs
have defined behavior in multi-party scenarios. This behavior
will not be what everyone wants, but it is a defined behavior and
as such, it is predictable. (3) The CDR manipulation functions
and applications have been overhauled. Major changes have been
made to ResetCDR and ForkCDR in particular. Many of the options
for these two applications no longer made any sense with the new
framework and the (slightly) more immutable nature of CDRs. There
are a plethora of other changes. For a full description of CDR
behavior, see the CDR specification on the Asterisk wiki. (closes
issue ASTERISK-21196) Review:
https://reviewboard.asterisk.org/r/2486/
2013-06-14 23:26 +0000 [r391921] Mark Michelson <mmichelson@digium.com>
* main/app.c: Fix regression in MWI stasis handling. In revision
389733, mwi state allocation was placed into its own function
instead of performing the allocation in-line when required. The
issue was that in ast_publish_mwi_state_full(), the local
variable "uniqueid" was no longer being set, but it was still
being used as the topic for MWI. This meant that all MWI
publications ended up being published to the "" (empty string)
mailbox topic. Thus MWI subscriptions for specific mailboxes were
never notified of mailbox state changes. This change fixes the
issue by removing the local uniqueid variable from
ast_publish_mwi_state_full() and instead referencing the
mwi_state->uniqueid field since it has been properly set. (closes
issue ASTERISK-21913) Reported by Malcolm Davenport
2013-06-14 21:57 +0000 [r391902] Joshua Colp <jcolp@digium.com>
* res/res_sip_registrar.c: Ensure that the number of added contacts
never goes below 0. This can happen when a REGISTER request is
removing a contact. (closes issue ASTERISK-21911) Reported by:
mdavenport
2013-06-14 18:50 +0000 [r391855-391856] Kinsey Moore <kmoore@digium.com>
* include/asterisk/stasis_bridging.h,
rest-api/api-docs/bridges.json, main/stasis_bridging.c: Revert
parts of r391855 that were not ready to go in to trunk
* main/stasis_bridging.c, main/cel.c,
include/asterisk/stasis_bridging.h,
rest-api/api-docs/bridges.json: Fix two more possible crashes in
CEL These are locations that should return valid snapshots, but
need to be handled if not.
2013-06-14 16:32 +0000 [r391828] Jonathan Rose <jrose@digium.com>
* /, apps/app_mixmonitor.c: app_mixmonitor: Fix crashes caused by
unloading app_mixmonitor Unloading app_mixmonitor while active
mixmonitors were running would cause a segfault. This patch fixes
that by making it impossible to unload app_mixmonitor while
mixmonitors are active. Review:
https://reviewboard.asterisk.org/r/2624/ ........ Merged
revisions 391778 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391794 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-14 16:12 +0000 [r391776-391777] Kinsey Moore <kmoore@digium.com>
* main/cel.c: Fix a crash in CEL bridge snapshot handling Properly
search for bridge association structures so that they are found
when expected and handle cases where they don't exist.
* main/bridging.c: Publish bridge snapshots more often Bridge
snapshot events were missing some important transitions that were
noticed in subsequent snapshots. Snapshots will now be published
on all bridge reconfigurations.
2013-06-13 21:53 +0000 [r391732] Matthew Jordan <mjordan@digium.com>
* utils/ael_main.c, utils/conf2ael.c, utils/check_expr.c,
utils/refcounter.c: Make the utils directory compile... again.
Utils is a source folder that lies, eventually all developers
will cry, "I know I must maintain it, But really with this last
commit I can kiss my software ethics good-bye."
2013-06-13 19:04 +0000 [r391701] Richard Mudgett <rmudgett@digium.com>
* apps/confbridge/conf_config_parser.c, /,
apps/confbridge/include/confbridge.h, apps/app_confbridge.c:
app_confbridge: Fix memory leak on reload. The config framework
options should not be registered multiple times. Instead the
configuration just needs to be reprocessed by the config
framework. ........ Merged revisions 391700 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-13 18:26 +0000 [r391699] Mark Michelson <mmichelson@digium.com>
* main/features_config.c: Just return outright on a reload since we
have already processed configuration.
2013-06-13 18:20 +0000 [r391689] Kinsey Moore <kmoore@digium.com>
* main/cel.c: Ensure that Asterisk still starts up when cel.conf is
missing
2013-06-13 18:17 +0000 [r391676] Mark Michelson <mmichelson@digium.com>
* main/features_config.c: Fix memory leak in features_config.c The
options should not be registered multiple times. Instead, the
configuration just needs to be reprocessed by the config
framework. This also exposed that we were not properly telling
the config framework to treat the configuration processing with
the "reload" semantics when a reload occurred. Both of these
errors are fixed now. Thanks to Richard Mudgett for discovering
the leak.
2013-06-13 18:14 +0000 [r391675] Matthew Jordan <mjordan@digium.com>
* include/asterisk/json.h, main/json.c, main/manager.c: Blow away
usage of libjansson's foreach macro While very handy, this macro
didn't occur until a later version of libjansson. We'd prefer to
be compatible with older versions still - as such, iteration over
key/value pairs in a JSON object have to be done with a little
bit more manual work.
2013-06-13 13:46 +0000 [r391622-391643] Kinsey Moore <kmoore@digium.com>
* include/asterisk/_private.h, main/cel.c,
include/asterisk/parking.h, main/asterisk.c,
res/parking/parking_manager.c, main/parking.c,
include/asterisk/cel.h, main/features.c: Refactor CEL bridge
events on top of Stasis-Core This pulls bridge-related CEL event
triggers out of the code in which they were residing and pulls
them into cel.c where they are now triggered by changes in bridge
snapshots. To get access to the Stasis-Core parking topic in
cel.c, the Stasis-Core portions of parking init have been pulled
into core Asterisk init. This also adds a new CEL event
(AST_CEL_BRIDGE_TO_CONF) that indicates a two-party bridge has
transitioned to a multi-party conference. The reverse cannot
occur in CEL terms even though it may occur in actuality and two
party bridges which receive a AST_CEL_BRIDGE_TO_CONF will be
treated as multi-party conferences for the duration of the
bridge. Review: https://reviewboard.asterisk.org/r/2563/ (closes
issue ASTERISK-21564)
* include/asterisk/strings.h, main/cel.c,
include/asterisk/stasis_bridging.h, main/asterisk.c,
main/channel.c, include/asterisk/config_options.h, main/pbx.c,
include/asterisk/stasis_channels.h, main/stasis_bridging.c,
main/config_options.c, main/stasis_channels.c: Refactor CEL
channel events on top of Stasis-Core This uses the channel state
change events from Stasis-Core to determine when channel-related
CEL events should be raised. Those refactored in this patch are:
* AST_CEL_CHANNEL_START * AST_CEL_ANSWER * AST_CEL_APP_START *
AST_CEL_APP_END * AST_CEL_HANGUP * AST_CEL_CHANNEL_END Retirement
of Linked IDs is also refactored. CEL configuration has been
refactored to use the config framework. Note: Some HANGUP events
are not generated correctly because the bridge layer does not
propagate hangupcause/hangupsource information yet. Review:
https://reviewboard.asterisk.org/r/2544/ (closes issue
ASTERISK-21563)
2013-06-13 11:02 +0000 [r391596] Joshua Colp <jcolp@digium.com>
* main/channel_internal_api.c, include/asterisk/stasis.h,
include/asterisk/channel.h, include/asterisk/stasis_endpoints.h,
main/endpoints.c, res/stasis_http/resource_endpoints.c,
main/stasis_cache.c, main/stasis_endpoints.c: Add support for
requiring that all queued messages on a caching topic have been
handled before retrieving from the cache and also change adding
channels to an endpoint to be an immediate operation. Review:
https://reviewboard.asterisk.org/r/2599/
2013-06-12 21:08 +0000 [r391561] David M. Lee <dlee@digium.com>
* /, res/res_http_websocket.c: Fix segfault for certain invalid
WebSocket input. The WebSocket code would allocate, on the stack,
a string large enough to hold a key provided by the client, and
the WEBSOCKET_GUID. If the key is NULL, this causes a segfault.
If the key is too large, it could overflow the stack. This patch
checks the key for NULL and checks the length of the key to avoid
stack smashing nastiness. (closes issue ASTERISK-21825) Reported
by: Alfred Farrugia Tested by: Alfred Farrugia, David M. Lee
Patches: issueA21825_check_if_key_is_sent.patch uploaded by
Walter Doekes (license 5674) ........ Merged revisions 391560
from http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-12 02:29 +0000 [r391479-391521] Matthew Jordan <mjordan@digium.com>
* main/format.c, /, main/endpoints.c, main/loader.c: Fix memory
leak while loading modules, adding formats, and destroying
endpoints This patch fixes three memory leaks * When we load a
module with the LOAD_PRIORITY flag, we remove its entry from the
load order list. Unfortunately, we don't free the memory
associated with entry in the list. This patch corrects that and
properly frees the memory for the module in the list. * When
adding a custom format (such as SILK or CELT), the routine for
adding the format was leaking a reference. RAII_VAR cleans this
up properly. * We now de-ref the channel_snapshot appropriately
when an endpoint is disposed of ........ Merged revisions 391489
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 391507 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/stasis_channels.c, bridges/bridge_native_rtp.c: Fix memory
leaks in stasis_channels and bridge_native_rtp This patch fixes
two memory leaks: * A memory leak in packing channels into a
multi-channel blob payload when publishing dial messages. The
multi-channel blob payload does not steal the references - this
approach was chosen because it works well with the RAII_VAR
macro. Unfortunately, this does mean that you actually have to
use the RAII_VAR macro (or manually deref it yourself) * RTP
instances returned as a result of one of the glue operations are
ref counted and have to be de-ref'd appropriately. We now do
that, as saying that we should do it and then not would be silly.
2013-06-11 22:57 +0000 [r391455] Mark Michelson <mmichelson@digium.com>
* main/bridging.c: Remove incorrect comment about local channel
optimization occurring when performing an attended transfer on an
entire bridge.
2013-06-11 22:21 +0000 [r391430-391453] Jonathan Rose <jrose@digium.com>
* bridges/bridge_native_rtp.c, include/asterisk/framehook.h,
main/framehook.c: bridge_native_rtp: Fix native bridge tech being
incompatible when it should be. When checking compatability for
the native RTP bridge technology there is a race condition
between clearing framehooks that are destroyed when leaving
certain bridges with certain technologies (such as
bridge_native_rtp) and joining bridges with the bridge_native_rtp
technology. Yes, that means a channel in a native RTP bridge
could move to another native RTP bridge and be considered
incompatible with the new native RTP bridge causing it to revert
to a simple bridge technology0. This fixes that bug by ignoring
framehooks that have been marked for destruction when checking
for compatibility with the bridge_native_rtp technology.
* bridges/bridge_native_rtp.c: bridge_native_rtp: Fix possible
segfaults on leaves/joins native_rtp_bridge_get can return any
result from the ast_rtp_glue_result enumerator and the join/leave
functions for bridge_native_rtp seem to assume that if the result
wasn't local that it was remote. Meanwhile forbid can be returned
by that function which can mean certain glue pointers are NULL.
Then when the join/leave functions try to use members of that
pointer, boom. Segfault.
2013-06-11 15:46 +0000 [r391403] David M. Lee <dlee@digium.com>
* main/manager_channels.c, main/manager.c, main/stasis_message.c,
main/parking.c, tests/test_stasis_channels.c,
include/asterisk/stasis.h, main/stasis_channels.c,
tests/test_stasis.c: Add vtable and methods for to_json and
to_ami for Stasis messages When a Stasis message type is defined
in a loadable module, handling those messages for AMI and
res_stasis events can be cumbersome. This patch adds a vtable to
stasis_message_type, with to_ami and to_json virtual functions.
These allow messages to be handled abstractly without putting
module-specific code in core. As an example, the VarSet AMI event
was refactored to use the to_ami virtual function. (closes issue
ASTERISK-21817) Review: https://reviewboard.asterisk.org/r/2579/
2013-06-11 10:24 +0000 [r391380] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c, /: Fix issue with no sound in both way
in case of previous call to chan_unistim phone was canceled.
(related to ASTERISK-20183) ........ Merged revisions 391379 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-11 08:13 +0000 [r391335] Alec L Davis <sivad.a@paradise.net.nz>
* /, channels/chan_iax2.c: IAX2: Transfer Reject: Lock bridgecallno
before touching it, refactor 1). When touching the bridgecallno,
we need to lock it. 2). Remove magic number '0' and replace with
TRANSFER_NONE. 3). Exit early if no bridgecallno. 4). Reduce
indentation. Reported by: alecdavis Tested by: alecdavis
alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2613/ ........ Merged
revisions 391333 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391334 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-10 22:38 +0000 [r391314] Matthew Jordan <mjordan@digium.com>
* main/loader.c: Make the reload stasis message bump the ref count
of its sub-object JSON objects are reference stealing. Hence, if
you've RAII_VAR'd some subobject and want to pack it into another
JSON object, you have to bump the reference count. Using the 'O'
option during the pack will bump the reference count for you.
2013-06-10 21:04 +0000 [r391297] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Change chan_skinny to use core transfer
API. Changes for both attended and blind transfers in chan_skinny
to use the new transfer API instead of masquerade. (closes issue
ASTERISK-21526) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2557/
2013-06-10 16:03 +0000 [r391271] Kinsey Moore <kmoore@digium.com>
* res/res_agi.c: Add AGI command arguments to AsyncAGI event This
makes the AGI AsyncAGI event put provided AGI command arguments
in the event's environment. (closes issue ASTERISK-21304)
Patch-By: Dirk Wendland
2013-06-10 15:32 +0000 [r391269] Mark Michelson <mmichelson@digium.com>
* main/features_config.c: Temporary fix for people using sample
features.conf from previous Asterisk versions. People who use the
features.conf.sample file from Asterisk 11 and before in trunk
were given a rude awakening when features configuration changes
were made. Because it uses the config framework and the config
framework is strict about what is accepted and what isn't, people
that had parking options configured found that Asterisk no longer
started. This is because parking options are currently handled in
res_parking.conf instead of features.conf. This fix seeks to
create a temporary band-aid fix for the problem, but having
parking options from the general section be passed to a handler
that will simply print that the option is no longer supported.
This will not cause Asterisk to exit. The fix only applies to
options in the general section. There are two main reasons for
this: 1) The sample features.conf file only has parking options
in the general section. There are no configured parking lots.
Therefore it's not quite as "urgent" to get the parking lot
parsing fixed. 2) The plan is to move parking configuration back
from res_parking.conf to features.conf. When that happens, the
parking lots will also be addressed at that time.
2013-06-10 14:36 +0000 [r391245] Matthew Jordan <mjordan@digium.com>
* /, configs/queues.conf.sample, UPGRADE.txt, apps/app_queue.c: Add
announce-to-first-user option for app_queue In r386792, the
ability to play prompts to the first caller in a call queue was
added. While this is arguably a bug fix for those who expect the
first caller to continue receiving prompts while the agent is
dialed, it has the side effect of preventing the first caller
from hearing the agent immediately upon bridging. This may not be
a problem for those who really want this option, but for those
who didn't care whether or not the first caller in queue heard
their position, it was an issue. This patch disables the ability
for the first caller in the queue to hear prompts and adds a new
option, announce-to-first-user, to queues.conf. Those who the
behavior can enable it by setting this value to True. Note that
if we ever implement the ability to have the prompts be stopped
upon bridging, this option can be removed. (closes issue
ASTERISK-21782) Reported by: Remi Quezada ........ Merged
revisions 391215 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391241 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-10 13:07 +0000 [r391199] Kinsey Moore <kmoore@digium.com>
* main/stasis_bridging.c, res/stasis_json/resource_events.h,
res/res_stasis.c, res/res_stasis_json_events.exports.in,
rest-api/api-docs/events.json, res/stasis/control.c,
res/stasis/app.c, res/res_stasis_bridge_add.exports.in (added),
include/asterisk/stasis_app.h,
res/stasis_http/resource_bridges.c, res/stasis/app.h,
res/res_stasis_json_events.c, include/asterisk/stasis_bridging.h,
rest-api/api-docs/bridges.json,
res/stasis_http/resource_bridges.h, res/res_stasis_bridge_add.c
(added): Stasis-HTTP: Flesh out bridge-related capabilities This
adds support for Stasis applications to receive bridge-related
messages when the application shows interest in a given bridge.
To supplement this work and test it, this also adds support for
the following bridge-related Stasis-HTTP functionality: * GET
stasis/bridges * GET stasis/bridges/{bridgeId} * POST
stasis/bridges * DELETE stasis/bridges/{bridgeId} * POST
stasis/bridges/{bridgeId}/addChannel * POST
stasis/bridges/{bridgeId}/removeChannel Review:
https://reviewboard.asterisk.org/r/2572/ (closes issue
ASTERISK-21711) (closes issue ASTERISK-21621) (closes issue
ASTERISK-21622) (closes issue ASTERISK-21623) (closes issue
ASTERISK-21624) (closes issue ASTERISK-21625) (closes issue
ASTERISK-21626)
2013-06-10 09:33 +0000 [r391064-391154] Alec L Davis <sivad.a@paradise.net.nz>
* /, channels/chan_iax2.c: chan_iax2: nativebridge refactor, missed
unlock bridgecallno ........ Merged revisions 391143 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391148 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_iax2.c, /: fix bad edit after conflict resolution
........ Merged revisions 391107 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391111 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_iax2.c: IAX2: refactor nativebridge transfer
remove triple checking of iaxs[fr->callno]->transferring reduce
indentation. Reported by: alecdavis Tested by: alecdavis
alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2602/ ........ Merged
revisions 391065 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391084 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_iax2.c: IAX2: fix race condition with
nativebridge transfers. 1). When touching the bridgecallno, we
need to lock it. 2). stop_stuff() which calls
iax2_destroy_helper() Assumes the lock on the pvt is already
held, when iax2_destroy_helper() is called. Thus we need to lock
the bridgecallno pvt before we call
stop_stuff(iaxs[fr->callno]->bridgecallno); 3). When evaluating
the state of 'callno->transferring' of the current leg, we can't
change it to READY unless the bridgecallno is locked. Why, if we
are interrupted by the other call leg before 'transferring =
TRANSFER_RELEASED', the interrupt will find that it is READY and
that the bridgecallno is also READY so Releases the legs. (closes
issue ASTERISK-21409) Reported by: alecdavis Tested by: alecdavis
alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2594/ ........ Merged
revisions 391062 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 391063 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-06-09 21:11 +0000 [r391012-391040] Matthew Jordan <mjordan@digium.com>
* main/app.c: Clean up MWI topic pool before message type
destruction Topics need to be disposed of prior to the message
types that are published on them. This includes topic pools. This
prevents an assertion from being raised on shutdown.
* main/manager.c: Only initialize manager_bridging during startup
This moves the initialization call behind the protection against
reloads. We don't want to re-add message router routes during
reloads.
* main/backtrace.c (added), main/logger.c, include/asterisk/lock.h,
main/astmm.c, utils/extconf.c, main/astobj2.c,
include/asterisk/backtrace.h (added), include/asterisk/logger.h:
Add backtrace generation to MALLOC_DEBUG memory corruption
reports This patch allows astmm to access the backtrace
generation code in Asterisk. When memory is allocated, a
backtrace is created and stored with the memory region that
tracks the allocation. If a memory corruption is detected, the
backtrace is printed to the astmm log. The backtrace will make
use of the BETTER_BACKTRACES build option if available. As a
result, this patch moves the backtrace generation code into its
own file and uses the non-wrapped versions of the C library
memory allocation routines. This allows the memory allocation
code to safely use the backtrace generation routines without
infinitely recursing. Review:
https://reviewboard.asterisk.org/r/2567
2013-06-08 06:31 +0000 [r390940-390991] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c, include/asterisk/bridging_technology.h: Add more
support for native bridging. * Added a start technology callback
that technologies can use to start bridging operations. It is
expected that native bridges will find this useful. * Factored
out bridge_channel_complete_join().
* main/bridging.c, include/asterisk/bridging_technology.h,
bridges/bridge_softmix.c: Fix a crash when a bridge switches from
the softmix bridge technology to another. A three party bridge
uses the softmix bridging technology. This technology has a
dedicated thread used to perform the analog mixing. When one of
these parties leaves the bridge, the bridge technology is changed
from the softmix technology to a two-party mixing technology.
Changing technologies is done by removing channels from the old
technology and adding them to the new technology. Since the
remaining channels do not leave the bridge, the softmix mixing
thread could continue to process all channels in the bridge. If
the bridge code is not able to start destruction of the softmix
technology before the softmix mixing thread wakes up, a crash
happens. * Added a stop technology callback that technologies can
use to request any helper threads to stop in preparation for
being destroyed. (closes issue AST-1156) Reported by: John
Bigelow
* include/asterisk/bridging_technology.h: Update some doxygen
comments.
* bridges/bridge_softmix.c: The bridge uniqueid is available for
softmix destructor.
* bridges/bridge_softmix.c: Add some bridge identifiers to some
softmix messages.
2013-06-07 20:51 +0000 [r390920] Jonathan Rose <jrose@digium.com>
* res/parking/parking_devicestate.c (added): res_parking: Add
parking_devicestate.c left out from previous commit (issue
ASTERISK-21645) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2545/
2013-06-07 19:51 +0000 [r390885-390901] Jason Parker <jparker@digium.com>
* CHANGES, apps/app_queue.c, main/manager.c,
configs/queues.conf.sample: Make app_queue AMI events more
consistent. Give Join/Leave more useful names. This also removes
the eventwhencalled and eventmemberstatus configuration options.
These events can just be filtered via manager.conf blacklists.
(closes issue ASTERISK-21469) Review:
https://reviewboard.asterisk.org/r/2586/
* res/stasis_json/resource_channels.h,
res/stasis_http/resource_channels.c,
res/res_stasis_http_channels.c,
res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json: Implement ARI POST to /channels,
to originate a call. (closes issue ASTERISK-21617) Review:
https://reviewboard.asterisk.org/r/2597/
2013-06-07 16:22 +0000 [r390864] Kinsey Moore <kmoore@digium.com>
* tests/test_devicestate.c: Ensure that all unit tests compile with
the cache clear rework in place
2013-06-07 16:07 +0000 [r390848-390849] Jonathan Rose <jrose@digium.com>
* main/features.c, res/parking/parking_controller.c,
include/asterisk/pbx.h, CHANGES,
res/parking/parking_bridge_features.c,
res/parking/parking_bridge.c, main/pbx.c,
res/parking/res_parking.h, res/res_parking.c: res_parking:
Automatically generate extensions, hints, etc. (closes issue
ASTERISK-21645) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2545/
* apps/app_meetme.c, apps/confbridge/confbridge_manager.c,
include/asterisk/manager.h, main/manager.c: app_meetme: Refactor
manager events to use stasis (closes issue ASTERISK-21467)
Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2564/
2013-06-07 12:56 +0000 [r390830] Kinsey Moore <kmoore@digium.com>
* include/asterisk/stasis.h, main/stasis_channels.c,
main/endpoints.c, tests/test_stasis.c, main/bridging.c,
main/channel.c, main/stasis_cache.c: Rework stasis cache clear
events Stasis cache clear message payloads now consist of a
stasis_message representative of the message to be cleared from
the cache. This allows multiple parallel caches to coexist and be
cleared properly by the same cache clear message even when keyed
on different fields. This change fixes a bug where multiple cache
clears could be posted for channels. The cache clear is now
produced in the destructor instead of ast_hangup. Additionally,
dummy channels are no longer capable of producing channel
snapshots. Review: https://reviewboard.asterisk.org/r/2596
2013-06-07 01:06 +0000 [r390803-390804] Richard Mudgett <rmudgett@digium.com>
* channels/sig_pri.h, main/channel.c, channels/chan_dahdi.c,
channels/chan_misdn.c, channels/sig_analog.c, channels/sig_pri.c:
Refactor chan_dahdi/sig_analog/sig_pri and chan_misdn to use the
common transfer functions. (closes issue ASTERISK-21523) Reported
by: Matt Jordan (closes issue ASTERISK-21524) Reported by: Matt
Jordan Review: https://reviewboard.asterisk.org/r/2600/
* main/features_config.c: Tweak applicationmap and featuregroup
config containers. * Change applicationmap and featuregroup to
replace duplicate config items rather than reject them. * Remove
some unneeded warning messages when getting the applicationmap
allows duplicates from DYNAMIC_FEATURES.
2013-06-06 23:32 +0000 [r390787] Mark Michelson <mmichelson@digium.com>
* main/features_config.c: Conditionally reject duplicate entries in
applicationmap containers. When reading from a config file, it's
important to reject duplicates. Otherwise, featuregroups will
have ambiguity when pointing to applicationmap items. However,
when constructing the channel's current applicationmap, we don't
care about duplicate names since it's the DTMF that identifies a
feature, not the name.
2013-06-06 22:46 +0000 [r390771] Richard Mudgett <rmudgett@digium.com>
* configs/iax.conf.sample, configs/chan_dahdi.conf.sample,
bridges/bridge_builtin_features.c,
include/asterisk/bridging_features.h,
include/asterisk/bridging.h, main/features.c, UPGRADE.txt,
configs/sip.conf.sample, configs/skinny.conf.sample, CHANGES,
main/bridging.c: Reimplement bridging and DTMF features related
channel variables in the bridging core. * The channel variable
ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel driver
specific. If the channel variable is set on the transferrer
channel, the sound will be played to the target of an attended
transfer. * The channel variable BRIDGEPEER becomes a comma
separated list of peers in a multi-party bridge. The BRIDGEPEER
value can have a maximum of 10 peers listed. Any more peers in
the bridge will not be included in the list. BRIDGEPEER is not
valid in holding bridges like parking since those channels do not
talk to each other even though they are in a bridge. * The
channel variable BRIDGEPVTCALLID is only valid for two party
bridges and will contain a value if the BRIDGEPEER's channel
driver supports it. * The channel variable DYNAMIC_PEERNAME is
redundant with BRIDGEPEER and is removed. The more useful
DYNAMIC_WHO_ACTIVATED gives the channel name that activated the
dynamic feature. * The channel variables DYNAMIC_FEATURENAME and
DYNAMIC_WHO_ACTIVATED are set only on the channel executing the
dynamic feature. Executing a dynamic feature on the bridge peer
in a multi-party bridge will execute it on all peers of the
activating channel. (closes issue ASTERISK-21555) Reported by:
Matt Jordan Review: https://reviewboard.asterisk.org/r/2582/
2013-06-06 21:40 +0000 [r390751] Mark Michelson <mmichelson@digium.com>
* bridges/bridge_builtin_features.c, main/features.c,
channels/sip/include/sip.h, main/bridging.c,
channels/chan_mgcp.c, apps/app_dial.c, channels/chan_unistim.c,
channels/chan_sip.c, include/asterisk/features_config.h (added),
include/asterisk/channel.h, main/features_config.c (added),
include/asterisk/features.h, channels/chan_dahdi.c,
channels/chan_misdn.c, channels/sig_analog.c, main/manager.c:
Refactor the features configuration scheme. Features
configuration is handled in its own API in features_config.h and
features_config.c. This way, features configuration is accessible
to anything that needs it. In addition, features configuration
has been altered to be more channel-oriented. Most callers of
features API code will be supplying a channel so that the
individual channel's settings will be acquired rather than the
global setting. Missing from this commit is XML documentation for
the features configuration. That will be handled in a separate
commit. Review: https://reviewboard.asterisk.org/r/2578/ (issue
ASTERISK-21542)
2013-06-06 20:50 +0000 [r390733-390734] Richard Mudgett <rmudgett@digium.com>
* main/stasis_message_router.c: Fix compiler warning.
* main/features.c, apps/app_bridgewait.c, main/bridging.c: * Fix a
couple missed hook installs that need
AST_BRIDGE_HOOK_REMOVE_ON_PULL. * Rename some hook flag
parameters to remove_flags.
2013-06-06 20:37 +0000 [r390730] Kinsey Moore <kmoore@digium.com>
* res/res_agi.c: Fix documentation generation Regression from
r390701
2013-06-06 20:32 +0000 [r390729] Jason Parker <jparker@digium.com>
* /: Remove props that people will yell at me for. I'm sorry I
broke automerge. :(
2013-06-06 20:30 +0000 [r390728] Kinsey Moore <kmoore@digium.com>
* res/parking/parking_manager.c: Fix documentation that was in
review during the great suffix/prefix swap
2013-06-06 19:51 +0000 [r390698-390701] Jason Parker <jparker@digium.com>
* /, res/res_agi.c, CHANGES: Split AGI manager events, to remove
SubEvent field. This moves them to stasis, in the process.
(closes issue ASTERISK-21470) Review:
https://reviewboard.asterisk.org/r/2587/
* main/stasis_message_router.c,
include/asterisk/stasis_message_router.h: Convert message_router
routes to ao2. Add support for removal. Review:
https://reviewboard.asterisk.org/r/2591/
2013-06-06 18:21 +0000 [r390669] Jonathan Rose <jrose@digium.com>
* main/bridging.c: Parking: Enable code responsible for
intercepting park exten transfers
2013-06-06 01:52 +0000 [r390612-390639] Richard Mudgett <rmudgett@digium.com>
* channels/chan_dahdi.c: Add a BUGBUG note.
* main/bridging.c: Misc core external attended transfer fixes. *
Fix external attended transfer bridge move/swap method. One of
the transferrer channels was not kicked out of the bridge. * Fix
several off-nominal extended attended transfer paths. Mainly the
channels involved needed to be hung up or kicked out of the
bridge.
* main/core_local.c: Make local channels use ast_channel_move()
instead of the inlined version.
2013-06-05 21:14 +0000 [r390584-390585] David M. Lee <dlee@digium.com>
* include/asterisk/stasis.h: Corrected comment on stasis_cache_get
* main/manager_channels.c: Fixed refcounting problems with chanspy
AMI support. The ast_multi_channel_blob_get_channel function does
not bump the refcount on the channel snapshot that it returns.
This is typical for Stasis message payloads, since being
immutable means that the object won't get unreffed out from
underneath you. The manager code for chanspy was unreffing the
snapshots it got out of the multi-channel blob, which was one
unref too many.
2013-06-05 19:19 +0000 [r390510-390550] Mark Michelson <mmichelson@digium.com>
* main/bridging.c, res/parking/parking_bridge_features.c,
main/bridging_basic.c, include/asterisk/bridging_features.h,
main/features.c, bridges/bridge_builtin_interval_features.c:
Remove remaining traces of remove_on_pull from hooks and hook
APIs.
* include/asterisk/bridging_features.h: Give the
AST_BRIDGE_HOOK_REMOVE_ON_PULL a legitimate value.
* main/bridging.c, include/asterisk/bridging_features.h: Change the
remove_on_pull flag on ast_bridge_hook to be a set of flags. This
change is used to make bridge hook removal more generic. This
way, depending on the circumstance, the appropriate bridge hooks
may be removed.
2013-06-05 14:50 +0000 [r390473] Joshua Colp <jcolp@digium.com>
* main/channel.c: Publish the channel state snapshot *before*
calling device state so a device state producer can use an up to
date snapshot.
2013-06-05 14:47 +0000 [r390472] David M. Lee <dlee@digium.com>
* main/channel_internal_api.c: Fixed a consistency problem with
channel snapshot and endpoint state. When channels are added to
an endpoint, the code originally posted a channel snapshot to the
endoint's topic directly. Turns out, this is a bad idea. This
causes the endpoint to see an inconsistent view of the channel,
since it will later receive in-flight messages with old channel
snapshots. This patch instead just publishes channel state
immediately after setting up the forward to the endpoint's topic.
This gives the endpoints a consistent view of the channel's
state.
2013-06-04 22:55 +0000 [r390439-390440] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_native_rtp.c: Add BUGBUG comment.
* bridges/bridge_native_rtp.c: Simple lock, assignment, unlock
sandwich optimization.
2013-06-04 15:55 +0000 [r390352-390398] David M. Lee <dlee@digium.com>
* include/asterisk/manager.h: Corrected the docs on
ast_manager_event_blob_create
* makeopts.in, configure, include/asterisk/autoconfig.h.in,
main/Makefile, configure.ac: Correct autoconf script for finding
UUID support. The library that provides UUID support varies
greatly from system to system. On most Linux distros, it's in
libuuid. On OpenBSD, it's in libe2fs-uuid. On OS X, it is in
libsystem. This patch plays hide-and-seek with UUID support,
looking for it in the three places we know about. It also
corrects the Makefile so that it uses the configured library name
and include path. (closes issue ASTERISK-21816) Reported by: Brad
Latus (snuffy) Tested by: Brad Latus (snuffy)
2013-05-31 19:00 +0000 [r390317] Kinsey Moore <kmoore@digium.com>
* main/pbx.c, apps/app_userevent.c, main/stasis_channels.c:
Refactor code and fix a reference leak Refactor some channel blob
publishing code to use ast_channel_publish_blob now that it is
available and fix a JSON reference leak that was occurring during
varset publishing.
2013-05-31 16:15 +0000 [r390289-390291] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, main/manager.c, main/channel_internal_api.c,
include/asterisk/channel.h: Remove ast_channel_bridge() and
associated code called only by it. * Added some more BUGBUG
notes.
* main/stasis_channels.c, main/bridging.c, main/channel.c,
include/asterisk/stasis_channels.h,
bridges/bridge_builtin_features.c, include/asterisk/bridging.h:
Fixup hold/unhold with attended and blind transfers. * DTMF
attended and blind transfers have hold/unhold behavior restored.
* External attended and blind transfers unhold the transfered
party when the transfer is initiated. * Made prohibit blind
transferring a bridge marked as masquerade only. (ConfBridge
bridges) * Made running an application or playing a file inside a
bridge post the hold/unhold messages if MOH is requested. Review:
https://reviewboard.asterisk.org/r/2574/
2013-05-31 14:36 +0000 [r390268] Jason Parker <jparker@digium.com>
* main/manager.c, include/asterisk/manager.h, main/asterisk.c:
Replace ast_manager_publish_message() with a more useful version.
It's much easier to just create a blob of the message. Convert
some AMI events to use it. Review:
https://reviewboard.asterisk.org/r/2577/
2013-05-31 12:41 +0000 [r390249-390250] Kinsey Moore <kmoore@digium.com>
* apps/confbridge/include/confbridge.h, main/stasis_bridging.c,
apps/confbridge/confbridge_manager.c, apps/app_confbridge.c,
include/asterisk/stasis_bridging.h: Remove remnant of snapshot
blob JSON types Remove usage of the once-mandatory snapshot blob
type field, refactor confbridge stasis messages accordingly, and
remove ast_bridge_blob_json_type(). Review:
https://reviewboard.asterisk.org/r/2575/
* include/asterisk/stasis_channels.h, main/stasis_channels.c: Add
snapshot cache that indexes by channel name This adds a new
channel snapshot cache in parallel to the existing cache; the
difference being that it indexes the channel snapshots by channel
name instead of channel uniqueid. Review:
https://reviewboard.asterisk.org/r/2576
2013-05-31 10:42 +0000 [r390230] Alexandr Anikin <may@telecom-service.ru>
* addons/chan_ooh323.c, /: Multiple revisions 390228-390229
........ r390228 | may | 2013-05-31 14:19:52 +0400 (Fri, 31 May
2013) | 14 lines reject call attempts when gatekeeper is
configured but not registered (closes issue ASTERISK-21800)
Reported by: Dmitry Melekhov Patches: ASTERISK-21800-1.patch
Tested by: Dmitry Melekhov ........ Merged revisions 390181 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 390223 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ r390229
| may | 2013-05-31 14:34:20 +0400 (Fri, 31 May 2013) | 4 lines
remove unnecessary declarations (issue ASTERISK-21800) ........
Merged revisions 390228-390229 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-31 07:57 +0000 [r390180] Walter Doekes <walter+asterisk@wjd.nu>
* Makefile: Let find do its own globbing. Previously a stray .c
file would cause xmldocs to not get built.
2013-05-30 19:23 +0000 [r390122-390154] David M. Lee <dlee@digium.com>
* main/app.c: Missed a line from a bad merge in r390122
* main/security_events.c, include/asterisk/stasis.h,
main/devicestate.c, main/named_acl.c,
include/asterisk/stasis_bridging.h, main/presencestate.c,
main/stasis.c, main/channel.c,
include/asterisk/stasis_channels.h, main/stasis_bridging.c,
main/test.c, main/app.c, main/stasis_channels.c,
include/asterisk/security_events.h, main/asterisk.c,
main/bridging.c, main/stasis_cache.c, include/asterisk.h: Avoid
unnecessary cleanups during immediate shutdown This patch
addresses issues during immediate shutdowns, where modules are
not unloaded, but Asterisk atexit handlers are run. In the
typical case, this usually isn't a big deal. But the introduction
of the Stasis message bus makes it much more likely for
asynchronous activity to be happening off in some thread during
shutdown. During an immediate shutdown, Asterisk skips unloading
modules. But while it is processing the atexit handlers, there is
a window of time where some of the core message types have been
cleaned up, but the message bus is still running. Specifically,
it's still running module subscriptions that might be using the
core message types. If a message is received by that subscription
in that window, it will attempt to use a message type that has
been cleaned up. To solve this problem, this patch introduces
ast_register_cleanup(). This function operates identically to
ast_register_atexit(), except that cleanup calls are not invoked
on an immediate shutdown. All of the core message type and topic
cleanup was moved from atexit handlers to cleanup handlers. This
ensures that core type and topic cleanup only happens if the
modules that used them are first unloaded. This patch also
changes the ast_assert() when accessing a cleaned up or
uninitialized message type to an error log message. Message type
functions are actually NULL safe across the board, so the assert
was a bit heavy handed. Especially for anyone with DO_CRASH
enabled. Review: https://reviewboard.asterisk.org/r/2562/
2013-05-29 20:24 +0000 [r390068] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, /: Fix segfault when dealing with chan_agent
channels. Check the returned bridged pointer for NULL to avoid a
crash. It looks like chan_agent is returning a NULL pointer when
it probably should be returning a pointer to the channel the
Agent channel is pretending to be. (closes issue ASTERISK-21793)
Reported by: Rodrigo P. Telles Patches:
jira_asterisk_21793_v1.8.patch (license #5621) patch uploaded by
rmudgett Tested by: Rodrigo P. Telles ........ Merged revisions
390044 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 390047 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-29 19:54 +0000 [r390042] Jason Parker <jparker@digium.com>
* main/channel.c: Remove unused RAII vars.
2013-05-29 03:22 +0000 [r389990] Matthew Jordan <mjordan@digium.com>
* res/res_fax.c: Pack the right number of items into the status and
receive fax blobs The code was still attempting to pack an
additional item into the blobs that didn't exist. Crashes ensued.
This patch modifies the publishing of these messages so that the
correct number of items are packed in the JSON.
2013-05-29 02:26 +0000 [r389974] Kinsey Moore <kmoore@digium.com>
* res/res_monitor.c, include/asterisk/stasis_channels.h,
res/res_fax.c, apps/app_fax.c, main/stasis_channels.c,
res/res_musiconhold.c: Resolve a merge conflict When
ast_channel_cached_blob_create was merged,
ast_channel_blob_create_from_cache was partially removed in an
unresolved merge conflict. This restores
ast_channel_blob_create_from_cache and refactors usage of
ast_channel_cached_blob_create (requires an ast_channel) to use
ast_channel_blob_create_from_cache (requires a channel uniqueid)
instead.
2013-05-28 17:47 +0000 [r389897] Jonathan Rose <jrose@digium.com>
* /, main/slinfactory.c: Fix a memory copying bug in slinfactory
which was causing mixmonitor issues. Reported by: Michael Walton
Tested by: Jonathan Rose Patches:
slinfactory.c.ASTERISK-21799.patch uploaded by Michael Walton
(license 6502) (closes issue ASTERISK-21799) ........ Merged
revisions 389895 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 389896 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-28 15:54 +0000 [r389848-389870] Mark Michelson <mmichelson@digium.com>
* main/bridging.c: Add missing NULL check to acquire_bridge()
function.
* channels/chan_sip.c, channels/sip/include/sip.h: Add attended
transfer support for chan_sip.c This now uses the core API for
performing attended transfers. Review
https://reviewboard.asterisk.org/r/2513 (Closes issue
ASTERISK-21520) reported by Matt Jordan
* include/asterisk/channel.h, CHANGES, main/bridging.c,
channels/chan_mgcp.c, main/channel.c, main/pbx.c,
bridges/bridge_builtin_features.c, channels/chan_sip.c,
apps/confbridge/confbridge_manager.c,
include/asterisk/bridging.h, main/features.c: Adds support for a
core attended transfer function plus adds some hiding of
masquerades. The attended transfer API call can complete the
attended transfer in a number of ways depending on the current
bridged states of the channels involved. The hiding of
masquerades is done in some bridging-related functions, such as
the manager Bridge action and the Bridge dialplan application. In
addition, call pickup was edited to "move" a channel rather than
masquerade it. Review: https://reviewboard.asterisk.org/r/2511
(closes issue ASTERISK-21334) Reported by Matt Jordan (closes
issue Asterisk-21336) Reported by Matt Jordan
2013-05-27 01:33 +0000 [r389770-389827] Matthew Jordan <mjordan@digium.com>
* res/res_fax.c, res/res_fax_spandsp.c: Fix some more fax test
errors due to needing the peer in a bridge In r389799, a number
of fax errors in gateway mode were fixed by using the appropriate
function to get a channel's peer while in a bridge. This patch
does two things: (1) It uses the same function in res_fax_spandsp
while starting the fax gateway. Without this, the fax gateway
will not actually start up, as res_fax_spandsp also must inspect
the channel's peer in a two-party bridge (2) It refactors some
ao2 objects in sendfax_exec to use RAII_VAR. This was reverted in
r389799 as some off nominal paths were getting hit without the
fix in (1) that indicated an ao2 object issue; this turned out to
be a red herring (which is an odd phrase)
* main/stasis_endpoints.c: Initialize the message type before the
topic Caching topics will during initialization attempt to
reference their message type. The message type therefore has to
be initialized prior to the topic to prevent the dreaded
assertion.
* res/res_fax.c: Fix a few fax gateway failures Fax gateway
requires knowledge of a channel's peer in a bridge. This patch
now uses the supported mechanisms to get this information. This
is acceptable for a few reasons: * Fax gateway can only ever work
in a 2-party bridge * Fax gateway cannot work when not in a
bridge * Fax gateway cannot work without knowledge of the
capabilities of both channels in the fax operation (it is, after
all, a gateway)
* main/asterisk.c, res/res_fax.c, main/devicestate.c: Fix a variety
of memory corruption/assertion errors * Initialize a Stasis-Core
message type prior to initializing a caching topic. The caching
topic will attempt to use the message type. * Don't attempt to
publish Stasis-Core messages from remote console connections.
They aren't the main process; they shouldn't attempt to behave as
it (they also don't have the infrastructure to do so) * Don't
treat a JSON object as an ao2 object (whoops) * In asterisk.c,
ref bump the JSON even package that is distributed with the event
meta data. The callers assume that they own the reference, and
the packing routine steals references.
* main/asterisk.c: Restore initialization of security topics During
a merge the security topic initialization got blown away. This
patch restores it.
2013-05-24 21:23 +0000 [r389746-389748] Jason Parker <jparker@digium.com>
* /: grr, props.
* main/manager_channels.c, channels/chan_mgcp.c,
channels/chan_unistim.c, /, channels/chan_sip.c,
include/asterisk/channel.h, channels/sig_pri.c,
channels/chan_iax2.c, CHANGES, res/res_sip_sdp_rtp.c,
main/channel.c, channels/chan_dahdi.c,
include/asterisk/stasis_channels.h, channels/sig_analog.c,
channels/chan_misdn.c, channels/chan_skinny.c,
channels/chan_motif.c, channels/chan_h323.c,
main/stasis_channels.c: Split Hold event into Hold/Unhold, and
move it into core. (closes issue ASTERISK-21487) Review:
https://reviewboard.asterisk.org/r/2565/
2013-05-24 21:01 +0000 [r389738] Kinsey Moore <kmoore@digium.com>
* res/res_stasis.c: Remove a junk define BLOB_HANDLER_BUCKETS is a
remnant of using "type" fields in JSON/snapshot blobs and is no
longer used.
2013-05-24 20:44 +0000 [r389680-389733] Matthew Jordan <mjordan@digium.com>
* include/asterisk/_private.h, include/asterisk/manager.h,
channels/sig_pri.c, CHANGES, res/res_monitor.c,
include/asterisk/app.h, main/json.c,
include/asterisk/stasis_channels.h, apps/app_chanspy.c,
res/parking/parking_manager.c, main/asterisk.c,
main/manager_mwi.c (added), apps/app_voicemail.c,
channels/chan_unistim.c, include/asterisk/json.h,
res/res_musiconhold.c, res/res_xmpp.c, channels/chan_iax2.c,
res/res_jabber.c, main/enum.c, main/loader.c, main/cli.c,
main/cdr.c, channels/chan_dahdi.c, main/manager.c,
channels/chan_skinny.c, apps/app_minivm.c, main/app.c,
main/stasis_channels.c, main/manager_channels.c,
res/res_sip_mwi.c, channels/chan_mgcp.c, main/pbx.c,
main/dnsmgr.c, channels/chan_sip.c, res/res_fax.c,
apps/app_fax.c: Migrate a large number of AMI events over to
Stasis-Core This patch moves a number of AMI events over to the
Stasis-Core message bus. This includes: * ChanSpyStart/Stop *
MonitorStart/Stop * MusicOnHoldStart/Stop * FullyBooted/Reload *
All Voicemail/MWI related events In addition, it adds some
Stasis-Core and AMI support for generic AMI messages, refactors
the message router in AMI to use a single router with topic
forwarding for the topics that AMI cares about, and refactors MWI
message types and topics to be more name compliant. Review:
https://reviewboard.asterisk.org/r/2532 (closes issue
ASTERISK-21462)
* main/logger.c, /: Print all logger messages on shutdown When
Asterisk shuts down and shuts down the loggin gsubsystem, any
messages currently in flight will not get logged. This patch
prevents the loop writing messages from breaking out prematurely,
such that all of the messages are logged. (closes issue
ASTERISK-21716) Reported by: Corey Farrell patches:
logger-process-all-messages.patch uploaded by Corey Farrell
(license 5909) ........ Merged revisions 389676 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 389677 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-24 10:23 +0000 [r389663] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c, /: Fix several problems caused by
multiple line usage with i2004 phones. Reported by: Daniel
Bohling, MihaiMircea (closes issue ASTERISK-21061) (closes issue
ASTERISK-21120) ........ Merged revisions 389661 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-23 21:46 +0000 [r389639] David M. Lee <dlee@digium.com>
* res/res_stasis_http.c, res/res_stasis_playback.c,
res/stasis_http/resource_channels.c,
include/asterisk/stasis_http.h: stasis-http: Provide a response
body for 201 created responses
2013-05-23 21:11 +0000 [r389618-389623] Jonathan Rose <jrose@digium.com>
* res/parking/parking_bridge.c: res_parking: Add a verbose message
when a channel is parked
* res/parking/parking_bridge.c: res_parking: Fix some simple bugs
Both of them are covered in the dynamic parking review on
https://reviewboard.asterisk.org/r/2550 - Remove unref against
parking lot that the bridge did on dissolve since the reference
wasn't taken in the first place. On a swap, reapply bridge roles
in order to get music on hold and such playing on the channel
that swaps into the bridge.
2013-05-23 20:25 +0000 [r389609] Joshua Colp <jcolp@digium.com>
* res/res_sip_session.c: Fix a crash due to the INVITE session
being destroyed before the session. This change ensures that the
INVITE session remains valid for the lifetime of the session
object itself by increasing the session count on the dialog that
the INVITE session is allocated from. Once this reaches zero
(normally as a result of decrementing it within the session
destructor) the dialog, and INVITE session, are destroyed.
2013-05-23 20:21 +0000 [r389587-389603] David M. Lee <dlee@digium.com>
* include/asterisk/app.h, res/res_stasis_playback.c,
res/stasis/control.c, res/stasis_http/resource_channels.c,
rest-api/api-docs/playback.json, res/res_stasis_http_channels.c,
include/asterisk/stasis_app.h, main/app.c,
include/asterisk/channel.h, res/stasis_http/resource_channels.h,
rest-api/api-docs/channels.json,
include/asterisk/stasis_app_playback.h,
res/stasis_http/resource_playback.c: This patch adds support for
controlling a playback operation from the Asterisk REST
interface. This adds the /playback/{playbackId}/control resource,
which may be POSTed to to pause, unpause, reverse, forward or
restart the media playback. Attempts to control a playback that
is not currently playing will either return a 404 Not Found
(because the playback object no longer exists) or a 409 Conflict
(because the playback object is still in the queue to be played).
This patch also adds skipms and offsetms parameters to the
/channels/{channelId}/play resource. (closes issue
ASTERISK-21587) Review: https://reviewboard.asterisk.org/r/2559
* res/res_stasis_playback.c (added), rest-api/api-docs/events.json,
res/stasis/control.c, main/channel_internal_api.c,
include/asterisk/stasis_http.h, res/res_stasis_http_channels.c,
res/res_stasis_json_events.c,
include/asterisk/stasis_app_playback.h (added),
res/stasis_http/resource_playback.c, include/asterisk/app.h,
include/asterisk/stasis_channels.h,
res/stasis_json/resource_channels.h,
res/stasis_http/resource_channels.c,
res/stasis_http/resource_channels.h, main/stasis_channels.c,
rest-api/api-docs/channels.json,
res/res_stasis_playback.exports.in (added),
res/res_stasis_http.c, res/stasis_json/resource_events.h,
res/res_stasis_json_events.exports.in: This patch implements the
REST API's for POST /channels/{channelId}/play and GET
/playback/{playbackId}. This allows an external application to
initiate playback of a sound on a channel while the channel is in
the Stasis application. /play commands are issued asynchronously,
and return immediately with the URL of the associated /playback
resource. Playback commands queue up, playing in succession. The
/playback resource shows the state of a playback operation as
enqueued, playing or complete. (Although the operation will only
be in the 'complete' state for a very short time, since it is
almost immediately freed up). (closes issue ASTERISK-21283)
(closes issue ASTERISK-21586) Review:
https://reviewboard.asterisk.org/r/2531/
2013-05-23 18:40 +0000 [r389569] Richard Mudgett <rmudgett@digium.com>
* main/features.c: Fix inverted test preventing DTMF disconnect
from working.
2013-05-23 18:39 +0000 [r389551-389568] Joshua Colp <jcolp@digium.com>
* res/res_sip_sdp_rtp.c: Fix a bug where the DTMF mode was not set
on newly created RTP instances in the res_sip_sdp_rtp module.
* res/res_sip_sdp_rtp.c: Fix a bug with applying the end result of
the codec negotiation to the Asterisk channel.
* res/res_sip_session.c: Fix a bug where the codec order as
configured was not being obeyed.
2013-05-22 19:15 +0000 [r389519] David M. Lee <dlee@digium.com>
* main/app.c: Fixed startup race condition which caused occasional
stasis_mwi_state_type assertions. The caching topic (which refers
to the message type) was created before the message type. If the
initial subscription message gets processed before the type can
be initialized, the assertion about using an uninitialized type
fires.
2013-05-22 18:20 +0000 [r389492-389505] Jason Parker <jparker@digium.com>
* /: Remove bad props, before anybody notices.
* apps/app_dial.c, main/dial.c, /, include/asterisk/dial.h,
apps/app_followme.c, apps/app_queue.c: Add dial events to
app_queue and app_followme. Also fixes an issue in app_dial,
where the channels were swapped on dial events. (closes issue
ASTERISK-21551) (closes issue ASTERISK-21550) Review:
https://reviewboard.asterisk.org/r/2549/
2013-05-21 22:49 +0000 [r389454] David M. Lee <dlee@digium.com>
* main/stasis_bridging.c: Fix destruction order assert for
stasis_bridging
2013-05-21 21:08 +0000 [r389426] Richard Mudgett <rmudgett@digium.com>
* apps/app_queue.c: Conditional out more app_queue logging that
needs to be reworked. Fixes crash because app_queue was
unconditionally freeing a datastore that was still on a channel.
2013-05-21 18:45 +0000 [r389402] Matthew Jordan <mjordan@digium.com>
* apps/confbridge/confbridge_manager.c, apps/app_confbridge.c:
Raise the ConfBridgeMute/Unmute events when a CLI or AMI action
triggers the change New in 12 are the ConfBridgeMute/Unmute
events, which are triggered when a user changes their mute/unmute
state. This was typically triggered when a user hit a DTMF key
that triggered the mute/unmute menu handler. Forgotten in this is
when an AMI action or CLI command triggers the mute/unmute. This
patch now raises the events in those situations as well. (closes
issue ASTERISK-21802) Reported by: Birger "WIMPy" Harzenetter
2013-05-21 18:00 +0000 [r389378] Richard Mudgett <rmudgett@digium.com>
* res/parking (added), bridges/bridge_builtin_interval_features.c
(added), rest-api-templates/stasis_json_resource.h.mustache,
main/config_options.c, res/stasis_json/resource_events.h,
main/asterisk.c, res/parking/parking_manager.c,
apps/app_parkandannounce.c (removed), channels/chan_unistim.c,
res/parking/parking_ui.c, channels/chan_local.c (removed),
main/rtp_engine.c, apps/confbridge/conf_chan_record.c (added),
main/core_unreal.c (added), apps/app_bridgewait.c (added),
apps/app_followme.c, configs/features.conf.sample,
channels/chan_jingle.c, channels/chan_dahdi.c,
apps/app_channelredirect.c, funcs/func_channel.c,
main/abstract_jb.c, main/manager_bridging.c (added),
include/asterisk/bridging_roles.h (added), channels/chan_vpb.cc,
channels/chan_sip.c, main/channel_internal_api.c,
channels/chan_agent.c, UPGRADE.txt, include/asterisk/_private.h,
res/parking/parking_bridge.c, main/cli.c,
res/parking/res_parking.h,
include/asterisk/bridging_technology.h, channels/chan_misdn.c,
apps/confbridge/include/confbridge.h, channels/chan_skinny.c,
include/asterisk/bridging_features.h, funcs/func_frame_trace.c,
include/asterisk/bridging.h, include/asterisk/bridging_basic.h
(added), bridges/bridge_native_rtp.c (added),
rest-api-templates/res_stasis_json_resource.c.mustache,
include/asterisk/frame.h, apps/app_mixmonitor.c,
include/asterisk/parking.h (added), channels/chan_mgcp.c,
main/bridging_roles.c (added), main/pbx.c, main/strings.c,
rest-api/api-docs/events.json, include/asterisk/core_local.h
(added), configs/res_parking.conf.sample (added),
channels/chan_bridge.c (removed),
res/parking/parking_controller.c,
res/parking/parking_applications.c, include/asterisk/channel.h,
include/asterisk/manager.h, apps/app_queue.c,
include/asterisk/stasis_bridging.h (added),
include/asterisk/framehook.h, include/asterisk/config_options.h,
bridges/bridge_builtin_features.c,
apps/confbridge/confbridge_manager.c (added), main/features.c,
apps/app_dumpchan.c, channels/chan_motif.c, channels/chan_h323.c,
apps/app_confbridge.c, include/asterisk/rtp_engine.h,
apps/app_chanspy.c, include/asterisk/ccss.h,
main/manager_channels.c, main/bridging.c,
apps/confbridge/conf_chan_announce.c (added),
main/bridging_basic.c (added), include/asterisk/core_unreal.h
(added), apps/app_dial.c, res/res_stasis_json_events.exports.in,
addons/chan_ooh323.c, main/frame.c, main/parking.c (added),
bridges/bridge_holding.c (added), bridges/bridge_simple.c,
bridges/bridge_softmix.c, funcs/func_jitterbuffer.c,
res/Makefile, res/res_stasis_json_events.c, main/core_local.c
(added), CHANGES, channels/chan_iax2.c,
bridges/bridge_multiplexed.c (removed),
res/parking/parking_bridge_features.c,
include/asterisk/abstract_jb.h, channels/chan_gulp.c,
apps/confbridge/conf_config_parser.c, main/channel.c,
res/res_parking.c (added), main/manager.c, main/stasis_bridging.c
(added): Merge in the bridge_construction branch to make the
system use the Bridging API. Breaks many things until they can be
reworked. A partial list: chan_agent chan_dahdi, chan_misdn,
chan_iax2 native bridging app_queue COLP updates DTMF attended
transfers Protocol attended transfers
2013-05-21 14:17 +0000 [r389343] David M. Lee <dlee@digium.com>
* apps/app_userevent.c, main/stasis_channels.c: Fixed some extra
field assertion when the event WebSocket is connected
2013-05-20 19:24 +0000 [r389306] Matthew Jordan <mjordan@digium.com>
* main/pbx.c: Set the AST_CDR_FLAG_ORIGINATED flag on originated
channel's CDRs This may alleviate some of the CDR woes with
originated channels, as CDRs do like to know when a channel was
originated. Eventually this will get converted to be a channel
flag, so its location is still good to know post the great CDR
shakeup of 2013.
2013-05-20 18:03 +0000 [r389247-389251] Richard Mudgett <rmudgett@digium.com>
* res/res_pktccops.c, cel/cel_odbc.c, res/res_smdi.c,
tests/test_time.c, res/stasis_http/resource_channels.c,
res/stasis_http/resource_recordings.c,
res/stasis_http/resource_channels.h, tests/test_stasis_http.c,
res/res_curl.c, res/stasis_http/resource_recordings.h,
res/stasis_http/resource_events.c, main/manager_channels.c,
utils/refcounter.c, main/stasis_cache.c,
tests/test_astobj2_thrash.c, res/stasis_http/resource_events.h,
cel/cel_tds.c, tests/test_xml_escape.c,
res/stasis_http/resource_bridges.c, res/res_ael_share.c,
main/cel.c, res/stasis_http/resource_bridges.h,
main/stasis_message_router.c, funcs/func_channel.c,
res/ael/ael_lex.c, utils/ael_main.c, codecs/codec_dahdi.c,
res/res_stasis_http_bridges.c, funcs/func_iconv.c,
res/res_stasis.c, res/res_stasis_http_asterisk.c,
cel/cel_radius.c, res/res_stasis_websocket.c, main/sha1.c,
tests/test_gosub.c, tests/test_hashtab_thrash.c, main/stasis.c,
res/ael/pval.c, main/stasis_message.c, res/ael/ael.tab.c,
cel/cel_custom.c, cel/cel_manager.c, funcs/func_odbc.c,
res/ael/ael.tab.h, formats/format_h264.c,
res/stasis_http/resource_endpoints.c, tests/test_json.c,
res/res_clioriginate.c, res/stasis_http/resource_endpoints.h,
funcs/func_version.c, tests/test_dlinklists.c,
res/res_stasis_http_channels.c, pbx/pbx_lua.c,
res/res_stasis_http_recordings.c, res/res_srtp.c,
res/res_stasis_http_endpoints.c,
res/stasis_http/resource_asterisk.c,
res/res_stasis_http_events.c, funcs/func_realtime.c, main/json.c,
main/hashtab.c, res/stasis_http/resource_asterisk.h,
cel/cel_sqlite3_custom.c, main/event.c,
contrib/utils/eagi_proxy.c, res/res_stasis_http.c,
tests/test_stasis.c, main/udptl.c, cel/cel_pgsql.c,
funcs/func_rand.c, funcs/func_dialgroup.c,
tests/test_res_stasis.c, main/threadstorage.c: Fixup svn:keywords
in all *.c and *.h files.
* include/asterisk/cel.h, include/asterisk/stasis_http.h,
include/asterisk/stasis_app.h, include/asterisk/stasis.h,
apps/app_morsecode.c, apps/app_waituntil.c,
include/asterisk/json.h,
include/asterisk/stasis_message_router.h,
include/asterisk/hashtab.h,
channels/sip/include/dialplan_functions.h,
include/asterisk/paths.h, include/asterisk/event.h,
apps/app_setcallerid.c, include/asterisk/event_defs.h,
channels/sip/include/globals.h, apps/app_celgenuserevent.c,
channels/sip/dialplan_functions.c, include/asterisk/pktccops.h,
channels/sip/include/sdp_crypto.h,
include/asterisk/ael_structs.h, include/asterisk/udptl.h,
channels/sip/include/srtp.h, include/asterisk/frame_defs.h,
apps/app_stasis.c, include/asterisk/sha1.h,
include/asterisk/smdi.h, include/asterisk/stringfields.h,
channels/sip/sdp_crypto.c, channels/sip/include/dialog.h,
include/asterisk/res_srtp.h, channels/sip/srtp.c: Fixup
svn:keywords in all *.c and *.h files.
2013-05-20 17:44 +0000 [r389246] Jason Parker <jparker@digium.com>
* /: Add doxygen.log to svn:ignore property. ........ Merged
revisions 389244 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 389245 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-20 14:21 +0000 [r389217] Kinsey Moore <kmoore@digium.com>
* res/res_stasis_answer.exports.in (added): Add missing exports
file This exposes stasis_app_control_answer and allows
res_stasis_http_channels to load properly.
2013-05-20 14:02 +0000 [r389204] Joshua Colp <jcolp@digium.com>
* main/sorcery.c: In Sorcery pass the name of the object being
allocated to the allocator.
2013-05-20 13:45 +0000 [r389202] Kinsey Moore <kmoore@digium.com>
* apps/confbridge/conf_config_parser.c: Add documentation for
record_file_append When this option was added, it was noted in
CHANGES, but was missing the XML documentation that this patch
adds. (closes issue ASTERISK-21780) Patch-by: Brad Latus (snuffy)
2013-05-19 20:52 +0000 [r389180] Alexandr Anikin <may@telecom-service.ru>
* addons/chan_ooh323.c, addons/chan_ooh323.h: add
ast_publish_channel_state according new event framework
2013-05-19 19:45 +0000 [r389164] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Add transfer softkey to ringout state to
enable blond transfers. (closes issue ASTERISK-21327) Reported
by: wedhorn Tested by: myself Patches: skinny-blindxfer01.diff
uploaded by wedhorn (license 5019)
2013-05-19 17:45 +0000 [r389148] Kinsey Moore <kmoore@digium.com>
* res/res_sip_outbound_registration.c,
res/res_sip_endpoint_identifier_ip.c, res/res_sip_acl.c,
res/res_sip.c: Add base XML documentation for res_sip Thanks to
Brad Latus, this patch adds a significant amount much-needed
documentation to res_sip. It should cover all existing
configuration options currently in Asterisk trunk. Patch-by: Brad
Latus (snuffy) Review: https://reviewboard.asterisk.org/r/2471/
2013-05-19 02:21 +0000 [r389116-389132] Joshua Colp <jcolp@digium.com>
* main/pbx.c: Don't hold the outgoing lock for a prolonged period
of time as it may block the originator.
* main/pbx.c: If the caller of the originate API calls wants the
channel ensure it has been requested and dialed.
2013-05-18 23:20 +0000 [r389097] Damien Wedhorn <voip@facts.com.au>
* configs/skinny.conf.sample, channels/chan_skinny.c: Add call
forward no answer to skinny and cleanup general callfwd handling.
CallforwardNoAnswer uses a sched to determine when to forward the
call. Defaults to 20secs but configurable in skinny.conf. Adds
dialType to each subchannel structure to be used to differentiate
between normal dials that result in a call being placed (default)
and other uses for the skinny_dialer (such as cfwd digit
collection). Restructured all cfwd handling to use this new
arrangement. (closes issue ASTERISK-21292) Reported by: wedhorn
Tested by: myself Patches: skinny-callfwdnoans03.diff uploaded by
wedhorn (license 5019)
2013-05-18 22:49 +0000 [r389053-389085] Joshua Colp <jcolp@digium.com>
* main/pbx.c: Fix a bug where synchronous origination (oddly enough
triggered by doing an async manager Originate) would not work
properly.
* main/dial.c, main/pbx.c, include/asterisk/dial.h,
main/manager_channels.c: Move origination to use the dialing API
and send Stasis messages on dial begin and end. (closes issue
ASTERISK-21549) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2512/
2013-05-17 21:10 +0000 [r389011] David M. Lee <dlee@digium.com>
* main/stasis.c, main/manager.c, funcs/func_presencestate.c,
main/stasis_message_router.c, main/app.c, main/stasis_channels.c,
res/res_stasis.c, main/manager_channels.c, apps/app_voicemail.c,
main/stasis_cache.c, main/pbx.c, main/stasis_endpoints.c,
channels/chan_sip.c, include/asterisk/stasis.h,
main/devicestate.c, res/res_jabber.c, apps/app_queue.c,
channels/chan_iax2.c, main/endpoints.c,
include/asterisk/stasis_message_router.h, res/res_chan_stats.c:
Fix shutdown assertions in stasis-core In r388005, macros were
introduced to consistently define message types. This added an
assert if a message type was used either before it was
initialized or after it had been cleaned up. It turns out that
this assertion fires during shutdown. This actually exposed a
hidden shutdown ordering problem. Since unsubscribing is
asynchronous, it's possible that the message types used by the
subscription could be freed before the final message of the
subscription was processed. This patch adds
stasis_subscription_join(), which blocks until the last message
has been processed by the subscription. Since joining was most
commonly done right after an unsubscribe, a
stasis_unsubscribe_and_join() convenience function was also
added. Similar functions were also added to the
stasis_caching_topic and stasis_message_router, since they wrap
subscriptions and have similar problems. Other code in trunk was
refactored to join() where appropriate, or at least verify that
the subscription was complete before being destroyed. Review:
https://reviewboard.asterisk.org/r/2540
2013-05-17 20:24 +0000 [r389009] Michael L. Young <elgueromexicano@gmail.com>
* channels/chan_iax2.c: Remove Character Limit On "inkeys" For IAX2
Currently, the buffer for processing "inkeys" is limited to 256
characters. If the user has many keys and the names of those key
files are long, the 256 character limit is not enough. * Change
inkeys buffer to be dynamic (closes issue ASTERISK-21398)
Reported by: Pavel Kopchyk Tested by: Pavel Kopchyk, Michael L.
Young Patches: asterisk-21398-iax2-inkeys-dynamic-buffer_v3.diff
by Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2501/
2013-05-17 17:43 +0000 [r388976] Matthew Jordan <mjordan@digium.com>
* include/asterisk/stasis_channels.h, main/stasis_channels.c,
apps/app_dial.c, main/channel.c, main/dial.c: Publish the
outbound channel's application/data when dialing This patch does
two things: * It fixes a bug where the outbound channel's
application/data set by the dialing API/app_dial is not
communicated until the channel is hung up. If that happens, AMI
would incorrectly send a NewExten event immediately after a
Hangup. This isn't really AMI's fault, as the dialing APIs never
communicated the 'helpful' app/data on the outbound channel until
it was hungup. * It makes public sending a stasis message about a
change in channel state. This is useful enough that - for now at
least - it should be public. If operations on a channel go to
being more coarse-grained, this function could be made private
again. Review: https://reviewboard.asterisk.org/r/2548 Note that
this problem was found and reported by Matt DiMeo.
2013-05-17 17:36 +0000 [r388975] Jonathan Rose <jrose@digium.com>
* tests/test_security_events.c, res/res_sip.c, main/json.c,
main/manager.c, channels/sip/include/config_parser.h,
res/res_sip_nat.c, channels/sip/dialplan_functions.c,
include/asterisk/netsock2.h, res/res_sip_outbound_registration.c,
channels/sip/config_parser.c, include/asterisk/security_events.h,
channels/sip/include/sip.h,
include/asterisk/security_events_defs.h, main/asterisk.c,
res/res_security_log.c, include/asterisk/acl.h,
res/res_sip/config_transport.c, channels/chan_sip.c,
main/security_events.c, channels/sip/security_events.c,
include/asterisk/res_sip.h, include/asterisk/json.h,
main/named_acl.c, CHANGES, channels/chan_iax2.c: Stasis: Update
security events to use Stasis Also moves ACL messages to the
security topic and gets rid of the ACL topic (closes issue
ASTERISK-21103) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2496/
2013-05-15 21:13 +0000 [r388896] David M. Lee <dlee@digium.com>
* res/stasis/app.c, res/stasis/app.h: Fixed inverted logic in
app_add_channel(). Also added some missing doc comments for
stasis/app.h.
2013-05-15 15:58 +0000 [r388840] Kevin Harwell <kharwell@digium.com>
* main/lock.c, /: Fix for segfault in __ast_rwlock_destroy with
DEBUG_THREADS If DEBUG_THREADS is enabled __ast_rwlock_destroy
causes a segfault while trying to access a possible NULL t->track
object. A NULL check has been added before trying to access the
memory. (closes issue ASTERISK-21724) Reported by: Corey Farrell
Fixed by: Corey Farrell Patches: ast_rwlock_destroy-segv.patch
uploaded by Corey Farrell (license 5909) ........ Merged
revisions 388838 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388839 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-15 15:03 +0000 [r388818] Jason Parker <jparker@digium.com>
* apps/app_voicemail.c, /: Fix VM snapshot handling for combined
INBOX. The snapshot API contains an option that allow for
combining of new and old messages within a single snapshot. New
messages, however, include options beyond just 'INBOX' - it also
includes the Urgent folder. A previous patch that combined INBOX
and Urgent accidentally impacted snapshots that attempted to gain
messages from just the Old folder. This patch fixes the snapshot
gathering such that the API returns the appropriate messages for
the folder selected, with and without the combine option. This
should make it more clear about what's happening. Review:
https://reviewboard.asterisk.org/r/2539/ ........ Merged
revisions 388816 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-15 12:42 +0000 [r388770] Kinsey Moore <kmoore@digium.com>
* /, configure, include/asterisk/autoconfig.h.in, configure.ac,
res/res_srtp.c: Use srtp_shutdown when available This allows the
SRTP library to be shut down properly when the functionality is
offered by libsrtp. Review:
https://reviewboard.asterisk.org/r/2538/ (closes issue
ASTERISK-21719) ........ Merged revisions 388768 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388769 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-15 02:37 +0000 [r388729-388751] David M. Lee <dlee@digium.com>
* include/asterisk/stasis.h, main/test.c, main/app.c,
main/devicestate.c, main/named_acl.c, res/res_stasis_test.c,
main/asterisk.c, main/presencestate.c, main/stasis.c,
main/stasis_cache.c, main/stasis_endpoints.c: Refactored the rest
of the message types to use the STASIS_MESSAGE_TYPE_* macros.
* include/asterisk/module.h, include/asterisk/stasis_app.h,
include/asterisk/stasis_app_impl.h (added), res/Makefile,
res/res_stasis_answer.c (added), res/res_stasis.c,
apps/app_stasis.c, res/stasis (added): Break res_stasis into
smaller files. When implementing playback for stasis-http, the
monolithicedness of res_stasis really started to get in my way.
This patch breaks the major components of res_stasis.c into
individual files. * res/stasis/app.c - Stasis application
tracking * res/stasis/control.c - Channel control objects *
res/stasis/command.c - Channel command object This refactoring
also allows res_stasis applications to be loaded as independent
modules, such as the new res_stasis_answer module. The bulk of
this patch is simply moving code from one file to another,
adjusting names and adding accessors as necessary. Review:
https://reviewboard.asterisk.org/r/2530/
2013-05-14 19:03 +0000 [r388701] Richard Mudgett <rmudgett@digium.com>
* /, include/asterisk/astobj2.h, main/astobj2.c: Make ao2 global
objects not always use the debug version of the ao2_ref() calls.
The debug versions of ao2_ref() should only be used if REF_DEBUG
is enabled so nothing is written to /tmp/refs unexpectedly.
(closes issue ASTERISK-21785) Reported by: abelbeck Patches:
jira_asterisk_21785_v11.patch (license #5621) patch uploaded by
rmudgett Tested by: abelbeck ........ Merged revisions 388700
from http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-14 12:47 +0000 [r388668] Kinsey Moore <kmoore@digium.com>
* rest-api-templates/stasis_json_resource.h.mustache (added),
res/res_stasis_json_channels.exports.in (added),
res/stasis_json/resource_recordings.h (added),
res/res_stasis_json_asterisk.c (added),
rest-api-templates/res_stasis_json_resource.c.mustache (added),
res/res_stasis_json_recordings.exports.in (added),
res/stasis_json/resource_events.h (added),
res/stasis_http/resource_endpoints.h,
res/stasis_json/resource_sounds.h (added),
tests/test_res_stasis.c, res/res_stasis_json_sounds.exports.in
(added), res/res_stasis_json_endpoints.c (added),
rest-api-templates/res_stasis_json_resource.exports.mustache
(added), res/stasis_http/resource_bridges.h,
res/stasis_json/resource_asterisk.h (added),
res/res_stasis_http_events.c,
res/res_stasis_json_asterisk.exports.in (added),
res/res_stasis_json_playback.exports.in (added),
res/stasis_http/resource_playback.h,
res/res_stasis_json_bridges.c (added),
res/stasis_http/resource_channels.h, res/stasis_json (added),
res/stasis_json/resource_endpoints.h (added),
res/res_stasis_json_playback.c (added), res/res_stasis.c,
rest-api-templates/make_stasis_http_stubs.py,
res/stasis_http/resource_recordings.h,
rest-api-templates/stasis_http_resource.h.mustache,
res/res_stasis_json_endpoints.exports.in (added),
res/res_stasis_json_events.exports.in (added),
res/res_stasis_json_channels.c (added),
rest-api-templates/res_stasis_http_resource.c.mustache,
res/stasis_http/resource_events.h,
res/res_stasis_json_recordings.c (added),
res/stasis_json/resource_bridges.h (added),
res/stasis_http/resource_sounds.h, res/res_stasis_json_events.c
(added), res/res_stasis_json_bridges.exports.in (added),
res/stasis_json/resource_playback.h (added),
res/res_stasis_json_sounds.c (added),
res/stasis_http/resource_asterisk.h,
res/stasis_json/resource_channels.h (added): Move JSON event
generators into separate modules This moves the JSON event
generators out of the Stasis-HTTP modules and into standalone
JSON-related counterparts so that Stasis-HTTP and res_stasis can
depend on them without creating dependency cycles. This also
provides a future location for Swagger Model validator functions
once the generators for that code are written. Review:
https://reviewboard.asterisk.org/r/2534/
2013-05-13 21:21 +0000 [r388602-388617] Michael L. Young <elgueromexicano@gmail.com>
* /, main/logger.c: Fix Missing CALL-ID When Logging Through Syslog
The CALL-ID (ie [C-00000074]) is missing when logging to syslog.
This was just an oversight when this feature was added. * Add
CALL-IDs when using syslog (closes issue ASTERISK-21430) Reported
by: Nikola Ciprich Tested by: Nikola Ciprich, Michael L. Young
Patches: asterisk-21430-syslog-callid_trunk.diff by Michael L.
Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2526/ ........ Merged
revisions 388605 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Fix Crash Caused By One-way Audio With
auto_* NAT Settings Fix The prior code committed, r385473, failed
to take into consideration that not all outgoing calls will be to
a peer. My fault. This patch does the following: * Check if there
is a related peer involved. If there is, check and set NAT
settings according to the peer's settings. * Fix a problem with
realtime peers. If the global setting has auto_force_rport set
and we issued a "sip reload" while a peer is still registered,
the peer's flags for NAT are reset to off. When this happens, we
were always setting the contact address of the peer to that of
the full contact info that we had. (closes issue ASTERISK-21374)
Reported by: jmls Tested by: Michael L. Young Patches:
asterisk-21374-fix-crash-and-rt-peers.diff by Michael L. Young
(license 5026) Review: https://reviewboard.asterisk.org/r/2524/
........ Merged revisions 388601 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-13 20:37 +0000 [r388598] Kinsey Moore <kmoore@digium.com>
* res/res_srtp.c, /: Revert r388529 for now Adding the cleanup
function needs some deeper thought since it apparently doesn't
exist for all variants of libsrtp. ........ Merged revisions
388596 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 388597 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-13 19:29 +0000 [r388579] Jonathan Rose <jrose@digium.com>
* main/pbx.c, /: pbx: Fix lack of cleanup on macrolock and
context_table (closes issue ASTERISK-21723) Reported by: Corey
Farrell Patches: core-pbx-cleanup.patch uploaded by Correy
Farrell (license 5909) ........ Merged revisions 388532 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388578 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-13 18:10 +0000 [r388531] Kinsey Moore <kmoore@digium.com>
* res/res_srtp.c, /: Close libsrtp properly Ensure that libsrtp is
shutdown properly when res_srtp is unloaded. (closes issue
ASTERISK-21719) Reported by: Corey Farrell Patches:
res_srtp-library-shutdown.patch uploaded by Corey Farrell
........ Merged revisions 388529 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388530 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-13 17:20 +0000 [r388526] Jonathan Rose <jrose@digium.com>
* channels/chan_gulp.c: chan_gulp: Minor readability Improvements
to chan_gulp (closes issue ASTERISK-21670) Reported by: Snuffy
Review: https://reviewboard.asterisk.org/r/2473/ Patches:
gulp-coding-guide.diff uploaded by snuffy (license 5024)
2013-05-13 14:28 +0000 [r388479] Richard Mudgett <rmudgett@digium.com>
* main/manager.c, /: Fix SendText AMI action to never return
non-zero. AMI actions must never return non-zero unless they
intend to close the AMI connection. (Which is almost never.)
(closes issue ASTERISK-21779) Reported by: Paul Goldbaum ........
Merged revisions 388477 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388478 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-10 22:12 +0000 [r388427] Richard Mudgett <rmudgett@digium.com>
* /, channels/misdn/isdn_msg_parser.c: Allow mISDN to send PROGRESS
messsage. * Made isdn_msg_parser.c build a progress message with
the mandatory progress indicator IE. (The mISDNuser NT state
machine rejected sending the incomplete message.) Note: The
associated mISDN and mISDNuser patches respectively are viewable
here: http://svnview.digium.com/svn/thirdparty?view=rev&rev=200
http://svnview.digium.com/svn/thirdparty?view=rev&rev=201 (closes
issue AST-1153) Reported by: Guenther Kelleter Patches:
progress-chan_misdn.diff (license #6372) patch uploaded by
Guenther Kelleter progress-misdn.diff (license #6372) mISDN patch
uploaded by Guenther Kelleter progress-misdnuser.diff (license
#6372) mISDNuser patch uploaded by Guenther Kelleter ........
Merged revisions 388425 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388426 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-10 20:50 +0000 [r388380] Mark Michelson <mmichelson@digium.com>
* /, pbx/pbx_dundi.c: Fix memory leak in pbx_dundi pbx_dundi added
an io context without removing it. This caused a memory leak when
the module was unloaded. (closes ASTERISK-21718) Reported by
Corey Farrell Patches: pbx_dundi-ast_io_remove.patch uploaded by
Corey Farrell (License #5909) ........ Merged revisions 388376
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 388378 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-10 20:28 +0000 [r388375] Michael L. Young <elgueromexicano@gmail.com>
* res/res_config_odbc.c: Fix Finding Extensions With Patterns Using
ODBC Realtime After the merge of support for the realtime sorcery
module, extensions that contained a pattern were not being found
through odbc realtime. It was tracked down to this one line that
was advancing to the next variable list before it should have
been. The removal of this one line fixes this. Tested this fix on
my machine. Received confirmation that this is the right fix from
file on IRC.
2013-05-10 17:12 +0000 [r388318-388350] David M. Lee <dlee@digium.com>
* res/res_stasis.c, apps/app_stasis.c,
res/res_stasis_http_asterisk.c,
rest-api-templates/res_stasis_http_resource.c.mustache,
res/res_stasis_http_playback.c, res/res_stasis_websocket.c,
tests/test_res_stasis.c, res/res_stasis_http_channels.c,
include/asterisk/stasis_app.h, res/res_stasis_http_recordings.c,
res/res_stasis_http_endpoints.c, main/loader.c,
res/res_stasis_http_events.c, res/res_stasis_http_sounds.c,
res/res_stasis_http_bridges.c, res/res_stasis_http.c: Address
unload order issues for res_stasis* modules I've noticed when
doing a graceful shutdown that the res_stasis_http.so module gets
unloaded before the modules that use it, which causes some
asserts during their unload. While r386928 was a quick hack to
get it to not assert and die, this patch increases the use counts
on res_stasis.so and res_stasis_http.so properly. It's a bigger
change than I expected, hence the review instead of just
committing it. Review: https://reviewboard.asterisk.org/r/2489/
* include/asterisk/stasis.h: Avoided __ast names for the private
variables created by the STASIS_MESSAGE_TYPE_*() macros.
2013-05-10 13:13 +0000 [r388275] Kinsey Moore <kmoore@digium.com>
* CHANGES, res/res_stasis_http_events.c,
include/asterisk/stasis_channels.h, main/stasis_channels.c,
rest-api-templates/swagger_model.py, res/res_stasis.c,
main/manager_channels.c,
rest-api-templates/stasis_http_resource.h.mustache,
res/stasis_http/resource_recordings.h,
rest-api-templates/asterisk_processor.py,
rest-api-templates/res_stasis_http_resource.c.mustache,
res/stasis_http/resource_endpoints.h,
rest-api/api-docs/events.json, res/stasis_http/resource_events.h,
res/res_stasis_websocket.c, apps/app_userevent.c,
rest-api-templates/event_function_decl.mustache (added),
res/stasis_http/resource_sounds.h: Add channel events for
res_stasis apps This change adds a framework in res_stasis for
handling events from channel topics. JSON event generation and
validation code is created from event documentation in
rest-api/api-docs/events.json to assist in JSON event generation,
ensure consistency, and ensure that accurate documentation is
available for ALL events that are received by res_stasis
applications. The userevent application has been refactored along
with the code that handles userevent channel blob events to pass
the headers as key/value pairs in the JSON blob. As a
side-effect, app_userevent now handles duplicate keys by
overwriting the previous value. Review:
https://reviewboard.asterisk.org/r/2428/ (closes issue
ASTERISK-21180) Patch-By: Kinsey Moore <kmoore@digium.com>
2013-05-10 11:47 +0000 [r388254] Sean Bright <sean@malleable.com>
* /, channels/chan_sip.c: Fix copy/paste error in
one-touch-recording implementation. ........ Merged revisions
388253 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-09 14:41 +0000 [r388175] Matthew Jordan <mjordan@digium.com>
* apps/app_userevent.c: Don't expect to pack three tuples when you
only have two
2013-05-09 04:11 +0000 [r388110-388113] Michael L. Young <elgueromexicano@gmail.com>
* res/res_rtp_asterisk.c, /: Fix The Payload Being Set On CN
Packets And Do Not Set Marker Bit When we send out a CN packet
(for instance, in the case of using rtpkeepalives), we are not
setting the payload code properly. Also, we are setting the
marker bit when we shouldn't be according to RFC 3389, section 4.
AST_RTP_CN is not defined by AST_FORMAT codes. Therefore, we
should be using ast_rtp_codecs_payload_code() rather than
ast_rtp_codecs_payload_lookup(). 11 and trunk already use the
appropriate function. * In 1.8, use ast_rtp_codecs_payload_code()
* Remove the setting of the marker bit * Fix the debug message by
incrementing the seqno after the debug message is set in order to
display the correct seqno that was sent out (closes issue
ASTERISK-21246) Reported by: Peter Katzmann Tested by: Peter
Katzmann, Michael L. Young Patches:
asterisk-21246-rtp-cng-payload-error_1.8_v2.diff uploaded by
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2500/ ........ Merged
revisions 388111 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 388112 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_queue.c, /: Fix Segfault In app_queue When
"persistentmembers" Is Enabled And Using Realtime When the
"ignorebusy" setting was deprecated, we added some code to allow
us to be compatible with older setups that are still using the
"ignorebusy" setting instead of "ringinuse". We set a char
*variable with the column name to use, which helps the realtime
functions to use the correct column in their SQL queries. When
"persistentmembers" is enabled, we are not setting this variable
before the realtime functions were called to load members. This
results in the variable being NULL and therefore causing a
segfault when loading members during the module's process of
loading. The solution was to move the code that sets that
variable to be before these realtime functions are called during
the loading of the module. (closes issue ASTERISK-21738) Reported
by: JoshE Tested by: JoshE Patches:
asterisk-21738-rt-ringinuse-field-not-set.diff uploaded by
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2499/ ........ Merged
revisions 388108 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-08 22:00 +0000 [r388014-388075] David M. Lee <dlee@digium.com>
* res/res_stasis_websocket.c: Fixed MODFLAG for
res_stasis_websocket
* include/asterisk/inline_api.h, build_tools/cflags.xml: Add
development flag to disable the inline API. A GCC bug[1] can, in
some cases, pop up an unsuppressible pedwarn when using a static
inline standard library function from a non-static inline
function. This normally doesn't show up, but can occur if you're
running an upgrade version of GCC (such as GCC 4.8 on OS X, which
normally runs GCC 4.2). [1]:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
* main/enum.c, main/srv.c: Removed #if checks for crazy old
versions of OS X. The <arpa/nameser_compat.h> was introduced way
back in OS X Panther, which itself was end-of-lifed back in 2007.
We can assume that any OS X machine we build on will need that
header file :-) Why bother removing it? The flag we're checking
(__APPLE_CC__) is actually Apple's build number. Self-compiled
versions of GCC (such as installing the latest version of GCC
from homebrew) sets the value to 0, making it useless for this
sort of compile flaggery.
* tests/test_stasis_endpoints.c: Fixed set-but-not-used warning
caught by newer GCC
2013-05-08 18:36 +0000 [r388008] Matthew Jordan <mjordan@digium.com>
* apps/app_directory.c: Don't perform a realtime lookup with a NULL
keyword Previously, a call to ast_load_realtime_multientry could
get away with passing a NULL parameter to the function, even
though it really isn't supposed to do that. After the change over
to using ast_variable instead of variadic arguments, the realtime
engine gets unhappy if you do this. This was always an unintended
function call in app_directory anyway - now, we just don't call
into the realtime function calls if we don't have anything to
query on.
2013-05-08 18:34 +0000 [r388005] David M. Lee <dlee@digium.com>
* main/stasis_channels.c, res/res_stasis.c,
main/manager_channels.c, main/channel.c,
include/asterisk/stasis_channels.h, tests/test_stasis_channels.c,
apps/app_userevent.c, include/asterisk/stasis.h: Remove required
type field from channel blobs When we first introduced the
channel blob types, the JSON blobs were self identifying by a
required "type" field in the JSON object itself. This, as it
turns out, was a bad idea. When we introduced the message router,
it was useless for routing based on the JSON type. And messages
had two type fields to check: the stasis_message_type() of the
message itself, plus the type field in the JSON blob (but only if
it was a blob message). This patch corrects that mistake by
removing the required type field from JSON blobs, and introducing
first class stasis_message_type objects for the actual message
type. Since we now will have a proliferation of message types, I
introduced a few macros to help reduce the amount of boilerplate
necessary to set them up. Review:
https://reviewboard.asterisk.org/r/2509
2013-05-08 16:58 +0000 [r387974] Richard Mudgett <rmudgett@digium.com>
* utils: Add version.c to list of ignored files in the utils
directory.
2013-05-08 13:39 +0000 [r387932] David M. Lee <dlee@digium.com>
* include/asterisk/stasis.h, main/endpoints.c (added),
main/astobj2.c, res/res_stasis_http_endpoints.c,
tests/test_stasis_endpoints.c (added),
res/res_stasis_test.exports.in (added), tests/test_endpoints.c
(added), include/asterisk/stasis_endpoints.h (added),
res/res_stasis_test.c (added),
res/stasis_http/resource_endpoints.c, channels/sip/include/sip.h,
main/asterisk.c, rest-api/api-docs/endpoints.json,
res/stasis_http/resource_endpoints.h, main/stasis_cache.c,
main/stasis_endpoints.c (added), channels/chan_sip.c,
include/asterisk/endpoints.h (added), include/asterisk/astobj2.h,
main/channel_internal_api.c, include/asterisk/stasis_test.h
(added): Initial support for endpoints. An endpoint is an
external device/system that may offer/accept channels to/from
Asterisk. While this is a very useful concept for end users, it
is surprisingly not a core concept within Asterisk itself. This
patch defines ast_endpoint as a separate object, which channel
drivers may use to expose their concept of an endpoint. As the
channel driver creates channels, it can use
ast_endpoint_add_channel() to associate channels to the endpoint.
This updated the endpoint appropriately, and forwards all of the
channel's events to the endpoint's topic. In order to avoid
excessive locking on the endpoint object itself, the mutable
state is not accessible via getters. Instead, you can create a
snapshot using ast_endpoint_snapshot_create() to get a consistent
snapshot of the internal state. This patch also includes a set of
topics and messages associated with endpoints, and
implementations of the endpoint-related RESTful API. chan_sip was
updated to create endpoints with SIP peers, but the state of the
endpoints is not updated with the state of the peer. Along for
the ride in this patch is a Stasis test API. This is a
stasis_message_sink object, which can be subscribed to a Stasis
topic. It has functions for blocking while waiting for conditions
in the message sink to be fulfilled. (closes issue
ASTERISK-21421) Review: https://reviewboard.asterisk.org/r/2492/
2013-05-08 07:21 +0000 [r387885] Alec L Davis <sivad.a@paradise.net.nz>
* /, channels/chan_sip.c: chan_sip: NOTIFYs for BLF start queuing
up and fail to be sent out after retries fail RFC6665 4.2.2: ...
after a failed State NOTIFY transaction remove the subscription
The problem is that the State Notify requests rely on the 200OK
reponse for pacing control and to not confuse the notify
susbsystem. The issue is, the pendinginvite isn't cleared if a
response isn't received, thus further notify's are never sent.
The solution, follow RFC 6665 4.2.2's 'SHOULD' and remove the
subscription after failure. (closes issue ASTERISK-21677)
Reported by: Dan Martens Tested by: alecdavis alecdavis (license
585) Review https://reviewboard.asterisk.org/r/2475/ ........
Merged revisions 387875 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387880 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-07 18:32 +0000 [r387803-387825] David M. Lee <dlee@digium.com>
* include/asterisk/lock.h: Fixed up \example marker in lock.h
Doxygen comment. The \example tags marks an entire file as an
example, not a code snippet.
* res/res_config_pgsql.c, main/manager.c, /: Minor fixups to
Doxygen comments. The \example tags marks an entire file as an
example, not a code snippet. ........ Merged revisions 387823
from http://svn.asterisk.org/svn/asterisk/branches/11
* include/asterisk/json.h: Better explained the depths of reference
stealing.
2013-05-07 17:53 +0000 [r387802] Jason Parker <jparker@digium.com>
* include/asterisk.h: Fix build breakage, from LOW_MEMORY fix.
2013-05-06 17:15 +0000 [r387740-387741] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/astobj2.h: Update ao2_destructor_fn doxygen.
* channels/chan_dahdi.c: Make a log NOTICE more explicit that the
event comes from DAHDI and not PRI.
2013-05-06 17:01 +0000 [r387738] Jason Parker <jparker@digium.com>
* main/asterisk.c: Fix building with LOW_MEMORY defined.
2013-05-06 15:58 +0000 [r387690] Russell Bryant <russell@russellbryant.com>
* /, apps/app_meetme.c: Make SLA reload more paranoid. Reload
support was originally not included for SLA. It was added later,
but in a fairly non-traditional way. It basically sets a flag
indicating that a reload is pending, and then waits for a time
where it thinks everything SLA related is idle and unused, and
*then* executes the reload. It does this because the reload
process is destructive. It starts by throwing everything away and
starting over. There are a number of problems with this approach.
One of them is that the check to see if anything in use was
incomplete. This patch makes it more complete and thus less
likely for a crash to occur during reload processing. However,
this approach still has problems so some much more significant
reworking of this code will need to come in as a next step. Patch
credit and testing by CoreDial, LLC. ........ Merged revisions
387688 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 387689 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-06 13:04 +0000 [r387662] Joshua Colp <jcolp@digium.com>
* res/res_sorcery_astdb.c, tests/test_sorcery.c, main/sorcery.c,
include/asterisk/sorcery.h: Add support for observers and JSON
objectset creation to sorcery. This change adds the ability for
modules to add themselves as observers to sorcery object types.
Observers can be notified when objects are created, updated, or
deleted as well as when the object type is loaded or reloaded.
Observer notifications are done using a thread pool in a
serialized fashion so the caller of the sorcery API calls is
minimally impacted. This also adds the ability to create JSON
changesets of a sorcery object. Tests are also present to confirm
all of the above functionality. Review:
https://reviewboard.asterisk.org/r/2477/
2013-05-04 16:00 +0000 [r387630-387633] Matthew Jordan <mjordan@digium.com>
* main/asterisk.c, include/asterisk.h: Clean up documentation;
prevent ref leak on exit This patch: * Cleans up some doxygen *
Prevents leaking the system level Stasis topics and messages on
exit (users of valgrind will be happier)
* funcs/func_global.c: Migrate SHARED's use of the VarSet AMI event
to Stasis-Core This patch removes the direct call to AMI from the
SHARED function and instead call Stasis-Core. Stasis-Core
delivers the notification that a shared variable has changed on a
channel to all interested consumers. (issue ASTERISK-21462)
2013-05-03 18:03 +0000 [r387594] Jonathan Rose <jrose@digium.com>
* main/asterisk.c, include/asterisk.h, channels/chan_sip.c,
res/res_stun_monitor.c, main/event.c, channels/chan_iax2.c:
Stasis: Convert network change events into network change stasis
messages (issue ASTERISK-21103) Review:
https://reviewboard.asterisk.org/r/2490/
2013-05-03 11:35 +0000 [r387545] Joshua Colp <jcolp@digium.com>
* res/res_sip_sdp_rtp.c, channels/chan_gulp.c: Use the configured
formats for Gulp sessions if there are no joint formats between
requested formats and configured formats. (closes issue
ASTERISK-21756)
2013-05-02 20:59 +0000 [r387519] Matthew Jordan <mjordan@digium.com>
* apps/app_stack.c, build_tools/post_process_documentation.py:
Migrate AMI VarSet events raised by GoSub local variables This
patch moves VarSet events for local variables raised by GoSub
over to Stasis-Core. It also tweaks up the post-processing
documentation scripts to not combine parameters if both
parameters are already documented. (issue ASTERISK-21462)
2013-05-02 19:06 +0000 [r387482] Richard Mudgett <rmudgett@digium.com>
* main/channel.c: Remove the ABI compatability ast_channel_alloc().
It is no longer needed.
2013-05-02 17:15 +0000 [r387423] Matthew Jordan <mjordan@digium.com>
* utils/Makefile, /: Update utils Makefile to handle r387294 Alec's
patch that added the Asterisk version to 'core show locks'
angered the items in utils, as they exist somewhat outside of the
Asterisk build system. Some day, this Makefile should get nuked
from high orbit, but for now, include version.c in its list of
stuff to pile in. ........ Merged revisions 387421 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387422 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-02 16:39 +0000 [r387420] Jonathan Rose <jrose@digium.com>
* include/asterisk/event_defs.h, main/event.c: Putting all event
defs and names back for now due to res_corosync dependency
2013-05-02 08:24 +0000 [r387296-387369] Alec L Davis <sivad.a@paradise.net.nz>
* channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip:
Session-Expires: Set timer to correctly expire at (~2/3) of the
interval when not the refresher RFC 4028 Section 10 if the side
not performing refreshes does not receive a session refresh
request before the session expiration, it SHOULD send a BYE to
terminate the session, slightly before the session expiration.
The minimum of 32 seconds and one third of the session interval
is RECOMMENDED. Prior to this asterisk would refresh at 1/2 the
Session-Expires interval, or if the remote device was the
refresher, asterisk would timeout at interval end. Now, when not
refresher, timeout as per RFC noted above. (closes issue
ASTERISK-21742) Reported by: alecdavis Tested by: alecdavis
alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2488/ ........ Merged
revisions 387344 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387345 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: chan_sip: Honor Session-Expires in 200OK
response when it's a RE-INVITE when asterisk is the refresher.
RFC 4028 Section 7.2 "UACs MUST be prepared to receive a
Session-Expires header field in a response, even if none were
present in the request." What changed After ASTERISK-20787,
inbound calls to asterisk with no Session-Expires in the INVITE
are now are offered a Session-Expires (1800 asterisk default) in
the response, with asterisk as the refresher. Symptom: After 900
seconds (asterisk default refresher period 1800), asterisk
RE-INVITEs the device, the device may respond with a much lower
Session-Expires (180 in our case) value that it is now using.
Asterisk ignores this response, as it's deemed both an INBOUND
CALL, and a RE-INVITE. After 180 seconds the device times out and
sends BYE (hangs up), asterisk is still working with the
refresher period of 1800 as it ignored the 'Session Expires: 180'
in the previous 200OK response. Fix: handle_response_invite()
when 200OK, remove check for outbound and reinvite. (closes issue
ASTERISK-21664) Reported by: alecdavis Tested by: alecdavis
alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2463/ ........ Merged
revisions 387312 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387319 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_dahdi.c, /: chan_dahdi: fix lower bound check with
-ve integer conversion from a float Lower bound of a 16bit signed
int is -32768 not -32767 (closes issue ASTERISK-21744) Reported
by: alecdavis Tested by: alecdavis alecdavis (license 585)
........ Merged revisions 387297 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387298 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/utils.c: Add Asterisk Version to core show locks Assist
with reporting 'core show locks' when submitting bug reports.
Example below: =========================== == SVN-branch-1.8-...
== Currently Held Locks =========================== (closes issue
ASTERISK-21743) Reported by: alecdavis Tested by: alecdavis
alecdavis (license 585) ........ Merged revisions 387294 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387295 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-01 21:55 +0000 [r387260-387261] Richard Mudgett <rmudgett@digium.com>
* channels/chan_local.c: Simplify
chan_local.c:manager_optimize_away() using ao2_find().
* channels/chan_local.c: Cleanup chan_local.c:local_new(). * Remove
t and ama local variables. There is no way they could be anything
other than default because p->owner can only be NULL at this
point. * Rename tmp and tmp2 to owner and chan respectively. *
Remove redundant initialization of channel context, exten,
priority.
2013-05-01 21:18 +0000 [r387220] Matthew Jordan <mjordan@digium.com>
* res/res_rtp_asterisk.c, /: Clear the DTMF sending digit tracking
on off nominal paths In certain situations, when the RTP engine
goes to send a DTMF end digit it may be in a situation where the
remote address is no longer available, or the digit that was
supposed to be sent is invalid. In such cases, we need to clear
the RTP counters appropriately. Otherwise, when the RTP source is
set again, we'll continue to think that we're in the middle of
sending a DTMF digit, which can confuse the remote party
(signficantly). (closes issue ASTERISK-21522) Reported by: Corey
Farrell patches: rtp_dtmf_process_end.patch uploaded by Corey
Farrell (License 5909) ........ Merged revisions 387213 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387216 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-01 21:09 +0000 [r387181-387212] Richard Mudgett <rmudgett@digium.com>
* channels/chan_local.c: Trivial changes. Comments, parentheses,
spelling, wording.
* channels/chan_local.c: Make chan_local locals container an
explicit list container. Pretending that chan_local locals
container can have more than one bucket is silly. The container
has no key to help search.
* channels/chan_local.c: Whitespace changes.
* main/loader.c: Make mod_load_cmp() not as klunky. There is a
reason the heap comparison functions like qsort(), and other
comparison functions specify <0, >0, and =0 for the return
values.
* channels/chan_unistim.c: Remove some unnecessary calls to
ast_bridged_channel() in chan_unistim.c
* channels/chan_mgcp.c: Remove some unnecessary calls to
ast_bridged_channel() in chan_mgcp.c
* channels/chan_skinny.c: Remove some unnecessary calls to
ast_bridged_channel() in chan_skinny.c
* channels/chan_iax2.c: Remove some unnecessary calls to
ast_bridged_channel() in chan_iax2.c
* channels/chan_dahdi.c, channels/sig_analog.c: Remove some
unnecessary calls to ast_bridged_channel() in
chan_dahdi.c/sig_analog.c
2013-05-01 18:38 +0000 [r387135] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: Prevent crash in 'sip show peers' when
the number of peers on a system is large When you have lots of
SIP peers (according to the issue reporter, around 3500), the
'sip show peers' CLI command or AMI action can crash due to a
poorly placed string duplication that occurs on the stack. This
patch refactors the command to not allocate the string on the
stack, and handles the formatting of a single peer in a separate
function call. (closes issue ASTERISK-21466) Reported by:
Guillaume Knispel patches:
fix_sip_show_peers_stack_overflow_asterisk_11.3.0-v2.patch
uploaded by gknispel (License 6492) ........ Merged revisions
387134 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-05-01 17:15 +0000 [r387108] Richard Mudgett <rmudgett@digium.com>
* channels/chan_dahdi.c: Move some annoying chan_dahdi debug
messages to level 5.
2013-04-30 22:50 +0000 [r387039] Matthew Jordan <mjordan@digium.com>
* main/features.c, /: Fix CDR not being created during an
externally initiated blind transfer Way back when in the dark
days of Asterisk 1.8.9, blind transferring a call in a context
that included the 'h' extension would inadvertently execute the
hangup code logic on the transferred channel. This was a "bad
thing". The fix was to properly check for the softhangup flags on
the channel and only execute the 'h' extension logic (and, in
later versions, hangup handler logic) if the channel was well and
truly dead (Jim). Unfortunately, CDRs are fickle. Setting the
softhangup flag when we detected that the channel was leaving the
bridge (but not to die) caused some crucial snippet of CDR code,
lying in ambush in the middle of the bridging code, to not get
executed. This had the effect of blowing away one of the CDRs
that is typically created during a blind transfer. While we live
and die by the adage "don't touch CDRs in release branches", this
was our bad. The attached patch restores the CDR behavior, and
still manages to not run the 'h' extension during a blind
transfer (at least not when it's supposed to). Thanks to Steve
Davies for diagnosing this and providing a fix. Review:
https://reviewboard.asterisk.org/r/2476 (closes issue
ASTERISK-21394) Reported by: Ishfaq Malik Tested by: Ishfaq
Malik, mjordan patches: fix_missing_blindXfer_cdr2 uploaded by
one47 (License 5012) ........ Merged revisions 387036 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 387038 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-30 22:37 +0000 [r387035-387037] Jonathan Rose <jrose@digium.com>
* main/event.c, include/asterisk/json.h, channels/chan_iax2.c,
main/named_acl.c, include/asterisk/acl.h, main/json.c,
main/manager.c, channels/chan_sip.c,
include/asterisk/event_defs.h: Stasis Core: Refactor ACL Change
events to go out over the stasis core msg bus (issue
ASTERISK-21103) Reported by: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2481/
* main/event.c, /: Add forgotten event types to event_names array
........ Merged revisions 387030 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-30 18:12 +0000 [r386990] Jason Parker <jparker@digium.com>
* channels/chan_gulp.c: Fix a log message.
2013-04-30 13:48 +0000 [r386931] Sean Bright <sean@malleable.com>
* include/asterisk/utils.h, /: Use the proper lower bound when
doing saturation arithmetic. 16 bit signed integers have a range
of [-32768, 32768). The existing code was using the interval
(-32768, 32768) instead. This patch fixes that. Review:
https://reviewboard.asterisk.org/r/2479/ ........ Merged
revisions 386929 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 386930 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-30 13:37 +0000 [r386928] David M. Lee <dlee@digium.com>
* tests/test_stasis_http.c, res/res_stasis_http.c: Just a couple of
Stasis-HTTP nitpick fixes. * Fixed crash when res_stasis_http is
unloaded before the implementation modules. * Cleaned up test
initialization for test_stasis_http.so.
2013-04-29 23:36 +0000 [r386879] Rusty Newton <rnewton@digium.com>
* sounds/Makefile, /: Modifying sounds/Makefile to pull down 1.4.24
core sounds 1.4.24 core sounds includes a full set of Italian
prompts for core sounds and a fix for the missing voicemail
prompts in the Russian language. (closes issue ASTERISK-19431)
(closes issue ASTERISK-19721) ........ Merged revisions 386877
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 386878 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-29 13:38 +0000 [r386793-386841] Olle Johansson <oej@edvina.net>
* /, CHANGES, apps/app_queue.c: Play periodic prompts for first
call in a call queue Review:
https://reviewboard.asterisk.org/r/2263/ ........ Merged
revisions 386792 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 386794 from
http://svn.asterisk.org/svn/asterisk/branches/11
* include/asterisk/doxygen/commits.h: Change pointer to existing
wiki page instead of non-existing page
2013-04-28 03:32 +0000 [r386774] Kinsey Moore <kmoore@digium.com>
* rest-api-templates/swagger_model.py: Fix spelling error in python
doc
2013-04-27 19:03 +0000 [r386731-386760] Joshua Colp <jcolp@digium.com>
* res/res_sip.c: Tweak res_sip priority so it gets loaded first
before all other SIP stuff.
* res/res_config_sqlite.c: Update res_config_sqlite to use the
ast_variable lists.
* main/config.c, tests/test_sorcery_realtime.c (added),
main/sorcery.c, res/res_sorcery_realtime.c (added),
addons/res_config_mysql.c, res/res_config_sqlite3.c,
res/res_config_curl.c, res/res_config_pgsql.c,
res/res_config_odbc.c, include/asterisk/config.h, CHANGES,
res/res_config_ldap.c: Add support for a realtime sorcery module.
This change does the following: 1. Adds the sorcery realtime
module 2. Adds unit tests for the sorcery realtime module 3.
Changes the realtime core to use an ast_variable list instead of
variadic arguments 4. Changes all realtime drivers to accept an
ast_variable list Review:
https://reviewboard.asterisk.org/r/2424/
2013-04-26 21:52 +0000 [r386685-386686] Matthew Jordan <mjordan@digium.com>
* res/res_sip_endpoint_identifier_user.c, res/res_sip_pubsub.c,
res/res_sip_nat.c, res/res_sip_registrar.c,
res/res_sip_dtmf_info.c,
res/res_sip_outbound_authenticator_digest.c,
res/res_sip_rfc3326.c, res/res_sip_outbound_registration.c,
res/res_sip_endpoint_identifier_ip.c,
res/res_sip_endpoint_identifier_constant.c, res/res_sip_mwi.c,
res/res_sip_acl.c, res/res_sip_logger.c: Add missing module
dependencies to various res_sip* modules This patch updates the
various res_sip modules with their proper menuselect options and
proper dependencies, such that Asterisk still has a snowball's
chance in hell of compiling without pjproject. Much thanks to
snuffy(-home|-work) for making everyone's life easier with this
patch. Review: https://reviewboard.asterisk.org/r/2472/ (closes
issue ASTERISK-21669) Reported by: snuffy patches:
xml-depends.diff uploaded by snuffy (license 5024)
* /, main/config.c: Clean up memory leak in config file on off
nominal paths when glob is allowed If a system allows for its
usage, Asterisk will use glob to help parse Asterisk .conf files.
The config file loading routine was leaking the memory allocated
by the glob() routine when the config file was in an unmodified
or invalid state. This patch properly calls globfree in those off
nominal paths. (closes issue ASTERISK-21412) Reported by: Corey
Farrell patches: config_glob_leak.patch uploaded by Corey Farrell
(license 5909) ........ Merged revisions 386672 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 386677 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-26 21:31 +0000 [r386684] David M. Lee <dlee@digium.com>
* main/loader.c: By popular demand, putting the
about-to-load-module printf back. But now it only prints during
the initial startup, and prints at verbose 1 level.
2013-04-26 21:27 +0000 [r386676] Matthew Jordan <mjordan@digium.com>
* /, main/features.c: Clean up resources in features on exit This
patch cleans up two things features: * It properly unregisters
the CLI commands that features registered * It cancels and
performs a pthread_join on the created parking thread. This not
only properly joins a non-detached thread, but also prevents
disposing of the parking lots prior to the parking thread
completely exiting. (closes issue ASTERISK-21407) Reported by:
Corey Farrell patches: features_shutdown-r2.patch uploaded by
Corey Farrell (License 5909) ........ Merged revisions 386641
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 386642 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-26 21:00 +0000 [r386640] David M. Lee <dlee@digium.com>
* main/loader.c: Removing stray printf from r386540
2013-04-26 20:32 +0000 [r386638] Mark Michelson <mmichelson@digium.com>
* main/uuid.c: Add an \extref doxygen pointer for libuuid. Thanks
to Olle Johansson for suggesting this.
2013-04-26 20:05 +0000 [r386623-386624] David M. Lee <dlee@digium.com>
* res/res_statsd.c (added), res/res_chan_stats.c (added),
res/res_statsd.exports.in (added), configs/statsd.conf.sample
(added), include/asterisk/utils.h, include/asterisk/statsd.h
(added): Example of how to use the Stasis message bus In order to
get people familiar with the Stasis message bus, it would be
useful to have something of a tutorial. Since I'm not clever
enough to think of some cool integration we could do with
Twitter, I settled for something that might actually be useful.
This patch adds a res_statsd.so module, which implements a basic
statsd[1] client. Statsd is a very simple statistics gathering
server, which can publish its results to a backend graphing
engine, like Graphite[2]. There are several different Statsd
server implementations[3], so you can pick what works best for
your environment. The actual example of how to use the Stasis
message bus is in res_chan_stats.so. This module demonstrates how
to use subscriptions and the message router by monitoring
messages and posting channels stats to the statsd server. A wiki
page walking through res_chan_stats.so is forthcoming. [1]:
https://github.com/etsy/statsd/ [2]:
http://graphite.readthedocs.org/en/latest/ [3]:
http://joemiller.me/2011/09/21/list-of-statsd-server-implementations/
Review: https://reviewboard.asterisk.org/r/2460/
* res/res_sip: Ignore *.[oi] files in res/res_sip
2013-04-25 21:32 +0000 [r386577] Joshua Colp <jcolp@digium.com>
* configs/res_sip.conf.sample: Don't bind to anything in the sample
configuration so we don't clash with chan_sip on a "make samples"
right now.
2013-04-25 18:28 +0000 [r386540-386541] Mark Michelson <mmichelson@digium.com>
* /: REmove automerge properties.
* res/res_sip/config_domain_aliases.c, channels/chan_gulp.c
(added), res/res_sip_logger.c (added), res/res_sip.c (added),
include/asterisk/res_sip_pubsub.h (added),
res/res_sip_outbound_authenticator_digest.c (added),
res/res_sip_outbound_registration.c (added), main/sorcery.c,
res/res_sip_acl.c (added), configs/res_sip.conf.sample (added),
res/res_sip/sip_configuration.c, /, res/res_sip_dtmf_info.c
(added), res/res_sip/include/res_sip_private.h,
include/asterisk/res_sip_session.h (added), main/threadpool.c,
res/res_sip_endpoint_identifier_ip.c (added),
tests/test_sorcery.c, res/res_sip_sdp_rtp.c (added),
res/res_sip/sip_outbound_auth.c, main/loader.c,
res/res_sip_caller_id.c (added),
res/res_sip_endpoint_identifier_user.c (added),
res/res_sip/include, res/res_sip_nat.c (added), configure,
res/res_sip_session.c (added), res/res_sip/sip_options.c,
include/asterisk/sorcery.h, res/res_sip_pubsub.exports.in
(added), res/res_sip_rfc3326.c (added), res/res_sip/location.c,
res/res_sip_endpoint_identifier_constant.c (added),
res/res_sip_mwi.c (added), res/res_sip (added),
res/res_sip_pubsub.c (added), res/res_sorcery_config.c,
res/res_sip/config_transport.c, include/asterisk/threadpool.h,
res/res_sip_registrar.c (added),
include/asterisk/autoconfig.h.in, include/asterisk/res_sip.h
(added), res/res_sip/sip_distributor.c,
res/res_sip/config_auth.c, res/res_sip.exports.in (added),
res/Makefile, res/res_sip_authenticator_digest.c (added),
main/taskprocessor.c, res/res_sip_session.exports.in (added),
channels/Makefile, main/astobj2.c: Merge the pimp_my_sip branch
into trunk. The pimp_my_sip branch is being merged at this point
because it offers basic functionality, and from an API
standpoint, things are complete. SIP work is *not*
feature-complete; however, with the completion of the
SUBSCRIBE/NOTIFY API, all APIs (except a PUBLISH API) have been
created, and thus it is possible for developers to attempt to
create new SIP work. API documentation can be found in the
doxygen in the code, but usability documentation is still
lacking.
2013-04-25 03:04 +0000 [r386485-386487] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix Displaying Symmetric RTP Global
Setting * Use comedia_string() to display correctly the symmetric
rtp setting when running "sip show settings" ........ Merged
revisions 386486 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Change Case On Forcerport For Consistency
* Change "ForcerPort" to "Forcerport" to match everywhere else it
is displayed ........ Merged revisions 386483 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 386484 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-24 21:47 +0000 [r386461-386462] David M. Lee <dlee@digium.com>
* res/stasis_http/resource_channels.h,
res/stasis_http/resource_sounds.h,
res/stasis_http/resource_bridges.h,
res/stasis_http/resource_recordings.h,
rest-api-templates/stasis_http_resource.h.mustache,
res/stasis_http/resource_endpoints.h,
res/stasis_http/resource_events.h,
res/stasis_http/resource_asterisk.h,
res/stasis_http/resource_playback.h: Document JSON models in
resource_*.h
* rest-api-templates/swagger_model.py: Oops. Mustache doesn't like
dictionaries
2013-04-23 20:18 +0000 [r386375] Richard Mudgett <rmudgett@digium.com>
* apps/app_confbridge.c, apps/confbridge/conf_config_parser.c:
confbridge: Make search the conference bridges container using
OBJ_KEY. * Make confbridge config parsing user profile, bridge
profile, and menu container hash/cmp functions correctly check
the OBJ_POINTER, OBJ_KEY, and OBJ_PARTIAL_KEY flags. * Made
confbridge load_module()/unload_module() free all resources on
failure conditions.
2013-04-23 18:57 +0000 [r386352] Kinsey Moore <kmoore@digium.com>
* res/res_stasis.c: Fix some bad whitespace This crept in with the
RESTful HTTP interface merge.
2013-04-22 16:44 +0000 [r386289] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, /: Fix crash when AMI redirect action redirects
two channels out of a bridge. The two party bridging loops were
changing the bridge peer pointers without the channel locks held.
Thus when ast_channel_massquerade() tested and used the pointer
there is a small window of opportunity for the pointers to become
NULL even though the masquerade code has the channels locked.
(closes issue ASTERISK-21356) Reported by: William luke Patches:
jira_asterisk_21356_v11.patch (license #5621) patch uploaded by
rmudgett Tested by: William luke ........ Merged revisions 386256
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 386286 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-22 16:22 +0000 [r386266] Andrew Latham <lathama@gmail.com>
* include/asterisk/srv.h: Doxygen - Markup Guidelines Expand on a
commit by OEJ to use the Coding-Guidelines (issue ASTERISK-20259)
2013-04-22 14:58 +0000 [r386232] David M. Lee <dlee@digium.com>
* res/res_stasis_http_playback.c (added), res/stasis_http (added),
configs/stasis_http.conf.sample (added),
include/asterisk/stasis_http.h (added),
res/res_stasis_http_channels.c (added),
include/asterisk/stasis_app.h, res/Makefile,
include/asterisk/json.h, res/res_stasis_http_recordings.c
(added), res/stasis_http.make (added), tests/test_strings.c,
res/res_stasis_http_endpoints.c (added),
res/res_stasis_http_events.c (added), include/asterisk/http.h,
Makefile, main/json.c, res/res_stasis_http.exports.in (added),
rest-api-templates (added), res/stasis_http/resource_channels.c,
res/res_stasis_http_sounds.c (added), rest-api (added),
main/http.c, res/res_stasis_http_bridges.c (added),
tests/test_stasis_http.c (added), include/asterisk/strings.h,
res/res_stasis_http.c (added), tests/test_stasis.c,
res/res_stasis.c, res/res_stasis_http_asterisk.c (added): This
patch adds a RESTful HTTP interface to Asterisk. The API itself
is documented using Swagger, a lightweight mechanism for
documenting RESTful API's using JSON. This allows us to use
swagger-ui to provide executable documentation for the API,
generate client bindings in different languages, and generate a
lot of the boilerplate code for implementing the RESTful
bindings. The API docs live in the rest-api/ directory. The
RESTful bindings are generated from the Swagger API docs using a
set of Mustache templates. The code generator is written in
Python, and uses Pystache. Pystache has no dependencies, and be
installed easily using pip. Code generation code lives in
rest-api-templates/. The generated code reduces a lot of
boilerplate when it comes to handling HTTP requests. It also
helps us have greater consistency in the REST API. (closes issue
ASTERISK-20891) Review: https://reviewboard.asterisk.org/r/2376/
2013-04-22 12:45 +0000 [r386211] Olle Johansson <oej@edvina.net>
* include/asterisk/srv.h: Fix mistake in Doxygen. Doxygen is only
*ONE* comment that applies to the NEXT piece of code.
2013-04-22 01:05 +0000 [r386190] Russell Bryant <russell@russellbryant.com>
* apps/app_meetme.c: sla: remove redundant locking. sla.lock was
already locked in the only place that sla_check_reload() was
called. Remove the redundant locking of sla.lock done in this
function. Less recursive locking is A Good Thing.
2013-04-19 22:27 +0000 [r386160] Matthew Jordan <mjordan@digium.com>
* /, res/res_timing_pthread.c: Prevent res_timing_pthread from
blocking callers There were several reports of deadlock when
using res_timing_pthread. Backtraces indicated that one thread
was blocked waiting for the write to the pipe to complete and
this thread held the container lock for the timers. Therefore any
thread that wanted to create a new timer or read an existing
timer would block waiting for either the timer lock or the
container lock and deadlock ensued. This patch changes the way
the pipe is used to eliminate this source of deadlocks: 1) The
pipe is placed in non-blocking mode so that it would never block
even if the following changes someone fail... 2) Instead of
writing bytes into the pipe for each "tick" that's fired the pipe
now has two states--signaled and unsignaled. If signaled, the
pipe is hot and any pollers of the read side filedescriptor will
be woken up. If unsigned the pipe is idle. This eliminates even
the chance of filling up the pipe and reduces the potential
overhead of calling unnecessary writes. 3) Since we're tracking
the signaled / unsignaled state, we can eliminate the exta poll
system call for every firing because we know that there is data
to be read. (closes issue ASTERISK-21389) Reported by: Matt
Jordan Tested by: Shaun Ruffell, Matt Jordan, Tony Lewis patches:
0001-res_timing_pthread-Reduce-probability-of-deadlocking.patch
uploaded by sruffell (License 5417) (closes issue ASTERISK-19754)
Reported by: Nikola Ciprich (closes issue ASTERISK-20577)
Reported by: Kien Kennedy (closes issue ASTERISK-17436) Reported
by: Henry Fernandes (closes issue ASTERISK-17467) Reported by:
isrl (closes issue ASTERISK-17458) Reported by: isrl Review:
https://reviewboard.asterisk.org/r/2441/ ........ Merged
revisions 386109 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 386159 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-19 05:20 +0000 [r386019-386054] David M. Lee <dlee@digium.com>
* main/cli.c, /: cli.c: Properly initialize debug_modules and
verbose_modules. This avoids some lock errors on the core set
{debug,verbose} commands. ........ Merged revisions 386049 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 386051 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_http_websocket.c, include/asterisk/http_websocket.h:
Allow WebSocket connections on more URL's This patch adds the
concept of ast_websocket_server to res_http_websocket, allowing
WebSocket connections on URL's more more than /ws. The existing
funcitons for managing the WebSocket subprotocols on /ws still
work, so this patch should be completely backward compatible.
(closes issue ASTERISK-21279) Review:
https://reviewboard.asterisk.org/r/2453/
* main/message.c, /: Fix lock errors on startup. In messages.c,
there are several places in the code where we create a
tmp_tech_holder and pass that into an ao2_find call.
Unfortunately, we weren't initializing the rwlock on the
tmp_tech_holder, which the hash function was locking. It's
apparently harmless, but still not the best code. This patch
extracts all that copy/pasted code into two functions,
msg_find_by_tech and msg_find_by_tech_name, which properly
initialize and destroy the rwlock on the tmp_tech_holder. Review:
https://reviewboard.asterisk.org/r/2454/ ........ Merged
revisions 386006 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-16 23:44 +0000 [r385939] Alec L Davis <sivad.a@paradise.net.nz>
* /, res/res_xmpp.c, res/res_jabber.c: res_xmpp and res_jabber need
to search 'cachable' in the attrib section of the received IE,
not data. (issue ASTERISK-20175) (closes issue ASTERISK-21429)
(closes issue ASTERISK-21069) (closes issue ASTERISK-21164)
Reported by: alecdavis Tested by: alecdavis alecdavis (license
585) Review https://reviewboard.asterisk.org/r/2452/
2013-04-16 17:50 +0000 [r385860-385886] Kinsey Moore <kmoore@digium.com>
* res/res_corosync.c: Allow res_corosync to build
ast_enable_distributed_devstate is no longer applicable to how
the distributed device state system works and is no longer
necessary.
* include/asterisk/presencestate.h, main/presencestate.c,
main/pbx.c, funcs/func_presencestate.c: Move presence state
distribution to Stasis-core Convert presence state events to
Stasis-core messages and remove redundant serializers where
possible. Review: https://reviewboard.asterisk.org/r/2410/
(closes issue ASTERISK-21102) Patch-by: Kinsey Moore
<kmoore@digium.com>
* include/asterisk/devicestate.h, main/pbx.c, main/ccss.c,
include/asterisk/xmpp.h, tests/test_devicestate.c,
main/devicestate.c, res/res_xmpp.c, apps/app_queue.c,
res/res_jabber.c, main/asterisk.c: Move device state distribution
to Stasis-core In the move from Asterisk's event system to
Stasis, this makes distributed device state aggregation
always-on, removes unnecessary task processors where possible,
and collapses aggregate and non-aggregate states into a single
cache for ease of retrieval. This also removes an intermediary
step in device state aggregation. Review:
https://reviewboard.asterisk.org/r/2389/ (closes issue
ASTERISK-21101) Patch-by: Kinsey Moore <kmoore@digium.com>
2013-04-16 14:09 +0000 [r385835] David M. Lee <dlee@digium.com>
* include/asterisk/stasis_channels.h: Fixed a typo
2013-04-15 17:26 +0000 [r385782] Jason Parker <jparker@digium.com>
* Makefile, /: Don't unnecessarily rebuild things on every run of
'make'. Review: https://reviewboard.asterisk.org/r/2449/ ........
Merged revisions 385745 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385768 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-15 16:47 +0000 [r385718-385743] David M. Lee <dlee@digium.com>
* res/res_stasis_websocket.c: Avoid unused variable warning when
not in devmode
* main/stasis_channels.c, tests/test_app_stasis.c (removed),
res/res_stasis.c (added), main/manager_channels.c,
apps/app_stasis.c, tests/test_json.c, res/res_stasis_websocket.c,
tests/test_res_stasis.c (added), tests/test_stasis_channels.c,
include/asterisk/app_stasis.h (removed),
include/asterisk/stasis_app.h (added), include/asterisk/json.h,
main/json.c, include/asterisk/stasis_channels.h,
res/res_stasis.exports.in (added), apps/Makefile,
apps/app_stasis.exports.in (removed), apps/stasis_json.c
(removed): Moved core logic from app_stasis to res_stasis After
some discussion on asterisk-dev, it was decided that the bulk of
the logic in app_stasis actually belongs in a resource module
instead of the application module. This patch does that, leaves
the app specific stuff in app_stasis, and fixes up everything
else to be consistent with that change. * Renamed test_app_stasis
to test_res_stasis * Renamed app_stasis.h to stasis_app.h * This
is still stasis application support, even though it's no longer
in an app_ module. The name should never have been tied to the
type of module, anyways. * Now that json isn't a resource module
anymore, moved the ast_channel_snapshot_to_json function to
main/stasis_channels.c, where it makes more sense. Review:
https://reviewboard.asterisk.org/r/2430/
* include/asterisk/strings.h, apps/app_stasis.c,
main/manager_channels.c, main/channel.c, include/asterisk/cli.h:
DTMF events are now published on a channel's stasis_topic. AMI
was refactored to use these events rather than producing the
events directly in channel.c. Finally, the code was added to
app_stasis to produce DTMF events on the WebSocket. The AMI
events are completely backward compatible, including sending
events on transmitted DTMF, and sending DTMF start events. The
Stasis-HTTP events are somewhat simplified. Since DTMF start and
DTMF send events are generally less useful, Stasis-HTTP will only
send events on received DTMF end. (closes issue ASTERISK-21282)
(closes issue ASTERISK-21359) Review:
https://reviewboard.asterisk.org/r/2439
* tests/test_poll.c, contrib/realtime/mysql/musiconhold.sql,
res/res_timing_kqueue.c, contrib/realtime/mysql/queue_log.sql,
channels/sip/include/security_events.h, channels/sig_ss7.c,
channels/chan_multicast_rtp.c, channels/sig_ss7.h, /,
tests/test_expr.c, apps/app_saycounted.c,
channels/sip/security_events.c,
contrib/realtime/mysql/voicemail_messages.sql, BSDmakefile,
contrib/realtime/mysql/voicemail_data.sql,
build_tools/sha1sum-sh, res/res_mutestream.c,
configs/res_curl.conf.sample, tests/test_func_file.c,
res/res_rtp_multicast.c, include/asterisk/select.h,
include/asterisk/bridging_technology.h,
include/asterisk/bridging_features.h, tests/test_locale.c,
doc/Makefile: Fix the svn:keywords property on several files.
Normally I think keyword expansion is silly, but the one time it
would have been good, it didn't work because the property had
quotes in it. This patch fixes obviously busted svn:keywords
properties. ........ Merged revisions 385683 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385689 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-14 03:01 +0000 [r385635-385638] Matthew Jordan <mjordan@digium.com>
* res/res_rtp_multicast.c, /: Calculate the timestamp for outbound
RTP if we don't have timing information This patch calculates the
timestamp for outbound RTP when we don't have timing information.
This uses the same approach in res_rtp_asterisk. Thanks to both
Pietro and Tzafrir for providing patches. (closes issue
ASTERISK-19883) Reported by: Giacomo Trovato Tested by: Pietro
Bertera, Tzafrir Cohen patches: rtp-timestamp-1.8.patch uploaded
by tzafrir (License 5035) rtp-timestamp.patch uploaded by
pbertera (License 5943) ........ Merged revisions 385636 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385637 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_alsa.c: Don't attempt to create a voice frame on
a read error Prior to this patch, a read error in snd_pcm_readi
would still be treated as a nominal result when constructing a
voice frame from the expected data. Since the value returned is
negative, as opposed to the number of samples read, this could
result in a crash. With this patch, we now return a null frame
when a read error is detected. Note that the patch on
ASTERISK-21329 was modified slightly for this commit, in that we
bail immediately on detecting the read error, rather than
bypassing the construction of the voice frame. (closes issue
ASTERISK-21329) Reported by: Keiichiro Kawasaki patches:
chan_alsa.diff uploaded by kawasaki (License 6489) ........
Merged revisions 385633 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385634 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-12 22:38 +0000 [r385595] Michael L. Young <elgueromexicano@gmail.com>
* /, apps/app_queue.c: Fix Manager Segfault When app_queue Is
Unloaded When app_queue is unloaded, some manager commands are
not being unregistered which result in a segfault. This patch
corrects this. (closes issue ASTERISK-21397) Reported by: Peter
Katzmann, Corey Farrell Tested by: Corey Farrell Patches:
asterisk-21397-missing-unreg-manager-cmd_1.8.diff Michael L.
Young (license 5026)
asterisk-21397-missing-unreg-manager-cmd_11.diff Michael L. Young
(license 5026) Review: https://reviewboard.asterisk.org/r/2444/
........ Merged revisions 385593 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385594 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-12 22:26 +0000 [r385585] Kinsey Moore <kmoore@digium.com>
* codecs/codec_resample.c, /: Allow codec_resample to be unloaded
Ensure that trans_size is correct to prevent uninitialized
entries from preventing reload. (closes issue ASTERISK-21401)
Reported by: Corey Farrell Tested by: Corey Farrell Patches:
codec_resample-unload.patch uploaded by Corey Farrell ........
Merged revisions 385582 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-12 22:22 +0000 [r385573] Michael L. Young <elgueromexicano@gmail.com>
* /, apps/app_voicemail.c: Fix app_voicemail Segfault And A Few
Memory Leaks The original report was that app_voicemail would
crash. This was caused by ast_config_load() returning
CONFIG_STATUS_FILEINVALID but no checks being performed for that
return status. After adding the initial patch to fix this issue,
Jaco Kroon (jkroon) added some fixes to memory leaks he had
discovered. During review, Walter Doekes (wdoekes) suggested
adding a helper function in order to determine if we had a valid
configuration or not. This patch does the following: * Creates a
helper function to check if the configuration is valid * Adds
calls to the new helper function where appropiate * Fixes memory
leaks where the code returned without running
ast_config_destroy() on the configuration that was loaded (closes
issue ASTERISK-21302) Reported by: Jaco Kroon Tested by: Jaco
Kroon, Michael L. Young Patches:
asterisk-11.3.0-app_voicemail-ast_config-fixes.patch Jaco Kroon
(license 5671) asterisk-21302-valid_cfg_and_mem_leaks_v3-1.8.diff
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2443/ ........ Merged
revisions 385551 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385557 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-12 21:48 +0000 [r385548] Jason Parker <jparker@digium.com>
* include/asterisk/sorcery.h: Fix documentation.
2013-04-12 21:11 +0000 [r385522] Kinsey Moore <kmoore@digium.com>
* include/asterisk/manager.h, main/manager_channels.c: Expose
channel snapshot manager blob generation These functions are
already used in one branch (jrose's parking branch) and will soon
be used in other branches as well.
2013-04-12 15:06 +0000 [r385474] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix One-Way Audio With auto_* NAT
Settings When SIP Calls Initiated By PBX When we reload Asterisk
or chan_sip, the flags force_rport and comedia that are turned on
and off when using the auto_force_rport and auto_comedia nat
settings go back to the default setting off. These flags are
turned on when needed or off when not needed at the time that a
peer registers, re-registers or initiates a call. This would
apply even when only the default global setting
"nat=auto_force_rport" is being used, which in this case would
only affect the force_rport flag. Everything is good except for
the following: The nat setting is set to auto_force_rport and
auto_comedia. We reload Asterisk and the peer's registration has
not expired. We load in the settings for the peer which turns
force_rport and comedia back to off. Since the peer has not
re-registered or placed a call yet, those flags remain off. We
then initiate a call to the peer from the PBX. The force_rport
and comedia flags stay off. If NAT is involved, we end up with
one-way audio since we never checked to see if the peer is behind
NAT or not. This patch does the following: * Moves the checking
of whether a peer is behind NAT into its own function * Create a
function to set the peer's NAT flags if they are using the auto_*
NAT settings * Adds calls in sip_request_call() to these new
functions in order to setup the dialog according to the peer's
settings (closes issue ASTERISK-21374) Reported by: Michael L.
Young Tested by: Michael L. Young Patches:
asterisk-21374-auto-nat-outgoing-fix_v2.diff Michael L. Young
(license 5026) Review: https://reviewboard.asterisk.org/r/2421/
........ Merged revisions 385473 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-12 08:52 +0000 [r385406-385431] Alec L Davis <sivad.a@paradise.net.nz>
* channels/chan_iax2.c, /: IAX2 defer_full_frames fail to get sent
Ensure iax2_process_thread is signalled when a deferred frame is
queued to it. (closes issue ASTERISK-18827) Reported by:
alecdavis Tested by: alecdavis alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2426/ ........ Merged
revisions 385429 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385430 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_iax2.c: IAX2, prevent network thread starting
before all helper threads are ready On startup, it's possible for
a frame to arrive before the processing threads were ready. In
iax2_process_thread() the first pass through falls into
ast_cond_wait, should a frame arrive before we are at
ast_cond_wait, the signal will be ignored. The result
iax2_process_thread stays at ast_cond_wait forever, with deferred
frames being queued. Fix: When creating initial idle
iax2_process_threads, wait for init_cond to be signalled after
each thread is started. (issue ASTERISK-18827) Reported by:
alecdavis Tested by: alecdavis alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2427/ ........ Merged
revisions 385402 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385403 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-11 16:53 +0000 [r385277-385314] Richard Mudgett <rmudgett@digium.com>
* /, configs/cli_aliases.conf.sample: Fix 'pri intense debug span'
alias. ........ Merged revisions 385313 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/features.c: Eliminated dial_features_destroy() since it is
equivalent to ast_free_ptr()
* main/manager.c, main/features.c: * Fix unlocked accesses to
feature_list. The feature_list is now also protected by the
features_lock. * Made all calls to ast_find_call_feature() have
the features_lock held. * Fixed set_config_flags() to actually
use find_group() to look for feature groups in DYNAMIC_FEATURES.
The code originally assumed all feature groups were listed in
DYNAMIC_FEATURES. * Make everyone use ast_rdlock_call_features(),
ast_unlock_call_features(), and new ast_wrlock_call_features()
instead of directly calling the rwlock API on features_lock.
2013-04-10 15:34 +0000 [r385236] David M. Lee <dlee@digium.com>
* main/stasis_channels.c: Fixed manager channelvars support. For
the events that have been ported to Stasis, this was broken in
r384910, when a couple of lines of code was lost in a merge.
2013-04-10 14:26 +0000 [r385174-385202] Matthew Jordan <mjordan@digium.com>
* /, res/res_config_ldap.c: Use LDAP memory management functions
instead of Asterisk's When MALLOC_DEBUG is enabled with
res_config_ldap, issues (munmap_chunk: invalid pointer errors)
can occur as the memory is being allocated with Asterisk's
wrappers around malloc/calloc/free/strdup, as opposed to the LDAP
library's wrappers. This patch uses the LDAP library's wrappers
where appropriate, so that compiling with MALLOC_DEBUG doesn't
cause more problems than it solves. Note that the patch listed
below was modified slightly for this commit to account for some
additional memory allocation/deallocations. (closes issue
ASTERISK-17386) Reported by: John Covert Tested by: Andrew Latham
patches: issue18789-1.8-r316873.patch uploaded by seanbright
(License 5060) ........ Merged revisions 385190 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385199 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Fix crash in chan_sip when a core
initiated op occurs at the same time as a BYE When a BYE request
is processed in chan_sip, the current SIP dialog is detached from
its associated Asterisk channel structure. The tech_pvt pointer
in the channel object is set to NULL, and the dialog persists for
an RFC mandated period of time to handle re-transmits. While this
process occurs, the channel is locked (which is good).
Unfortunately, operations that are initiated externally have no
way of knowing that the channel they've just obtained (which is
still valid) and that they are attempting to lock is about to
have its tech_pvt pointer removed. By the time they obtain the
channel lock and call the channel technology callback, the
tech_pvt is NULL. This patch adds a few checks to some channel
callbacks that make sure the tech_pvt isn't NULL before using it.
Prime offenders were the DTMF digit callbacks, which would crash
if AMI initiated a DTMF on the channel at the same time as a BYE
was received from the UA. This patch also adds checks on
sip_transfer (as AMI can also cause a callback into this
function), as well as sip_indicate (as lots of things can queue
an indication onto a channel). Review:
https://reviewboard.asterisk.org/r/2434/ (closes issue
ASTERISK-20225) Reported by: Jeff Hoppe ........ Merged revisions
385170 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 385173 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-09 19:58 +0000 [r385142] Richard Mudgett <rmudgett@digium.com>
* main/features.c: Rename struct feature_ds to struct
feature_datastore. Because "struct feature_ds *feature_ds" is not
a good thing.
2013-04-09 18:22 +0000 [r385116] David M. Lee <dlee@digium.com>
* apps/app_stasis.c: Backported app_stasis fix from stasis-http
branch. The hash and compare functions for the control container
was reusing the wrong ones, causing some problems. I fixed it,
but in the wrong branch. Oh well, it happens.
2013-04-09 06:16 +0000 [r385088] Russell Bryant <russell@russellbryant.com>
* main/features.c, CHANGES: Add inheritance support to
FEATURE()/FEATUREMAP(). The settings saved on the channel for
FEATURE()/FEATUREMAP() were only for that channel. This patch
adds the ability to have these settings inherited to child
channels if you set FEATURE(inherit)=yes. Closes issue
ASTERISK-21306. Review: https://reviewboard.asterisk.org/r/2415/
2013-04-08 23:38 +0000 [r385049] Rusty Newton <rnewton@digium.com>
* /, configs/extconfig.conf.sample: Modified the list of keys for
the driver backends for sake of sample clarity Added a line
showing the mapping of "mysql" to res_config_mysql available in
add-ons. We used "mysql" as an example driver key in the sample,
but didn't show what module it mapped too. Also added a subtitle
above the list of keys for driver backends. ........ Merged
revisions 385047 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 385048 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-08 18:24 +0000 [r384989] Walter Doekes <walter+asterisk@wjd.nu>
* build_tools/make_buildopts_h,
build_tools/make_linker_version_script, Makefile,
build_tools/mkpkgconfig, build_tools/make_version: Clean up
Makefile "warning" clutter when makeopts doesn't exist. Review:
https://reviewboard.asterisk.org/r/2304
2013-04-08 15:38 +0000 [r384910-384942] Matthew Jordan <mjordan@digium.com>
* res/res_stasis_websocket.c, res/res_http_websocket.c: Don't
attempt a websocket protocol removal if res_http_websocket isn't
there This patch sets the protocols container provided by
res_http_websocket to NULL when the module gets unloaded and adds
the necessary checks when adding/ removing a websocket protocol.
This prevents some FRACKing on an invalid pointer to the disposed
container if a module that uses res_http_websocket is unloaded
after it.
* apps/app_stasis.c, main/manager_channels.c, apps/app_dial.c,
main/pbx.c, main/channel_internal_api.c,
tests/test_stasis_channels.c (added),
include/asterisk/app_stasis.h, apps/app_userevent.c,
include/asterisk/channel.h, CHANGES, main/channel.c, main/dial.c,
include/asterisk/stasis_channels.h (added), main/features.c,
apps/stasis_json.c, pbx/pbx_realtime.c, main/stasis_channels.c
(added): Add multi-channel Stasis messages; refactor Dial AMI
events to Stasis This patch does the following: * A new Stasis
payload has been defined for multi-channel messages. This payload
can store multiple ast_channel_snapshot objects along with a
single JSON blob. The payload object itself is opaque; the
snapshots are stored in a container keyed by roles. APIs have
been provided to query for and retrieve the snapshots from the
payload object. * The Dial AMI events have been refactored onto
Stasis. This includes dial messages in app_dial, as well as the
core dialing framework. The AMI events have been modified to send
out a DialBegin/DialEnd events, as opposed to the subevent type
that was previously used. * Stasis messages, types, and other
objects related to channels have been placed in their own file,
stasis_channels. Unit tests for some of these objects/messages
have also been written.
2013-04-08 13:27 +0000 [r384879] David M. Lee <dlee@digium.com>
* apps/stasis_json.c (added), include/asterisk/app_stasis.h
(added), include/asterisk/json.h, include/asterisk/localtime.h,
tests/test_app_stasis.c (added), include/asterisk/frame.h,
apps/app_stasis.c (added), tests/test_json.c, main/json.c,
res/res_stasis_websocket.c (added), main/frame.c, apps/Makefile,
tests/test_abstract_jb.c, apps/app_stasis.exports.in (added):
Stasis application WebSocket support This is the API that binds
the Stasis dialplan application to external Stasis applications.
It also adds the beginnings of WebSocket application support.
This module registers a dialplan function named Stasis, which is
used to put a channel into the named Stasis app. As a channel
enters and leaves the Stasis diaplan application, the Stasis app
receives a 'stasis-start' and 'stasis-end' events. Stasis apps
register themselves using the stasis_app_register and
stasis_app_unregister functions. Messages are sent to an
application using stasis_app_send. Finally, Stasis apps control
channels through the use of the stasis_app_control object, and
the family of stasis_app_control_* functions. Other changes along
for the ride are: * An ast_frame_dtor function that's RAII_VAR
safe * Some common JSON encoders for name/number, timeval, and
context/extension/priority Review:
https://reviewboard.asterisk.org/r/2361/
2013-04-06 16:00 +0000 [r384857] Joshua Colp <jcolp@digium.com>
* tests/test_sorcery_astdb.c (added), res/res_sorcery_astdb.c
(added): Add a res_sorcery_astdb module which uses the astdb to
persist objects. Review: https://reviewboard.asterisk.org/r/2420/
2013-04-05 20:41 +0000 [r384828] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c, UPGRADE-11.txt: Fix For Not Overriding
The Default Settings In chan_sip The initial report was that the
"nat" setting in the [general] section was not having any effect
in overriding the default setting. Upon confirming that this was
happening and looking into what was causing this, it was
discovered that other default settings would not be overriden as
well. This patch works similar to what occurs in build_peer(). We
create a temporary ast_flags structure and using a mask, we
override the default settings with whatever is set in the
[general] section. In the bug report, the reporter who helped to
test this patch noted that the directmedia settings were being
overriden properly as well as the nat settings. This issue is
also present in Asterisk 1.8 and a separate patch will be applied
to it. (issue ASTERISK-21225) Reported by: Alexandre Vezina
Tested by: Alexandre Vezina, Michael L. Young Patches:
asterisk-21225-handle-options-default-prob_v4.diff Michael L.
Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2385/ ........ Merged
revisions 384827 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-04 18:15 +0000 [r384696-384760] Richard Mudgett <rmudgett@digium.com>
* main/event.c: Separate some event struct definitions from
instantiation.
* channels/chan_dahdi.c, configs/chan_dahdi.conf.sample,
UPGRADE.txt: chan_dahdi: Change inband_on_proceeding option
default to no/disabled. (issue ASTERISK-21151)
* channels/chan_dahdi.c, configs/chan_dahdi.conf.sample, /,
channels/sig_pri.c, channels/sig_pri.h: chan_dahdi: Add
inband_on_proceeding compatibility option. The new
inband_on_proceeding option causes Asterisk to assume inband
audio may be present when a PROCEEDING message is received. Q.931
Section 5.1.2 says the network cannot assume that the CPE side
has attached to the B channel at this time without explicitly
sending the progress indicator ie informing the CPE side to
attach to the B channel for audio. However, some non-compliant
ISDN switches send a PROCEEDING without the progress indicator ie
indicating inband audio is available and assume that the CPE
device has connected the media path for listening to ringback and
other messages. ASTERISK-17834 which causes this issue was
dealing with a non-compliant network switch. (closes issue
ASTERISK-21151) Reported by: Gianluca Merlo Tested by: rmudgett
........ Merged revisions 384685 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384689 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-03 17:17 +0000 [r384642] Matthew Jordan <mjordan@digium.com>
* /, funcs/func_channel.c: Update documentation for CHANNEL
function Document that you can read/write the 'accountcode' and
'amaflags' on a channel. ........ Merged revisions 384640 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384641 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-03 16:01 +0000 [r384616] Richard Mudgett <rmudgett@digium.com>
* main/astobj2.c: astobj2: Fix rbtree duplicate handling.
OBJ_PARTIAL_KEY searching a rbtree did not find all possible
matches if the container did not accept duplicates. Added
matching node bias to indicate which matching node is being
searched for: first, last, any.
2013-04-02 17:35 +0000 [r384546] David M. Lee <dlee@digium.com>
* /, Makefile: Fixed spurious rebuilds of func_version.
func_version.so was being rebuilt every time, because build.h was
changing every build, because of the cleantest dependency that
was added in r384410 to fix parallel make bugs. Now build.h will
only be created if it does not exist, which was the original
behavior of the Makefile. ........ Merged revisions 384544 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384545 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-02 12:18 +0000 [r384518] Joshua Colp <jcolp@digium.com>
* main/sorcery.c: Pass the object type name to the configuration
framework.
2013-04-02 11:40 +0000 [r384514] Matthew Jordan <mjordan@digium.com>
* main/xmldoc.c, include/asterisk/app.h: Make things work again
Sorry folks. ',' are still greater than '|'. Thanks for playing
along :-)
2013-04-01 20:10 +0000 [r384488] David M. Lee <dlee@digium.com>
* contrib/scripts/install_prereq: install_prereq: Build jansson
from source, when necessary When r383579 was committed, it made
Jansson a required dependency. While libjansson-dev and
jansson-devel are available on recent distros, some older (but
still supported) distros don't have it. There's a pull request[1]
to get it into repoforge, but that still doesn't help everyone.
(And helps no one until the pull request is merged and packages
are built). This patch adds Jansson install from source to the
install_unpackaged() function. There are a few gotcha's, which
makes this change not completely trivial. * Since Jansson may be
installed by a package, don't install from source if a package
installation can be found * libresample may also be installed via
package, so I added a similar check to that. * Since Jansson
installs into /usr/local, this patch also adds /usr/local/lib to
/etc/ld.so.conf.d so that the library can be found. * The
alternative was to install into /usr, but then it gets
complicated having to deal with EL's /usr/lib{32,64} shenanigans.
[1]: https://github.com/repoforge/rpms/pull/250 Review:
https://reviewboard.asterisk.org/r/2414/
2013-04-01 14:44 +0000 [r384452] Matthew Jordan <mjordan@digium.com>
* main/xmldoc.c, include/asterisk/app.h: Make appropriate items
parse using '|' instead of ',' This patch fixes a bug introduced
in r76703, wherein Asterisk could only parse arguments in the
so-called 'recommended' way, e.g., NoOp(foo,bar). The proper
syntax of NoOp,foo|bar is now parsed correctly.
2013-04-01 14:10 +0000 [r384416] Joshua Colp <jcolp@digium.com>
* apps/app_voicemail.c, /: Remove silly use of strncmp. ........
Merged revisions 384414 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-04-01 13:37 +0000 [r384412-384413] David M. Lee <dlee@digium.com>
* tests/test_stasis.c, main/stasis.c: stasis: Fixed message
ordering issues when forwarding This patch fixes an issue of
message ordering that occurs when multiple topics are forwarded
to an aggregator topic (such as ast_channel_topic_all()). It is
(very reasonably) expected that the rules governing message
dispatch order still apply, so long as the messages start from
the same thread, and are received by the same subscription.
Because the existing code had an additional layer of dispatching
via the Stasis thread pool for forwards, those promises couldn't
be kept. Forwarding subscriptions no longer have their own
mailbox, and now dispatch directly from the forwarding topic's
stasis_publish() call. This means that the topic's lock is held
for the duration of not only a message's dispatch, but the
dispatch of all the forwards. This shouldn't be a problem right
now, but if an aggregator topic had many subscribers, it could
become a problem. But I figure we can write more clever code when
the time comes, if necessary. Review:
https://reviewboard.asterisk.org/r/2419/
* Makefile, /: Fix parallel make problems. Occasionally, make -j
would fail due to missing includes, or other unusual errors. This
was due to the 'cleantest' target, which was designed to force a
make clean when some change in the code would cause the typical
depedency checking to fail. Several targets in the main Makefile
did not depend upon cleantest, hence would run in parallel to it.
By adding the dependency, make -j runs happily now. Review:
https://reviewboard.asterisk.org/r/2418/ ........ Merged
revisions 384410 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384411 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-30 05:15 +0000 [r384389-384390] Matthew Jordan <mjordan@digium.com>
* main/manager.c: Properly format an intmax_t value
* apps/app_voicemail.c, include/asterisk/test.h, main/manager.c,
main/test.c: Convert TestEvent AMI events over to Stasis Core
This patch migrates the TestEvent AMI events to first be
dispatched over the Stasis-Core message bus. This helps to
preserve the ordering of the events with other events in the AMI
system, such as the various channel related events.
2013-03-29 16:37 +0000 [r384327] Jonathan Rose <jrose@digium.com>
* apps/app_voicemail.c: app_voicemail: Add blank argument to
externnotify if no context argument At least one call to
run_externnotify provides a NULL context parameter and because
the snprintf statement doesn't account for a NULL context
parameter, it simply writes '(null)' to the arguments string
instead. This patch makes it write two quotes back to back for
that argument instead in the event of a NULL context. (closes
issue ASTERISK-18207) Reported by: Barry L. Kline Patches:
modified from patch-20130306 uploaded by Karsten Wemheuer
(License 5930) ........ Merged revisions 384325 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384326 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-28 23:59 +0000 [r384302] Richard Mudgett <rmudgett@digium.com>
* res/res_calendar_exchange.c, res/res_sorcery_config.c,
include/asterisk/uuid.h, tests/test_uuid.c, main/sorcery.c,
main/stasis.c, main/uuid.c: Add uuid wrapper API call
ast_uuid_generate_str(). * Updated test_uuid.c to test the new
API call. * Made system use the new API call to eliminate "10's
of lines" where used. * Fixed untested ast_strdup() return in
stasis_subscribe() by eliminating the need for it. struct
stasis_subscription now contains the uniqueid[] string. * Fixed
some issues in exchangecal_write_event(): Create uid with enough
space for a UUID string to avoid a realloc. Fix off by one error
if the calendar event provided a UUID string. There is no need to
check for NULL before calling ast_free().
2013-03-28 15:45 +0000 [r384219-384261] Kinsey Moore <kmoore@digium.com>
* include/asterisk/stasis.h, main/app.c, pbx/pbx_realtime.c,
include/asterisk/channel.h, tests/test_stasis.c,
main/manager_channels.c, main/stasis.c, apps/app_voicemail.c,
main/channel.c, main/pbx.c, main/stasis_cache.c: Break the world.
Stasis message type accessors should now all be named correctly.
* main/app.c, res/res_xmpp.c, channels/chan_iax2.c,
channels/sig_pri.c, res/res_jabber.c, channels/chan_mgcp.c,
channels/chan_unistim.c, channels/chan_dahdi.c,
include/asterisk/app.h, channels/chan_sip.c,
channels/chan_skinny.c: Convert MWI state message type to the new
stasis naming convention
2013-03-27 21:52 +0000 [r384201] David M. Lee <dlee@digium.com>
* include/asterisk/app.h, include/asterisk/stasis.h,
include/asterisk/channel.h: Added a doxygen group for Stasis
messages and topics
2013-03-27 19:52 +0000 [r384164] Kinsey Moore <kmoore@digium.com>
* /, channels/chan_sip.c, main/format_pref.c: Address uninitialized
conditional that valgrind found ........ Merged revisions 384162
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 384163 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-27 18:52 +0000 [r384120] Matthew Jordan <mjordan@digium.com>
* /, main/http.c: Fix a file descriptor leak in off nominal path
While looking at the security vulnerability in ASTERISK-20967,
Walter noticed a file descriptor leak and some other issues in
off nominal code paths. This patch corrects them. Note that this
patch is not related to the vulnerability in ASTERISK-20967, but
the patch was placed on that issue. (closes issue ASTERISK-20967)
Reported by: wdoekes patches:
issueA20967_file_leak_and_unused_wkspace.patch uploaded by
wdoekes (License 5674) ........ Merged revisions 384118 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384119 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-27 17:07 +0000 [r384050] Kinsey Moore <kmoore@digium.com>
* res/res_rtp_asterisk.c, /: Fix white noise on SRTP decryption
When res_rtp_asterisk.c was altered to avoid attempting to apply
unprotect algorithms to non-audio RTP packets, the test used was
incorrect. This caused the audio packets to not be decrypted and
resulted in loud white noise on the other endpoint (or both
endpoints depending on the call legs involved). The test now
properly checks the version field in the RTP header to ensure
that RTP and RTCP are decrypted while other types of packets are
not. (closes issue ASTERISK-21323) Reported by: andrea Tested by:
Kinsey Moore, andrea, John Bigelow Patches: whitenoise_fix.diff
uploaded by Kinsey Moore ........ Merged revisions 384048 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 384049 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-27 15:27 +0000 [r383975-384019] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c, channels/sip/security_events.c,
channels/sip/include/sip.h: AST-2013-003: Prevent username
disclosure in SIP channel driver When authenticating a SIP
request with alwaysauthreject enabled, allowguest disabled, and
autocreatepeer disabled, Asterisk discloses whether a user exists
for INVITE, SUBSCRIBE, and REGISTER transactions in multiple
ways. The information is disclosed when: * A "407 Proxy
Authentication Required" response is sent instead of a "401
Unauthorized" response * The presence or absence of additional
tags occurs at the end of "403 Forbidden" (such as "(Bad Auth)")
* A "401 Unauthorized" response is sent instead of "403
Forbidden" response after a retransmission * Retransmission are
sent when a matching peer did not exist, but not when a matching
peer did exist. This patch resolves these various vectors by
ensuring that the responses sent in all scenarios is the same,
regardless of the presence of a matching peer. This issue was
reported by Walter Doekes, OSSO B.V. A substantial portion of the
testing and the solution to this problem was done by Walter as
well - a huge thanks to his tireless efforts in finding all the
ways in which this setting didn't work, providing automated
tests, and working with Kinsey on getting this fixed. (closes
issue ASTERISK-21013) Reported by: wdoekes Tested by: wdoekes,
kmoore patches: AST-2013-003-1.8 uploaded by kmoore, wdoekes
(License 6273, 5674) AST-2013-003-10 uploaded by kmoore, wdoekes
(License 6273, 5674) AST-2013-003-11 uploaded by kmoore, wdoekes
(License 6273, 5674) ........ Merged revisions 384003 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/http.c: AST-2013-002: Prevent denial of service in HTTP
server AST-2012-014, fixed in January of this year, contained a
fix for Asterisk's HTTP server for a remotely-triggered crash.
While the fix put in place fixed the possibility for the crash to
be triggered, a denial of service vector still exists with that
solution if an attacker sends one or more HTTP POST requests with
very large Content-Length values. This patch resolves this by
capping the Content-Length at 1024 bytes. Any attempt to send an
HTTP POST with Content-Length greater than this cap will not
result in any memory allocation. The POST will be responded to
with an HTTP 413 "Request Entity Too Large" response. This issue
was reported by Christoph Hebeisen of TELUS Security Labs (closes
issue ASTERISK-20967) Reported by: Christoph Hebeisen patches:
AST-2013-002-1.8.diff uploaded by mmichelson (License 5049)
AST-2013-002-10.diff uploaded by mmichelson (License 5049)
AST-2013-002-11.diff uploaded by mmichelson (License 5049)
........ Merged revisions 383978 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_format_attr_h264.c, /: AST-2013-001: Prevent buffer
overflow through H.264 format negotiation The format attribute
resource for H.264 video performs an unsafe read against a media
attribute when parsing the SDP. The value passed in with the
format attribute is not checked for its length when parsed into a
fixed length buffer. This patch resolves the vulnerability by
only reading as many characters from the SDP value as will fit
into the buffer. (closes issue ASTERISK-20901) Reported by: Ulf
Harnhammar patches: h264_overflow_security_patch.diff uploaded by
jrose (License 6182) ........ Merged revisions 383973 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-27 07:24 +0000 [r383948] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Fix skinny encall button to not blind
xfer. The softbutton endcall should not turn a transfer into a
blind transfer but hangup the exten being called and leave the
original call on hold. This does that. (closes issue
ASTERISK-21321) Reported by: wedhorn Tested by: snuffy, myself
Patches: skinny-xferendcall01.diff uploaded by wedhorn (license
5019)
2013-03-26 23:34 +0000 [r383925] Joshua Colp <jcolp@digium.com>
* main/sorcery.c: Remove the noop handler from sorcery so it does
not produce an empty value.
2013-03-26 02:30 +0000 [r383841-383879] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: Resolve deadlock between SIP registration
and channel based functions In r373424, several reentrancy
problems in chan_sip were addressed. As a result, the SIP channel
driver is now properly locking the channel driver private
information in certain operations that it wasn't previously. This
exposed two latent problems either in register_verify or by
functions called by register_verify. This includes: * Holding the
private lock while calling sip_send_mwi_to_peer. This can create
a new sip_pvt via sip_alloc, which will obtain the channel
container lock. This is a locking inversion, as any channel
related lock must be obtained prior to obtaining the SIP channel
technology private lock. Note that this issue was already fixed
in Asterisk 11. * Holding the private lock while calling
sip_poke_peer. In the same vein as sip_send_mwi_to_peer,
sip_poke_peer can create a new SIP private, causing the same
locking inversion. Note that this locking inversion typically
occured when CLI commands were run while a SIP REGISTER request
was being processed, as many CLI commands (such as 'sip show
channels', 'core show channels', etc.) have to obtain the channel
container lock. (issue ASTERISK-21068) Reported by: Nicolas
Bouliane (issue ASTERISK-20550) Reported by: David Brillert
(issue ASTERISK-21314) Reported by: Badalian Vyacheslav (issue
ASTERISK-21296) Reported by: Gabriel Birke ........ Merged
revisions 383863 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383878 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/cdr.c, /: Resolve deadlock between pending CDR and batch CDR
locks r375757 attempted to resolve a race condition between
multiple submissions of CDRs while in batch mode from attempting
to destroy the scheduled batch submission by extending the batch
CDR lock. Unfortunately, this causes a deadlock between the
pending CDR lock and the batch CDR lock. This patch resolves the
intent of r375757 by simply providing a new lock that protects
the scheduling of the batches. The original batch CDR lock is
kept to protect manipulation of the batch CDR settings, but has
been placed such that it is not held when the pending lock is
held. Thanks to Chase Venters for providing lock analysis on the
issue. (issue ASTERISK-21162) Reported by: Chase Venters ........
Merged revisions 383839 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383840 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-26 01:46 +0000 [r383837-383838] Russell Bryant <russell@russellbryant.com>
* channels/chan_skinny.c: Suppress compiler warning. This code
caused a compiler warning when --enable-dev-mode was not used.
The warning was that this variable was set but not used. That was
indeed the case as the only place this is used is as an argument
to SKINNY_DEBUG which is compiled out when not in dev mode.
* /, apps/app_meetme.c: Fix multi-station answer race condition.
When an SLA trunk is ringing (inbound call on the trunk) Asterisk
will make outbound calls to the stations that have that trunk. If
more than one station answers the call at the same time, all
channels other than the first one to answer are left in a bad
state. The channel gets leaked, is not connected to anything, and
there's no way to get rid of it. We now properly clean up these
losing channels by hanging up on them. Since they lost the race,
as we process their answer, there is no ringing trunk for them to
answer. ........ Merged revisions 383835 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383836 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-25 23:25 +0000 [r383799] Richard Mudgett <rmudgett@digium.com>
* channels/sig_pri.c, /: Set the CALLERID(dnid-num-plan) for
incoming ISDN calls. The CALLEDTON channel variable is set for
incoming ISDN calls to the lower 7 bits of the Q.931
type-of-number/numbering-plan octet. The CALLERID(dnid-num-plan)
should have the same value. (closes issue ASTERISK-21248)
Reported by: rmudgett ........ Merged revisions 383796 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383798 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-25 20:15 +0000 [r383753-383754] Kinsey Moore <kmoore@digium.com>
* main/manager_channels.c: Fix typo
* main/stasis.c: Fix missing ' ' around '='
2013-03-25 19:28 +0000 [r383726-383747] David M. Lee <dlee@digium.com>
* contrib/scripts/install_prereq: install_prereq: removed some
out-of-date comments
* contrib/scripts/install_prereq: install_prereq: Adding
jansson-devel to RH packages
* include/asterisk/channel.h, CHANGES, main/manager_channels.c,
main/channel.c, main/manager.c, main/channel_internal_api.c: Move
NewCallerid, HangupRequest and SoftHangupRequest to Stasis
HangupRequest and SoftHangupRequest are now ast_channel_blob
Stasis messages, with the cause code as an optional field in the
blob. NewCallerid now simply watches for changes in the callerid
information in channel snapshots, and creates the AMI event
appropriately. Since the original NewCallerid event honored the
channelvars setting in manager.conf, the channel variables
configured there had to become a part of the channel snapshot.
These are now a part of every snapshot based event, making the
configuration description "every time a channel-oriented event is
emitted" less of a lie. There a a few other changes wrapped up in
here as well. * When ast_channel_topic() is given NULL for a
channel, it returns the ast_channel_topic_all() topic instead of
NULL. This can clean up a lot of NULL checking we're doing
currently. * The fields Cause and Cause-txt were removed from the
base channel information and put only on the Hangup events, since
those fields are meaningless outside of a Hangup event. * Removed
the pipe-delimiter processing of the channelvars field, since
that's been deprecated forever. (closes issue ASTERISK-21096)
Review: https://reviewboard.asterisk.org/r/2405/
2013-03-25 12:38 +0000 [r383669] Sean Bright <sean@malleable.com>
* res/res_config_curl.c, /: Properly delimit post data in
res_config_curl. ........ Merged revisions 383667 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383668 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-22 20:51 +0000 [r383633] David M. Lee <dlee@digium.com>
* main/json.c, main/Makefile: Fixed another issue from r383579.
Core modules don't honor <depend> flags in MODULEINFO, which
broke jansson if specified --with-jansson to configure.
2013-03-22 20:43 +0000 [r383632] Michael L. Young <elgueromexicano@gmail.com>
* /, apps/app_mixmonitor.c: Fix StopMixMonitor Hanging Up When
Unable To Stop MixMonitor On A Channel A regression was
accidentally introduced when allowing an optional ID to be used
when calling StopMixMonitor. When we are unable to stop
MixMonitor on a channel, -1 is being returned which triggers the
hangup of the channel. This patch restores the prior behavior by
returning 0 whether we were successful or not. It also allows the
call from the manager to use the return code when the action
fails. (closes issue ASTERISK-21294) Reported by: daroz Tested
by: daroz Patches: asterisk-21294-stop_mixmonitor_hangingup.diff
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2404/ ........ Merged
revisions 383631 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-22 19:26 +0000 [r383579-383611] David M. Lee <dlee@digium.com>
* main/asterisk.c, main/json.c, include/asterisk/json.h: Corrected
some module issues introduced by r383579. When I moved res_json.c
to json.c, I left the MODULE_INFO stuff in there, which was
interesting if you ran module show. I also forgot to call what
was in module_load() from asterisk main().
* main/manager_channels.c (added), tests/test_json.c,
res/res_json.c (removed), main/pbx.c,
include/asterisk/autoconfig.h.in, configure.ac,
apps/app_userevent.c, include/asterisk/channel.h, CHANGES,
include/asterisk/manager.h, main/channel.c, main/json.c (added),
main/manager.c, configure, res/res_json.exports.in (removed),
pbx/pbx_realtime.c: Move more channel events to Stasis; move
res_json.c to main/json.c. This patch started out simply as
fixing the bouncing tests introduced in r382685, but required
some other changes to give it a decent implementation. To fix the
bouncing tests, the UserEvent and Newexten AMI events needed to
be refactored to dispatch via Stasis. Dispatching directly to AMI
resulted in those events sometimes getting ahead of the
associated Newchannel events, which would understandably confuse
anyone. I found that instead of creating a zillion different
message types and structures associated with them, it would be
preferable to define a message type that has a channel snapshot
and a blob of structured data with a small bit of additional
information. The JSON object model provides a very nice way of
representing structured data, so I went with that. * Move JSON
support from res_json.c to main/json.c * Made libjansson-dev a
required dependency * Added an ast_channel_blob message type,
which has a channel snapshot and JSON blob of data. * Changed
UserEvent and Newexten events so that they are dispatched via
ast_channel_blob messages on the channel's topic. * Got rid of
the ast_channel_varset message; used ast_channel_blob instead. *
Extracted the manager functions converting Stasis channel events
to AMI events into manager_channel.c. (issue ASTERISK-21096)
Review: https://reviewboard.asterisk.org/r/2381/
2013-03-22 06:32 +0000 [r383560] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Fix skinny voicemail indication issues.
Unsubscribe from MWI stasis event on channel reload. (closes
issue ASTERISK-21216) Reported by: wedhorn Tested by: snuffy,
myself Patches: skinny-mwiind02.diff uploaded by snuffy (license
5024)
2013-03-21 20:09 +0000 [r383541] David M. Lee <dlee@digium.com>
* include/asterisk/stasis.h: Corrected doc error for Stasis. I
guess the mutex isn't necessary. Thanks, rmudgett!
2013-03-21 17:41 +0000 [r383519] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/astobj2.h: Fix astobj2 doxygen comment.
2013-03-20 20:27 +0000 [r383458-383462] Walter Doekes <walter+asterisk@wjd.nu>
* funcs/func_curl.c, /: Have func_curl log a warning when a curl
request fails. Review: https://reviewboard.asterisk.org/r/2403/
........ Merged revisions 383460 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383461 from
http://svn.asterisk.org/svn/asterisk/branches/11
* funcs/func_curl.c, /: Minor cleanup in func_curl near hashcompat
code. Review: https://reviewboard.asterisk.org/r/2402/ ........
Merged revisions 383457 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-20 16:01 +0000 [r383422] Kinsey Moore <kmoore@digium.com>
* main/stasis.c: Resolve a race condition in Stasis Because of the
way that topics were handled when publishing, it was possible to
dispatch a message to a subscription after that subscription had
been unsubscribed such that the dispatched message arrived at the
callback after the callback had received its final message. In
callbacks that cleaned up user data, this would often cause a
segfault. This has been resolved by locking the topic during the
entirety of dispatch. To prevent long publishing and topic
locking times, forwarding subscriptions have been made to be
standard subscriptions instead of mailboxless subscriptions which
were dispatched at publishing time.
2013-03-20 14:52 +0000 [r383405] Joshua Colp <jcolp@digium.com>
* tests/test_sorcery.c, main/sorcery.c, res/res_sorcery_memory.c,
include/asterisk/sorcery.h: Pass the sorcery instance to wizards
for CUD operations as well as retrieve.
2013-03-19 19:07 +0000 [r383377] Kinsey Moore <kmoore@digium.com>
* main/stasis_message_router.c: Fix lock destruction/unlock
inversion When using scoped locks, the unref of an AO2 object
should happen after the unlock occurs which requires usage of
scoped refs.
2013-03-19 16:00 +0000 [r383343] David M. Lee <dlee@digium.com>
* codecs/Makefile, /: Multiple revisions 383341-383342 ........
r383341 | dlee | 2013-03-19 10:57:29 -0500 (Tue, 19 Mar 2013) | 5
lines Removed codecs/g722/*.i on make clean ........ Merged
revisions 383340 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
r383342 | dlee | 2013-03-19 10:58:33 -0500 (Tue, 19 Mar 2013) | 1
line Remove codecs/speex/*.i on make clean ........ Merged
revisions 383341-383342 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-16 16:00 +0000 [r383284-383287] Kinsey Moore <kmoore@digium.com>
* res/res_jabber.c, channels/chan_mgcp.c: Make sure things
compile...
* channels/chan_sip.c, include/asterisk/stasis.h, res/res_xmpp.c,
channels/sig_pri.c, channels/chan_iax2.c, res/res_jabber.c,
main/stasis.c, channels/sig_pri.h, main/channel.c,
include/asterisk/app.h, channels/chan_dahdi.c,
channels/chan_skinny.c, include/asterisk/xmpp.h,
apps/app_minivm.c, main/app.c, channels/sip/include/sip.h,
main/asterisk.c, channels/chan_mgcp.c, apps/app_voicemail.c,
channels/chan_unistim.c: Transition MWI to Stasis-core Remove
MWI's dependency on the event system by moving it to Stasis-core.
This also introduces forwarding topic pools in Stasis-core which
aggregate many dynamically allocated topics into a single primary
topic. Review: https://reviewboard.asterisk.org/r/2368/ (closes
issue ASTERISK-21097) Patch-by: Kinsey Moore
2013-03-16 15:40 +0000 [r383267-383283] Joshua Colp <jcolp@digium.com>
* res/res_xmpp.c, CHANGES: Add support for using XMPP buddy state
via device state. This change allows you to use XMPP buddy state
in places where device state can be used be used, such as
dialplan hints. If at least one resource is available the buddy
is considered available. Now your phone can reflect their IM
status too!
* /, res/res_xmpp.c: Fix a bug where resources were not found due
to hashing on the priority itself. ........ Merged revisions
383266 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-15 17:35 +0000 [r383225-383242] David M. Lee <dlee@digium.com>
* main/stasis.c, main/stasis_cache.c, main/stasis_message_router.c
(added), main/stasis_message.c,
include/asterisk/stasis_message_router.h (added),
tests/test_stasis.c: A simplistic router for stasis_message's.
Often times, when subscribing to a topic, one wants to handle
different message types differently. While one could cascade
if/else statements through the subscription handler, it is much
cleaner to specify a different callback for each message type.
The stasis_message_router is here to help! A
stasis_message_router is constructed for a particular
stasis_topic, which is subscribes to. Call
stasis_message_router_unsubscribe() to cancel that subscription.
Once constructed, routes can be added using
stasis_message_router_add() (or
stasis_message_router_set_default() for any messages not handled
by other routes). There may be only one route per
stasis_message_type. The route's callback is invoked just as if
it were a callback for a subscription; but it only gets called
for messages of the specified type. (issue ASTERISK-20887)
Review: https://reviewboard.asterisk.org/r/2390/
* configs/stasis_core.conf.sample (added): Sample config file for
stasis-core. (issue ASTERISK-20887)
2013-03-15 13:04 +0000 [r383167-383169] Kinsey Moore <kmoore@digium.com>
* tests/test_stasis.c, main/manager.c, main/channel_internal_api.c:
Take advantage of the fact that stasis_unsubscribe now returns
NULL
* main/stasis.c, main/stasis_cache.c, include/asterisk/stasis.h:
Make stasis unsubscription functions return NULL Unsubscribing
things in Asterisk seems to very commonly follow with NULLing out
the variable that was unsubscribed. This change makes that a bit
simpler.
* main/tcptls.c, main/manager.c, /, channels/chan_sip.c,
main/http.c: tcptls: Prevent unsupported options from being set
AMI, HTTP, and chan_sip all support TLS in some way, but none of
them support all the options that Asterisk's TLS core is capable
of interpreting. This prevents consumers of the TLS/SSL layer
from setting TLS/SSL options that they do not support. This also
gets tlsverifyclient closer to a working state by requesting the
client certificate when tlsverifyclient is set. Currently, there
is no consumer of main/tcptls.c in Asterisk that supports this
feature and so it can not be properly tested. Review:
https://reviewboard.asterisk.org/r/2370/ Reported-by: John
Bigelow Patch-by: Kinsey Moore (closes issue AST-1093) ........
Merged revisions 383165 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383166 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-15 01:38 +0000 [r383122-383126] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: When a session timer expires during a
T.38 call, re-invite with correct SDP When a session timer
expires during a dialog that has re-negotiated to T.38 and
Asterisk is the refresher, Asterisk will send a re-INVITE with an
SDP containing audio media only. This causes some hilarity with
the poor fax session under weigh. This patch corrects that by
sending T.38 parameters if we are in the middle of a T.38
session. (closes issue ASTERISK-21232) Reported by: Nitesh Bansal
patches:
dont-send-audio-reinvite-for-sess-timer-in-t38-call.patch
uploaded by nbansal (License 6418) ........ Merged revisions
383124 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 383125 from
http://svn.asterisk.org/svn/asterisk/branches/11
* pbx/pbx_spool.c, /: Fix processing of call files when using
KQueue on OS X In certain situations, call files are not
processed when using KQueue with pbx_spool. Asterisk was sending
an invalid timeout value when the spool directory is empty,
causing the call to kevent to error immediately. This can create
a tight loop, increasing the CPU load on the system. (closes
issue ASTERISK-21176) Reported by: Carlton O'Riley patches:
kqueue_osx.patch uploaded by coriley (License 6473) ........
Merged revisions 383120 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383121 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-14 16:57 +0000 [r383063] Jason Parker <jparker@digium.com>
* autoconf/ast_ext_lib.m4, /: Fix whitespace in AST_EXT_LIB_CHECK
macro. ........ Merged revisions 383061 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 383062 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-13 14:39 +0000 [r383008] Matthew Jordan <mjordan@digium.com>
* res/res_rtp_asterisk.c: Always set the RTP instance data in the
RTP engine Not informing the RTP engine of the instance data
creates shrapnel.
2013-03-12 22:43 +0000 [r382989] Andrew Latham <lathama@gmail.com>
* res/res_config_ldap.c: Update Doxygen Push some cleanups upstream
before testing another ticket. (issue ASTERISK-20259)
2013-03-12 21:19 +0000 [r382941-382954] Michael L. Young <elgueromexicano@gmail.com>
* addons/res_config_mysql.c, /: Fix Sorting Order For Parking Lots
Stored In Static Realtime When retrieving the parking lots from a
MySQL database table, the current order is "filename, cat_metric
desc, var_metric asc, category". If there are multiple parking
lots with the same cat_metric but different categories,
everything is being sorted on cat_metric first resulting in
errors when loading the parking lots. This patch fixes the
problem by sorting on the category field first, then the
cat_metric field. (closes issue ASTERISK-21035) Reported by: Alex
Epshteyn Patches: asterisk-21035-orderby.diff Michael L. Young
(license 5026) ........ Merged revisions 382942 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382943 from
http://svn.asterisk.org/svn/asterisk/branches/11
* contrib/realtime/postgresql/realtime.sql,
contrib/realtime/mysql/sippeers.sql, /: Update Contributed
Realtime Schema Files - IPv6 Addresses This commit updates some
fields in the contributed realtime schema files to handle IPv6
addresses. (closes issue ASTERISK-21173) Reported by: Torrey
Searle Patches: realtime_sql.patch Torrey Searle (license 5334)
asterisk-21173-update-ip-fields.diff Michael L. Young (license
5026) ........ Merged revisions 382939 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382940 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-12 20:07 +0000 [r382924] Joshua Colp <jcolp@digium.com>
* res/res_xmpp.c, /: Fix a crash when res_xmpp is configured using
a username without a domain. (closes issue ASTERISK-21156)
Reported by: amsoft2001 ........ Merged revisions 382923 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-12 19:08 +0000 [r382900] Jason Parker <jparker@digium.com>
* res/Makefile, CHANGES, makeopts.in, res/pjproject (removed),
res/res_rtp_asterisk.c, build_tools/menuselect-deps.in,
configure, include/asterisk/autoconfig.h.in, configure.ac: Switch
to using external pjproject libraries. ICE/STUN/TURN support in
res_rtp_asterisk is also now optional.
2013-03-12 16:30 +0000 [r382852] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: Include the Username field in SIP
Registry events when Status is registered In ASTERISK-17888, the
AMI Registry event during SIP registrations was supposed to
include the Username field. Somehow, one of the events was
missed. This patch corrects that - the Username field should be
included in all AMI Registry events involving SIP registrations.
(issue ASTERISK-17888) (closes issue ASTERISK-21201) Reported by:
Dmitriy Serov patches: chan_sip.c.diff uploaded by Dmitriy Serov
(license 6479) ........ Merged revisions 382847 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382848 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-12 08:55 +0000 [r382828] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* /, channels/chan_unistim.c: Fix core dump on CLI usage Fix issue
with 'unistim show info' CLI command when device connected not
configured ........ Merged revisions 382827 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-11 15:22 +0000 [r382787] Kevin Harwell <kharwell@digium.com>
* CHANGES, channels/sip/include/sip.h, channels/chan_sip.c: Added
an option to disallow music on hold Added an option
"discard_remote_hold_retrieval" (default "no") that if set does
not trigger the music on hold event. This essentially stops
telling the peer to start music on hold. (issue ABE-2899)
Reported by: Denis Alberto Martinez Review:
https://reviewboard.asterisk.org/r/2336/
2013-03-09 00:21 +0000 [r382764] Richard Mudgett <rmudgett@digium.com>
* apps/confbridge/conf_state.c,
apps/confbridge/conf_config_parser.c,
apps/confbridge/conf_state_single.c,
apps/confbridge/conf_state_inactive.c,
apps/confbridge/conf_state_single_marked.c,
apps/confbridge/include/confbridge.h,
apps/confbridge/include/conf_state.h,
apps/confbridge/conf_state_multi.c, apps/app_confbridge.c,
apps/confbridge/conf_state_multi_marked.c,
apps/confbridge/conf_state_empty.c: confbridge: Rename items for
clarity and consistency. struct conference_bridge_user -> struct
confbridge_user struct conference_bridge -> struct
confbridge_conference struct conference_state -> struct
confbridge_state struct conference_bridge_user
*conference_bridge_user -> struct confbridge_user *user struct
conference_bridge_user *cbu -> struct confbridge_user *user
struct conference_bridge *conference_bridge -> struct
confbridge_conference *conference The names are now generally
shorter, consistently used, and don't conflict with the struct
names. This patch handles the renaming part of the issue. (issue
ASTERISK-20776) Reported by: rmudgett
2013-03-08 20:26 +0000 [r382746] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Update the via header when
relaying SMS MESSAGE Prior to this change, certain conditions for
sending the message would result in an address of '(null)' being
used in the via header of the SIP message because a NULl value of
pvt->ourip was used when initially generating the via header.
This is fixed by adding a call to build_via when the address is
set before sending the message. (closes issue ASTERISK-21148)
Reported by: Zhi Cheng Patches: 700-sip_msg_send_via_fix.patch
uploaded by Zhi Cheng (license 6475) ........ Merged revisions
382739 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-08 16:59 +0000 [r382721-382724] David M. Lee <dlee@digium.com>
* main/stasis_cache.c, include/asterisk/stasis.h: Stasis
documentation updates. (issue ASTERISK-20887) (issue
ASTERISK-20959)
* main/channel_internal_api.c, main/stasis.c, main/channel.c:
Ensure dummy channels get a stasis topic. Fixes test failure
introduced in r382685. (issue ASTERISK-20887) (issue
ASTERISK-20959)
2013-03-08 16:00 +0000 [r382705] Kinsey Moore <kmoore@digium.com>
* include/asterisk/stasis.h, tests/test_stasis.c,
main/stasis_cache.c: Add message dump capability to stasis cache
layer The cache dump mechanism allows the developer to retreive
multiple items of a given type (or of all types) from the cache
residing in a stasis caching topic in addition to the existing
single-item cache retreival mechanism. This also adds to the
caching unit tests to ensure that the new cache dump mechanism is
functioning properly. Review:
https://reviewboard.asterisk.org/r/2367/ (issue ASTERISK-21097)
2013-03-08 15:15 +0000 [r382685] David M. Lee <dlee@digium.com>
* main/channel.c, main/stasis_cache.c (added), main/pbx.c,
main/stasis_message.c (added), main/manager.c,
main/asterisk.exports.in, include/asterisk/channel_internal.h,
main/channel_internal_api.c, include/asterisk/stasis.h (added),
include/asterisk/channel.h, tests/test_stasis.c (added),
main/asterisk.c, main/stasis.c (added): This patch adds a new
message bus API to Asterisk. For the initial use of this bus, I
took some work kmoore did creating channel snapshots. So rather
than create AMI events directly in the channel code, this patch
generates Stasis events, which manager.c uses to then publish the
AMI event. This message bus provides a generic publish/subscribe
mechanism within Asterisk. This message bus is: - Loosely
coupled; new message types can be added in seperate modules. -
Easy to use; publishing and subscribing are straightforward
operations. In addition to basic publish/subscribe, the patch
also provides mechanisms for message forwarding, and for message
caching. (issue ASTERISK-20887) (closes issue ASTERISK-20959)
Review: https://reviewboard.asterisk.org/r/2339/
2013-03-08 04:11 +0000 [r382670-382671] Matthew Jordan <mjordan@digium.com>
* channels/chan_sip.c: Remove unused function After r382670,
get_ip_and_port_from_sdp was no longer used.
* channels/chan_sip.c: Don't reset the RTP address on a glare
re-INVITE Originally, way back in r201583, we added the alternate
RTP address so that the RTP engine would expect to receive audio
from a new source when a glare re-INVITE occurred. In r382589, we
remove the alternate RTP source, as the 'secret' probation mode
allows for switching to a new RTP source when a previous source
stops sending RTP. At the time, it seemed appropriate to set the
RTP source based on the information in the glared re-INVITE.
Unfortunately, that doesn't work so well - in a glared re-INVITE
that occurs with no SDP - such as in a connected line update that
glances - we'll set the RTP source to an invalid address. In
subsequent re-INVITE requests from this Asterisk instance, we'll
then send an invalid media address, which will result in the
remote side sending a 488. Whoops. There isn't any need to reset
the RTP source - if we're using strictrtp, we'll simply
synchronize to a new source when we stop getting packets from the
old one. If we aren't using strictrtp, then again there shouldn't
be a problem. Note that the Asterisk Test Suite's connectedline
test caught this error.
2013-03-07 21:55 +0000 [r382648] David M. Lee <dlee@digium.com>
* main/threadpool.c: Changing log level of "Not changing threadpool
size" from notice to debug.
2013-03-07 21:14 +0000 [r382636] Jason Parker <jparker@digium.com>
* res/res_sorcery_config.c, res/res_sorcery_memory.c: Load sorcery
modules earlier, so they can actually be used.
2013-03-07 19:14 +0000 [r382621] Matthew Jordan <mjordan@digium.com>
* apps/app_voicemail.c, /: Let vm_mailbox_snapshot combine "Urgent"
when no folder is specified r381835 fixed a bug in
vm_mailbox_snapshot where combining INBOX and Old forgot that
Urgent also "counts" as new messages. This fixed the problem when
any of the three folders was specified and the combine option was
used. It missed the case where the folder isn't specified and we
build a snapshot of all folders. This patch corrects that.
........ Merged revisions 382617 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-07 16:48 +0000 [r382600-382604] Kinsey Moore <kmoore@digium.com>
* main/xmldoc.c: Fix a memory leak in xmldoc Another instance of
attribute retrieval not being freed properly.
* main/xmldoc.c: Resolve more memory leaks in xmldoc Many places
that allocated to pull out an attribute are now freed properly.
2013-03-07 15:48 +0000 [r382589] Matthew Jordan <mjordan@digium.com>
* res/res_rtp_asterisk.c, main/rtp_engine.c, /,
channels/chan_sip.c, include/asterisk/rtp_engine.h: Add a
'secret' probation strictrtp mode to handle delayed changes in
RTP source Often, Asterisk may realize that a change in the
source of an RTP stream is about to occur and ask that the RTP
engine reset it's lock on the current RTP source. In certain
scenarios, it may take awhile for the new remote system to send
RTP packets, while the old remote system may continue providing
RTP during that time period. This causes Asterisk to re-lock onto
the old source, thereby rejecting the new source when the old
source stops sending RTP and the new source begins. This patch
prevents that by having a constant secondary, 'secret' probation
mode enabled when an RTP source has been chosen. RTP packets from
other sources are always considered, but never chosen unless the
current RTP source stops sending RTP. Review:
https://reviewboard.asterisk.org/r/2364 (closes issue AST-1124)
Reported by: John Bigelow Tested by: John Bigelow (closes issue
AST-1125) Reported by: John Bigelow Tested by: John Bigelow
........ Merged revisions 382573 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-07 15:36 +0000 [r382489-382587] Kinsey Moore <kmoore@digium.com>
* main/xmldoc.c: Fix minor memory leak in xmldoc Strings retrieved
via ast_xml_get_text() must be freed with ast_xml_free_text().
* /, main/logger.c: Ensure that logmsgs are freed properly Messages
sent while the logger thread is shutting down will now have their
associated callid freed properly. ........ Merged revisions
382574 from http://svn.asterisk.org/svn/asterisk/branches/11
* main/threadpool.c: Fix ref leak in threadpool.c If
ast_threadpool_set_size with a size equal to the current size, a
reference to a set_size_data structure would be leaked.
* main/threadpool.c: Resolve a ref leak in threadpool.c Ownership
of the listener reference is not transferred because the listener
is reffed when placed into the taskprocessor. Ensure that the
listener is dereffed properly.
2013-03-05 13:14 +0000 [r382440] Matthew Jordan <mjordan@digium.com>
* CREDITS, contrib/realtime/mysql/sippeers.sql,
channels/chan_sip.c, configs/res_ldap.conf.sample,
contrib/realtime/postgresql/realtime.sql,
configs/sip.conf.sample, CHANGES,
contrib/scripts/asterisk.ldap-schema,
contrib/scripts/asterisk.ldif, channels/sip/include/sip.h: Add
RFC 3327 Path header support to chan_sip This patch adds support
for RFC 3327 "Path" headers. This can be enabled in sip.conf
using the 'supportpath' setting, either on a global basis or on a
peer basis. This setting enables Asterisk to route outgoing
out-of-dialog requests via a set of proxies by using a pre-loaded
route-set defined by the Path headers in the REGISTER request.
This patch also adds Realtime support for dynamically updating
the Path information for a peer. A huge thank-you to Klaus
Darillion and Olle E Johansson for their efforts in writing this
patch. Review: https://reviewboard.asterisk.org/r/2235/ Review:
https://reviewboard.asterisk.org/r/991/ (closes issue
ASTERISK-16884) Reported by: klaus3000 Tested by: klaus3000, oej,
mjordan patches: path-1.8.0-patch.txt uploaded by klaus3000
(License 5054) oolong-path-support-trunk in team branch by oej
(License 5267)
2013-03-05 03:53 +0000 [r382411] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c, /: Fix several unreleased mutex locks
that cause problem with processing calls Reported by: Daniel
Bohling Tested by: Daniel Bohling (Closes issue ASTERISK-21119)
........ Merged revisions 382409 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382410 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-04 21:15 +0000 [r382392] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/format_cap.h, main/bridging.c: Fixup some bridge
and format capabilities comments and whitespace.
2013-03-04 21:14 +0000 [r382391] Jason Parker <jparker@digium.com>
* main/event.c, /: Fix comparison of presence state in event
subsystem. Several new IEs were not given types (or names),
causing the comparison function to improperly succeed. This adds
those. (closes issue AST-1128) ........ Merged revisions 382390
from http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-04 20:18 +0000 [r382386] Kevin Harwell <kharwell@digium.com>
* /, apps/app_confbridge.c: Confbridge CLI new record file name
check. This fix checks to make sure that if a confbridge record
start command is issued from the CLI it will always use the file
name given on the CLI even if it changes between start/stop
records for a conference. Previously it had been reusing the same
file between start/stops even if a new filename was given. (issue
AST-1088) Reported by: John Bigelow ........ Merged revisions
382385 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-03-01 18:01 +0000 [r382340] Joshua Colp <jcolp@digium.com>
* include/asterisk/sorcery.h, tests/test_sorcery.c, main/sorcery.c:
Add support for registering a sorcery handler which supports
multiple fields using a regex. Review:
https://reviewboard.asterisk.org/r/2332/
2013-03-01 04:32 +0000 [r382323] Michael L. Young <elgueromexicano@gmail.com>
* contrib/realtime/postgresql/realtime.sql, CHANGES,
contrib/realtime/mysql/sippeers.sql, /, channels/chan_sip.c: Fix
/ Clean Up Some Items To Handle The New auto_* NAT Options The
original report had to do with a realtime peer behind NAT being
pruned and the peer's private address being used instead of its
external address. Upon debugging, it was discovered that this was
being caused by the addition of the auto_force_rport and
auto_comedia settings. This patch does the following: * Adds a
missing note to the CHANGES file indicating that the default
global nat setting is auto_force_rport * Constify the 'req'
parameter for check_via() * Add calls to check_via() in a couple
of places in order for the auto_* settings to do their job in
attempting to determine if NAT is involved * Set the flags
SIP_NAT_FORCE_RPORT and SIP_PAGE2_SYMMETRICRTP if the auto_*
settings are in use where it was needed * Moves the copying of
peer flags up in build_peer() to before they are used; this fixes
the realtime prune issue * Update the contrib/realtime schemas to
allow the nat column to handle the different nat setting
combinations we have This patch received a review and "Ship It!"
on the issue itself. (closes issue ASTERISK-20904) Reported by:
JoshE Tested by: JoshE, Michael L. Young Patches:
asterisk-20904-nat-auto-and-rt-peersv2.diff Michael L. Young
(license 5026) ........ Merged revisions 382322 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-28 21:59 +0000 [r382297-382299] Joshua Colp <jcolp@digium.com>
* res/res_rtp_asterisk.c, /: While the ICE negotiation is occurring
leave strictrtp in an open state, media can and will come from
different places. ........ Merged revisions 382298 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_rtp_asterisk.c, /: Fix a bug with ICE and strictrtp where
media could get dropped. If the end result of the ICE negotiation
resulted in the path for media changing it was possible for the
strictrtp code to discard the RTP packets. This change causes
strictrtp to enter learning mode once again when the ICE
negotiation has completed successfully. ........ Merged revisions
382296 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-28 21:31 +0000 [r382294-382295] Richard Mudgett <rmudgett@digium.com>
* main/threadpool.c: threadpool: Make ast_threadpool_push() return
-1 if shutting_down
* include/asterisk/threadpool.h, main/threadpool.c: threadpool:
Whitespace and comment corrections.
2013-02-28 21:21 +0000 [r382292] Jason Parker <jparker@digium.com>
* res/res_rtp_asterisk.c, include/asterisk.h: Don't undefine
bzero()/bcopy(). This was causing build failures against external
libraries that happened to use them, unless silly hacks were
added to the modules that used those headers. Review:
https://reviewboard.asterisk.org/r/2359/
2013-02-28 17:17 +0000 [r382232-382236] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_iax2.c: Prevent deadlock in chan_iax2 when
attempting to set caller ID A deadlock can occur in chan_iax2
when it attempts to set the caller ID, as it already holds the
iax2 private lock and improperly fails to obtain the channel lock
before calling ast_set_callerid. By not safely obtaining the
channel lock, a locking inversion can take place, causing a
deadlock. This patch solves this by calling the required deadlock
avoidance functions that obtain the channel lock before setting
the caller ID. Thanks to Pavel for fixing my syntax errors and
testing this patch out. (closes issue ASTERISK-21128) Reported
by: Pavel Troller Tested by: Pavel Troller patches:
ASTERISK-21128-1.8.diff uploaded by mjordan (license 6283)
ASTERISK-21128-modified-1.8.diff uploaded by Pavel Troller
(license 6302) ........ Merged revisions 382233 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382234 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_meetme.c, CHANGES: Let channels joining a MeetMe
conference opt out of the denoiser For some channel drivers,
specifically those that have a varying rate in the number of
audio samples, the audio quality for a MeetMe conference can be
exceedingly poor. This is due to a unilateral application of the
DENOISE function in func_speex to channels joining the
conference. The denoiser function in the speex library is
initialized with the number of audio samples in each sample that
will be provided to it. If the number of audio samples changes,
the denoiser has to be thrown away and re-initialized. While this
could be worked around by removing func_speex, that doesn't help
if you actually use the denoiser with other channels on the
system. This patches does the following: * Checks for the
presence of func_speex as opposed to codec_speex when determining
if the DENOISE function is present (which is where the function
is actually implemented) * Adds an option to MeetMe 'n' that
causes the denoiser to not be applied to a channel when it joins.
This keeps the current behavior the default, but let's users
disable the denoiser if it causes problems on their system.
Review: https://reviewboard.asterisk.org/r/2358 (closes issue
AST-1062) Reported by: Thomas Arimont ........ Merged revisions
382227 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 382230 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-27 20:31 +0000 [r382203-382204] Richard Mudgett <rmudgett@digium.com>
* channels/chan_skinny.c: More places to eliminate the cast to argv
but were not giving warnings.
* channels/chan_skinny.c: Fix compiler warning by eliminating the
need for a cast.
2013-02-27 16:19 +0000 [r382182] Joshua Colp <jcolp@digium.com>
* /, channels/chan_sip.c: Relax dialog checking in
get_sip_pvt_byid_locked so it works when the dialog is forked.
(closes issue ASTERISK-20638) Reported by: eelcob Patches:
pedantic-call-pickup-from-tag.patch uploaded by eelcob (license
6442) ........ Merged revisions 382171 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382174 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-26 20:05 +0000 [r382113] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* configure.ac, /, configure: Consider linux-gnuspe as linux-gnu *
The powerpcspe Linux port uses linux-gnuspe as the OS string. *
Our build system shouldn't really care for that, so just call it
linux-gnu. * Original report: Roland Stigge ,
http://bugs.debian.org/701505 Review:
https://reviewboard.asterisk.org/r/2357/ ........ Merged
revisions 382110 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382111 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-26 19:36 +0000 [r382109] Walter Doekes <walter+asterisk@wjd.nu>
* /, channels/chan_sip.c: Correct RPID parsing for unquoted
display-name. Parsing Remote-Party-ID will now succeed if
display-name is of the *(token LWS) kind and not just the
quoted-string kind. Review:
https://reviewboard.asterisk.org/r/2341/ ........ Merged
revisions 382107 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382108 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-26 19:29 +0000 [r382106] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* main/Makefile, /: Remove unneeded linux-gnueabi* As of r380522
the configure scripts converts the value of linux-gnueabi* of
OSARCH to "linux-gnu". So no point in testing for those values.
........ Merged revisions 382087 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382096 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-26 15:52 +0000 [r382067-382070] Matthew Jordan <mjordan@digium.com>
* /, apps/app_confbridge.c: Clean up ConfBridge commands to account
for wait_marked users When ConfBridge was refactored to better
handle the concept of marked, wait_marked, and normal users
co-existing in a conference (thereby implementing a state machine
for the conference), the wait_marked users were put into their
own list of conference participants, separate from the active
users. This list is used for wait_marked users when they are
waiting in a conference but no marked user has joined; normal
users may have joined at this point however. There are several
AMI/CLI commands that affect conference users that were not
checking the wait_marked users list: * CLI/AMI commands that
mute/unmute a participant. In this case, wait_marked users have
to remain in their particular state and should not be affected -
however, the commands would return "Channel not found" as opposed
to the appropriate error condition. * CLI/AMI commands that kick
a participant. An admin should always be able to kick a
participant out of the conference. This patch fixes both sets of
commands, and cleans up the CLI commands slightly by allowing
them to complete a participant name (this was supposed to have
been added, but the function call was commented out and wasn't
implemented). Review: https://reviewboard.asterisk.org/r/2346/
(closes issue AST-1114) Reported by: John Bigelow Tested by: John
Bigelow ........ Merged revisions 382068 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/confbridge/conf_config_parser.c,
configs/confbridge.conf.sample, /: Ensure that the default
bridge/user profiles are always available ConfBridge and Page
require that there always be a default bridge and user profile
available. While properties of the default profiles can be
overriden in the configuration file, removing them can create
situations where neither application can function properly. This
patch ensures that if an administrator removes the profiles from
the confbridge.conf configuration file, the profiles are added
upon load. Documentation clarifying this has been added to the
confbridge.conf.sample file. Review:
https://reviewboard.asterisk.org/r/2356/ (closes issue AST-1115)
Reported by: John Bigelow Tested by: John Bigelow ........ Merged
revisions 382066 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-25 12:51 +0000 [r382023] Matthew Jordan <mjordan@digium.com>
* /, addons/res_config_mysql.c: Clean up use of va_end/va_args in
res_config_mysql There were several problems using variadic
argument macros in res_config_mysql. * Improper use of va_end.
Multiple calls to va_end were possible resulting in an unbalanced
matching of va_start/va_end. * Calls to va_arg after a possible
encounter of a SENTINEL value. This patch corrects those errors.
(closes issue ASTERISK-19451) Reported by: wdoekes patches:
ASTERISK-19451-1.8--2.diff uploaded by wdoekes (License 5674)
........ Merged revisions 382021 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 382022 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-25 07:09 +0000 [r382007-382008] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: More called details fixup for skinny.
Basically sets the callerid and callername to the first device
talked to for the purposes of putting the the calls made log on
the device. Does not affect the device displaying who the device
is currently talking to. Also some minor changes to use
sub->exten in lieu of l->lastnumberdialed. (closes issue
ASTERISK-21095) Reported by: wedhorn Tested by: snuffy, myself
Patches: skinny-calllogsoutbound03.diff uploaded by wedhorn
(license 5019)
* channels/chan_skinny.c: Add prinotify messages to skinny. Adds
both fixed and variable prinotify messages and clearprinotify
messages to skinny. Also adds cli function for pushing messages
to devices. i Initial code by snuffy, expanded by myself to
include fixed messages. (closes issue ASTERISK-21091) Reported
by: snuffy Tested by: snuffy, myself Patches:
skinny-prinotify02.diff uploaded by wedhorn (license 5019)
2013-02-24 23:01 +0000 [r381918-381977] Matthew Jordan <mjordan@digium.com>
* channels/chan_jingle.c, /: Set the sin_family on the bind address
socket during initialization Somehow, chan_jingle has managed to
operate for years without setting the sin_family on its bindaddr
socket. This patch properly sets the field during initial module
load to AF_INET. Note that the patch on the issue was modified
slightly to change the initialization of the socket from
allocation of a chan_jingle private to the module initialization,
as the bindaddr object (which is static) only needs to have the
address set once. (closes issue ASTERISK-19341) Reported by:
andre valentin patches: 0105-chan_jingle.patch uploaded by
avalentin (License 6064) ........ Merged revisions 381975 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381976 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/manager.c, /: Don't display the AMI ALL class authorization
for users if they don't have it When converting AMI class
authorizations to a string representation, the method always
appends the ALL class authorization. This is especially important
for events, as they should always communicate that class
authorization - even if the event itself does not specify ALL as
a class authorization for itself. (Events have always assumed
that the ALL class authorization is implied when they are raised)
Unfortunately, this did mean that specifying a user with
restricted class authorizations would show up in the 'manager
show user' CLI command as having the ALL class authorization.
Rather then modifying the existing string manipulation function,
this patch adds a function that will only return a string if the
field being compared explicitly matches class authorization field
it is being compared against. This prevents ALL from being
returned unless it is actually specified for the user. (closes
issue ASTERISK-20397) Reported by: Johan Wilfer ........ Merged
revisions 381939 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381943 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_parkandannounce.c, /: Make ParkAndAnnounce return to
priority + 1 when return context is not defined The
ParkAndAnnounce application documentation for the optional
return_context parameter states the following: return_context The
goto-style label to jump the call back into after timeout.
Default 'priority+1'. Unfortunately, the application was sending
the channel back into the dialplan at 'priority', which is the
ParkAndAnnounce application call. This causes an infinite loop of
the channel constantly being parked, announced, timed out,
parked, announced, timed out... while fun, especially for those
callers you wish to drive to the end of madness, this was not the
intent of the application. (closes issue ASTERISK-20113) Reported
by: serginuez patches: app_parkandannounce.diff uploaded by
serginuez (License 6405) ........ Merged revisions 381916 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381917 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-22 19:40 +0000 [r381894] Michael L. Young <elgueromexicano@gmail.com>
* /, res/res_agi.c: Fix FastAGI To Properly Check For A Connection
When IPv6 support was added to FastAGI, the intent was to have
the ability to check all addresses resolved for a host since we
might receive an IPv4 address and an IPv6 address. The problem
with the current code, is that, since we are doing O_NONBLOCK, we
get EINPROGRESS when calling ast_connect() but are ignoring this
instead of handling it. We break out of the loop and continue on.
When we later call ast_poll(), it succeeds but we never check if
we have a connection or not on the socket level. We then attempt
to send data to the host address that we think is setup and it
fails. We then check the errno and see that we have "connection
refused" and then return with agi failed. This patch does the
following: * Handles EINPROGRESS by creating the function
handle_connection() - ast_poll() was moved into this function -
This function checks the results of the connection on the socket
level after calling ast_poll() * Continues to the next address if
the above fails to create a connection * Once all addresses
resolved are tried and we still are unable to establish a
connection, then we return that the FastAGI call failed (closes
issue ASTERISK-21065) Reported by: Jeremy Kister Tested by:
Jeremy Kister, Michael L. Young Patches:
asterisk-21065_poll_correctly_v4.diff Michael L. Young (license
5026) Review: https://reviewboard.asterisk.org/r/2330/ ........
Merged revisions 381893 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-22 15:51 +0000 [r381881] Jonathan Rose <jrose@digium.com>
* apps/app_dial.c, /: app_dial: Honor the 'c' flag when the calling
party hangs up Apparently this feature became broken in 11,
probably as a result of the Hangup Cause project. (closes issue
ASTERISK-21113) Reprted by: Heiko Wundram Patches: app_dial.patch
uploaded by Heiko Wundram (license 5822) ........ Merged
revisions 381880 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-22 01:52 +0000 [r381869] Matthew Jordan <mjordan@digium.com>
* /, configure, configure.ac: Properly detect launchd Asterisk was
a little too pro-active in claiming that it found launchd. On
systems without launchd - such as FreeBSD - this resulted in
certain items in Asterisk that conflict with launchd to not be
selectable, such as res_timing_kqueue. (closes issue
ASTERISK-20749) Reported by: Oleg Baranov ........ Merged
revisions 381847 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381848 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-19 19:47 +0000 [r381792] Kevin Harwell <kharwell@digium.com>
* main/features.c: Write the correct callid to the data1 field in
queue_log for transfer events. The incorrect callid was being
written to the "data1" field in queue_log table for transfer
events. The callid of the queue was being written instead of the
transfer target's callid. This now gets the correct "transfer to"
number and places that in the "data1" field of the queue_log
table when a transfer event is triggered. (closes issue
ASTERISK-19960) Reported by: vladimir shmagin ........ Merged
revisions 381770 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381791 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-19 17:17 +0000 [r381749] Michael L. Young <elgueromexicano@gmail.com>
* channels/chan_motif.c, include/asterisk/module.h,
res/snmp/agent.c, main/loader.c, main/cli.c: Add The Status Of A
Module To The Output Of "CLI> module show" When a module's
configuration is not loadable, we still load the module but it is
not in a running state. When trying to troubleshoot, let's say,
why chan_motif is ignoring inbound XMPP traffic, there is no way
to indicate that a loaded module is not currently running.
(closes issue ASTERISK-21108) Reported by: Rusty Newton Tested
by: Michael L. Young Patches: asterisk-21108_add_status-v2.diff
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2331/
2013-02-19 16:23 +0000 [r381729-381741] Kevin Harwell <kharwell@digium.com>
* apps/app_confbridge.c: Confbridge channels staying active when
all participants leave. If you started/stopped recording of a
conference multiple times channels would remain active even when
all participants left the conference. This was due to the fact
that a reference to the confbridge was being added every time a
start record command was issued, but when the recording was
stopped there was no matching de-reference thus keeping the
conference alive. Made sure only a single reference is added for
the record thread no matter how many times recording is
started/stopped. A de-reference is issued upon thread ending.
Note, this issue is being fixed under AST-1088 since it relates
to it and should have been corrected along with those
modifications. (issue AST-1088) Reported by: John Bigelow
........ Merged revisions 381737 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/confbridge/include/confbridge.h, apps/app_confbridge.c,
CHANGES, apps/confbridge/conf_config_parser.c: Added Confbridge
record_file_append option. Currently, if one starts, stops, and
then starts a recording again for a conference the recorded data
is appended to the file originally created on the first record
start. An option record_file_append has been added that defaults
to "yes", but when set to "no" will force creation of a new file
between every record start/stop. (issue AST-1088) Reported by:
John Bigelow Review: http://reviewboard.digium.internal/r/374/
2013-02-19 06:54 +0000 [r381717-381718] Damien Wedhorn <voip@facts.com.au>
* configs/skinny.conf.sample, channels/chan_skinny.c: Add
serviceURL stuff to skinny. Patch adds all the packet and
structure stuff to skinny to enable setting service URLs in
skinny, such as corporate directories. This stuff is only
relevant during load/unload as when activated. Also some minor
changes removing duplicated counting of addons and speedials in
handle_skinny_show_devices. Review:
https://reviewboard.asterisk.org/r/2321/
* channels/chan_skinny.c: Fixup skinny CLI completion. Auto
complete for skinny debug allows multiple options and negation,
also add debug all option. Usage example: 'skinny debug all
-packets' (each can be autocompleted including -packet). Change
show device to use device name. Remove the duplicate ast_strdup's
from place calling device complete return immediately from
complete devicename and complete linename so that multiple
options are displayed on the CLI if more than one option
available. Review: https://reviewboard.asterisk.org/r/2333/
2013-02-18 22:23 +0000 [r381703] Kevin Harwell <kharwell@digium.com>
* /, apps/app_confbridge.c: Fixed Confbridge file recording
deadlock and appending. A deadlock occurred after
starting/stopping and then restarting a confbridge recording.
Upon starting a recording a record thread is created that holds a
lock until just before exiting. Stopping the recording does not
stop/exit the thread or release the lock. The thread waits until
recording begins again. Starting a stopped recording signals the
thread to continue and start recording again. However restarting
the recording also created another record thread resulting in a
deadlock. The fix was to make sure the record thread was only
created once. Also it was noted that filenames for the recordings
were being concatenated for each start/stop. This was fixed by
creating a new file for each conference session and appending the
actual recorded data within the file (e.g. passing the 'a' option
to MixMonitor). (issue AST-1088) Reported by: John Bigelow
Review: http://reviewboard.digium.internal/r/374/ ........ Merged
revisions 381702 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-18 20:31 +0000 [r381670] Walter Doekes <walter+asterisk@wjd.nu>
* /, configs/sip.conf.sample: Remove "registertrying" and add
"rtp_engine" from/to sip.conf.sample The "registertrying" option
was removed in r343220. The "rtp_engine" option was added in
r186078 but erroneously named "engine" in the sample. Note that
there is no global sip setting for a different engine. ........
Merged revisions 381668 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381669 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-18 19:48 +0000 [r381656] Jonathan Rose <jrose@digium.com>
* funcs/func_presencestate.c, /: PRESENCE_STATE: Provide better
documentation for the 'e' option. Notes that the 'e' option
actually decodes data when used as a write function such as with
the SET application while it encodes data when used to read.
Review: https://reviewboard.asterisk.org/r/2335/ ........ Merged
revisions 381655 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-18 19:12 +0000 [r381644] Richard Mudgett <rmudgett@digium.com>
* apps/app_confbridge.c: confbridge: Add flags column to CLI
"confbridge list <conference>" * Added the following flags to the
CLI "confbridge list <conference>" output: A - The user is an
admin M - The user is a marked user W - The user must wait for a
marked user to join E - The user will be kicked after the last
marked user leaves the conference w - The user is waiting for a
marked user to join * Added the following header to the AMI
ConfbridgeList events: WaitMarked, EndMarked, and Waiting.
(closes issue AST-1101) Reported by: John Bigelow Patches:
confbridge-show-admin3.txt (license #5091) patch uploaded by John
Bigelow Modified
2013-02-16 20:44 +0000 [r381628] Richard Mudgett <rmudgett@digium.com>
* apps/app_confbridge.c: confbridge: Rename i iterator variables to
iter.
2013-02-16 16:28 +0000 [r381615] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: Don't send presencestate information if
the state is invalid Previously, presencestate information was
sent whenever the state was not NOT_SET. When r381594 actually
returned INVALID presence state in all the places it was supposed
to, it caused chan_sip to start adding presence state information
to NOTIFY requests that it previously would not have added.
chan_sip shouldn't be adding presence state information when the
provider is in an invalid state; users can't set the state to
invalid and an invalid state always implies that the provider is
in an error condition. (issue AST-1084) ........ Merged revisions
381613 from http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-16 16:24 +0000 [r381614] Joshua Colp <jcolp@digium.com>
* tests/test_sorcery.c, main/sorcery.c, res/res_sorcery_config.c,
res/res_sorcery_memory.c, include/asterisk/sorcery.h: Add support
for retrieving multiple objects from sorcery using a regex on
their id. Review: https://reviewboard.asterisk.org/r/2329/
2013-02-15 23:29 +0000 [r381595] Matthew Jordan <mjordan@digium.com>
* main/presencestate.c, funcs/func_presencestate.c, main/manager.c,
/: Fix crash in PresenceState AMI action when specifying an
invalid provider This patch fixes a crash in Asterisk that could
be caused by using the PresenceState AMI action while providing
an invalid provider. This patch also adds some additional
warnings when a user attempts to provide the PresenceState action
with invalid data, and removes some NOTICE statements that were
still lurking in the code from testing. (closes issue AST-1084)
Reported by: John Bigelow Tested by: John Bigelow ........ Merged
revisions 381594 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-15 18:51 +0000 [r381568] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Fix a crash that occurred when a BYE was
received on a replaced dialog. Reference counting for the channel
and its tech_pvt got messed up at some point between 1.8 and 11.
The result was that if a BYE for a dialog that had been replaced
(via an INVITE with Replaces) was received, Asterisk would crash
due to trying to access data on a channel that was no longer
there. The fix I introduced is to remove code that both unrefs
the sip_pvt and sets the channel's tech_pvt to NULL when an
INVITE with Replaces is handled. This way when a BYE is received,
the tech_pvt will be non-NULL and so the BYE can be processed and
not cause a crash. (closes issue ASTERISK-20929) reported by
Kristopher Lalletti patches: ASTERISK-20929.patch uploaded by
Mark Michelson (License #5049) ........ Merged revisions 381566
from http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-15 18:44 +0000 [r381567] Matthew Jordan <mjordan@digium.com>
* main/sorcery.c, include/asterisk/sorcery.h,
main/config_options.c: Disable strict XML documentation config
checking; fix crash caused by sorcery This patch does two things:
1. It disables (temporarily) strict XML documentation checking
for module configurations. We should re-enable it before making
any release from trunk. 2. Pass the module flag AST_MODULE
through sorcery. This means several of the API calls are now
macros and will do this automatically for you. The config
framework needs the module that objects are registering to so it
can properly construct the documentation. (This was already a
required field, but sorcery was getting by without it)
2013-02-15 17:38 +0000 [r381557] Kevin Harwell <kharwell@digium.com>
* main/logger.c, include/asterisk/logger.h, main/autoservice.c:
Stopped spamming of debug messages during attended transfer.
While autoservice is running and servicing a channel the callid
is being stored and removed in the thread's local storage for
each iteration of the thread loop. If debug was set to a
sufficient level the log file would be spammed with callid thread
local storage debug messages. Added a new function that checks to
see if the callid to be stored is different than what is already
contained (if anything). If it is different then store/replace
and log, otherwise just leave as is. Also made it so all logging
of debug messages pertaining to the callid thread storage outputs
only when TEST_FRAMEWORK is defined. (issue ASTERISK-21014)
(closes issue ASTERISK-21014) Report by: Rusty Newton Review:
https://reviewboard.asterisk.org/r/2324/
2013-02-15 17:33 +0000 [r381556] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Use video and text crypto
attributes to append RTP profiles to SDP Some bad copy/pasting
resulted in using the audio crypto attribute for both text and
video RTP. Also the audio crypto isn't set until after these, so
it was really just bad all around. (closes ASTERISK-20905)
Reported by: Kristopher Lalletti patches:
rtp_crypto_video_text.diff uploaded by Jonathan Rose (license
6182) ........ Merged revisions 381553 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-15 15:26 +0000 [r381527-381543] Matthew Jordan <mjordan@digium.com>
* /: Remove automerge propertrties added in r381527
* include/asterisk/_private.h, res/res_xmpp.c, main/named_acl.c,
configs/motif.conf.sample, apps/confbridge/conf_config_parser.c,
Makefile, include/asterisk/config_options.h,
configs/xmpp.conf.sample, apps/app_skel.c, channels/chan_motif.c,
include/asterisk/xmldoc.h, main/config_options.c,
doc/appdocsxml.dtd, main/asterisk.c, main/xmldoc.c, main/udptl.c,
include/asterisk/xml.h, /, main/xml.c: Add CLI configuration
documentation This patch allows a module to define its
configuration in XML in source, such that it can be parsed by the
XML documentation engine. Documentation is generated in a
two-pass approach: 1. The documentation is first generated from
the XML pulled from the source 2. The documentation is then
enhanced by the registration of configuration options that use
the configuration framework This patch include configuration
documentation for the following modules: * chan_motif * res_xmpp
* app_confbridge * app_skel * udptl Two new CLI commands have
been added: * config show help - show configuration help by
module, category, and item * xmldoc dump - dump the in-memory
representation of the XML documentation to a new XML file.
Review: https://reviewboard.asterisk.org/r/2278 Review:
https://reviewboard.asterisk.org/r/2058 patches: on review 2058
uploaded by twilson
2013-02-14 19:58 +0000 [r381470-381471] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Remove extraneous stuff from r381470.
* channels/chan_skinny.c: Add back sending dialnumber to skinny.
Don't know why it seemed to work during testing, but it really is
needed for protocol v17 (and probably above).
2013-02-14 19:52 +0000 [r381469] Richard Mudgett <rmudgett@digium.com>
* /, main/features.c: End stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO
because it isn't a real hangup. It doesn't hurt to check
AST_SOFTHANGUP_UNBRIDGE either, but it should not be set outside
of a bridge. (issue ASTERISK-20492) ........ Merged revisions
381466 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 381467 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-14 19:25 +0000 [r381465] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Respect callerid presentation in skinny.
Fix chan_skinny so that it respects callerID presentation of
inbound calls to device and a couple of other minor fixes: 145
packet (add OCTAL_FROM amd callerid), and dont send dialednumber
message if protocol >= 17. (closes issue ASTERISK-21066) Reported
by: snuffy Tested by: snuffy, myself Patches:
skinny-respect-clid-restrictions-v2.diff uploaded by snuffy
(license 5024)
2013-02-14 18:47 +0000 [r381448] Kinsey Moore <kmoore@digium.com>
* main/data.c, main/pbx.c, main/manager.c, main/logger.c,
include/asterisk/term.h, apps/app_queue.c, main/asterisk.c,
main/term.c: Revamp of terminal color codes The core module
related to coloring terminal output was old and needed some love.
The main thing here was an attempt to get rid of the obscene
number of stack-local buffers that were allocated for no other
reason than to colorize some output. Instead, this uses a simple
trick to allocate several buffers within threadlocal storage,
then automatically rotates between them, so that you can make
multiple calls to the colorization routine within one function
and not need to allocate multiple buffers. Review:
https://reviewboard.asterisk.org/r/2241/ Patches: bug.patch
uploaded by Tilghman Lesher
2013-02-14 17:06 +0000 [r381398-381427] Sean Bright <sean@malleable.com>
* channels/chan_iax2.c: Use a shuffling algorithm to find unused
IAX2 call numbers. While adding red-black tree containers to
astobj2 in r376575, Richard pointed out the way chan_iax2 finds
unused call numbers will prevent ao2_container integrity checks
at runtime. This patch removes the ao2_container and instead uses
fixed sized arrays and a modified Fisher-Yates-Durstenfeld
shuffle to maintain the call number list. While the locking
semantics are similar to the ao2_container implementation, this
implementation should be faster and more memory efficient.
Review: https://reviewboard.asterisk.org/r/2288/
* include/asterisk/doxygen/asterisk-git-howto.h: Update the name of
the update_tags utility in the git mirror how-to.
2013-02-14 03:49 +0000 [r381366] Matthew Jordan <mjordan@digium.com>
* apps/app_db.c, /: Don't throw a spurious error when using
DBdeltree The function call ast_db_deltree returns the number of
row deleted, or a negative number if it failed. DBdeltree was
treating any non-zero return as an error, causing a spurious
verbose error message to be displayed. This patch handles the
return code of ast_db_deltree correctly. (closes issue
ASTERISK-21070) Reported by: ianc patches: dbdeltree.diff
uploaded by ianc (License #5955) ........ Merged revisions 381364
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 381365 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-12 21:45 +0000 [r381326] David M. Lee <dlee@digium.com>
* include/asterisk/threadpool.h, tests/test_threadpool.c,
tests/test_taskprocessor.c, main/threadpool.c,
main/taskprocessor.c: Add a serializer interface to the
threadpool This patch adds the ability to create a serializer
from a thread pool. A serializer is a ast_taskprocessor with the
same contract as a default taskprocessor (tasks execute serially)
except instead of executing out of a dedicated thread, execution
occurs in a thread from a ast_threadpool. Think of it as a
lightweight thread. While it guarantees that each task will
complete before executing the next, there is no guarantee as to
which thread from the pool individual tasks will execute. This
normally only matters if your code relys on thread specific
information, such as thread locals. This patch also fixes a bug
in how the 'was_empty' parameter is computed for the push
callback, and gets rid of the unused 'shutting_down' field.
Review: https://reviewboard.asterisk.org/r/2323/
2013-02-12 20:57 +0000 [r381307] Mark Michelson <mmichelson@digium.com>
* main/rtp_engine.c, /: Do not allow native RTP bridging if
packetization of media streams differs. The RTP engine will no
longer allow for local and remote native RTP bridges if
packetization of streams differs. Allowing native bridging in
this scenario has been known to cause FAX failures. (closes
ASTERISK-20650) Reported by: Maciej Krajewski Patches:
ASTERISK-20659.patch uploaded by Mark Michelson (License #5049)
Review: https://reviewboard.asterisk.org/r/2319 ........ Merged
revisions 381281 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381306 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-12 20:18 +0000 [r381285] Kinsey Moore <kmoore@digium.com>
* channels/sip/security_events.c, channels/sip/include/sip.h, /,
channels/chan_sip.c: Fix some more REF_DEBUG-related build errors
When sip_ref_peer and sip_unref_peer were exported to be usable
in channels/sip/security_events.c, modifications to those
functions when building under REF_DEBUG were not taken into
account. This change moves the necessary defines into sip.h to
make them accessible to other parts of chan_sip that need them.
........ Merged revisions 381282 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-12 03:31 +0000 [r381256] Michael L. Young <elgueromexicano@gmail.com>
* apps/app_confbridge.c: Adding Some More Manager Events To
ConfBridge Currently, ConfBridge does not send manager events for
ConfbridgeMute, ConfbridgeUnmute, ConfbridgeStartRecord and
ConfbridgeStopRecord. This patch adds these events to the
manager. The reporter's patch moves some other events up to the
beginning of the file. The patch being committed is based on the
patch contributed from the reporter of this issue. I have made a
lot of modifications to the patch in order for it to fit in
better with what we currently are doing in the code when it comes
to manager events. I also made a few changes to the <see-also>
elements on some of the events. (closes issue ASTERISK-20827)
Reported by: Clint Davis Tested by: Clint Davis, Michael L. Young
Patches: 20827.diff uploaded by Clint Davis (license 6453)
asterisk-20827-confbridge-events.diff uploaded by Michael L.
Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2309/
2013-02-11 21:17 +0000 [r381219] Kevin Harwell <kharwell@digium.com>
* apps/app_playback.c, /: Properly load say.conf upon reload of
module app_playback. If say.conf did not exists prior to
originally loading module app_playback it would not load on
subsequent reloads of the module once it had been created. This
occurred because upon reload of the app_playback module it would
only load a new configuration if an old one had previously
existed. This fix simply removed the association between checking
if an old configuration existed and the loading of the new one.
(closes issue ASTERISK-20800) Reported by: pgoergler ........
Merged revisions 381216 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 381217 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-11 21:10 +0000 [r381218] Kinsey Moore <kmoore@digium.com>
* include/asterisk/astobj2.h: Fix compilation error with REF_DEBUG
When the red/black tree work was committed, there was an extra ",
" in the REF_DEBUG definition of ao2_container_alloc_rbtree.
2013-02-11 20:39 +0000 [r381214] David M. Lee <dlee@digium.com>
* tests/test_json.c, res/res_json.c: Minor fixes to res_json and
test_json. * Made input checking more consistent with other
Asterisk code * Added validation to ast_json_dump_new_file *
Fixed tests for ownereship semantics (issue ASTERISK-20887)
2013-02-11 18:54 +0000 [r381195] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Fix some issues with skinny callid. Add
extra string to transmit_callinfo_var, Only set string2 to tonum
for outgoing calls and changes to send_callinfo and push_callinfo
to not set callid name to last number. (closes issue
ASTERISK-21063) Reported by: wedhorn Tested by: snuffy, myself
Patches: skinny-callinfoupdate03.diff uploaded by wedhorn
(license 5019)
2013-02-11 18:00 +0000 [r381177] Richard Mudgett <rmudgett@digium.com>
* main/features.c: features: Don't cache a struct ast_app pointer.
Caching a struct ast_app pointer is not a good idea because
someone could unload the application. After the applicaiton
unload the cached ast_app pointer is no longer valid. Only pbx.c
can cache the pointer because it knows when the application is
unloaded and removes the pointer. * Fixed one-touch Monitor and
MixMonitor to not cache the ast_app pointer and not use the silly
monitor_ok/mixmonitor_ok/stopmixmonitor_ok flags. * Extracted
bridge_check_monitor() from ast_bridge_call() and use propper
locking.
2013-02-11 15:11 +0000 [r381160] Matthew Jordan <mjordan@digium.com>
* res/res_xmpp.c, /: Fix crash in res_xmpp when deleting pubsub
node from CLI An error existed in res_xmpp where it would attempt
to delete attributes from a node that itself was also deleted.
Per the iksemel documentation, attributes added using iks_insert
are copied to the parent node's stack, and will be reclaimed when
that node is itself destroyed. (closes issue ASTERISK-20982)
Reported by: marcelloceschia patches: delete-node-fix.diff
uploaded by marcelloceschia (License 6036) ........ Merged
revisions 381159 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-10 14:58 +0000 [r381134] Joshua Colp <jcolp@digium.com>
* include/asterisk/sorcery.h, tests/test_sorcery.c, main/sorcery.c:
Add additional functionality to the Sorcery API. This commit adds
native implementation support for copying and diffing objects, as
well as the ability to load or reload on a per-object type level.
Review: https://reviewboard.asterisk.org/r/2320/
2013-02-09 20:58 +0000 [r381069-381118] Richard Mudgett <rmudgett@digium.com>
* main/pbx.c: pbx: Fix regression caused by taking advantage of the
function name sort. Taking advantage of the sorted order of the
registered functions container requires that they are actually
inserted in the expected sort order. * Insert the registered
functions into the container in case sensitive position. As a
result, only the complete_functions() routine needs to search the
entire container because it does a case insensitive search for
convenience. Caught by the unit tests.
* main/pbx.c: pbx: Make function and application containers take
advantage of being sorted. * Fixed "core show function" tab
completion and token count checking. * Refactored function and
application container handling code to reduce redundancy. * Made
__ast_pbx_run() return using the defines the caller should
expect. Doesn't change the returned values. Just made use the
defines.
* include/asterisk/channel.h, main/channel.c, channels/chan_sip.c:
Make ast_do_masquerade() a void function.
* /, apps/app_confbridge.c: app_confbridge: Fix crash from
receiving an AMI action after ConfBridge unloaded. Unloading
ConfBridge caused the next AMI action received to crash Asterisk.
* Add the missing unregister of AMI action
ConfbridgeSetSingleVideoSrc when ConfBridge is unloaded. (closes
issue ASTERISK-20994) Reported by: Jeremy Kister Patches:
jira_asterisk_20994_v11.patch (license #5621) patch uploaded by
rmudgett Tested by: Rusty Newton, Jeremy Kister ........ Merged
revisions 381067 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-08 17:36 +0000 [r381068] Jonathan Rose <jrose@digium.com>
* CHANGES, configs/features.conf.sample, main/features.c: Call
Parking: Set PARKINGLOT and PARKINGSLOT variables on all parked
calls These two variables were previously not being set when
comebacktoorigin=yes and the example configs seemed to imply that
they should be. Since there is no harm in this and since calls
that are sent back to origin are capable of continuing in the
dialplan, this seemed like a no-brainer. Also it supports some
bridging tests I've been working on.
2013-02-07 17:57 +0000 [r381037] Joshua Colp <jcolp@digium.com>
* res/res_sorcery_config.c: Fix a bug where a changed configuration
file might not be available to all sorcery object types. Since
res_sorcery_config used a static name of "res_sorcery_config" to
inform the configuration file API that it asked for the
configuration file it was possible during a reload for some
sorcery object types not to receive the new configuration file.
This change introduces a UUID on a per-sorcery config instance
basis so that the unchanged state is kept on an instance basis
and not for the res_sorcery_config module as a whole.
2013-02-07 15:16 +0000 [r381017] Kinsey Moore <kmoore@digium.com>
* include/asterisk/stringfields.h, tests/test_stringfields.c: Add
aggregate operations for stuctures with string fields Add
struct-level comparison and copying of string fields to reduce
the complexity of whole-struct comparison and copying when using
string fields. The new macros do not take into account
non-stringfield data. Review:
https://reviewboard.asterisk.org/r/2308/
2013-02-06 20:18 +0000 [r380977] David M. Lee <dlee@digium.com>
* /, channels/chan_sip.c: Fixed failing test from r380696. When I
added my extensive suite of session timer unit tests, apparently
one of them was failing and I never noticed. If neither Min-SE
nor Session-Expires is set in the header, it was responding with
a Session-Expires of the global maxmimum instead of the
configured max for the endpoint. (issue ASTERISK-20787) ........
Merged revisions 380973 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380974 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-06 08:44 +0000 [r380925-380943] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Fix reload skinny with active devices.
Patch ensures that d->activeline and l->activesub are moved over
to the new device and line so that on callend the appropriate
subs can be found to complete hangup before device resets.
(closes issue ASTERISK-16610) Reported by: wedhorn Tested by:
snuffy, myself Patches: skinny-reloadactive01.diff uploaded by
wedhorn (license 5019) ........ Merged revisions 380942 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_skinny.c, configs/skinny.conf.sample: Reset skinny
vmexten and immeddial char on reload. Make skinny reset vmexten
and immeddial to '\0' on reload to ensure that it is set to '\0'
if the appropriate item is removed/commented in skinny.conf. Also
small fix re immeddial char in skinny.conf and add immedial
setting to skinny show settings. (closes issue ASTERISK-21037)
Reported by: snuffy Tested by: snuffy, myself Patches:
immed_dial_fix.diff uploaded by snuffy (license 5024)
2013-02-05 19:11 +0000 [r380855-380896] Richard Mudgett <rmudgett@digium.com>
* apps/app_confbridge.c, /, apps/app_page.c: app_page and
app_confbridge: Fix custom announcement on entering conference.
The Page and ConfBridge custom announcement did not play when
users entered the conference. * Fix the
CONFBRIDGE(user,announcement) file not getting played. The code
to do this got removed accidentally when the ConfBridge code was
restructured to be more state machine like. * Fixed
play_prompt_to_user() doxygen comments. * Fixed the Page A(x) and
n options for the caller. The caller never played the
announcement file and totally ignored the n option. The code to
do this was lost when the application was converted to use
ConfBridge. * Factored out setup_profile_bridge(),
setup_profile_paged(), and setup_profile_caller() routines to
setup ConfBridge profiles. Made each profile setup routine use
the default template if one has not already been setup by
dialplan. (closes issue ASTERISK-20990) Reported by: Jeremy
Kister Tested by: rmudgett ........ Merged revisions 380894 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/confbridge/conf_state_multi_marked.c, /: app_confbridge: Fix
error messages on exiting conference. A marked user ending a
conference with only end_marked users generates error messages:
ERROR[0000][C-00000000]: confbridge/conf_state.c:47
conf_invalid_event_fn: Invalid event for confbridge user '' * The
MULTI_MARKED state was doing too much when it was kicking out the
end_marked users from the conference. The kicked out users will
clean up after themselves when they exit the conference. (closes
issue ASTERISK-20991) Reported by: Jeremy Kister Tested by:
rmudgett ........ Merged revisions 380892 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_page.c: app_page: Fixup application XML documentation
typos and inaccuracies. ........ Merged revisions 380869 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/confbridge/conf_config_parser.c: Because the compiler can
check types with a struct copy and memcpy() cannot. ........
Merged revisions 380856 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/dial.c, /: Separate option_types[] from the struct
definition. Updated the option_types[] doxygen comment. ........
Merged revisions 380853 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380854 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-04 19:52 +0000 [r380817] Jason Parker <jparker@digium.com>
* res/pjproject/aconfigure, res/pjproject/build/os-auto.mak.in,
Makefile, res/pjproject/aconfigure.ac, /, res/Makefile,
res/pjproject/build/common.mak: Fix how we build pjproject. Allow
parallel builds, better tolerate failures, build faster. This
also stops running dependencies before top-level configure has
been run. (closes issue ASTERISK-20815) Review:
https://reviewboard.asterisk.org/r/2292/ ........ Merged
revisions 380816 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-02-02 01:52 +0000 [r380792] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Add variable length displayprompt packet
to skinny and use octals. Add new variable length displayprompt
packet (0x0145) to skinny. Uses the new packet if the device is
reporting protocol versions >= 17. Add the use of octal codes for
sending prompts to both the new and old displayprompt messages
(also cleaned up soft_key_template_default to use the defined
octal codes). Review: https://reviewboard.asterisk.org/r/2294/
2013-02-01 19:35 +0000 [r380774] Richard Mudgett <rmudgett@digium.com>
* channels/iax2/firmware.c: chan_iax2: Fix compile error if
MALLOC_DEBUG enabled. NEVER INCLUDE astmm.h DIRECTLY!!
2013-02-01 06:37 +0000 [r380755] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Adds variable length callinfo packets to
skinny. Add packet 0x014A (variable length call info messages) to
skinny for newer firmware. Plenty of unknown information but
includes the equivalent functionality as the fixed size callinfo
packet already included. Only send this packet if protocol
reported is >= 17. Review:
https://reviewboard.asterisk.org/r/2290/
2013-01-31 22:03 +0000 [r380738] Jason Parker <jparker@digium.com>
* res/pjproject/pjlib/src/pj/pool_buf.c, /,
res/pjproject/pjsip-apps/src/samples/icedemo.c,
res/pjproject/pjlib/include/pj/config_site.h,
res/pjproject/pjmedia/src/test/test.c,
res/pjproject/pjlib/src/pj/ssl_sock_ossl.c,
res/pjproject/pjlib/src/pj/log.c: Multiple revisions
380735-380736 ........ r380735 | qwell | 2013-01-31 15:40:09
-0600 (Thu, 31 Jan 2013) | 1 line Fix a few compiler warnings.
........ r380736 | qwell | 2013-01-31 15:42:34 -0600 (Thu, 31 Jan
2013) | 1 line Ignore warnings caused by PJ_TODO()s in pjproject.
........ Merged revisions 380735-380736 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-31 20:17 +0000 [r380699] David M. Lee <dlee@digium.com>
* /, channels/chan_sip.c: Process session timers, even if
Session-Expires header is missing Previously, Asterisk only
processed session timer information if both the 'Supported:
timer' and 'Session-Expires' headers were present. However, the
Session-Expires header is optional. If we were to receive a
request with a Min-SE greater than our configured
session-expires, we would respond with a 'Session-Expires' header
that was too small. This patch cleans the situation up a bit,
always processing timer information if the 'Supported: timer'
header is present. (closes issue ASTERISK-20787) Reported by:
Mark Michelson Review: https://reviewboard.asterisk.org/r/2299/
........ Merged revisions 380696 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380698 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-31 19:52 +0000 [r380695] Sean Bright <sean@malleable.com>
* channels/chan_iax2.c, channels/iax2/firmware.c (added),
channels/iax2/include/firmware.h (added),
channels/iax2/include/parser.h: Move IAX firmware related
functionality into separate files. This patch is mostly a
reorganization of existing code with a few exceptions: * Added
doxygen comments to all of the extracted functions. * Split
reload_firmware(int unload) into iax_firmware_reload() and
iax_firmware_unload() for readability. * Create
iax_firmware_traverse() to support the 'iax2 show firmware' CLI
command. * Renamed iax_check_version() to
iax_firmware_get_version() and change its arguments and return
value so that it returns a success/failure value and sets the
selected version into an out parameter to avoid confusion with
failure and version 0.
2013-01-31 19:04 +0000 [r380674] Jason Parker <jparker@digium.com>
* res/pjproject/pjlib/build/Makefile,
res/pjproject/build/rules.mak,
res/pjproject/pjnath/build/Makefile,
res/pjproject/pjsip/build/Makefile, res/pjproject/aconfigure,
res/pjproject/pjsip-apps/build/Makefile,
res/pjproject/aconfigure.ac,
res/pjproject/pjmedia/build/Makefile,
res/pjproject/build/cc-auto.mak.in, /,
res/pjproject/pjlib-util/build/Makefile: Multiple revisions
380671-380673 ........ r380671 | qwell | 2013-01-31 12:59:28
-0600 (Thu, 31 Jan 2013) | 4 lines Remove a cross-compile
workaround. ar and ranlib can be easily detected with autoconf.
........ r380672 | qwell | 2013-01-31 13:00:38 -0600 (Thu, 31 Jan
2013) | 2 lines Always check for libm, regardless of configure
options. ........ r380673 | qwell | 2013-01-31 13:03:03 -0600
(Thu, 31 Jan 2013) | 7 lines Add support for parallel builds of
pjproject. Also adds proper dependency checking, and direct .a
file targets. We don't take advantage of this currently, but we
will soon. (issue ASTERISK-20815) ........ Merged revisions
380671-380673 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-31 18:22 +0000 [r380576-380666] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_multiplexed.c: bridge_multiplexed: Keep the
multiplexed thread until no more bridges use it. * Fixed the
potential of losing the multiplexed bridge thread when the last
channel leaves and another joins while the multiplexed thread is
being shut down. * Refactored and improved the management of the
serviced channels array. * Changed the channels count to a
bridges count so it only needs to be incremented rather than
changed by two.
* main/frame.c, funcs/func_frame_trace.c: Improve func FRAME_TRACE
DTMF digit format.
* include/asterisk/bridging.h: Eliminate an unused lock in
ast_bridge_channel.
* main/channel.c: Eliminate a use of a C++ keyword as a variable.
new to new_frame
* channels/iax2: Add ignore properties to channels/iax2
* /, include/asterisk/channel.h: Make CHECK_BLOCKING() debug
message more useful. Change the displayed pthread value to hex
format so it can be easily matched with CLI core show threads or
gdb. ........ Merged revisions 380611 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380612 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_dahdi.c, /: chan_dahdi: Fix "dahdi show channels
group" for groups greater than 31. The variable type used was not
large enough to hold a group bit field. ........ Merged revisions
380572 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 380575 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-30 17:49 +0000 [r380460-380522] Matthew Jordan <mjordan@digium.com>
* /, configure, configure.ac: Support building Asterisk for
Raspberry Pi/Raspbian with hard-float support Building Asterisk
on Raspbian with hard-float support fails as it uses the string
'linux-gnueabihf' for host os, as opposed to 'linux-gnueabi'.
This patch modifies the configure script for Asterisk such that
it will match on any string beginning with 'linux-gnueabi', as
opposed to requiring an explicit match. (closes issue
ASTERISK-21006) Reported by: Christian Hesse Tested by: Christian
Hesse patches: linux-gnueabihf.patch uploaded by Christian Hesse
(license 6459) linux-gnueabihf-autoconf.patch uploaded by
Christian Hesse (license 6459) ........ Merged revisions 380520
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 380521 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Unregister SIP provider API if module
load is declined A user in #asterisk ran into a problem where a
configuration error prevented the chan_sip module from being
loaded. Upon fixing their configuratione error, they could no
longer load the chan_sip module. This was because the
configuration checking happened after the SIP provider was
registered with the Asterisk core, and subsequent attempts to
load the SIP module failed as the provider was already
registered. Since we want to detect any failure in registering
chan_sip as early as possible (as that could be emblematic of a
deeper mismatch between module and Asterisk core), this patch
does not change the registration location, but does ensure that
if a module load is declined, we unregister the module as the SIP
api provider. ........ Merged revisions 380480 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Perform case insensitive comparisons for
T.38 attributes RFC5347 section 2.5.2 states the following: ...
The attribute "T38MaxBitRate" was once incorrectly registered
with IANA as "T38maxBitRate" (lower-case "m"). In accordance with
T.38 examples and common implementation practice, the form
"T38MaxBitRate" SHOULD be generated by implementations conforming
to this package. In general, it is RECOMMENDED that
implementations of this package accept lowercase, uppercase, and
mixed upper/lowercase encodings of all the T.38 attributes. ...
Asterisk currently does not perform case insensitive matching on
the T.38 attributes. This causes the T38MaxBitRate attribute to
be negotiated at 2400 baud instead of 14400 (or whatever value
you actually wanted). This patch makes it so that when we compare
T.38 attributes, we do so in a case insensitive fashion. Note
that while the issue reporter did not directly write the patch,
they contributed to it (and would have provided one themselves if
the license had gone through a tad faster), and hence get
attribution for it. Review:
https://reviewboard.asterisk.org/r/2298/ (closes issue
ASTERISK-20897) Reported by: Eric Hill Tested by: Eric Hill
patches: -- uploaded by Eric Hill ........ Merged revisions
380458 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 380465 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_calendar_icalendar.c, /: Fix memory leak in
res_calendar_icalendar The ICalendar module had a systemic memory
leak on each fetch of data from the ICalendar source. The
previous fetched data was not being properly disposed. This patch
makes it so that before each fetch of data, we dispose of the
previously fetched data. (closes issue ASTERISK-21012) Reported
by: Joel Vandal Tested by: Joel Vandal ........ Merged revisions
380451 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 380452 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-29 22:58 +0000 [r380433] Sean Bright <sean@malleable.com>
* channels/iax2/parser.c (added), channels/iax2 (added),
channels/iax2-parser.h (removed),
channels/iax2/include/provision.h (added), channels/iax2/include
(added), channels/iax2/include/parser.h (added), channels/iax2.h
(removed), channels/iax2-provision.c (removed),
channels/iax2/provision.c (added), channels/Makefile,
channels/chan_iax2.c, channels/iax2-parser.c (removed),
channels/iax2/include/iax2.h (added), channels/iax2-provision.h
(removed): Move the ancillary iax2 source files into a separate
sub-directory. This patch just moves the IAX2 source and header
files into a separate iax2 sub-directory in the channels
directory, similar to how the sip source files are structured.
The only thing that was added was an #ifndef to protect
provision.h from multiple inclusion.
2013-01-29 20:19 +0000 [r380407] Joshua Colp <jcolp@digium.com>
* tests/test_sorcery.c, main/sorcery.c: Fix an issue where building
with DEBUG_FD_LEAKS enabled would not work due to sorcery using
calls called "open" and "close".
2013-01-29 18:02 +0000 [r380386] Richard Mudgett <rmudgett@digium.com>
* /, channels/chan_agent.c: chan_agent: Prevent multiple channels
from logging in as the same agent. Multiple channels logging in
as the same agent can result in dead channels waiting for a
condition signal that will never come because another channel
thread stole it. A symptom is chan_sip repeatedly generating
warning messages about rescheduling autodestruction of dialogs
with an agent channel owner. * Made only login_exec() (the app
AgentLogin) clear the agent_pvt->chan pointer to prevent multiple
channels from logging in as the same agent. agent_read(),
agent_call(), and agent_set_base_channel() no longer disconnect
the agent channel from the agent_pvt. This also eliminates the
need to keep checking for agent_pvt->chan being NULL. * Made
agent_hangup() not wake up the AgentLogin agent thread until it
is done. * Made agent_request() not able to get the agent until
he has logged in and any wrapup time has expired. * Made
agent_request() use ast_hangup() instead of agent_hangup() to
correctly dispose of a channel. * Removed
agent_set_base_channel(). Nobody calls it and it is a bad thing
in general. * Made only agent_devicestate() determine the current
device state of an agent. Note: Agent group device states have
never been supported. Review:
https://reviewboard.asterisk.org/r/2260/ ........ Merged
revisions 380364 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380384 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-29 17:46 +0000 [r380383] David M. Lee <dlee@digium.com>
* channels/sip/sdp_crypto.c, /: Corrected crypto tag in SDP ANSWER
for SRTP. (again) The original fix (r380043) for getting Asterisk
to respond with the correct tag overlooked some corner cases, and
the fact that the same code is in 1.8. This patch moves the
building of the crypto line out of sdp_crypto_process(). Instead,
it merely copies the accepted tag. The call to sdp_crypto_offer()
will build the crypto line in all cases now, using a tag of "1"
in the case of sending offers. (closes issue ASTERISK-20849)
Reported by: José Luis Millán Review:
https://reviewboard.asterisk.org/r/2295/ ........ Merged
revisions 380347 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380350 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-29 17:06 +0000 [r380349] Jonathan Rose <jrose@digium.com>
* /, main/features.c: call_parking: Make sure fallbacks are used
when lacking a flat channel exten A regression was introduced
which removed automatic fallback behavior from the PBX. This
behavior was used by call parking (or at least documented as how
the feature works) in order to select an extension when the flat
channel extension wasn't available from the comebackcontext.
Parking now handles the fallbacks internally in order to keep
behavior matching with how it is documented. (closes issue
ASTERISK-20716) Reported by: Chris Gentle Review:
https://reviewboard.asterisk.org/r/2296/ ........ Merged
revisions 380348 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-29 14:48 +0000 [r380299-380332] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: Ensure that a declined media stream is
terminated with a '\r\n' In r369028, chan_sip's processing of
media streams in an SDP was modified to better handle multiple
offered media streams. Part of that change modified how streams
were declined. Previously, declined media streams were not
handled in an RFC compliant manner; now, we set the port number
to 0 in the media stream definition and proceed on with the next
media stream. Unfortunately, the formatting of the declined media
stream forgot to append a '\r\n' to the end of the media stream.
This is normally added to the accepted media streams later on in
the processing of the SDP. Since the declined media stream uses a
different buffer than the accepted media streams (and is a
malloc'd buffer as opposed to a struct ast_str), it's easier to
just slap the '\r\n' on the declined media stream buffer rather
than attempt to append it later on. So, that's what we do. And
now some devices (and probably some providers) will be a bit
happier (but probably not terribly happy, since we just rejected
something they offered). Review:
https://reviewboard.asterisk.org/r/2297/ (closes issue
ASTERISK-20908) Reported by: Dennis DeDonatis Tested by: Dennis
DeDonatis ........ Merged revisions 380331 from
http://svn.asterisk.org/svn/asterisk/branches/11
* autoconf/ast_check_pwlib.m4, /, configure,
include/asterisk/autoconfig.h.in: Update configure script to be
compatible with ptlib 2.10.9 With ptlib 2.10.9, the configure
script fails due to grep returning multiple matches for the
pattern it searches for. This patch updates the pattern matching
to return only the actual version for the symbol searched for,
PTLIB_VERSION. (closes issue ASTERISK-20980) Reported by: Stefan
Reuter patches: ASTERISK-20980-1.patch uploaded by Stefan Reuter
(license 5339) ........ Merged revisions 380297 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380298 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-28 21:09 +0000 [r380256] Sean Bright <sean@malleable.com>
* channels/iax2.h, channels/chan_iax2.c, /: Correct the number of
available call numbers in IAX2. There is currently an edge case
where call number 32768 might be allocated for a call, even
though the IAX2 protocol requires call numbers be only 15 bits.
This resulted in some unpredictable behavior when call number
32678 is chosen. This patch was mostly written by Richard Mudgett
via ReviewBoard. I'm just committing it. Review:
https://reviewboard.asterisk.org/r/2293/ ........ Merged
revisions 380254 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380255 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-28 01:58 +0000 [r380209-380212] Russell Bryant <russell@russellbryant.com>
* main/file.c, /: Change cleanup ordering in filestream destructor.
This patch came about due to a problem observed where wav files
had an empty header. The header is supposed to be updated in
wav_close(). It turns out that this was broken when the
cache_record_files option from asterisk.conf was enabled. The
cleanup code was moving the file to its final destination
*before* running the close() method of the file destructor, so
the header didn't get updated. Another problem here is that the
move was being done before actually closing the FILE *. Finally,
the last bug fixed here is that I noticed that wav_close() checks
for stream->filename to be non-NULL. In the previous cleanup
order, it's checking a pointer to freed memory. This doesn't
actually cause anything to break, but it's treading on dangerous
waters. Now the free() of stream->filename is happening after the
format module's close() method gets called, so it's safer.
Review: https://reviewboard.asterisk.org/r/2286/ ........ Merged
revisions 380210 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 380211 from
http://svn.asterisk.org/svn/asterisk/branches/11
* configs/logger.conf.sample, main/logger.c, CHANGES: Add
queue_log_realtime_use_gmt option to logger.conf Add an option
that lets you specify that the timestamps going into the realtime
queue log should be in GMT instead of local time. Review:
https://reviewboard.asterisk.org/r/2287/
2013-01-27 20:33 +0000 [r380194] Michael L. Young <elgueromexicano@gmail.com>
* apps/confbridge/conf_config_parser.c, /: Fix Some Configured
Conference Bridge Sounds Not Being Set The "sound_only_one" sound
was not being set even though it was configured. In looking into
this, I found that the "join" and "leave" prompts were not being
set either. (closes issue ASTERISK-20898) Reported by: Stephan
Tested by: Stephan Patches:
asterisk-20898-custom-sounds-ignored.diff uploaded by Michael L.
Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2289/ ........ Merged
revisions 380193 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-27 18:40 +0000 [r380165-380178] Joshua Colp <jcolp@digium.com>
* tests/test_sorcery.c: Add a unit test which confirms the apply
handler callback is called when it should be.
* main/sorcery.c: Fix a bug where the apply function was not
getting called.
2013-01-25 23:23 +0000 [r380142] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_multiplexed.c: bridge_multiplexed: Rename
variables so they are not the same as the struct name. * Rename
multiplexed_thread variables to muxed_thread. It is shorter and
my editer tagging works much better. Struct names and variable
names have different purposes and therefore should have different
names. * Renamed the multiplexed_threads container to
muxed_threads for consistency.
2013-01-25 20:46 +0000 [r380121] Jason Parker <jparker@digium.com>
* res/res_sorcery_config.c, res/res_sorcery_memory.c: Make sorcery
modules global, since they are required by other modules that are
global.
2013-01-25 20:00 +0000 [r380108-380109] Richard Mudgett <rmudgett@digium.com>
* bridges/bridge_multiplexed.c, main/bridging.c: Misc bridge code
improvements * Made multiplexed_bridge_destroy() check if
anything to destroy and cleared bridge_pvt pointer after
destruction. * Made multiplexed_add_or_remove() handling of the
chans array simpler. * Extracted bridge_channel_poke(). *
Simplified bridge_array_remove() handling of the bridge->array[].
The array does not have a NULL sentinel pointer. * Made
ast_bridge_new() not create a temporary bridge just to see if it
can be done. Only need to check if there is an appropriate bridge
tech available. * Made ast_bridge_new() clean up on allocation
failures. * Made destroy_bridge() free resources in the opposite
order of creation.
* bridges/bridge_simple.c, bridges/bridge_softmix.c,
bridges/bridge_multiplexed.c, main/bridging.c: More trivial
bridge code cleanup. * Breaking long lines * Word wrapping
comment blocks. * Removing redundant initializers. * Debug
message wording.
2013-01-25 14:23 +0000 [r380069-380082] Joshua Colp <jcolp@digium.com>
* res/res_sorcery_config.c: Add a missing '\' to a log message.
* tests/test_sorcery.c (added), main/asterisk.c, main/sorcery.c
(added), res/res_sorcery_config.c (added),
configs/test_sorcery.conf.sample (added),
res/res_sorcery_memory.c (added), configs/sorcery.conf.sample
(added), include/asterisk/sorcery.h (added): Merge the sorcery
data access layer API. Sorcery is a unifying data access layer
which provides a pluggable mechanism to allow object creation,
retrieval, updating, and deletion using different backends (or
wizards). This is a fancy way of saying "one interface to rule
them all" where them is configuration, realtime, and anything
else that comes along. Review:
https://reviewboard.asterisk.org/r/2259/
2013-01-25 05:49 +0000 [r380057] Damien Wedhorn <voip@facts.com.au>
* configs/skinny.conf.sample, channels/chan_skinny.c: Add force
dial keys to skinny. Adds a dial softkey when the device is in
DAFD. The softkey is greyed (unusable) until a possible dialplan
match is entered. Code includes updating transmit_selectsoftkeys
to allow the use of a button mask. Also add option to use # or *
as a dial now button. Original patch by snuffy cleaned up by
myself. Review: https://reviewboard.asterisk.org/r/2277/
2013-01-24 16:40 +0000 [r380044] David M. Lee <dlee@digium.com>
* channels/sip/sdp_crypto.c, /: Corrected crypto tag in SDP ANSWER
for SRTP. When Asterisk responds with an SDP ANSWER for SRTP, it
had the code to correctly fill in the crypto data, which was
overwritten by a call to sdp_crypto_offer. Corrected the
situation by changing sdp_crypto_offer to not replacing crypto
data if it already exists. (closes issue ASTERISK-20849) Reported
by: José Luis Millán Tested by: Iñaki Baz Castillo Patches:
fix_sdp_crypto_tags.diff uploaded by Pedro Kiefer (license 6407)
........ Merged revisions 380043 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-24 04:02 +0000 [r380029] Matthew Jordan <mjordan@digium.com>
* apps/app_confbridge.c, /: Correct documentation for
ConfbridgeList AMI action The documentation for ConfbridgeList
states that the Conference field is optional. That's not really
the case: if you fail to provide a Conference number, the command
will kick back an error. (closes issue AST-1090) Reported by:
John Bigelow ........ Merged revisions 380028 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-23 16:50 +0000 [r380004] Kinsey Moore <kmoore@digium.com>
* contrib/scripts/autosupport: Add support for DPMA to autosupport
This adds the ability to get the DPMA version, a listing of the
local firmware directory, and indexes of configured remote
directories. (closes issue AST-1070) Reported By: Malcolm
Davenport Tested By: Kinsey Moore <kmoore@digium.com>
2013-01-23 00:30 +0000 [r379966] Richard Mudgett <rmudgett@digium.com>
* /, main/astobj2.c: Attempt to be more helpful when using a bad
ao2 object pointer. Put the external obj pointer in the message
instead of the internal version. ........ Merged revisions 379963
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 379964 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-22 22:19 +0000 [r379950] Jonathan Rose <jrose@digium.com>
* /, res/res_fax_spandsp.c: res_fax_spandsp: fix t38 transmission
bug caused by not returning success This patch fixes the problem,
but the issue includes a test which is still being considered for
the automated test suite. (issue ASTERISK-20919) Reported by:
NITESH BANSAL Patches: patch_ast_fax_spandsp.patch uploaded by
NITESH BANSAL (license 6418) ........ Merged revisions 379949
from http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-22 20:58 +0000 [r379936] Sean Bright <sean@malleable.com>
* channels/chan_iax2.c: Remove a large block of commented out code
from chan_iax2. During the conversion to the newer CLI command
structure the old definitions were commented out. I think it's
safe to remove them completely now.
2013-01-22 19:29 +0000 [r379912] Jonathan Rose <jrose@digium.com>
* /, apps/app_meetme.c, sounds/Makefile: app_meetme: Use new
prompts for administrator menu The old prompts for the
administrator menu were inadequate. They didn't mention that the
menu had additional options through the 8 key and pressing the 8
key wouldn't reveal what those options were. This patch fixes all
of that while also organizing code pertaining to each individual
menu type which was previously all stored in one gigantic
function along with many of the basic conference functions.
(closes issue AST-996) Reported by: John Bigelow Review:
http://reviewboard.digium.internal/r/360/ ........ Merged
revisions 379885 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379892 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-22 16:48 +0000 [r379864] Richard Mudgett <rmudgett@digium.com>
* /: Remove stray property.
2013-01-22 15:16 +0000 [r379828-379830] Matthew Jordan <mjordan@digium.com>
* include/asterisk/file.h, main/channel.c,
funcs/func_frame_trace.c, res/res_agi.c, main/file.c, main/app.c,
CHANGES, include/asterisk/frame.h, apps/app_playback.c,
apps/app_controlplayback.c: Add ControlPlayback manager action
This patch adds the capability for asynchronous manipulation of
audio being played back to a channel though a new AMI action
"ControlPlayback". The ControlPlayback action supports a number
of operations, the availability of which depend on the
application being used to send audio to the channel. When the
audio playback was initiated using the ControlPlayback
application or CONTROL STREAM FILE AGI command, the audio can be
paused, stopped, restarted, reversed, or skipped forward. When
initiated by other mechanisms (such as the Playback application),
the audio can be stopped, reversed, or skipped forward. Review:
https://reviewboard.asterisk.org/r/2265/ (closes issue
ASTERISK-20882) Reported by: mjordan
* /, apps/app_meetme.c: Fix station ringback; trunk hangup issues
in SLA This patch fixes two bugs: * If an outbound call is made
from a SLA phone using SLAStation, then there is no ringtone
audible to the phone that originates the call. The indication of
the ringing was not being passed to the SLA station; this patch
fixes that by passing through the progress indications. * If an
SLA station hangs up before the called party answers, then the
channel to the called party continues to ring until a timeout
occurs. If the called party manages to answer, Asterisk attempts
to connect the called party to a non-existant MeetMe room. This
patch corrects the behavior by abandoning the call attempt if it
detects that the SLA station is no longer in use while attempting
to call the called party. Review:
https://reviewboard.asterisk.org/r/2275/ (closes issue
ASTERISK-20462) Reported by: dkerr patches:
asterisk-11-bugid20440+20462.patch uploaded by dkerr (license
5558) asterisk-11-bugid20462.patch uploaded by dkerr (license
5558) (closes issue ASTERISK-20440) Reported by: dkerr patches:
asterisk-11-bugid20440.patch uploaded by dkerr (license 5558)
asterisk-11-bugid20440+20462.patch uploaded by dkerr (license
5558) ........ Merged revisions 379825 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379826 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-22 00:36 +0000 [r379809] Richard Mudgett <rmudgett@digium.com>
* /, channels/chan_bridge.c, apps/app_confbridge.c: confbridge:
Minor fixes playing user counts to the conference. * Generate a
warning message if sound files do not exist when trying to play
the user count to the conference. Use the new helper routine
sound_file_exists() for consistency. * Put the new user into
autoservice when playing user counts to the conference. * Check
the return value of ast_bridge_impart(). ........ Merged
revisions 379808 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-21 20:41 +0000 [r379791] Matthew Jordan <mjordan@digium.com>
* contrib/init.d/rc.gentoo.asterisk,
contrib/init.d/rc.slackware.asterisk,
contrib/init.d/rc.archlinux.asterisk,
contrib/scripts/safe_asterisk, main/asterisk.c,
contrib/init.d/rc.suse.asterisk,
contrib/init.d/rc.mandriva.asterisk,
contrib/init.d/rc.debian.asterisk, /,
contrib/init.d/rc.redhat.asterisk: Update init.d scripts to
handle stderr; readd splash screen for remote consoles When
r376428 was commited to re-order start up sequences to be more
tolerant of forking with thread primitives, a few items were
changed that caused changes in behavior on some distros. This
includes: * Not displaying the splash screen on a remote console.
* Displaying an error message on stderr when a remote console
cannot connect to a running instance of Asterisk. In the first
case, the splash screen was re-added (thanks to Michael L.
Young). In the second case, the various init.d scripts were
modified to pipe stderr to /dev/null, as the error message is
useful - if you execute a remote console or a remote console
command execution and it fail, it should tell you. Note that the
error message was always present, it just failed to be printed
prior to r376428. Much thanks to the folks who quickly reported
this problem, provided solutions, and promptly tested the various
init.d scripts on a variety of distros. (closes issue
ASTERISK-20945) Reported by: Warren Selby Tested by: Michael L.
Young, Jamuel Starkey, kaldemar, Danny Nicholas, mjordan patches:
asterisk-20945-remote-intro-msg.diff uploaded by elguero (license
5026) ASTERISK-20945-1.8-mjordan.diff uploaded by mjordan
(license 6283) ........ Merged revisions 379760 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379777 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 379790 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-21 20:35 +0000 [r379753-379789] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c, bridges/bridge_builtin_features.c: Better
protect bridge_channel state from other threads.
* main/bridging.c: Extract common bridging code into bridge_stop()
and bridge_force_out_all().
* main/bridging.c, bridges/bridge_builtin_features.c,
include/asterisk/bridging_features.h,
include/asterisk/bridging.h: Made some bridging API calls void.
Some bridging comments updated.
2013-01-21 18:47 +0000 [r379721] Kinsey Moore <kmoore@digium.com>
* /, codecs/codec_ilbc.c: Prevent segfault for interpolated iLBC
frames When iLBC is being used with a jitter buffer and the jb
has to interpolate frames, it generates frames with a null
pointer and a non-zero datalen. This is now handled properly.
(closes issue ASTERISK-20914) Reported By: John McEleney Patches:
ASTERISK-20914-1.8.diff uploaded by Matt Jordan (license 6283)
........ Merged revisions 379718 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379719 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-21 18:45 +0000 [r379703-379720] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Trivial bridge code cleanup.
* bridges/bridge_builtin_features.c,
include/asterisk/bridging_features.h,
include/asterisk/bridging.h,
include/asterisk/bridging_technology.h: Bridge API comment
tweaks.
2013-01-21 07:26 +0000 [r379678] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Fix device call logging issues in
skinny Skinny device call logging (ie missed, place and received
calls) has issues because the incorrect sequence of callstates
is/can be sent to the device. This patch removes some extra
callstate updates driven by forces external to skinny and ensures
the needed intermediary callstate messages are sent. (closes
issue ASTERISK-20964) Reported by: wedhorn Tested by: snuffy,
myself Patches: ast11-skinny-calllog01.diff uploaded by wedhorn
(license 5019) ........ Merged revisions 379677 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-21 04:50 +0000 [r379644] Andrew Latham <lathama@gmail.com>
* contrib/scripts/install_prereq, /: Add LDAP libraries to install
script Add LDAP dev package to Debian/Ubuntu install list.
Existed in Redhat already. (issue ASTERISK-20886) ........ Merged
revisions 379643 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-21 04:17 +0000 [r379610-379612] Matthew Jordan <mjordan@digium.com>
* /, apps/app_minivm.c: Fix crash in app_minivm when mime encoding
string An incorrect string initializations was left in
ast_str_encode_mime from the patch that converted string
manipulations to use ast_str strings (r191140). The string
initialization causes a crash when ast_str_set is called on the
string later on in the function. (closes issue ASTERISK-18697)
Reported by: Chris Boot patches:
minivm-null-pointer-dereference-fix.patch uploaded by bootc
(license 6309) (issue ASTERISK-20854) Reported by: Chris Warr
Tested by: Chris Warr ........ Merged revisions 379608 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379609 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /: Re-add merge properties
2013-01-20 03:06 +0000 [r379583] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Fix issues with skinny sessions Fixes
a couple of issues with the way skinny handles sessions by
ensuring sessions aren't used after being freed. Some other minor
changes. Review: https://reviewboard.asterisk.org/r/2272/
........ Merged revisions 379582 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-19 20:54 +0000 [r379549] Walter Doekes <walter+asterisk@wjd.nu>
* /, configure, include/asterisk/autoconfig.h.in,
include/asterisk/compat.h, main/strcompat.c, configure.ac: Add
builtin roundf() for systems lacking it. (closes issue
ASTERISK-16854) Review: https://reviewboard.asterisk.org/r/2276
Reported-by: Ovidiu Sas ........ Merged revisions 379547 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379548 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-19 00:19 +0000 [r379518] Matthew Jordan <mjordan@digium.com>
* /, main/asterisk.c: Fix astcanary startup problem due to wrong
pid value from before daemon call When Asterisk forks itself into
the background via a call to daemon, it must re-set the pid value
of the new process. Otherwise, astcanary gets the pid value of
the process before the fork, which prevents it from running.
Asterisk eventually starts lowering its priority, as it can no
longer communicate with the proverbial canary in the coal mine.
This patch ensures that the correct process identifier is used by
astcanary. Note that this is getting committed to 10 as a
regression fix. (closes issue ASTERISK-20947) Reported by: Jakob
Hirsch Tested by: mjordan patches:
asterisk-10.12.0.astcanary_ppid.diff uploaded by Jakob Hirsch
(license 6113) ........ Merged revisions 379509 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379510 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 379513 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-18 22:42 +0000 [r379495] David M. Lee <dlee@digium.com>
* Makefile, configure, main/Makefile, configure.ac: Up the minimum
OS X version to 10.6. * This allows us to remove some
special-case build logic. * 10.5 is down to less that 8% of the
OS X market share. 10.4 is down to under 2%. * Apple is no longer
releasing security updates for 10.5 and earlier.
2013-01-18 21:52 +0000 [r379479] Kinsey Moore <kmoore@digium.com>
* apps/app_confbridge.c, /: Fix regression in Confbridge user count
When the restructuring work got committed to Confbridge in
r375470 to fix many open issues, it caused a regression in the
reported count of users when conference information was requested
via CLI or manager. This corrects the user count and user
information displayed when listing conference information from
the CLI and manager. (closes issue ASTERISK-20938) Reported By:
Timo Teras Patches: confbridge-list.patch uploaded by Timo Teras
(license 5409) ........ Merged revisions 379478 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-18 21:35 +0000 [r379477] David M. Lee <dlee@digium.com>
* configure, main/Makefile, configure.ac, UPGRADE-11.txt,
UPGRADE.txt, makeopts.in, Makefile, /: Specify the -rpath linker
flag when prefix != /usr. This allows Asterisk to start without
having to specify the LD_LIBRARY_PATH. This can be disabled by
passing --disable-rpath to configure. (closes issue
ASTERISK-20407) Reported by: David M. Lee Review:
https://reviewboard.asterisk.org/r/2132/ ........ Merged
revisions 379475 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-18 18:25 +0000 [r379461] Jonathan Rose <jrose@digium.com>
* apps/app_voicemail.c, /: app_voicemail: Improve msg_id handling
app_voicemail will no longer issue error messages when it
retrieves an msg_id with a NULL value from realtime and will
instead simply populate the msg_id field with a newly generated
msg_id. In addition, this patch changes the way msg_ids are
generated to eliminate certain causes of duplicate IDs appearing
within a single system. In addition, when messages are copied,
they will now receive a new msg_id. (closes issue ASTERISK-20717)
Reported by: Alec Davis Review:
https://reviewboard.asterisk.org/r/2220/ ........ Merged
revisions 379460 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-18 15:42 +0000 [r379432] Mark Michelson <mmichelson@digium.com>
* include/asterisk/threadpool.h (added), /,
include/asterisk/taskprocessor.h, tests/test_threadpool.c
(added), tests/test_taskprocessor.c (added), main/threadpool.c
(added), main/taskprocessor.c: Add threadpool support to
Asterisk. This commit consists of two parts. Part one changes the
taskprocessor API to be less self-contained. Instead, the
taskprocessor is now more of a task queue that informs a listener
of changes to the queue. The listener then has the responsibility
of executing the tasks as it pleases. There is a default listener
implementation that functions the same way as "classic"
taskprocessors, in that it creates a single thread for tasks to
execute in. Old users of taskprocessors have not been altered and
still function the same way. Part two introduces the threadpool
API. A threadpool is a special type of taskprocessor listener
that has multiple threads associated with it. The threadpool also
has an optional listener that can adjust the threadpool as
conditions change. In addition the threadpool has a set of
options that can allow for the threadpool to grow and shrink on
its own as tasks are added and executed. Both set of changes
contain accompanying unit tests. (closes issue ASTERISK-20691)
Reported By: Matt Jordan Review:
https://reviewboard.asterisk.org/r/2242
2013-01-18 05:31 +0000 [r379394] David M. Lee <dlee@digium.com>
* channels/sip/reqresp_parser.c,
channels/sip/include/reqresp_parser.h, /, channels/chan_sip.c:
Fix Record-Route parsing for large headers. Record-Route parsing
copied the header into a char[256] array, which can be a problem
if the header is longer than that. This patch parses the header
in place, without the copy, avoiding the issue. In addition to
the original patch, I added a unit test for the new
get_in_brackets_const function. (closes issue ASTERISK-20837)
Reported by: Corey Farrell Patches:
chan_sip-build_route-optimized-rev1.patch uploaded by Corey
Farrell (license 5909) (with minor changes by dlee) ........
Merged revisions 379392 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379393 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-17 02:32 +0000 [r379344] Matthew Jordan <mjordan@digium.com>
* addons/chan_mobile.c, /: Fix issue where chan_mobile fails to
bind to first available port Per the bluez API, in order to bind
to the first available port, the rc_channel field of the socket
addressing structure used to bind the socket should be set to 0.
Previously, Asterisk had set the rc_channel field set to 1,
causing it to connect to whatever happens to be on port 1. We
could probably not explicitly set rc_channel to 0 since we memset
the struct earlier, but explicitly setting it will hopefully
prevent someone from coming in and setting it to some explicit
port in the future. (closes issue ASTERISK-16357) Reported by:
challado Tested by: Alexander Heinz, Nikolay Ilduganov, benjamin,
eliafino, David van Geyn patches: ASTERISK-16357.diff uploaded by
Nikolay Ilduganov (license 6253) ........ Merged revisions 379342
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 379343 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-16 22:51 +0000 [r379312] Mark Michelson <mmichelson@digium.com>
* main/manager.c, /: Further fix misinformation in the description
of manager MailboxStatus command. The description still claimed
that it returned the number of messages rather than whether there
were messages waiting. ........ Merged revisions 379310 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379311 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-16 21:13 +0000 [r379278] Jason Parker <jparker@digium.com>
* /, contrib/scripts/install_prereq: Reduce number of packages
install_prereq installs on Debian systems. 'search' will look for
any package containing the name provided, so we need to force a
more exact search. ........ Merged revisions 379276 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379277 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-16 18:09 +0000 [r379231-379233] Richard Mudgett <rmudgett@digium.com>
* /, main/logger.c: Reduce call-id logging resource usage. Since
there is no need for the call-id logging ao2 object to have a
lock, don't create it with one. ........ Merged revisions 379232
from http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_misdn.c, /: chan_misdn: Fix compile error. (issue
ASTERISK-15456) ........ Merged revisions 379226 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379230 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-16 17:46 +0000 [r379144-379229] Matthew Jordan <mjordan@digium.com>
* /, res/res_xmpp.c, res/res_jabber.c, doc/appdocsxml.dtd: Let
documentation reference links specify which module they're
linking to Again, since res_jabber/res_xmpp have duplicate APIs,
their documentation ref links have to specify which reference
they're referring to. The various documentation parsers can
interpret the module attribute however they want in order to
construct the appropriate links. ........ Merged revisions 379228
from http://svn.asterisk.org/svn/asterisk/branches/11
* /, res/res_xmpp.c, res/res_jabber.c, doc/appdocsxml.dtd: Multiple
revisions 379209-379210 ........ r379209 | mjordan | 2013-01-16
09:27:44 -0600 (Wed, 16 Jan 2013) | 8 lines Add module tags to
documentation for res_jabber/res_xmpp Since res_jabber/res_xmpp
provide the same APIs (app/func/manager/etc.), the XML
documentation for each needs to call out which module is
providing the documentation. The module attribute has been added
to the various XML fragments for this purpose. ........ r379210 |
mjordan | 2013-01-16 09:30:20 -0600 (Wed, 16 Jan 2013) | 4 lines
Update the dtd to actually *support* the module attribute in all
elements Mea culpa. ........ Merged revisions 379209-379210 from
http://svn.asterisk.org/svn/asterisk/branches/11
* addons/chan_mobile.c, /: Fix parsing SMSSRC for SMS messages The
parser for SMS messages would incorrectly parse out the from
number. The parsing would incorrectly start scanning for the from
number at the same index as the first double quote ("); this
would inadvertently cause it to treat the first double quote as
the terminating double quote for the from number as well. The
SMSSRC should now populate correctly. (closes issue
ASTERISK-16822) Reported by: menschentier Tested by: Jonas Falck
patches: fixSMSSRC.patch uploaded by jonax (license 6320) (closes
issue ASTERISK-19153) Reported by: Panos Gkikakis patches:
sms-sender-fix.diff uploaded by roeften (license 5884) ........
Merged revisions 379178 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379179 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_misdn.c, /: Set the INVALID_EXTEN channel variable
when chan_misdn forces the 'i' extension The chan_misdn channel
driver will send a channel with an invalid destination to the 'i'
extension itself if said extension can be reached. It forgot,
however, to set the INVALID_EXTEN channel variable when it
bounces the channel to this extension. Dialplan writers
everywhere moaned at yet another inconsistency. This is yet
another example of why duplicating logic in multiple places
results in bugs that stick around in Jira for just under three
years. Yes: ASTERISK-15456 was created on January 18th, 2010.
Patch committed on January 15th, 2013. Ouch. (closes issue
ASTERISK-15456) Reported by: Thomas Omerzu patches:
chan_misdn_invalid.patch2 uploaded by Thomas Omerzu (license
5927) ........ Merged revisions 379145 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379146 from
http://svn.asterisk.org/svn/asterisk/branches/11
* CHANGES, addons/chan_mobile.c: Add busy detection to chan_mobile
From the patch author: "First this patch adds general support for
busy detection. It also adds support for the ECAM command at Sony
Ericsson phones and also signals busy when only early media was
received but the call got not answered." Review:
https://reviewboard.asterisk.org/r/323 (closes issue
ASTERISK-14527) Reported by: Artem Makhutov Tested by: Artem
Makhutov patches: busy-full5.patch uploaded by artem (license
5757)
2013-01-15 22:23 +0000 [r379128] Richard Mudgett <rmudgett@digium.com>
* main/bridging.c: Fix ast_bridge_features_register() not
registering builtin features. I broke. Ooops.
2013-01-14 21:47 +0000 [r379021-379070] David M. Lee <dlee@digium.com>
* include/asterisk/test.h: Fixed doc comment for ast_test_validate
* main/channel.c, UPGRADE.txt, include/asterisk/manager.h: Gently
reduce masquerade insanity Masquerades are an insane
implementation detail within Asterisk. It generates a number of
useless and confusing events, and manipulates channels in a way
that semantically doesn't make sense. I've given a fairly
thorough review of masquerade code and its usage on the wiki at
https://wiki.asterisk.org/wiki/x/IwBRAQ. While ultimately it
makes the most sense to abandon masquerades altogether, it will
take some time to completely irradicate. Even then, there may
always be code that's not worth rewriting to get rid of the
masquerade. This patch does two things to make masquerades
slightly less insane: * When swapping the names of the original
and clone channel, only emit a single rename event of original ->
original<ZOMBIE>. The original code issued three rename events to
accomplish the same end. * In addition to swapping the names of
the channels, also swap their uniqueid's. This allows the
'Uniqueid' field to be used as a stable identifier for a channel
from and external interface, such as AMI. Review:
https://reviewboard.asterisk.org/r/2266/
* /, channels/chan_sip.c: Fix XML encoding of 'identity display' in
NOTIFY messages, continued. When r378933 was merged into 1.8, it
should have also escaped remote_display, since it will have the
same XML encoding problem when the caller/callee roles are
reversed. (closes issue ABE-2902) Reported by: Guenther Kelleter
........ Merged revisions 379001 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 379020 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-13 22:07 +0000 [r378985] Matthew Jordan <mjordan@digium.com>
* res/res_rtp_asterisk.c, /: Reset RTP timestamp; sequence number
on SSRC change In r370252 for ASTERISK-18404, Asterisk's handling
of RTP was modified to better account for out of order RTP
packets. This was accomplished by using the RTP timestamp and
sequence number to check for out of order packets. However, when
a SSRC change occurs, the timestamp and sequence number will no
longer have any relation to the previously received packets. The
variables tracking the timestamp and sequence number therefore
have to be reset. (closes issue ASTERISK-20906) Reported by:
Eelco Brolman patches: dtmf_on_hold.patch uploaded by Eelco
Brolman (license #6442) ........ Merged revisions 378967 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378984 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-12 06:43 +0000 [r378935] David M. Lee <dlee@digium.com>
* include/asterisk/utils.h, /, channels/chan_sip.c,
tests/test_xml_escape.c (added), main/utils.c: Fix XML encoding
of 'identity display' in NOTIFY messages. XML encoding in
chan_sip is accomplished by naively building the XML directly
from strings. While this usually works, it fails to take into
account escaping the reserved characters in XML. This patch adds
an 'ast_xml_escape' function, which works similarly to
'ast_uri_encode'. This is used to properly escape the
local_display attribute in XML formatted NOTIFY messages. Several
things to note: * The Right Thing(TM) to do would probably be to
replace the ast_build_string stuff with building an ast_xml_doc.
That's a much bigger change, and out of scope for the original
ticket, so I refrained myself. * It is with great sadness that I
wrote my own ast_xml_escape function. There's one in libxml2, but
it's knee-deep in libxml2-ness, and not easily used to one-off
escape a string. * I only escaped the string we know is causing
problems (local_display). At least some of the other strings are
URI-encoded, which should be XML safe. Rather than figuring out
what's safe and escaping what's not, it would be much cleaner to
simply build an ast_xml_doc for the messages and let the XML
library do the XML escaping. Like I said, that's out of scope.
(closes issue ABE-2902) Reported by: Guenther Kelleter Tested by:
Guenther Kelleter Review:
http://reviewboard.digium.internal/r/365/ ........ Merged
revision 378919 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
........ Merged revisions 378933 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378934 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-11 23:05 +0000 [r378918] Joshua Colp <jcolp@digium.com>
* /, res/res_xmpp.c: Retain XMPP filters across reconnections so
external modules continue to function as expected. Previously if
an XMPP client reconnected any filters added by an external
module were lost. This issue exhibited itself with chan_motif not
receiving and reacting to Jingle signaling. (closes issue
ASTERISK-20916) Reported by: kuj ........ Merged revisions 378917
from http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-11 22:31 +0000 [r378915] David M. Lee <dlee@digium.com>
* build_tools/menuselect-deps.in, configure,
include/asterisk/autoconfig.h.in, main/Makefile,
res/res_json.exports.in (added), configure.ac,
include/asterisk/json.h (added), makeopts.in, tests/test_json.c
(added), contrib/scripts/install_prereq, res/res_json.c (added),
include/asterisk/test.h: Add JSON API for Asterisk. This provides
a JSON API by pulling in and wrapping the Jansson JSON
library[1]. The Asterisk API basically mirrors the Jansson
functionality, with a few minor tweaks. * Some names have been
asteriskified to protect the innocent. * Jansson provides both
reference-stealing and reference-borrowing versions of several
API's. The Asterisk API is exclusively reference-stealing for
operations that put elements into arrays and objects. * No
support for doubles, since we usually don't need that. * Coming
along for the ride is the ast_test_validate macro, which made the
unit tests much easier to write. [1]:
http://www.digip.org/jansson/ (issue ASTERISK-20887) (closes
issue ASTERISK-20888) Review:
https://reviewboard.asterisk.org/r/2264/
2013-01-10 02:40 +0000 [r378789-378889] Richard Mudgett <rmudgett@digium.com>
* main/channel.c: * Simplify native bridge code in
ast_channel_bridge(). * Fix an unbalanced
manager_bridge_event(unlink) call if AST_SOFTHANGUP_UNBRIDGE is
set in ast_channel_bridge(). * Make ast_channel_bridge() use
common cleanup code when leaving the bridge.
* main/channel.c: * Removed some noop code and restructured an
else-if ladder in ast_generic_bridge(). * Trivial changes in
ast_channel_bridge().
* main/channel.c: * Simple optimization of bridge_playfile(). *
Squeezed some redundancy out of update_bridge_vars(). * Wrapped
long line in __ast_change_name_nolink().
* bridges/bridge_softmix.c, bridges/bridge_multiplexed.c: Trivial
misc bridge code changes. * softmix_bridge_thread() was
redundantly initializing an 8K buffer. * Promoted a debug message
to a warning in multiplexed_add_or_remove().
* main/logger.c: Fix logger.c function definition.
* include/asterisk/bridging_features.h, bridges/bridge_simple.c,
bridges/bridge_multiplexed.c, main/bridging.c: Trivial misc
bridge code changes.
* include/asterisk/test.h, main/test.c: Tweaked
__ast_test_suite_assert_notify() and
__ast_test_suite_event_notify() to be void functions.
* main/test.c, include/asterisk/test.h: * Whitespace changes. *
Made ast_test_init() match its prototype.
* main/udptl.c, main/rtp_engine.c: * Found some more places to use
ast_channel_lock_both(). * Minor optimization in
ast_rtp_instance_early_bridge().
2013-01-09 20:30 +0000 [r378735-378783] David M. Lee <dlee@digium.com>
* main/rtp_engine.c, /: Fix end condition in
ast_rtp_lookup_mime_multiple2. The erroneous end condition would
never include the AST_RTP_CISCO_DTMF flag in the debug output.
(closes issue ASTERISK-20772) Reported by: Xavier Hienne ........
Merged revisions 378776 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378780 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, include/asterisk/strings.h: Move declaration of
ast_regex_string_to_regex_pattern futher down strings.h. The
prior location is before the declaration of struct ast_str, which
causes compiler warnings. (closes issue ASTERISK-20852) Reported
by: Pavel Troller Patches: strings.diff uploaded by Pavel Troller
(license 6302) ........ Merged revisions 378747 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, include/asterisk/causes.h: Replace errant tabs with spaces in
causes.h. (closes issue ASTERISK-20826) Reported by: snuffy
Patches: notabs.dif uploaded by snuffy (license 5024) ........
Merged revisions 378733 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378734 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-09 00:05 +0000 [r378688-378691] Richard Mudgett <rmudgett@digium.com>
* apps/app_queue.c, /: app_queue: Fix incorrect assertion. (issue
ASTERISK-16115) ........ Merged revisions 378689 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378690 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, configs/queues.conf.sample, UPGRADE.txt, CHANGES,
apps/app_queue.c: app_queue: Fix multiple calls to a queue member
that is in only one queue. When ringinuse=no queue members can
receive more than one call if these calls happen at nearly the
same time. * Fix so a queue member does not receive more than one
call from a queue. NOTE: This fix does not prevent multiple calls
to a member if the member is in more than one queue. * Did some
refactoring to eliminate some code redundancy. (issue
ASTERISK-16115) Reported by: nik600 Patches:
jira_asterisk_16115_single_q_v1.8.patch (license #5621) patch
uploaded by rmudgett Modified * Revert the -r341580 and -r341599
changes adding the queues.conf check_state_unknown option as it
was added in an attempt to fix this problem. The fix did not need
to be optional. The fix should not have tried to explicitly set
the device state. Setting the device state by something other
than the device introduces a race condition. I also could not see
how the change would be effective other than delaying the
app_queue code long enough for the device state to propagate to
app_queue. ........ Merged revisions 378663 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378683 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378687 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-06 21:37 +0000 [r378623-378634] Damien Wedhorn <voip@facts.com.au>
* channels/chan_skinny.c: Skinny blob cleanup Cleanup of red blobs
in chan_skinny and possible other small formatting issues.
Review: https://reviewboard.asterisk.org/r/2262/
* channels/chan_skinny.c: Add group and namedgroup pickup to skinny
Above says it all. Code by snuff, cleaned up by me. Review:
https://reviewboard.asterisk.org/r/2246/
* /, channels/chan_skinny.c: Rewrite skinny dialing to remove
threaded simpleswitch This rewrite changes skinny dialing from
the threaded simpleswitch to a scheduled timeout approach. There
were some underlying issues with the threaded simple switch with
occasional corruption and possible segfaults. Review:
https://reviewboard.asterisk.org/r/2240/ ........ Merged
revisions 378622 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-04 23:14 +0000 [r378593] Jonathan Rose <jrose@digium.com>
* res/res_srtp.c, /: res_srtp: Prevent a crash from occurring due
to srtp_create failures in srtp_create Under some circumstances,
libsrtp's srtp_create function deallocates memory that it wasn't
initially responsible for allocating. Because we weren't
initially aware of this behavior, this memory was still used in
spite of being unallocated during the course of the
srtp_unprotect function. A while back I made a patch which would
set this value to NULL, but that exposed a possible condition
where we would then try to check a member of the struct which
would cause a segfault. In order to address these problems,
ast_srtp_unprotect will now set an error value when it ends
without a valid SRTP session which will result in the caller of
srtp_unprotect observing this error and hanging up the relevant
channel instead of trying to keep using the invalid session
address. (closes issue ASTERISK-20499) Reported by: Tootai
Review:
https://reviewboard.asterisk.org/r/2228/diff/#index_header
........ Merged revisions 378591 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378592 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-04 22:19 +0000 [r378585] Kinsey Moore <kmoore@digium.com>
* res/pjproject/aconfigure, res/pjproject/aconfigure.ac, /,
res/pjproject/build/common.mak: Fix pjproject compilation in
certain circumstances On a fresh checkout of Asterisk 11, running
make before ./configure could cause the pjproject subdirectory to
get in an odd state that would prevent compilation. This patch by
Tilghman prevents that from occurring. (closes issue
ASTERISK-20681) Reported by: Dinesh Ramjuttun Tested by: danilo
borges, Steve Lang patches: 20121208__ccar_solved.diff.txt
uploaded by Tilghman Lesher (license 5003) ........ Merged
revisions 378582 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-04 21:20 +0000 [r378565] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix SIP Notify Messages To Have The
Proper IP Address In The FROM Field On a multihomed server when
sending a NOTIFY message, we were not figuring out which network
should be used to contact the peer. This patch fixes the problem
by calling ast_sip_ouraddrfor() and then build_via() so that our
NOTIFY message contains the correct IP address. Also, a debug
message is being added to help follow the call-id changes that
occur. This was helpful for confirming that the IP address was
set properly since the call-id contains the IP address. It also
will be helpful for troubleshooting purposes when following a
call in the debug logs. (closes issue ASTERISK-20805) Reported
by: Bryan Hunt Tested by: Bryan Hunt, Michael L. Young Patches:
asterisk-20805-notify-ip-v2.diff uploaded by Michael L. Young
(license 5026) Review: https://reviewboard.asterisk.org/r/2255/
........ Merged revisions 378554 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378559 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-04 21:18 +0000 [r378557] Joshua Colp <jcolp@digium.com>
* res/res_rtp_asterisk.c, /: Don't pass STUN packets through the
SRTP unprotect function. (closes issue AST-1036) Reported by:
jbigelow ........ Merged revisions 378553 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378555 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-04 16:44 +0000 [r378543] Andrew Latham <lathama@gmail.com>
* res/res_config_ldap.c: Doxygen Cleanups Baseline clean up of
formating to make room for extended documentation (issue
ASTERISK-20259)
2013-01-03 22:14 +0000 [r378516] Michael L. Young <elgueromexicano@gmail.com>
* apps/app_queue.c, /: Fix Queue Log Reporting Every Call
COMPLETECALLER With "h" Extension Present When the "h" extension
is present within the context of the queue, all calls are being
reported COMPLETECALLER even when the agent is hanging up the
call. This patch checks to see if the agent hung-up or not
instead of only relying on checking if the queue (caller) channel
hung-up or not. It would appear that having the h extension in
the mix, the pbx goes to the h extension, "hanging-up" the queue
channel and triggering the reporting of COMPLETECALLER. (closes
issue ASTERISK-20743) Reported by: call Tested by: call, Michael
L. Young Patches: asterisk-20743-q-cmplt-caller.diff uploaded by
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2256/ ........ Merged
revisions 378514 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378515 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-03 19:42 +0000 [r378488] Richard Mudgett <rmudgett@digium.com>
* /, channels/chan_agent.c: chan_agent: Fix wrapup time wait
response. * Made agent_cont_sleep() and agent_ack_sleep() stop
waiting if the wrapup time expires. agent_cont_sleep() had tried
but returned the wrong value to stop waiting. * Made
agent_ack_sleep() take a struct agent_pvt pointer instead of a
void pointer for better type safety. ........ Merged revisions
378486 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 378487 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-03 18:51 +0000 [r378460] Kinsey Moore <kmoore@digium.com>
* main/channel.c, /: Add missing test event This test event was
missing from channel.c causing the dial_LS_options test to fail
intermittently because of a race condition where most code paths
emitted the test event but this one did not. The dial_LS_options
test should stop bouncing now. ........ Merged revisions 378455
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 378459 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-03 18:47 +0000 [r378429-378458] Richard Mudgett <rmudgett@digium.com>
* /, channels/chan_agent.c: chan_agent: Misc code cleanup. * Fix
off-nominal path resource cleanup in agent_request(). * Create
agent_pvt_destroy() to eliminate inlined versions in many places.
* Pull invariant code out of loop in add_agent(). * Remove
redundant module user references in login_exec(). * Remove unused
struct agent_pvt logincallerid[] member. ........ Merged
revisions 378456 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378457 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_agent.c: chan_agent: Fix agent_indicate()
locking. Avoid deadlock potential with local channels and
simplify the locking. ........ Merged revisions 378427 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378428 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-03 16:04 +0000 [r378414] Tilghman Lesher <tilghman@meg.abyt.es>
* apps/app_directory.c, contrib/realtime/mysql/voicemail.sql,
configs/voicemail.conf.sample: Add aliases to the Directory. This
is an interesting feature that allows additional strings to be
used to search the Directory, primarily intended to be used with
nicknames, but could be used with affiliations and the like.
Because the name field is used in more than one place (such as
email notifications), it is important that these additional
strings not be placed in the name field, but be specified
separately. Review: https://reviewboard.asterisk.org/r/2244/
2013-01-03 15:40 +0000 [r378412] Joshua Colp <jcolp@digium.com>
* /, res/res_xmpp.c: Prevent exhaustion of system resources through
exploitation of event cache This patch changes res_xmpp to no
longer cache events under certain circumstances. (issue
ASTERISK-20175) Reported by: Russell Bryant, Leif Madsen, Joshua
Colp Tested by: kmoore ........ Merged revisions 378411 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-03 15:37 +0000 [r378377-378410] Matthew Jordan <mjordan@digium.com>
* res/res_xmpp.c, /: Prevent crashes in res_xmpp when receiving
large messages Similar to r378287, res_xmpp was marshaling data
read from an external source onto the stack. For a sufficiently
large message, this could cause a stack overflow. This patch
modifies res_xmpp in a similar fashion to res_jabber by removing
the stack allocation, as it was unnecessary. (issue
ASTERISK-20658) Reported by: wdoekes ........ Merged revisions
378409 from http://svn.asterisk.org/svn/asterisk/branches/11
* addons/app_mysql.c: Clean up app_mysql's application entry points
to properly parse arguments When parsing arguments, application
entry points should not attempt to directly modify the parameters
to the function. This patch properly duplicates the passed in
parameters before attempting to parse them. (issue
ASTERISK-20658) Reported by: wdoekes patches:
issueA20658_sanitize_app_mysql.patch uploaded by wdoekes (license
5674)
* main/config.c, funcs/func_realtime.c, /: Prevent crashes from
occurring when reading from data sources with large values When
reading configuration data from an Asterisk .conf file or when
pulling data from an Asterisk RealTime backend, Asterisk was
copying the data on the stack for manipulation. Unfortunately, it
is possible to read configuration data or realtime data from some
data source that provides a large blob of characters. This could
potentially cause a crash via a stack overflow. This patch
prevents large sets of data from being read from an ARA backend
or from an Asterisk conf file. (issue ASTERISK-20658) Reported
by: wdoekes Tested by: wdoekes, mmichelson patches: *
issueA20658_dont_process_overlong_config_lines.patch uploaded by
wdoekes (license 5674) * issueA20658_func_realtime_limit.patch
uploaded by wdoekes (license 5674) ........ Merged revisions
378375 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 378376 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-02 21:23 +0000 [r378374] Richard Mudgett <rmudgett@digium.com>
* main/manager.c, /, main/features.c, include/asterisk/channel.h:
Fix AMI redirect action with two channels failing to redirect
both channels. The AMI redirect action can fail to redirect two
channels that are bridged together. There is a race between the
AMI thread redirecting the two channels and the bridge thread
noticing that a channel is hungup from the redirects. * Made the
bridge wait for both channels to be redirected before exiting. *
Made the AMI redirect check that all required headers are present
before proceeding with the redirection. * Made the AMI redirect
require that any supplied ExtraChannel exist before proceeding.
Previously the code fell back to a single channel redirect
operation. (closes issue ASTERISK-18975) Reported by: Ben Klang
(closes issue ASTERISK-19948) Reported by: Brent Dalgleish
Patches: jira_asterisk_19948_v11.patch (license #5621) patch
uploaded by rmudgett Tested by: rmudgett, Thomas Sevestre, Deepak
Lohani, Kayode Review: https://reviewboard.asterisk.org/r/2243/
........ Merged revisions 378356 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378358 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-02 18:11 +0000 [r378288-378322] Matthew Jordan <mjordan@digium.com>
* apps/confbridge/conf_state_empty.c, funcs/func_devstate.c,
res/res_calendar.c, include/asterisk/devicestate.h,
channels/chan_local.c, /, main/ccss.c, channels/chan_sip.c,
apps/app_meetme.c, main/channel_internal_api.c,
channels/chan_agent.c, main/devicestate.c,
include/asterisk/channel.h, res/res_jabber.c, apps/app_queue.c,
channels/chan_iax2.c, main/channel.c, channels/chan_dahdi.c,
channels/chan_skinny.c, include/asterisk/event_defs.h,
main/features.c, main/event.c, apps/app_confbridge.c: Prevent
exhaustion of system resources through exploitation of event
cache Asterisk maintains an internal cache for devices in the
event subsystem. The device state cache holds the state of each
device known to Asterisk, such that consumers of device state
information can query for the last known state for a particular
device, even if it is not part of an active call. The concept of
a device in Asterisk can include entities that do not have a
physical representation. One way that this occurred was when
anonymous calls are allowed in Asterisk. A device was
automatically created and stored in the cache for each anonymous
call that occurred; this was possible in the SIP and IAX2 channel
drivers and through channel drivers that utilized the
res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif).
These devices are never removed from the system, allowing
anonymous calls to potentially exhaust a system's resources. This
patch changes the event cache subsystem and device state
management to no longer cache devices that are not associated
with a physical entity. (issue ASTERISK-20175) Reported by:
Russell Bryant, Leif Madsen, Joshua Colp Tested by: kmoore
patches: event-cachability-3.diff uploaded by jcolp (license
5000) ........ Merged revisions 378303 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378320 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378321 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c, main/http.c, res/res_jabber.c,
channels/sip/include/sip.h: Resolve crashes due to large stack
allocations when using TCP Asterisk had several places where
messages received over various network transports may be copied
in a single stack allocation. In the case of TCP, since multiple
packets in a stream may be concatenated together, this can lead
to large allocations that overflow the stack. This patch modifies
those portions of Asterisk using TCP to either favor heap
allocations or use an upper bound to ensure that the stack will
not overflow: * For SIP, the allocation now has an upper limit *
For HTTP, the allocation is now a heap allocation instead of a
stack allocation * For XMPP (in res_jabber), the allocation has
been eliminated since it was unnecesary. Note that the HTTP
portion of this issue was independently found by Brandon Edwards
of Exodus Intelligence. (issue ASTERISK-20658) Reported by:
wdoekes, Brandon Edwards Tested by: mmichelson, wdoekes patches:
ASTERISK-20658_res_jabber.c.patch uploaded by mmichelson (license
5049) issueA20658_http_postvars_use_malloc2.patch uploaded by
wdoekes (license 5674) issueA20658_limit_sip_packet_size3.patch
uploaded by wdoekes (license 5674) ........ Merged revisions
378269 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 378286 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378287 from
http://svn.asterisk.org/svn/asterisk/branches/11
2013-01-01 19:02 +0000 [r378259] Andrew Latham <lathama@gmail.com>
* contrib/scripts/install_prereq: Add UUID packages now required to
configure In ASTERISK-20726 UUID was added to Asterisk. This
commit is to add the dependancies to the install script
2013-01-01 17:10 +0000 [r378248-378249] Sean Bright <sean@malleable.com>
* main/translate.c: Revert 378248. I changed the logic of this
function unitentionally, pointed out by file.
* main/translate.c: Bail out early when building an ast_trans_pvt
and the translator doesn't supply a 'newpvt'
2012-12-31 14:46 +0000 [r378220] Kinsey Moore <kmoore@digium.com>
* /, channels/chan_sip.c: Ensure chan_sip rejects encrypted streams
without crypto info This ensures that Asterisk rejects encrypted
media streams (RTP/SAVP audio and video) that are missing
cryptographic keys and ensures that the incoming SDP is
consistent with RFC4568 as far as having a crypto attribute
present for any SAVP streams. Review:
https://reviewboard.asterisk.org/r/2204/ ........ Merged
revisions 378217 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378218 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378219 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-20 21:51 +0000 [r378166] Richard Mudgett <rmudgett@digium.com>
* main/channel.c, /: Give the causes[] a struct name. ........
Merged revisions 378164 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378165 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-18 17:48 +0000 [r378122] Kinsey Moore <kmoore@digium.com>
* /, main/channel.c: Add test events for time limit-related hangups
This patch adds hangup-related test events in order to support
testing of time-limited bridges. This aids in testing the S() and
L() bridge options. (issue SWP-4713) ........ Merged revisions
378119 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 378120 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378121 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-17 23:10 +0000 [r378081-378095] Richard Mudgett <rmudgett@digium.com>
* main/loader.c, /: Fix potential double free when unloading a
module. ........ Merged revisions 378092 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378093 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378094 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_local.c, /: Make chan_local module references tied
to local_pvt lifetime. The chan_local module references were
manually tied to the existence of the ;1 and ;2 channel links. *
Made chan_local module references tied to the existence of the
local_pvt structure as well as automatically take care of the
module references. * Tweaked the wording of the local_fixup()
failure warning message to make sense. Review:
https://reviewboard.asterisk.org/r/2181/ ........ Merged
revisions 378088 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378089 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378090 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_local.c: chan_local: Parse dial string
consistently. * Fix local_alloc() unexpected limitation of exten
and context length from a combined length of 80 characters to a
normal 80 characters each. * Made local_alloc() and
local_devicestate() parse the same way.
2012-12-17 20:59 +0000 [r378074] Jason Parker <jparker@digium.com>
* /, main/Makefile: Make libasteriskssl.so symlink use a relative
path. This was causing issues when using DESTDIR, since the path
to which the link pointed is not likely to exist (and not useful
to exist) on the target system. (issue ASTNOW-284) ........
Merged revisions 378073 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-17 20:34 +0000 [r378072] Richard Mudgett <rmudgett@digium.com>
* channels/chan_local.c: chan_local: Misc lock and ref tweaks. *
awesome_locking() does not need to thrash the pvt lock as much. *
local_setoption() does not need to check for NULL pvt on cleanup
since it will never be NULL. * Made ref the pvt before locking
for consistency.
2012-12-14 22:45 +0000 [r378064] Richard Mudgett <rmudgett@digium.com>
* channels/chan_agent.c: chan_agent: Remove some duplicated code.
No need to check for an agent twice. Santa does that.
2012-12-14 22:34 +0000 [r378063] Jonathan Rose <jrose@digium.com>
* main/features.c, UPGRADE.txt, CHANGES: Features: BRIDGE_FEATURES
variable automixmonitor support and use proper party
BRIDGE_FEATURES did not previously support the automixmonitor
feature. Now it does. In addition, the BRIDGE_FEATURES variable
would not apply features to the proper party based on whether the
feature option letter was in caps or in lowercase (both ways
would apply it to the caller). Now uppercase applies to the
caller while lowercase applies to the callee (like with the dial
option)
2012-12-14 21:35 +0000 [r378029-378039] Richard Mudgett <rmudgett@digium.com>
* /, apps/app_queue.c: app_queue: Revert bad ringinuse=no patch.
With the option ringinuse=no set, the patch committed for
ASTERISK-16115 causes non-SIP queue members to never be called
because the device state is checked after a channel is created to
determine if the member is busy. These queue members always get
the "Member %s is busy, cannot dial" message. Most channel
drivers other than chan_sip use the default device state
handling. The default device-state state is considered in use or
unknown if the channel exists or not respectively. (closes issue
ASTERISK-20801) Reported by: rmudgett Patches:
jira_asterisk_16115_revert_r370418_v1.8.patch (license #5621)
patch uploaded by rmudgett ........ Merged revisions 378036 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 378037 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 378038 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_queue.c: app_queue: Make update_status() not return
anything.
2012-12-14 01:55 +0000 [r378006-378011] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Fix skinny to recognise vmexten in
general section of conf Fixup the vmexten so if globally set in
general section will be honored by chan_skinny. Also get rid of
the 'global_' part of variable name to match regexten. (closes
issue ASTERISK-20790) Reported by: snuffy Tested by: snuffy,
myself Patches: skinny-vm.diff uploaded by snuffy (license 5024)
........ Merged revisions 378010 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_skinny.c: Add g722 codec support to skinny (closes
issue ASTERISK-20788) Reported by: snuffy Tested by: snuffy,
myself Patches: skinny-g722.diff uploaded by snuffy (license
5024)
2012-12-13 21:28 +0000 [r378002] Richard Mudgett <rmudgett@digium.com>
* /, apps/confbridge/include/confbridge.h,
include/asterisk/bridging.h, apps/app_confbridge.c,
apps/confbridge/conf_state_multi_marked.c,
apps/confbridge/conf_state.c: confbridge: Fix MOH on simultaneous
user entry to a new conference. When two users entered a new
conference simultaneously, one of the callers hears MOH. This
happened if two unmarked users entered simultaneously and also if
a waitmarked and a marked user entered simultaneously. * Created
a confbridge internal MOH API to eliminate the inlined MOH
handling code. Note that the conference mixing bridge needs to be
locked when actually starting/stopping MOH because there is a
small window between the conference join unsuspend MOH and
actually joining the mixing bridge. * Created the concept of
suspended MOH so it can be interrupted while conference join
announcements to the user and DTMF features can operate. *
Suspend any MOH until the user is about to actually join the
mixing bridge of the conference. This way any pre-join file
playback does not need to worry about MOH. * Made post-join
actions only play deferred entry announcement files. Changing the
user/conference state during that time is not protected or
controlled by the state machine. (closes issue ASTERISK-20606)
Reported by: Eugenia Belova Tested by: rmudgett Review:
https://reviewboard.asterisk.org/r/2232/ ........ Merged
revisions 377992 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377993 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-13 21:25 +0000 [r378001] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Minor fixes for chan_skinny
Whitespace, change SUBSTATE_ONHOOK to correct SKINNY_ONHOOK and
correct len of 2 strcmp in skinny_setdebug(). (see opticron's
review on https://reviewboard.asterisk.org/r/2240/) ........
Merged revisions 377991 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-13 21:20 +0000 [r378000] Sean Bright <sean@malleable.com>
* res/res_calendar_exchange.c: Make generate_exchange_uuid() always
return the passed ast_str pointer. I changed this code earlier to
return NULL if it wasn't able to generate a UUID, whereas the
earlier code would always return the ast_str that was passed in.
Switch back to returning the ast_str, only set it to the empty
string instead if UUID generation fails. We still do a validity
check later which will catch this and blow up if necessary.
2012-12-13 21:15 +0000 [r377994] David M. Lee <dlee@digium.com>
* /: Fixed svn merge property breakage from r377986
2012-12-13 18:28 +0000 [r377986] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Fix skinny debug tab completion Review
the syntax of the 'skinny debug' command to show more than just
'show' for options to 'skinny debug' command. (closes issue
ASTERISK-20789) Reported by: snuffy Tested by: snuffy, myself
Patches: skinny-debug.diff uploaded by snuffy (license 5024)
........ Merged revisions 377985 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-13 16:43 +0000 [r377981] David M. Lee <dlee@digium.com>
* configure, include/asterisk/autoconfig.h.in, configure.ac: Bail
configure if it can't find libuuid.
2012-12-13 16:18 +0000 [r377977] Russell Bryant <russell@russellbryant.com>
* configure, include/asterisk/autoconfig.h.in, configure.ac,
main/utils.c: Remove compile time check HAVE_DEV_URANDOM. The
code was doing a runtime check, anyway. The compile time check
isn't always valid (cross-compiling, packages). Review:
https://reviewboard.asterisk.org/r/2245/
2012-12-13 15:40 +0000 [r377975] Mark Michelson <mmichelson@digium.com>
* main/taskprocessor.c: Re-add taskprocessor cleanup code that was
removed by the UUID merge.
2012-12-13 15:37 +0000 [r377974] Sean Bright <sean@malleable.com>
* res/res_calendar_exchange.c: Use the UUID API to generate and
validate UUIDs for res_calendar_exchange. Currently the
res_calendar_exchange module uses its own method of generating
UUIDs using ast_random(). Now that we have a UUID API we should
use that instead.
2012-12-13 15:37 +0000 [r377973] Mark Michelson <mmichelson@digium.com>
* res/res_clialiases.c: The UUID commit removed changes made in
res_clialiases.c This puts back in the changes that are designed
to work around a memory leak fix in the CLI code.
2012-12-13 15:24 +0000 [r377972] David M. Lee <dlee@digium.com>
* configure, include/asterisk/autoconfig.h.in, configure.ac: Fixed
configure.ac to look for proper uuid.h file Introduced in
r377846, the configure script was looking for uuid.h instead of
uuid/uuid.h.
2012-12-13 15:22 +0000 [r377971] Brent Eagles <beagles@digium.com>
* configs/sip.conf.sample, channels/sip/include/sip.h,
channels/chan_sip.c: This change adds a SIP peer configuration
feature to allow the peer's configured codecs to take precedence
on an outgoing call. This change introduces a new peer
configuration property named 'ignore_requested_pref' that causes
the requested codec to be ignored when determining the preferred
codec for an outgoing call leg. The consequence is that
Asterisk's usual efforts to prefer avoiding transcoding can be
overridden on a peer-by-peer basis where appropriate.
2012-12-13 14:28 +0000 [r377966] Kinsey Moore <kmoore@digium.com>
* /, channels/chan_sip.c: Ensure Min-SE is included in outbound
INVITEs Asterisk now includes Min-SE in outbound INVITEs when the
value is not 90 (the default) and session timers are not
disabled. This has the effect of Asterisk following RFC4028 more
closely with regard to 422 responses and preventing situations in
which Asterisk would be forced to temporarily accept a call to
tear it down based on a Session-Expires below the locally
configured Min-SE. (issue SWP-5051) Review:
https://reviewboard.asterisk.org/r/2222/ Reported-by: Kinsey
Moore Patch-by: Kinsey Moore ........ Merged revisions 377946
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 377947 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377948 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-12 22:43 +0000 [r377925] Rusty Newton <rnewton@digium.com>
* /, sounds/Makefile: Incremented EXTRA_SOUNDS_VERSION in
sounds/Makefile to 1.4.12 for new Extra Sounds releases See
CHANGES-* files in English extra 1.4.12 tarballs for new sound
prompts added. (closes ASTERISK-20328) Reported by: Matt Jordan
(closes AST-755) Reported by: John Bigelow ........ Merged
revisions 377922 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377923 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377924 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-12 04:43 +0000 [r377915] Michael L. Young <elgueromexicano@gmail.com>
* main/features.c: Convert Dynamic Features Buffer To Use ast_str
Currently, the buffer for the dynamic features list is set to a
fixed size of 128. If the list is bigger than that, it results in
the dynamic feature(s) not being recognized. This patch changes
the buffer from a fixed size to a dynamic one. (closes issue
ASTERISK-20680) Reported by: Clod Patry Tested by: Michael L.
Young Patches: asterisk-20680-dynamic-features-v2.diff uploaded
by Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2221/
2012-12-12 00:02 +0000 [r377906-377911] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Fix a potential deadlock in chan_sip
during transfers. The issue comes from the fact that transfers
may perform a redirecting update on a channel. The issue is that
lock inversion between the channel and its tech_pvt occurs since
the channel lock is released during the transfer process. The fix
is to move when the redirecting update occurs to a place where
neither the tech_pvt or the channel is locked so that the two can
be locked in the proper order. (closes issue ASTERISK-20708)
reported by Mark Michelson patches: ASTERISK-20708-3.patch
uploaded by Mark Michelson (License #5049) Tested by: Tim
Ringenbach at Asteria Solutions Group ........ Merged revisions
377910 from http://svn.asterisk.org/svn/asterisk/branches/11
* main/features.c: Add test events necessary for bridging tests to
be able to properly run.
2012-12-11 22:03 +0000 [r377884] Richard Mudgett <rmudgett@digium.com>
* /, main/file.c, main/http.c, main/aoc.c, main/image.c,
main/cel.c, main/timing.c, main/channel.c, main/data.c,
main/stun.c: Cleanup CLI commands on exit for several files.
(issue ASTERISK-20649) Reported by: Corey Farrell Patches:
unregister-cli-multiple-all.patch (license #5909) patch uploaded
by Corey Farrell ........ Merged revisions 377881 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377882 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377883 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-11 21:53 +0000 [r377878-377880] Mark Michelson <mmichelson@digium.com>
* /: And remove svnmerge-integrated property.
* /: Remove automerge properties.
2012-12-11 21:22 +0000 [r377867] Richard Mudgett <rmudgett@digium.com>
* main/udptl.c, /: Cleanup udptl on exit. * Cleanup CLI commands on
exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches:
udptl-shutdown-1_8-10.patch (license #5909) patch uploaded by
Corey Farrell udptl-shutdown-11-trunk.patch (license #5909) patch
uploaded by Corey Farrell Modified ........ Merged revisions
377847 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377848 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377849 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-11 21:04 +0000 [r377844-377846] Mark Michelson <mmichelson@digium.com>
* configure.ac, include/asterisk/uuid.h (added),
main/taskprocessor.c, tests/test_uuid.c (added), main/asterisk.c,
main/uuid.c (added), res/res_clialiases.c, /, configure,
include/asterisk/autoconfig.h.in, main/Makefile: Add UUID support
to Asterisk. This provides a common API for dealing with unique
identifiers. The API provides methods to create, parse, copy, and
stringify UUIDs. An accompanying unit test is provided that tests
all operations. (closes issue ASTERISK-20726) reported by Matt
Jordan Review: https://reviewboard.asterisk.org/r/2217
* res/res_clialiases.c, /: Fix crash that can occur if CLI
registration fails for an aliased command. A recent memory leak
fix in main/cli.c causes an ast_cli_entry's command field to be
freed and NULLed if ast_cli_register() fails. res_clialiases was
ignoring the return value of ast_cli_register() and was then
passing the NULL command off to a a hash function. This resulted
in a crash. The fix is not to ignore the erroneous return value.
If ast_cli_register() fails, then we do not continue trying to
process the current alias. ........ Merged revisions 377840 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377842 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377843 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-11 20:46 +0000 [r377707-377841] Richard Mudgett <rmudgett@digium.com>
* main/taskprocessor.c, /: Cleanup taskprocessor on exit. * Cleanup
CLI commands on exit. (issue ASTERISK-20649) Reported by: Corey
Farrell Patches: taskprocessor-cleanup-1_8-11-trunk.patch
(license #5909) patch uploaded by Corey Farrell
taskprocessor-cleanup-10-only.patch (license #5909) patch
uploaded by Corey Farrell Modified ........ Merged revisions
377837 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377838 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377839 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/pbx.c, /: Cleanup pbx on exit. * Cleanup CLI commands on
exit. * Unreference hints and statecbs containers on exit. (issue
ASTERISK-20649) Reported by: Corey Farrell Patches:
pbx-cleanup-1_8.patch (license #5909) patch uploaded by Corey
Farrell pbx-cleanup-10.patch (license #5909) patch uploaded by
Corey Farrell pbx-cleanup-11-trunk.patch (license #5909) patch
uploaded by Corey Farrell Modified ........ Merged revisions
377806 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377807 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377808 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/logger.c: Cleanup logger on exit. * Cleanup CLI commands,
destroy verbosers and logchannels lists on exit. (issue
ASTERISK-20649) Reported by: Corey Farrell Patches:
logger-cleanup-all.patch (license #5909) patch uploaded by Corey
Farrell Modified ........ Merged revisions 377771 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377772 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377773 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/indications.c, /: Cleanup indications on exit. * Made
ast_unregister_indication_country() unlink the found tone zone
before selecting a new default_tone_zone to make it impossible to
select the tone zone being unregistered again. * Ringcadence is
no longer parsed twice in store_config_tone_zone(). * Cleanup CLI
commands and destroy default_tone_zone on exit. (issue
ASTERISK-20649) Reported by: Corey Farrell Patches:
indications-cleanup-all.patch (license #5909) patch uploaded by
Corey Farrell Modified ........ Merged revisions 377740 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377741 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377742 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/event.c: Cleanup event on exit. * Cleanup CLI commands on
exit. (issue ASTERISK-20649) Reported by: Corey Farrell Patches:
event_shutdown-10-only.patch (license #5909) patch uploaded by
Corey Farrell event_shutdown-1_8-11-trunk.patch (license #5909)
patch uploaded by Corey Farrell ........ Merged revisions 377708
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 377709 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377710 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/dnsmgr.c, /: Cleanup dnsmgr on exit. * Cleanup dnsmgr thread
and CLI commands on exit. (issue ASTERISK-20649) Reported by:
Corey Farrell Patches: dnsmgr-cleanup-1_8.patch (license #5909)
patch uploaded by Corey Farrell dnsmgr-cleanup-10-11-trunk.patch
(license #5909) patch uploaded by Corey Farrell Modified ........
Merged revisions 377704 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377705 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377706 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-10 16:56 +0000 [r377626-377658] Kinsey Moore <kmoore@digium.com>
* /, res/res_fax.c: Ensure ReceiveFax provides a CED tone via T.38
When using res_fax_digium, the T.38 CED tone was not being
provided properly which would cause some incoming faxes to fail.
This was not an issue with res_fax_spandsp since it does not
strictly honor the send_ced flag and sends the CED tone whenever
receiving a T.38 fax. (closes issue FAX-343) Reported-by:
Benjamin Tietz Patch-by: Kinsey Moore ........ Merged revisions
377655 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377656 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377657 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Handle Session-Expires less than local
Min-SE in 200 OK Ensure that a call is immediately torn down if a
Session-Expires value received in a 200 OK is less than the local
Min-SE. This also prevents Asterisk from allowing calls with
Session-Expires below the RFC4028-mandated minimum (90s). (closes
issue ASTERISK-20653) Review:
https://reviewboard.asterisk.org/r/2237/ Patch-by: Kinsey Moore
........ Merged revisions 377623 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377624 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377625 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-10 07:03 +0000 [r377579-377595] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c: Add firmware information to CLI devices
listing
* channels/chan_unistim.c, /: Fix codec mismatch Fix code to send
in both rx and tx open stream messages correct codecs. Found that
on phase 0/1 phones wrong codecs cause to no audio in some
situations. (issue ASTERISK-20183) ........ Merged revisions
377591 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377592 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377593 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_unistim.c, /: Remove trailing whitespaces in number
from incoming redial list. Reported by: Igor Olhovskiy ........
Merged revisions 377577 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-10 01:41 +0000 [r377506-377512] Tilghman Lesher <tilghman@meg.abyt.es>
* main/xmldoc.c, /: Improve documentation by making all of the
colors used readable, no matter what the background color is.
Dark blue on a black background is unreadable, as is yellow on a
light background. This patch turns on the bright attribute for
colors when on a dark background and turns *off* the bright
attribute when the -W command line option is used (indicating a
_light_ background). This ensures that text is readable in both
cases. Patch by: tilghman Review:
https://reviewboard.asterisk.org/r/2224 ........ Merged revisions
377509 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377510 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377511 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, addons/cdr_mysql.c: Remove some dead code and additionally
handle a case that wasn't handled. ........ Merged revisions
377487 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377504 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377505 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-09 01:23 +0000 [r377463] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Add missing support for "who hung up"
to chan_motif. (closes issue ASTERISK-20671) Reported by: Matt
Jordan Review: https://reviewboard.asterisk.org/r/2208/ ........
Merged revisions 377462 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-08 00:30 +0000 [r377402-377434] Richard Mudgett <rmudgett@digium.com>
* contrib/realtime/mysql/sippeers.sql, /: Fix order of SIP
allow/disallow in MySQL contrib script. Using the contrib
sippeers.sql script to create the sippeers MySQL table would
result in being unable to place calls if you set the disallow
value to all. (closes issue ASTERISK-20756) Reported by: Andre
Luis Patches: sippeers.patch patch uploaded by Andre Luis
........ Merged revisions 377431 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377432 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377433 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/astmm.c, /: MALLOC_DEBUG: Only wait if we want atexit
allocation dumps. ........ Merged revisions 377398 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377399 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377401 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-07 22:08 +0000 [r377384] Kinsey Moore <kmoore@digium.com>
* codecs/codec_dahdi.c: codec_dahdi: Fix output of "transcoder
show" CLI command. In r306010 "Asterisk media architecture
conversion - no more format bitfields", the logic for
incrementing encoders and decoders when opening transcoder
channels was changed without making the corresponding change when
decrementing encoder / decoder channels. The result being that
when a channel was destroyed, codec_dahdi couldn't properly tell
if it was an encoder or decoder, and the default case is to
assume it was a decoder. This could result in negative numbers
for decoders in use like in: VOIP6*CLI> transcoder show 2/-2
encoders/decoders of 92 channels are in use. (closes issue
ASTERISK-19921) Patch-by: Shaun Ruffell ........ Merged revisions
377382 from http://svn.asterisk.org/svn/asterisk/branches/10
........ Merged revisions 377383 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-07 00:00 +0000 [r377356] Richard Mudgett <rmudgett@digium.com>
* apps/confbridge/conf_config_parser.c, /, apps/app_confbridge.c:
confbridge: Fix some resource leaks on conference teardown. *
Made destroy_conference_bridge() destroy a missed ast_mutex_t and
ast_cond_t. * Made join_conference_bridge() init the
ast_mutex_t's and ast_cond_t so destroy_conference_bridge() can
destroy them unconditionally. * Made join_conference_bridge()
abort if the new conference could not be added to the conferences
container. * Made leave_conference() discard any post-join
actions if join_conference_bridge() had to abort early. * Made
the join_conference_bridge() diagnostic messages better describe
what happened. * Renamed leave_conference_bridge() to
leave_conference() and made it only take a conference user
pointer. The conference pointer was redundant. * Made
conf_bridge_profile_copy() use struct copy instead of memcpy(). *
No need to lock the conference in start_conf_record_thread()
since all of the callers already have it locked. ........ Merged
revisions 377354 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377355 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-06 17:29 +0000 [r377329-377341] Russell Bryant <russell@russellbryant.com>
* /: Recorded merge of revisions 377340 from
http://svn.asterisk.org/svn/asterisk/branches/11 ........ Add CLI
tab completion to 'acl show'. The 'acl show' CLI command allows
you to show the details about a specific named ACL in acl.conf.
This patch adds tab completion to the command. Review:
https://reviewboard.asterisk.org/r/2230/
* main/named_acl.c: Minor code cleanup in named_acl.c. This patch
makes a few little cleanups to named_acl.c. A couple non-public
functions were made static and an opening brace for a function
was moved to its own line, per the coding guidelines.
* main/named_acl.c: Add CLI tab completion to 'acl show'. The 'acl
show' CLI command allows you to show the details about a specific
named ACL in acl.conf. This patch adds tab completion to the
command. Review: https://reviewboard.asterisk.org/r/2230/
2012-12-06 14:26 +0000 [r377324] Matthew Jordan <mjordan@digium.com>
* main/manager.c, /: Fix memory leak in 'manager show event' when
command entered incorrectly When the CLI command 'manager show
event' was run incorrectly and its usage instructions returned, a
reference to the event container was leaked. This would prevent
the container from being reclaimed when Asterisk exits. We now
properly decrement the count on the ao2 object using the nifty
RAII_VAR macro. Thanks to Russell for helping me stumble on this,
and Terry for writing that ridiculously helpful macro. ........
Merged revisions 377319 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-05 17:17 +0000 [r377263] Jonathan Rose <jrose@digium.com>
* /, res/res_srtp.c: res_srtp: Fix a crash caused by srtp_dealloc
on an already dealloced session When srtp_create fails, the
session may be dealloced or just not alloced. At the same time
though, the session pointer might not be set to NULL in this
process and attempting to srtp_dealloc it again will cause a
segfault. This patch checks for failure of srtp_create and sets
the session pointer to NULL if it fails. (closes issue
ASTERISK-20499) Reported by: tootai Review:
https://reviewboard.asterisk.org/r/2228/ ........ Merged
revisions 377256 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377261 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377262 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-05 16:51 +0000 [r377260] Joshua Colp <jcolp@digium.com>
* /, channels/chan_sip.c: Fix a SIP request memory leak with TLS
connections. During the TLS re-work in chan_sip some TLS specific
code was moved into a separate function. This function operates
on a copy of the incoming SIP request. This copy was never
deinitialized causing a memory leak for each request processed.
This function is now given a SIP request structure which it can
use to copy the incoming request into. This reduces the amount of
memory allocations done since the internal allocated components
are reused between packets and also ensures the SIP request
structure is deinitialized when the TLS connection is torn down.
(closes issue ASTERISK-20763) Reported by: deti ........ Merged
revisions 377257 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377258 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377259 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-05 02:23 +0000 [r377214-377246] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/_private.h, main/asterisk.c, main/format.c:
Remove init_framer(). It no longer does anything.
* main/format.c, /: Fix registering core show codecs/codec CLI
commands twice. ........ Merged revisions 377241 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377244 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/confbridge/conf_config_parser.c, /: confbridge: Fix several
small issues. * Made func_confbridge_helper() allow an empty
value when setting options. You previously could not
Set(CONFBRIDGE(user,pin)=) and clear the configured pin from the
dialplan. * Made func_confbridge_helper() handle its datastore
better if multiple threads attempt to set the first CONFBRIDGE
option value on the channel. * Made the func_confbridge_helper()
only output one diagnostic message concerning the option. * Made
the bridge video_mode able to repeatedly change in the config
file and CONFBRIDGE dialplan function. The video_mode option
values are an enum and not independent of each other. * Made
handle_cli_confbridge_show_bridge_profile() better handle the
video_mode option. * Simplified datastore handling code in
conf_find_user_profile() and conf_find_bridge_profile(). (closes
issue ASTERISK-20655) Reported by: Birger "WIMPy" Harzenetter
........ Merged revisions 377227 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377228 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_confbridge.c: confbridge: Update online XML
documentation. ........ Merged revisions 377212 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377213 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-04 13:01 +0000 [r377196] Russell Bryant <russell@russellbryant.com>
* contrib/scripts/install_prereq, /: Add libuuid to install_prereq
for Fedora. I ran this script and my build failed. pjproject
requires this. ........ Merged revisions 377195 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-03 23:00 +0000 [r377040-377168] Richard Mudgett <rmudgett@digium.com>
* main/asterisk.c, /: Cleanup ast_run_atexits() atexits list. *
Convert atexits list to a mutex instead of a rd/wr lock. The lock
is only write locked. * Move CLI verbose Asterisk ending message
to where AMI message is output in really_quit() to avoid further
surprises about using stuff already shutdown. (issue
ASTERISK-20649) Reported by: Corey Farrell ........ Merged
revisions 377165 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377166 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377167 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, include/asterisk/_private.h, main/stdtime/localtime.c,
main/asterisk.c: Cleanup core main on exit. * Cleanup time zones
on exit. * Make exit clean/unclean report consistent for AMI and
CLI in really_quit(). (issue ASTERISK-20649) Reported by: Corey
Farrell Patches: core-cleanup-1_8-10.patch (license #5909) patch
uploaded by Corey Farrell core-cleanup-11-trunk.patch (license
#5909) patch uploaded by Corey Farrell Modified ........ Merged
revisions 377135 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377136 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377137 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/config.c: Cleanup config cache on exit. (issue
ASTERISK-20649) Reported by: Corey Farrell Patches:
config-cleanup-all.patch (license #5909) patch uploaded by Corey
Farrell ........ Merged revisions 377104 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377105 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377106 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/cli.c, /: Cleanup CLI resources on exit and CLI command
registration errors. (issue ASTERISK-20649) Reported by: Corey
Farrell Patches: cli-leaks-1_8-10.patch (license #5909) patch
uploaded by Corey Farrell cli-leaks-11-trunk.patch (license
#5909) patch uploaded by Corey Farrell Modified ........ Merged
revisions 377073 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377074 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377075 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/cdr.c: Cleanup CDR resources on exit. * Simplify
do_reload() return handling since it never returned anything
other than 0. (issue ASTERISK-20649) Reported by: Corey Farrell
Patches: cdr-cleanup-1_8.patch (license #5909) patch uploaded by
Corey Farrell cdr-cleanup-10-11-trunk.patch (license #5909) patch
uploaded by Corey Farrell Modified ........ Merged revisions
377069 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 377070 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377071 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/ccss.c: Fix CCSS CLI commands and logger level not
unregistered. (issue ASTERISK-20649) Reported by: Corey Farrell
Patches: ccss-cleanup-all.patch (license #5909) patch uploaded by
Corey Farrell ........ Merged revisions 377037 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 377038 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 377039 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-03 16:45 +0000 [r377035] Olle Johansson <oej@edvina.net>
* res/res_rtp_asterisk.c: Formatting fixes
2012-12-03 14:56 +0000 [r377022] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Fix an RTP instance reference count
leak in chan_motif. When setting up an RTP instance the RTCP
portion of the instance keeps a reference to the instance itself.
In order to release this reference and stop RTCP the stop API
call must be called before destroying the instance. (closes issue
ASTERISK-20751) Reported by: joshoa ........ Merged revisions
377021 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-12-03 14:46 +0000 [r376998-377018] Olle Johansson <oej@edvina.net>
* channels/chan_sip.c: Move functions to AFTER the block of forward
declarations of functions. It was a mess. The first part of
chan_sip.c is constants, declarations, structures and stuff, then
forward declarations and then actual code. It's still a mess, but
a bit less messy ;-)
* res/res_rtp_asterisk.c, channels/chan_sip.c: Formatting changes
Found a large amount of missing {} in the code before patching in
another branch
2012-12-01 00:47 +0000 [r376984] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c, configs/motif.conf.sample: Tweak
extension used for incoming calls received on Motif. Based on
feedback from numerous individuals this patch tweaks incoming
calls to first look for an extension with the name of the
endpoint. If no such extension exists the call will silently fall
back to the "s" extension as it previously did. ........ Merged
revisions 376983 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-30 21:38 +0000 [r376953] Richard Mudgett <rmudgett@digium.com>
* /, channels/misdn/isdn_lib.c: chan_misdn: Fix sending
RELEASE_COMPLETE in response to SETUP. Fix sending a
RELEASE_COMPLETE in response to a SETUP if chan_misdn does not
have a B channel available to assign to the call. (closes issue
ABE-2869) Reported by: Guenther Kelleter Patches:
setup-reject_2.diff (license #6372) patch uploaded by Guenther
Kelleter Modified ........ Merged revision 376949 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
........ Merged revisions 376950 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376951 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376952 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-30 17:08 +0000 [r376922] Sean Bright <sean@malleable.com>
* /, funcs/func_volume.c: Minor spelling fix to the VOLUME
documentation. ........ Merged revisions 376919 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376920 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376921 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-30 16:56 +0000 [r376918] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Fix potential crashes during SIP attended
transfers. The principal behind this patch is simple. During a
transfer, we manipulate channels that are owned by a separate
thread than the one we currently are running in, so it makes
sense that we need to grab a reference to the channels so that
they cannot disappear out from under us. In the wild, crashes
were sometimes seen when the transferring party would hang up the
call before the transfer target answered the call. The most
common place to see the crash occur was when attempting to send a
connected line update to the transferer channel. (closes issue
ASTERISK-20226) Reported by Jared Smith Patches:
ASTERISK-20226.patch uploaded by Mark Michelson (License #5049)
Tested by: Jared Smith ........ Merged revisions 376901 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376916 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376917 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-29 23:01 +0000 [r376867-376871] Richard Mudgett <rmudgett@digium.com>
* channels/chan_local.c, /: chan_local: Fix local_pvt ref leak in
local_devicestate(). Regression introduced by ASTERISK-20390 fix.
(closes issue ASTERISK-20769) Reported by: rmudgett Tested by:
rmudgett ........ Merged revisions 376868 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376869 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376870 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: Fix compile error. (issue ASTERISK-20724)
........ Merged revisions 376864 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376865 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376866 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-29 21:58 +0000 [r376837] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Improve Code Readability And Fix Setting
natdetected Flag For 1.8, 10, 11 and trunk we are are improving
the code readability. For 11 and trunk, auto nat detection was
added. The natdetected flag was being set to 1 when the host
address in the VIA header did not specifiy a port. This patch
fixes this by setting the port on the temporary sock address used
to SIP_STANDARD_PORT in order for the sock address comparison to
work properly. (closes issue ASTERISK-20724) Reported by: Michael
L. Young Patches: asterisk-20724-set-port-v2.diff uploaded by
Michael L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2206/ ........ Merged
revisions 376834 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376835 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376836 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-29 17:16 +0000 [r376821] David M. Lee <dlee@digium.com>
* main/utils.c: Fixed ast_random's comment about locking. The
original comment was separated from the code at some point, and
didn't reflect the use of libc's other than glibc for Linux.
2012-11-29 16:44 +0000 [r376820] Pedro Kiefer <pedro@kiefer.com.br>
* channels/chan_sip.c: Fix chan_sip websocket payload handling
Websocket by default doesn't return an ast_str for the payload
received. When converting it to an ast_str on chan_sip the last
character was being omitted, because ast_str functions expects
that the given length includes the trailing 0x00. payload_len
only has the actual string length without counting the trailing
zero. For most cases this passed unnoticed as most of SIP
messages ends with \r\n. (closes issue ASTERISK-20745) Reported
by: Iñaki Baz Castillo Review:
https://reviewboard.asterisk.org/r/2219/
2012-11-29 00:48 +0000 [r376761-376791] Richard Mudgett <rmudgett@digium.com>
* main/asterisk.c, /, main/astmm.c: Add MALLOC_DEBUG atexit
unreleased malloc memory summary. * Adds the following CLI
commands to control MALLOC_DEBUG reporting of unreleased malloc
memory when Asterisk is shut down. memory atexit list on memory
atexit list off memory atexit summary byline memory atexit
summary byfunc memory atexit summary byfile memory atexit summary
off * Made check all remaining allocated region blocks atexit for
fence violations. * Increased the allocated region hash table
size by about three times. It still isn't large enough
considering the number of malloced blocks Asterisk uses. * Made
CLI "memory show allocations anomalies" use
regions_check_all_fences(). Review:
https://reviewboard.asterisk.org/r/2196/ ........ Merged
revisions 376788 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376789 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376790 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/astmm.c: Enhance MALLOC_DEBUG CLI commands. * Fixed CLI
"memory show allocations" misspelling of anomalies option. The
command will still accept the original misspelling. *
Miscellaneous tweaks to CLI "memory show allocations" command
output format. * Made CLI "memory show summary" summarize by line
number instead of by function if a filename is given. * Made CLI
"memory show summary" sort its output by filename or
function-name/line-number depending upon request. * Miscellaneous
tweaks to CLI "memory show summary" command output format.
........ Merged revisions 376758 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376759 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376760 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-28 16:47 +0000 [r376728] Jonathan Rose <jrose@digium.com>
* main/manager.c, /: manager: Make challenge work with
allowmultiplelogin=no Prior to this patch, challenge would yield
a multiple logins error if used without providing the username
(which isn't really supposed to be an argument to challenge) if
allowmultiplelogin was set to no because allowmultiplelogin finds
a user with a zero length login name. This check is simply
disabled for the challenge action when the username is empty by
this patch. (closes issue ASTERISK-20677) Reported by: Vladimir
Patches: challenge_action_nomultiplelogin.diff uploaded by
Jonathan Rose (license 6182) ........ Merged revisions 376725
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 376726 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376727 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-28 00:13 +0000 [r376630-376691] Richard Mudgett <rmudgett@digium.com>
* main/pbx.c, /, UPGRADE.txt: Fix extension matching with the '-'
char. The '-' char is supposed to be ignored by the dialplan
extension matching. Unfortunately, it's treatment is not handled
consistently throughout the extension matching code. * Made the
old exten matching code consistently ignore '-' chars. * Made the
old exten matching code consistently handle case in the matching.
* Made ignore empty character sets. * Fixed ast_extension_cmp()
to return -1, 0, or 1 as documented. The only user of it in
pbx_lua.c was testing for -1. It was originally returning the
strcmp() value for less than which is not usually going to be -1.
* Fix character set sorting if the sets have the same number of
characters and start with the same character. Character set [0-9]
now sorts before [02-9a] as originally intended. * Updated some
extension label and priority already in use warnings to also
indicate if the extension is aliased. (closes issue
ASTERISK-19205) Reported by: Philippe Lindheimer, Birger "WIMPy"
Harzenetter Tested by: rmudgett Review:
https://reviewboard.asterisk.org/r/2201/ ........ Merged
revisions 376688 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376689 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376690 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_celgenuserevent.c, pbx/pbx_dundi.c,
addons/res_config_mysql.c: Remove unnecessary channel module
references. * Removed call to ast_module_user_hangup_all() in
res_config_mysql.c since it is effectively a noop. No channels
can attach a reference to that module. * Removed call to
ast_module_user_hangup_all() in app_celgenuserevent.c. The caller
of unload_module() has already called it. * Removed redundant
channel module references in pbx_dundi.c. The registered dialplan
function callback dispatchers for the read/read2/write callbacks
already reference the module before calling. * pbx_dundi: Moved
unregistering CLI commands, DUNDi switch, and dialplan functions
to the first thing the unload_module() does. This will reduce the
chance of new channels using DUNDi services while the module is
being torn down. ........ Merged revisions 376657 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376658 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376659 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, include/asterisk/linkedlists.h: Made AST_LIST_REMOVE() simpler
and use better names. * Update doxygen of AST_LIST_REMOVE().
........ Merged revisions 376627 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376628 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376629 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-23 00:02 +0000 [r376589] Matthew Jordan <mjordan@digium.com>
* include/asterisk/lock.h, main/lock.c, /, main/logger.c:
Re-initialize logmsgs mutex upon logger initialization to prevent
lock errors Similar to the patch that moved the fork earlier in
the startup sequence to prevent mutex errors in the recursive
mutex surrounding the read/write thread registration lock, this
patch re-initializes the logmsgs mutex. Part of the start up
sequence before forking the process into the background includes
reading asterisk.conf; this has to occur prior to the call to
daemon in order to read startup parameters. When reading in a
conf file, log statements can be generated. Since this can't be
avoided, the mutex instead is re-initialized to ensure a reset of
any thread tracking information. This patch also includes some
additional debugging to catch errors when locking or unlocking
the recursive mutex that surrounds locks when the DEBUG_THREADS
build option is enabled. DO_CRASH or THREAD_CRASH will cause an
abort() if a mutex error is detected. (issue ASTERISK-19463)
Reported by: mjordan Tesetd by: mjordan ........ Merged revisions
376586 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 376587 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376588 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-21 18:33 +0000 [r376575] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/test.h, main/channel.c,
include/asterisk/astobj2.h, main/test.c, tests/test_astobj2.c,
channels/chan_iax2.c, main/astobj2.c: Add red-black tree
container type to astobj2. * Add red-black tree container type. *
Add CLI command "astobj2 container dump <name>" * Added
ao2_container_dump() so the container could be dumped by other
modules for debugging purposes. * Changed ao2_container_stats()
so it can be used by other modules like ao2_container_check() for
debugging purposes. * Updated the unit tests to check red-black
tree containers. (closes issue ASTERISK-19970) Reported by:
rmudgett Tested by: rmudgett Review:
https://reviewboard.asterisk.org/r/2110/
2012-11-20 22:06 +0000 [r376562] David M. Lee <dlee@digium.com>
* /, res/res_http_websocket.c: Added missing newlines to websocket
ast_logs. Without these newlines, log messages just continue
tacking onto the same line, and do not flush immediately.
........ Merged revisions 376561 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-20 19:09 +0000 [r376551] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c, channels/sip/include/sip.h: Add "Require:
timer" to 200 OK responses when appropriate. The method by which
the Require header is added to 200 responses is inspired by the
method that Olle Johansson uses in his darjeeling-prack branch.
(closes issue ASTERISK-20570) Reported by Matt Jordan, at the
behest of Olle Johansson Review:
https://reviewboard.asterisk.org/r/2172 ........ Merged revisions
376521 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 376522 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376550 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-20 17:39 +0000 [r376541] Alec L Davis <sivad.a@paradise.net.nz>
* /, channels/chan_sip.c: Reduce CLI spam of "Extension Changed"
device state messages. Asterisk 11 follows RFC3265 that states
that after every subscribe or resubscribe a notify should be
sent. Thus the console if filled continuously with the following
after every subscribe; == Extension Changed 8512[phones] new
state IDLE for Notify User cisco1 In Asterisk 1.8 only changes
would be sent. Thus only when a device state changed was anything
emitted to the console. fix: Only print to console when device
state isn't forced. (closes issue ASTERISK-20706) Reported by:
alecdavis Tested by: alecdavis alecdavis (license 585) ........
Merged revisions 376540 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-19 20:03 +0000 [r376472] Walter Doekes <walter+asterisk@wjd.nu>
* /, channels/chan_sip.c, main/security_events.c,
main/indications.c: Fix most leftover non-opaque ast_str uses.
Instead of calling str->str, one should use ast_str_buffer(str).
Same goes for str->used as ast_str_strlen(str) and str->len as
ast_str_size(str). Review:
https://reviewboard.asterisk.org/r/2198 ........ Merged revisions
376469 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 376470 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376471 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-19 02:14 +0000 [r376416-376457] Matthew Jordan <mjordan@digium.com>
* tests/test_astobj2.c: Fix uninitialized in this function error
With some versions of gcc, n_buckets will be flagged as being
uninitialized before use. While its technically impossible (since
the switch statement, even without a default, accounts for all
possibilities), we'll initialize the variable to 0 anyway.
* main/asterisk.c, /, main/utils.c: Reorder startup sequence to
prevent lockups when process is sent to background Although it is
very rare and timing dependent, the potential exists for the call
to 'daemon' to cause what appears to be a deadlock in Asterisk
during startup. This can occur when a recursive mutex is obtained
prior to the daemon call executing. Since daemon uses fork to
send the process into the background, any threading primitives
are unsafe to re-use after the call. Implementations of pthread
recursive mutexes are highly likely to store the thread
identifier of the thread that previously obtained the mutex. If
the mutex was locked prior to the fork, a subsequent unlock
operation will potentially fail as the thread identifier is no
longer valid. Since the mutex is still locked, all subsequent
attempts to grab the mutex by other threads will block. This
behavior exhibited itself most often when DEBUG_THREADS was
enabled, as this compile time option surrounds the mutexes in
Asterisk with another recursive mutex that protects the storage
of thread related information. This made it much more likely that
a recursive mutex would be obtained prior to daemon and unlocked
after the call. This patch does the following: a) It backports a
patch from Asterisk 11 that prevents the spawning of the
localtime monitoring thread. This thread is now spawned after
Asterisk has fully booted. b) It re-orders the startup sequence
to call daemon earlier during Asterisk startup. This limits the
potential of threading primitives being accessed by
initialization calls before daemon is called. c) It removes calls
to ast_verbose/ast_log/etc. prior to daemon being called.
Developers should send error messages directly to stderr prior to
daemon, as calls to ast_log may access recursive mutexes that
store thread related information. d) It reorganizes when thread
local storage is created for storing lock information during the
creation of threads. Prior to this patch, the read/write lock
protecting the list of threads in ast_register_thread would
utilize the lock in the thread local storage prior to it being
initialized; this patch prevents that. On a very related note,
this patch will *greatly* improve the stability of the Asterisk
Test Suite. Review: https://reviewboard.asterisk.org/r/2197
(closes issue ASTERISK-19463) Reported by: mjordan Tested by:
mjordan ........ Merged revisions 376428 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376431 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376441 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/confbridge/conf_state.c, /: Add a test event that reports
changes in ConfBridge state This patch adds a test event to
ConfBridge that reports transitions between states in ConfBridge.
This is used by tests in the Asterisk Test Suite that verify
state changes based on the entering/leaving of conference
participants. ........ Merged revisions 376414 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376415 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-16 00:15 +0000 [r376341-376345] David M. Lee <dlee@digium.com>
* /, utils/extconf.c: Fixed extconf.c breakage introduced in
r376306. To quote wdoekes: > Note that I'm not confirming
legitimacy of having that file in tree at > all. Is anyone using
aelparse/conf2ael? ........ Merged revisions 376340 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376342 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376343 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /: Somehow I put in svn-1.6 merge information. Oops.
* utils/Makefile, tests/test_astobj2_thrash.c (added),
utils/utils.xml, /, utils/hashtest.c (removed),
tests/test_hashtab_thrash.c (added), utils/hashtest2.c (removed),
include/asterisk/hashtab.h: Migrate hashtest/hashtest2 to be unit
tests. Both hashtest and hashtest2 are manual testing apps that
thrash hash tables (hashtab and ao2 containers, respectively), by
spinning up several threads that randomly insert, delete, lookup
and iterate over the hash table. If the app doesn't crash, the
hash table probably passes the test. Those utils are not a part
of the typical Asterisk build, so they do not usually get
compiled. This all makes them less that useful. This patch
removes those manual test programs and replaces them with
Asterisk unit test modules (test_{hashtab,astobj2}_thrash.so). It
also attempts to make the tests more deterministic. * Rather than
spinning up some number of threads that operate on the hash table
randomly, spin up four threads that concurrenly add, remove,
lookup and iterate over the hash table. * Each thread checks the
state of the hash table both during and after execution, and
indicates a test failure if things are not as expected. * Each
thread times out after 60 seconds to prevent deadlocking the unit
test run. (closes issue ASTERISK-20505) Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2189/ ........ Merged
revisions 376306 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376315 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376339 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-15 23:10 +0000 [r376312] Jonathan Rose <jrose@digium.com>
* /, apps/app_meetme.c: app_meetme: Fix channels lingering when
hung up under certain conditions Channels would get stuck and
MeetMe would repeatedly display an Unable to write frame to
channel error in the conf_run function if hung up during certain
sound prompts such as during user count announcements. This patch
fixes that by reintroducing a hangup check in the meetme's main
loop (also in conf_run). (closes issue ASTERISK-20486) Reported
by: Michael Cargile Review:
https://reviewboard.asterisk.org/r/2187/ Patches:
meetme_hangup_patch_ASTERISK-20486_v3.diff uploaded by Jonathan
Rose (license 6182) ........ Merged revisions 376307 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376308 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376310 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-15 14:35 +0000 [r376291] Brent Eagles <beagles@digium.com>
* main/channel.c, /: Patch to prevent stopping the active generator
when it is not the silence generator. This patch introduces an
internal helper function to safely check whether the current
generator is the one that is expected before deactivating it. The
current externally accessible ast_channel_stop_generator()
function has been modified to be implemented in terms of the new
function. (closes issue ASTERISK-19918) Reported by: Eduardo Abad
........ Merged revisions 376217 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-15 02:29 +0000 [r376282] Rusty Newton <rnewton@digium.com>
* apps/app_voicemail.c, /: Patch to play correct sound file when a
voicemail's urgent status is removed We were attempting to play
"vm-urgent-removed", which didn't exist. Now we play
"vm-marked-nonurgent" which exists and is the correct sound file.
Previous behavior was silence and a warning on the CLI. (issue
ASTERISK-20280) (closes issue ASTERISK-20280) Reported by: Tomo
Takebe Tested by: Rusty Newton Patches: asterisk20280.patch
uploaded by Rusty Newton (license 5829) ........ Merged revisions
376262 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 376263 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376264 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-14 19:55 +0000 [r376235] Richard Mudgett <rmudgett@digium.com>
* pbx/pbx_spool.c, /: Fix call files when astspooldir is relative.
Future dated call files are ignored when astspooldir is relative
to the current directory. The queue_file() assumed that the qdir
needed to be prepended if the given filename did not start with a
'/'. If astspooldir is relative it is not going to start from the
root directory obviously so it will not start with a '/'. The
filename used in queue_file() ultimately results in qdir
prepended multiple times. * Made queue_file() not prepend qdir if
the filename contains a '/'. (closes issue ASTERISK-20593)
Reported by: James Le Cuirot Patches:
0004-Fix-future-call-files-from-relative-directories.patch
(license #6439) patch uploaded by James Le Cuirot ........ Merged
revisions 376232 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376233 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376234 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-13 19:42 +0000 [r376219] Jonathan Rose <jrose@digium.com>
* channels/chan_sip.c, CHANGES: chan_sip: Add SubscribeContext
field to SIPshowpeer AMI response The new field is will show up
within the response if the requested peer has a subscribe context
set. (closes issue ASTERISK-20626) Reported by: Jaco Kroon
Patches: asterisk-sip-ami-SubscrContext.patch uploaded by jkroon
(license 5671) -with modifications by jrose to conform to style
guidelines Review: https://reviewboard.asterisk.org/r/2195/
2012-11-12 20:46 +0000 [r376169] Joshua Colp <jcolp@digium.com>
* main/pbx.c, /: Properly check if the "Context" and "Extension"
headers are empty in a ShowDialPlan action. The code which
handles the ShowDialPlan action wrongly assumed that a non-NULL
return value from the function which retrieves headers from an
action indicates that the header has a value. This is incorrect
and the contents must be checked to see if they are blank.
(closes issue ASTERISK-20628) Reported by: jkroon Patches:
asterisk-showdialplan-incorrect-error.patch uploaded by jkroon
........ Merged revisions 376166 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376167 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376168 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-12 20:18 +0000 [r376148] Michael L. Young <elgueromexicano@gmail.com>
* main/pbx.c, /: Fix Dynamic Hints Variable Substition - Underscore
Problem When adding a dynamic hint, if an extension contains an
underscore no variable subsitution is being performed. This patch
changes from checking if the extension contains an underscore to
checking if the extension begins with an underscore. (closes
issue ASTERISK-20639) Reported by: Steven T. Wheeler Tested by:
Steven T. Wheeler, Michael L. Young Patches:
asterisk-20639-dynamic-hint-underscore.diff uploaded by Michael
L. Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2188/ ........ Merged
revisions 376142 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376143 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376144 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-11 17:15 +0000 [r376131] Joshua Colp <jcolp@digium.com>
* configs/sip.conf.sample, res/res_rtp_asterisk.c, /,
channels/chan_sip.c: Remove a fixed size limitation for producing
SDP and change how ICE support is disabled by default. With ICE
support enabled in chan_sip and a large number of interfaces on
the system it was possible for the produced SDP to be truncated
due to some fixed size buffers. These buffers have now been
changed so they will dynamically grow as needed. ICE support is
now also enabled by default in res_rtp_asterisk to provide a
smoother experience for chan_motif users where it is required. To
maintain the previous behavior in chan_sip it is no longer
enabled by default there. (closes issue ASTERISK-20643) Reported
by: coopvr ........ Merged revisions 376130 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-08 22:10 +0000 [r376092] Mark Michelson <mmichelson@digium.com>
* /, res/res_fax.c: Fix a "set but not used" warning on newer gccs.
Turns out the "helpful" setting of ms and res in this macro is
completely useless after the timeout antipattern fix. If you're a
new guy looking to write code, don't write a macro like this one.
........ Merged revisions 376087 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376088 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376089 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-08 21:12 +0000 [r376049-376061] Richard Mudgett <rmudgett@digium.com>
* channels/sig_ss7.c, /: chan_dahdi/SS7: Made reject incoming call
for an in-alarm or blocked channel. If a SS7 call comes in
requesting a CIC that is in-alarm, the call is accepted and
connects if the extension exists in the dialplan. The call does
not have any audio. * Made release the call immediately with
circuit congestion cause. (closes issue ASTERISK-20204) Reported
by: Tuan Le Patches: jira_asterisk_20204_v1.8.patch (license
#5621) patch uploaded by rmudgett ........ Merged revisions
376058 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 376059 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376060 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/asterisk.c, include/asterisk/utils.h,
include/asterisk/astmm.h, /, main/utils.c, main/astmm.c: Add
MALLOC_DEBUG enhancements. * Makes malloc() behave like calloc().
It will return a memory block filled with 0x55. A nonzero value.
* Makes free() fill the released memory block and boundary
fence's with 0xdeaddead. Any pointer use after free is going to
have a pointer pointing to 0xdeaddead. The 0xdeaddead pointer is
usually an invalid memory address so a crash is expected. * Puts
the freed memory block into a circular array so it is not reused
immediately. * When the circular array rotates out a memory block
to the heap it checks that the memory has not been altered from
0xdeaddead. * Made the astmm_log message wording better. * Made
crash if the DO_CRASH menuselect option is enabled and something
is found. * Fixed a potential alignment issue on 64 bit systems.
struct ast_region.data[] should now be aligned correctly for all
platforms. * Extracted region_check_fences() from
__ast_free_region() and handle_memory_show(). * Updated
handle_memory_show() CLI usage help. Review:
https://reviewboard.asterisk.org/r/2182/ ........ Merged
revisions 376029 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 376030 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376048 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-07 19:15 +0000 [r376015] Mark Michelson <mmichelson@digium.com>
* apps/app_jack.c, include/asterisk/time.h, apps/app_dial.c,
main/pbx.c, main/rtp_engine.c, /, apps/app_meetme.c,
res/res_fax.c, apps/app_record.c, channels/chan_agent.c,
main/utils.c, include/asterisk/channel.h, apps/app_queue.c,
channels/sig_pri.c, channels/chan_iax2.c, main/channel.c,
channels/chan_dahdi.c, apps/app_waitforring.c,
channels/sig_analog.c: Multiple revisions 375993-375994 ........
r375993 | mmichelson | 2012-11-07 11:01:13 -0600 (Wed, 07 Nov
2012) | 30 lines Fix misuses of timeouts throughout the code.
Prior to this change, a common method for determining if a
timeout was reached was to call a function such as
ast_waitfor_n() and inspect the out parameter that told how many
milliseconds were left, then use that as the input to
ast_waitfor_n() on the next go-around. The problem with this is
that in some cases, submillisecond timeouts can occur, resulting
in the out parameter not decreasing any. When this happens
thousands of times, the result is that the timeout takes much
longer than intended to be reached. As an example, I had a
situation where a 3 second timeout took multiple days to finally
end since most wakeups from ast_waitfor_n() were under a
millisecond. This patch seeks to fix this pattern throughout the
code. Now we log the time when an operation began and find the
difference in wall clock time between now and when the event
started. This means that sub-millisecond timeouts now cannot play
havoc when trying to determine if something has timed out. Part
of this fix also includes changing the function ast_waitfor() so
that it is possible for it to return less than zero when a
negative timeout is given to it. This makes it actually possible
to detect errors in ast_waitfor() when there is no timeout.
(closes issue ASTERISK-20414) reported by David M. Lee Review:
https://reviewboard.asterisk.org/r/2135/ ........ r375994 |
mmichelson | 2012-11-07 11:08:44 -0600 (Wed, 07 Nov 2012) | 3
lines Remove some debugging that accidentally made it in the last
commit. ........ Merged revisions 375993-375994 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375995 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 376014 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-06 19:05 +0000 [r375967] Richard Mudgett <rmudgett@digium.com>
* main/channel_internal_api.c, main/features.c,
include/asterisk/channel.h, include/asterisk/features.h,
main/channel.c, /: Fix stuck DTMF when bridge is broken. When a
bridge is broken by an AMI Redirect action or the ChannelRedirect
application, an in progress DTMF digit could be stuck sending
forever. * Made simulate a DTMF end event when a bridge is broken
and a DTMF digit was in progress. (closes issue ASTERISK-20492)
Reported by: Jeremiah Gowdy Patches: bridge_end_dtmf-v3.patch.txt
(license #6358) patch uploaded by Jeremiah Gowdy Modified to
jira_asterisk_20492_v1.8.patch jira_asterisk_20492_v1.8.patch
(license #5621) patch uploaded by rmudgett Tested by: rmudgett
Review: https://reviewboard.asterisk.org/r/2169/ ........ Merged
revisions 375964 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375965 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375966 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-06 12:15 +0000 [r375926] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Fix a bug where our Motif ICE
candidates were not quite proper, and make us more forgiving. An
issue was reported on the mailing list where calling would result
in an "Incomplete ICE-UDP candidate received on session" error
message. This is the result of the ICE-UDP candidate code not
placing a "network" attribute within the candidates. This is now
done. To increase compatibility though I have removed the
requirement for the "network" attribute to exist within ICE-UDP
candidates that are received since we don't actually require the
value. Reported on the mailing list by Jean-Denis Girard.
........ Merged revisions 375925 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-05 23:10 +0000 [r375896] Matthew Jordan <mjordan@digium.com>
* main/timing.c, main/channel.c, /, res/res_timing_pthread.c,
res/res_timing_dahdi.c, res/res_timing_timerfd.c,
bridges/bridge_softmix.c, funcs/func_jitterbuffer.c,
include/asterisk/timing.h, res/res_musiconhold.c,
channels/chan_iax2.c, res/res_fax_spandsp.c,
res/res_timing_kqueue.c: Refactor ast_timer_ack to return an
error and handle the error in timer users Currently, if an
acknowledgement of a timer fails Asterisk will not realize that a
serious error occurred and will continue attempting to use the
timer's file descriptor. This can lead to situations where errors
stream to the CLI/log file. This consumes significant resources,
masks the actual problem that occurred (whatever caused the timer
to fail in the first place), and can leave channels in odd
states. This patch propagates the errors in the timing resource
modules up through the timer core, and makes users of these
timers handle acknowledgement failures. It also adds some
defensive coding around the use of timers to prevent using bad
file descriptors in off nominal code paths. Note that the patch
created by the issue reporter was modified slightly for this
commit and backported to 1.8, as it was originally written for
Asterisk 10. Review: https://reviewboard.asterisk.org/r/2178/
(issue ASTERISK-20032) Reported by: Jeremiah Gowdy patches:
jgowdy-timerfd-6-22-2012.diff uploaded by Jeremiah Gowdy (license
6358) ........ Merged revisions 375893 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375894 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375895 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-05 21:42 +0000 [r375865] Richard Mudgett <rmudgett@digium.com>
* main/loader.c, /: Add safety NULL pointer check in module user
references. Made __ast_module_user_remove() check for NULL
pointers. ........ Merged revision 375860 from C.3 ........
Merged revisions 375862 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375863 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375864 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-05 18:00 +0000 [r375848] Jonathan Rose <jrose@digium.com>
* UPGRADE.txt, /: chan_sip: Document a change to user-field
encoding introduced with r303509 The change in question was added
to improve compliance with RFC3261, but at the time of commit, it
wasn't adequately documented in the UPGRADE notes. (closes issue
ASTERISK-20561) Reported by: Deniz Review:
https://reviewboard.asterisk.org/r/2177/ ........ Merged
revisions 375846 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375847 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-04 03:10 +0000 [r375730-375803] Matthew Jordan <mjordan@digium.com>
* /, main/manager.c: Don't attempt to purge sessions when no
sessions exist Manager's tcp/tls objects have a periodic function
that purge old manager sessions periodically. During shutdown,
the underlying container holding those sessions can be disposed
of and set to NULL before the tcp/tls periodic function is
stopped. If the periodic function fires, it will attempt to
iterate over a NULL container. This patch checks for whether or
not the sessions container exists before attempting to purge
sessions out of it. If the sessions container is NULL, we simply
return. Note that this error was also caught by the Asterisk Test
Suite. ........ Merged revisions 375800 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375801 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375802 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, res/res_fax.c: Only deref a reserved gateway session if we
actually reserved one Its perfectly acceptable to have a gateway
session unreserved when we go to first allocate one. Unreffing
the reserved gateway session - when its NULL - will result in an
assertion error. This problem was caught by the Asterisk Test
Suite (once we had enough of the debugging flags enabled)
........ Merged revisions 375797 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375798 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/manager.c, /: Properly clean up manager resources on exit
This patch does two things: 1) It properly unregisters the
manager CLI commands 2) It cleans up AMI users on exit. Prior to
this patch, the AMI users were not being disposed of properly,
resulting in a memory leak. (closes issue ASTERISK-20646)
Reported by: Corey Farrell patches: manager_shutdown.patch
uploaded by Corey Farrell (license 5909) ........ Merged
revisions 375793 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375794 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375795 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/db.c, /: Properly finalize prepared SQLite3 statements to
prevent memory leak The AstDB uses prepared SQLite3 statements to
retrieve data from the SQLite3 database. These statements should
be finalized during Asterisk shutdown so that the SQLite3
database can be properly closed. Failure to finalize the
statements results in a memory leak and a failure when closing
the database. This patch fixes those issues by ensuring that all
prepared statements are properly finalized at shutdown. (closes
issue ASTERISK-20647) Reported by: Corey Farrell patches:
astdb-sqlite3_close.patch uploaded by Corey Farrell (license
5909) ........ Merged revisions 375761 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375763 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/xmldoc.c: Fix memory leaks in XML documentation This
patch fixes two memory leaks: 1) When building XML documentation
items, the 'name' attribute was extracted from XML elements but
not properly freed after being copied into the item being built.
2) When unloading XML documentation, the doctree container
objects were not properly freed. This patch corrects these memory
leaks. Note that this patch was modified slightly for this
commmit, as the case where the 'name' attribute doesn't exist
also wasn't handled in the item construction. This patch also
checks for that attribute not existing. (closes issue
ASTERISK-20648) Reported by: Corey Farrell Tested by: mjordan
patches: xmldoc-memory_leak.patch uploaded by Corey Farrell
(license 5909) ........ Merged revisions 375756 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/cdr.c, /: Prevent multiple CDR batches from conflicting when
scheduling the CDR write The Asterisk Test Suite caught an error
condition where a scheduled CDR batch write can be deleted twice
if two channels attempt to post their CDRs at the same time. The
batch CDR mutex is locked while the CDRs are appended to the
current batch list; however, it is unlocked prior to actually
scheduling the CDR write. As such, two threads can attempt to
remove the currently scheduled batch write at the same time,
resulting in an assertion error. This patch extends the time that
the mutex is locked to encompass actually scheduling the write.
This prevents two threads from unscheduling the currently
scheduled write at the same time. ........ Merged revisions
375727 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 375728 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375729 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-02 21:03 +0000 [r375663] Damien Wedhorn <voip@facts.com.au>
* /, channels/chan_skinny.c: Fix for chan_skinny leaving RTP ports
open Skinny wasn't closing RTP sockets. This patch includes
ast_rtp_instance_stop before ast_rtp_instance_destroy which fixes
the problem. Also add destroy for VRTP (which I believe is
unused, but exists). Review:
https://reviewboard.asterisk.org/r/2176/ ........ Merged
revisions 375660 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-02 21:01 +0000 [r375628-375662] Richard Mudgett <rmudgett@digium.com>
* main/format_pref.c, main/channel.c, channels/chan_misdn.c, /,
main/ccss.c: Things don't need to be that const. ........ Merged
revisions 375658 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375659 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375661 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/misdn/isdn_lib.c, channels/misdn/isdn_lib.h, /: Multiple
revisions 375519-375524 ........ r375519 | rmudgett | 2012-10-30
16:06:15 -0500 (Tue, 30 Oct 2012) | 11 lines chan_misdn: Timer
primitives must be handled first. The frm->addr is a different
"address space" than the stack/instance address of other Lx
primitives. The test for B channel instance address could fail.
Patches: patch01_timers.diff (license #6372) patch uploaded by
Guenther Kelleter JIRA ABE-2888 ........ r375520 | rmudgett |
2012-10-30 16:14:58 -0500 (Tue, 30 Oct 2012) | 10 lines
chan_misdn: Free memory in error paths and other memory leaks.
The one line commented with BUG is not easily fixable because
there is no de-init function one can call. Patches:
patch02_memory.diff (license #6372) patch uploaded by Guenther
Kelleter JIRA ABE-2888 ........ r375521 | rmudgett | 2012-10-30
16:38:41 -0500 (Tue, 30 Oct 2012) | 14 lines chan_misdn: ISDN NT
L2 de-establish/establish * An NT-PTMP cannot de/establish L2
since it doesn't know the TEIs. * On NT-PTP L2 is started when L1
is finally active in handle_l1. * L2 deactivation logging
cleanup. * L2 aggregate link status is unknown for NT-PTMP, show
as "UNKN". * Removed unused functions and code for L2 handling.
Patches: patch03_L2estab.diff (license #6372) patch uploaded by
Guenther Kelleter Modified JIRA ABE-2888 ........ r375522 |
rmudgett | 2012-10-30 16:56:14 -0500 (Tue, 30 Oct 2012) | 22
lines chan_misdn: Fix broken upper_id/lower_id usage. Sending PH
prim via lower_id layer (3 or 1) simply does not work. For TE (3)
it returns an error (len=-6) which is not evaluated by
handle_l1(), so the L1 layer status ends up wrong. Instead PH
must be sent via L4, only then does it reach L1 without an error
message. And NT PH prims only reach L1 when they are sent to
layer 2 id. --> use upper_id to send PH primitives. * Check for
errors in PH_(DE)ACTIVATE | CONFIRM. * Debug messages are
improved. * The lower_id is now not used for anything, except:
Why is lower_id layer deleted when it wasn't created? I removed
this code since it looks very wrong. Patches:
patch04_l1activation.diff (license #6372) patch uploaded by
Guenther Kelleter JIRA ABE-2888 ........ r375523 | rmudgett |
2012-10-30 17:29:15 -0500 (Tue, 30 Oct 2012) | 31 lines
chan_misdn: Fix loss of B channels if L1 is down. If you make 2
calls out an NT PTMP port which is not connected to any phone,
the B channel associated with that call becomes unusable until
Asterisk is restarted. The problem is the EVENT_SETUP is queued
when L1 is not up in misdn_lib_send_event(). If L1 cannot be
activated the event won't be dequeued. It gets even worse when
the call is hung up. The queued EVENT_SETUP will be overwritten
by an EVENT_DISCONNECT. The reserved B channel then will never be
freed. If later someone connects a phone to the port, L1 will
eventually activate and the queued EVENT_DISCONNECT is sent down
the stack. However, it is ignored because it is the wrong call
state. The real fix would be that activation and queueing for a
new SETUP is done by the NT stack. But since it doesn't, the
workaround must be removed because it doesn't always work. Fix:
The event is no longer queued but immediately sent to the stack.
If L1 cannot be activated, the L3 state machine that was started
by the EVENT_SETUP will do its work, i.e. a timeout will release
the B channel properly. The SETUP possibly cannot be sent the
first time but is resent by T303 in case L1 could be activated.
Patches: patch05_bchan-loss.diff (license #6372) patch uploaded
by Guenther Kelleter Modified JIRA ABE-2888 ........ r375524 |
rmudgett | 2012-10-30 18:26:05 -0500 (Tue, 30 Oct 2012) | 13
lines chan_misdn: Remove some calls to exit(). Try proper cleanup
when something goes wrong in misdn_lib_init(). Especially do not
call exit()! * Fix memory leak because stack_destroy() does not
free the stack struct. Patches: patch06_cleanup-init.diff
(license #6372) patch uploaded by Guenther Kelleter Modified JIRA
ABE-2888 ........ Merged revisions 375519-375524 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
........ Merged revisions 375625 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375626 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375627 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-02 17:27 +0000 [r375614] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix Wrong Result In Debug Message For SDP
Origin Processing While looking at some debug logs, I noticed
that it was being reported that the SDP origin line was
unsupported or failed. Upon looking into this on my local
machine, I found that I too was getting this debug message yet
everything seemed to be getting processed properly. What was
discovered is, that, the variable to determine what is displayed
in the debug message for the SDP line that was processed, was not
being set for the origin line when the result was successful.
This patch fixes this and was tested on local machine. ........
Merged revisions 375594 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375601 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375613 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-11-01 15:03 +0000 [r375576] Jonathan Rose <jrose@digium.com>
* configs/sip.conf.sample, /, channels/chan_sip.c: chan_sip: Fix a
bug causing SIP reloads to remove all entries from the registry A
regression was introduced in chan_sip by changes to sip reload
introduced by r349097. That patch moved peer purging from the
beginning of the reload to after the general configuration was
finished. This patch fixes that by undoing the repositioning of
the original peer purging code and using a similar function after
performing general configuration that purges only autocreated
peers that were created when persist mode isn't enabled. (closes
issue ASTERISK-20611) Reported by: Alisher Review:
https://reviewboard.asterisk.org/r/2171/ ........ Merged
revisions 375575 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-31 18:01 +0000 [r375560] Joshua Colp <jcolp@digium.com>
* res/res_http_websocket.exports.in, /: Fix an issue with
res_http_websocket where the chan_sip WebSocket handler could not
be registered. On some systems the optional API support uses the
GCC compiler attribute "weakref" to provide its functionality.
This code changes the function names and prefixes "__" to the
front. The res_http_websocket exports file did not take this into
account, thereby not allowing those functions to be global and
ultimately found. (closes issue ASTERISK-20631) Reported by:
danjenkins ........ Merged revisions 375559 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-31 14:58 +0000 [r375533] Matthew Jordan <mjordan@digium.com>
* res/res_calendar_ews.c, /: Properly extract the Body information
of an EWS calendar item Unlike all other calendar modules,
res_calendar_ews fails to extract the Body information for a
calendar item. This is due, in part, to a quirk in the schema in
the XML - not only does a CalendarItem contain a Body element,
but the CalendarItem exists as a descendant of a different Body
element. The neon parser was erroneously skipping all Body
elements. This patch fixes that by bypassing Body elements that
are not a child of CalendarItem, and parsing the Body element out
if it is a child. Note that the original patch by Terry Wilson
only needed slight modifications to make it properly pull the
Body information out; as such, while I've linked to the patch
that I uploaded for Dmitry, I've attributed the patch to Terry.
(closes issue ASTERISK-19738) Reported by: Dmitry Burilov Tested
by: Dmitry Burilov patches: calendar_ews_body_2012_10_29.diff
uploaded by Terry Wilson (license 6283) ........ Merged revisions
375528 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 375531 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375532 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-30 19:31 +0000 [r375511] Richard Mudgett <rmudgett@digium.com>
* /, bridges/bridge_softmix.c: Fix ConfBridge crash if no timing
module loaded. (closes issue ASTERISK-19448) Reported by: feyfre
Patches: smfix.patch (license #6099) patch uploaded by feyfre
Modified for coding guidelines. ........ Merged revisions 375496
from http://svn.asterisk.org/svn/asterisk/branches/10 ........
Merged revisions 375506 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-30 19:20 +0000 [r375472-375498] Jonathan Rose <jrose@digium.com>
* /, apps/app_mixmonitor.c: mixmonitor: Add a test event This test
event is being used to fix the mixmonitor_audiohook_inherit test.
........ Merged revisions 375484 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375485 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375486 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_confbridge.c: confbridge: Fix a bug which made
conferences not record with AMI/CLI commands When confbridge was
changed to handle conference status with a state machine in
r374658. The function responsible for starting recording for a
conference was refactored with the function actually responsible
for launching the recording thread being split into a function
with another name. The old function name was still used for
manually started recordings through AMI or CLI. This patch fixes
that by switching which function is used to start recording the
conference. (closes issue ASTERISK-20601) Reported by: Vilius
Patches: confbridge_mixmonitor.diff uploaded by Jonathan Rose
(license 6182) ........ Merged revisions 375470 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375471 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-29 21:38 +0000 [r375442-375443] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Prevent resetting of NATted realtime peer
address on reload. If a "sip reload" is issued for a SIP peer,
then his IP address will be cleared, thus resulting in forgetting
the public IP address. Asterisk will then attempt to route SIP
traffic to the private IP address. The fix here is to make "sip
reload" ignore realtime peers when "host = dynamic" is spotted.
Realtime peers can now only have their IP address reset if they
have gone from being not dynamic to being dynamic. (closes issue
ASTERISK-18203) reported by daren ferreira (closes issue
ASTERISK-20572) reported by JoshE Patches: fix_nat_realtime.diff
uploaded by JoshE (license #6075) ........ Merged revisions
375415 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 375417 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375437 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/pbx.c, apps/app_osplookup.c, channels/chan_sip.c,
channels/chan_skinny.c, funcs/func_strings.c, UPGRADE.txt,
channels/chan_mgcp.c: Make evaluation of channel variables
consistently case-sensitive. Due to inconsistencies in how
variable names were evaluated, the decision was made to make all
evaluations case-sensitive. See the UPGRADE.txt file or
https://wiki.asterisk.org/wiki/display/AST/Case+Sensitivity for
more details. (closes issue ASTERISK-20163) reported by Matt
Jordan Review: https://reviewboard.asterisk.org/r/2160
2012-10-29 21:02 +0000 [r375416] Matthew Jordan <mjordan@digium.com>
* UPGRADE.txt, apps/app_queue.c: Ensure that CDRs for a caller in a
Queue that is not answered is NO ANSWER. When a caller enters a
queue and no queue member answers the call, the current behaviour
can be a little odd depending on the paused status of the queue
members. If any queue member is paused, but not all, the CDR
disposition will be BUSY. If all queue members are paused, then
the CDR disposition is based instead on the disposition of the
call prior to entering the Queue. This patch modifies the
behaviour in the following ways: * If no queue members are
paused, the CDR disposition is whatever the disposition was prior
to going into Queue. If the call was answered this will be
ANSWERED; otherwise, it is NO ANSWER. * If some queue members are
pused, the CDR result is NO ANSWER. (This is a change in
behaviour, as the result would previously have been BUSY) * If
all queue members are paused, the CDR result is whatever the
result was prior to going into Queue. This is the same as the
behaviour prior to this patch. * If the caller hangs up, times
out, or presses '*' with the 'h' option, the CDR disposition is
again not set and is dependent on whether or not the caller was
Answered prior to entering Queue. This patch was based on one
provided by Thomas Arimont, but has been modified to accomodate
findings by the reviewers. Review:
https://reviewboard.asterisk.org/r/2064/ (closes issue AST-906)
Reported by: Thomas Arimont (closes issue ASTERISK-17776)
Reported by: Attila Megyeri
2012-10-29 19:31 +0000 [r375364-375391] Richard Mudgett <rmudgett@digium.com>
* /, main/features.c: Fix the Park 'r' option when a channel parks
itself. When a channel uses the Park appliation to park itself
with the 'r' option, the channel hears music-on-hold instead of
the requested ringing. * Added a missing check for the 'r' option
when a channel parks itself. (closes issue ASTERISK-19382)
Reported by: James Stocks Patches by: dsessions Review:
https://reviewboard.asterisk.org/r/2148/ ........ Merged
revisions 375388 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375389 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375390 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_dahdi.c: chan_dahdi: Fix segfault dereferencing
a NULL tech_pvt. The tech support customer was using the AMI
Redirect action shortly after a call was placed. While the
channel tried to do an ast_read(), the masquerade resulting from
the channel redirect took place. The masquerade in the middle of
the ast_read() resulted in the segfault. (closes issue AST-1025)
Reported by: Trey Blancher Patches: jira_ast_1025_v1.8_v2.patch
(license #5621) patch uploaded by rmudgett ........ Merged
revisions 375361 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375362 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375363 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-23 16:22 +0000 [r375291-375328] Jonathan Rose <jrose@digium.com>
* /, contrib/scripts/ast_tls_cert: ast_tls_cert script: Better
response for various exit conditions to openssl (closes issue
ASTERISK-20260) Reported by: Daniel O'Connor Patches:
ast_tls_cert-update.diff uploaded by Daniel O'Connor (license
6419) ........ Merged revisions 375325 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375326 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375327 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/app.c, /: core: Fix a memory leak in app.c from an early
return ast_app_group_match_get_count allocates memory with the
regcomp function and we previously forgot to free it when bailing
out due to a regex compilation failure against category. (closes
issue AST-1018) Reported by: Guenther Kelleter Patches:
regcomp_memleak.diff uploaded by Guenther Kelleter (license 6372)
........ Merged revisions 375299 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375300 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375301 from
http://svn.asterisk.org/svn/asterisk/branches/11
* codecs/gsm/src/code.c, /: GSM: Fix encoding problems with GSM
(closes issue ASTERISK-20457) Reported by: Richard Miller
Patches: code.patch uploaded by Richard Miller (license 5685)
........ Merged revisions 375272 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375273 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375288 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-18 21:49 +0000 [r375240-375249] Jonathan Rose <jrose@digium.com>
* UPGRADE.txt: app_queue: add upgrade notes for 375216 Adds UPGRADE
notes describing behavioral changes to rrmemory strategy caused
by 375216 (issue AST-989) Reported by: Thomas Arimont
* apps/app_queue.c, /: app_queue: Make ordering of
rrmemory/rrordered persist over add/remove members Prior to this
patch, adding, removing or reloading members to rrmemory would
cause the order to become completely jumbled. Now it behaves more
or less like rrordered other than the fact that it stores the
members on a hash table rather than a linked list. This patch
also prevents removal of members and member reloads from jumbling
rrordered queues. (issue AST-989) Reported by: Thomas Arimont
Review: https://reviewboard.asterisk.org/r/2164/ ........ Merged
revisions 375216 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375217 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375219 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-18 20:31 +0000 [r375215] Michael L. Young <elgueromexicano@gmail.com>
* apps/app_alarmreceiver.c: Fix XML Document Validation Failure Fix
documentation error when validating the xml in trunk caused by
r375150. Moved the description end tag down to below the
variablelist element end tag. Found when compiling with
--dev-mode-enabled. (issue ASTERISK-20289)
2012-10-18 20:13 +0000 [r375192] Richard Mudgett <rmudgett@digium.com>
* build_tools/make_version, configure,
include/asterisk/autoconfig.h.in, configure.ac, makeopts.in,
Makefile, /: build_tools: Allow Asterisk to report git SHAs in
version string. Make git more attractive for managing
work-in-progress. Especially convenient when a potential patch
set needs to be tested on multiple platforms since one can use
git to keep all the test environments in sync independent of a
subversion server. Now the Asterisk version will show the exact
git SHA5 that was used when building (still appended by "M" if
there are local modifications) from a git clone of the Asterisk
repository so the developer can more easily know what is actually
under test. You will now get this: $ asterisk -V Asterisk
GIT-1698298 Instead of this: $ asterisk -V Asterisk
UNKNOWN__and_probably_unsupported This has zero impact for those
not using git with the exception of an extra test in the
configure script to gather git's path. This is necessary to
prevent "sudo make install" from failing since git may not be in
the path in make's shell environment. (closes issue
ASTERISK-20483) Reported by: Shaun Ruffell Patches:
0001-build_tools-Allow-Asterisk-to-report-git-SHAs-in-ver.patch
(license #5417) patch uploaded by Shaun Ruffell Modified ........
Merged revisions 375189 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375190 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375191 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-18 14:17 +0000 [r375182] Andrew Latham <lathama@gmail.com>
* include/asterisk/doxygen/licensing.h, pbx/pbx_dundi.c,
include/asterisk/smdi.h, main/asterisk.c, main/dsp.c,
main/udptl.c, include/asterisk/doxygen/architecture.h,
main/ccss.c, Makefile.moddir_rules, Makefile.rules, main/enum.c,
main/cli.c, main/cdr.c, include/asterisk/doxygen/releases.h,
include/asterisk/doxyref.h, main/manager.c,
include/asterisk/compat.h, main/features.c,
include/asterisk/module.h, main/logger.c, main/http.c,
main/app.c, include/asterisk/doxygen/commits.h,
include/asterisk/udptl.h, include/asterisk.h, main/dnsmgr.c,
contrib/asterisk-ng-doxygen, codecs/log2comp.h, main/cel.c,
main/named_acl.c, Makefile, include/asterisk/paths.h,
include/asterisk/doxygen/asterisk-git-howto.h,
include/asterisk/doxygen/reviewboard.h: Doxygen Updates - Title
update Update and extend the configuration_file group and enable
linking. Commit other cleanups from multi-version Doxygen
testing. Update title that was left behind many years ago. (issue
ASTERISK-20259)
2012-10-17 20:34 +0000 [r375175] Jonathan Rose <jrose@digium.com>
* main/manager.c: manager: remove curses dependent stuff from
r375103 Upon further examination, this code was causing
compliation problems on CentOS at the least (possibly on any
machine without curses) and also the local value of COLS is used
even with a remote console, so it is less than ideal. (issue
ASTERISK-20396) Reported by: Johan Wilfer
2012-10-17 19:02 +0000 [r375150] Pedro Kiefer <pedro@kiefer.com.br>
* apps/app_alarmreceiver.c, configs/alarmreceiver.conf.sample: Adds
new formats to app_alarmreceiver, ALAW calls support and enhanced
protection. Commiting this on behalf of Kaloyan Kovachev (license
5506). AlarmReceiver now supports the following DTMF signaling
types: - ContactId - 4x1 - 4x2 - High Speed - Super Fast We are
also auto-detecting which signaling is being received. So support
for those protocols should work out-the-box. Correctly identify
ALAW / ULAW calls. Some enhanced protection for broken panels and
malicious callers where added. (closes issue ASTERISK-20289)
Reported by: Kaloyan Kovachev Review:
https://reviewboard.asterisk.org/r/2088/
2012-10-17 19:01 +0000 [r375149] Kinsey Moore <kmoore@digium.com>
* main/tcptls.c, /: Ensure Asterisk fails TCP/TLS SIP calls when
certificate checking fails When placing a call to a TCP/TLS SIP
endpoint whose certificate is not signed by a configured CA
certificate, Asterisk would issue a warning and continue to
process the call as if there was not an issue with the
certificate. Asterisk now properly fails the call if the
certificate fails verification or if the certificate does not
exist when certificate checking is enabled (the default
behavior). (closes issue ASTERISK-20559) Reported by: kmoore
Review: https://reviewboard.asterisk.org/r/2163/ ........ Merged
revisions 375146 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375147 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375148 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-17 14:24 +0000 [r375110-375137] Walter Doekes <walter+asterisk@wjd.nu>
* res/res_rtp_asterisk.c, main/pbx.c, channels/chan_sip.c,
cdr/cdr_odbc.c: Change a few warnings to debug and the inverse.
Remove the "RTP Read too short" warning for RTP keepalives.
Remove the the warning about the application delimiter switch
from pipe to comma. (You should've done this by now.) Make
cdr_odbc report more when an insert fails. Make chan_sip warn
less when the peer wants SRTP (and we don't) or sends a zero port
to disable a media type. Review:
https://reviewboard.asterisk.org/r/2167 (closes issue
ASTERISK-20538)
* /, channels/chan_sip.c: Fixes to the fd-oriented SIP TCP reads.
Don't crash on large user input. Allow SIP headers without space.
Optimize code a bit. Review:
https://reviewboard.asterisk.org/r/2162 ........ Merged revisions
375111 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 375112 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375113 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_sip.c: Don't do SIP contact/route DNS if we're not
using the result. In many cases (for peers behind NAT or for TCP
sockets) we do not need to look up any hostname in the Contact
(or Route) when sending an in-dialog request. This should reduce
netsock2.c: getaddrinfo errors in certain scenarios. Review:
https://reviewboard.asterisk.org/r/2156
2012-10-16 20:45 +0000 [r375103] Jonathan Rose <jrose@digium.com>
* CHANGES, main/manager.c: manager: Change display of 'manager show
commands' and 'manager show command' manager show commands now
shows the full name of the command being displayed regardless of
size. The privilege column has also been removed from this
display. It will also now use the full length of the terminal if
curses is available. Manager show command will now always display
the privilege of the manager command within the CLI. (closes
ASTERISK-20396) Reported by: Johan Wilfer Review:
https://reviewboard.asterisk.org/r/2143/
2012-10-16 19:26 +0000 [r375081] Pedro Kiefer <pedro@kiefer.com.br>
* apps/app_alarmreceiver.c: Fixes two small regressions from
ASTERISK-20157 - receive_dtmf_digits had the wrong buffer length
- app_alarmreceiver should wait 100ms before sending the second
part of handshake (closes issue ASTERISK-20484) Reported by:
Jean-Philippe Lord Tested by: Jean-Philippe Lord, Pedro Kiefer
Patches: ASTERISK-20484_v2.diff uploaded by Kaloyan Kovachev
(license 5506)
2012-10-16 19:25 +0000 [r375080] Walter Doekes <walter+asterisk@wjd.nu>
* /, channels/chan_sip.c: Update sip_request_call SIP dial string
documentation. This was missed when merging review r1859.
........ Merged revisions 375074 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375078 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375079 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-16 14:09 +0000 [r375052] Joshua Colp <jcolp@digium.com>
* /, channels/chan_iax2.c: Remove a log message that was left in
accidentally from call-id logging development. ........ Merged
revisions 375051 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-15 21:25 +0000 [r375044] Mark Michelson <mmichelson@digium.com>
* include/asterisk/strings.h, channels/chan_iax2.c,
apps/app_dial.c, /, main/ccss.c: Fix some potential misuses of
ast_str in the code. Passing an ast_str pointer by value that
then calls ast_str_set(), ast_str_set_va(), ast_str_append(), or
ast_str_append_va() can result in the pointer originally passed
by value being invalidated if the ast_str had to be reallocated.
This fixes places in the code that do this. Only the example in
ccss.c could result in pointer invalidation though since the
other cases use a stack-allocated ast_str and cannot be
reallocated. I've also updated the doxygen in strings.h to
include notes about potential misuse of the functions mentioned
previously. Review: https://reviewboard.asterisk.org/r/2161
........ Merged revisions 375025 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 375026 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 375027 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-15 08:26 +0000 [r375017] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
* channels/chan_unistim.c, /: Fix underscreen buttons warnings
apeared while transfer process ........ Merged revisions 375016
from http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-14 21:59 +0000 [r375003-375009] Andrew Latham <lathama@gmail.com>
* addons/app_mysql.c, addons/chan_mobile.c: Doxygen Updates Update
and extend the configuration_file group and enable linking.
(issue ASTERISK-20259)
* utils/extconf.c, utils/muted.c: Doxygen Updates Update and extend
the configuration_file group and enable linking. (issue
ASTERISK-20259)
* addons/Makefile, pbx/Makefile, formats/Makefile, sounds/Makefile,
funcs/Makefile, bridges/Makefile, agi/Makefile, codecs/Makefile,
utils/Makefile, tests/Makefile, cel/Makefile, main/Makefile:
Title update Update title that was left behind many years ago.
Used revision 6596 as my guide for what it should be. (issue
ASTERISK-20259)
* channels/chan_vpb.cc, channels/chan_sip.c, channels/chan_gtalk.c,
channels/chan_console.c, channels/Makefile, channels/chan_iax2.c,
channels/chan_oss.c, channels/chan_jingle.c,
channels/chan_phone.c, channels/chan_dahdi.c,
channels/iax2-parser.h, channels/chan_misdn.c,
channels/chan_skinny.c, channels/chan_motif.c,
channels/chan_h323.c, channels/iax2.h, channels/chan_alsa.c,
channels/chan_mgcp.c: Doxygen Updates - Title update Update and
extend the configuration_file group and enable linking. Update
title that was left behind many years ago. (issue ASTERISK-20259)
* cdr/cdr_syslog.c, cdr/Makefile, cdr/cdr_adaptive_odbc.c,
cdr/cdr_pgsql.c, cdr/cdr_odbc.c, cdr/cdr_radius.c,
cdr/cdr_custom.c, cdr/cdr_manager.c, cdr/cdr_csv.c: Doxygen
Updates - Title update Update and extend the configuration_file
group and enable linking. Update title that was left behind many
years ago. (issue ASTERISK-20259)
* apps/Makefile, apps/app_meetme.c, apps/app_festival.c,
apps/app_fax.c, apps/app_skel.c, apps/app_alarmreceiver.c,
apps/app_amd.c, apps/app_confbridge.c, apps/app_followme.c,
apps/app_queue.c, apps/app_adsiprog.c, apps/app_voicemail.c:
Doxygen Updates - Title update Update and extend the
configuration_file group and enable linking to the application.
Update title that was left behind many years ago. (issue
ASTERISK-20259)
* res/res_smdi.c, res/res_curl.c, res/res_config_ldap.c,
res/res_odbc.c, res/res_clialiases.c, res/res_calendar.c,
res/res_config_sqlite3.c, res/res_config_pgsql.c, res/res_snmp.c,
res/res_limit.c, res/res_fax.c, res/res_phoneprov.c,
res/Makefile, res/res_xmpp.c, res/res_musiconhold.c,
res/res_jabber.c, res/res_config_sqlite.c: Doxygen Updates -
Title update Update and extend the configuration_file group and
enable linking to the resource. Update title that was left behind
many years ago. (issue ASTERISK-20259)
2012-10-14 12:23 +0000 [r374996] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
* /, config.guess, config.sub: Update config.guess and config.sub:
2012-10-10 Update config.guess and config.sub to revision
fb456b34ef4aa02b95dc6be69aaa66fa94a844fb from the
savannah.gnu.org git repo. Adds support for e.g. aarch64 (ARM
64bit). config.guess:timestamp='2012-09-25'
config.sub:timestamp='2012-10-10' ........ Merged revisions
374977 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 374991 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374995 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-13 19:58 +0000 [r374940-374970] Andrew Latham <lathama@gmail.com>
* CREDITS: Update CREDITS Update Jean-Denis and add myself (issue
ASTERISK-20259)
* Makefile: Multiplatform Makefile Update Paul Belanger pointed out
that using sed in the Makefile is an issue with multiple
platforms. We are cleaning up the Doxygen config as a following
step so I just switched the sed inplace changes to be an echo
append instead. (issue ASTERISK-20259)
* main/app.c, apps/app_dial.c: Doxygen Clean ups Add app_skel.c as
an example in app.c and fix some formating for the "Dial Privacy
scripts" so it actually shows up in the Doxygen output. (issue
ASTERISK-20259)
* Makefile: Test for Asterisk Version info Doxygen uses the
ASTERISKVERSION as a sub header. If a SVN export is done and no
.svn or .version file exists it defualts to
UNKNOWN__and_probably_unsupported which is honest but not great
for the online docs. During the "make progdocs" I added a test
for this and just warned and ommitted the version. (issue
ASTERISK-20259)
* contrib/asterisk-ng-doxygen: Correct output directory During
testing I used an alternate output directory and mistakenly
committed it. Matt Jordan noticed and I reverted. This is the
correct setting for local output to match with all branches.
(issue ASTERISK-20259)
* static-http/astman.css, static-http/ajamdemo.html: Add
licens/copyright header Begin update of static-http files and
general clean ups. This only adds the standard header to the
files. (issue ASTERISK-20503)
* configure, configure.ac, makeopts.in, Makefile: Add check for
Doxygen The autoconf configuration system had a test for DOT but
not for Doxygen. I added the test for Doxygen and did an overhaul
of the Makefile check to a much simpler process. (issue
ASTERISK-20259)
2012-10-12 21:58 +0000 [r374933] Kinsey Moore <kmoore@digium.com>
* /, apps/app_voicemail.c: Avoid a segfault on invalid format names
If a format name was not found by ast_getformatbyname, a NULL
pointer would be passed into ast_format_rate and immediately
dereferenced. This ensures that a valid pointer is used since the
structure is already allocated on the stack. (closes issue
DPH-523) Reported-by: Steve Pitts ........ Merged revisions
374932 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-12 16:31 +0000 [r374924] Mark Michelson <mmichelson@digium.com>
* include/asterisk/tcptls.h, main/tcptls.c, /, channels/chan_sip.c:
Do not use a FILE handle when doing SIP TCP reads. This is used
to solve an issue where a poll on a file descriptor does not
necessarily correspond to the readiness of a FILE handle to be
read. This change makes it so that for TCP connections, we do a
recv() on the file descriptor instead. Because TCP does not
guarantee that an entire message or even just one single message
will arrive during a read, a loop has been introduced to ensure
that we only attempt to handle a single message at a time. The
tcptls_session_instance structure has also had an overflow buffer
added to it so that if more than one TCP message arrives in one
go, there is a place to throw the excess. Huge thanks goes out to
Walter Doekes for doing extensive review on this change and
finding edge cases where code could fail. (closes issue
ASTERISK-20212) reported by Phil Ciccone Review:
https://reviewboard.asterisk.org/r/2123 ........ Merged revisions
374905 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 374906 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374914 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-11 23:40 +0000 [r374879-374897] Andrew Latham <lathama@gmail.com>
* contrib/scripts/install_prereq: Append Doxygen to Debian packages
list Add Doxygen to the Debian install list. I will check for
other platforms like Red Hat (issue ASTERISK-20259)
* static-http/mantest.html: Update JQuery URL to recent version The
JQuery URL to version 1.4 will be removed within the life span of
Asterisk 11. This is a compatible upgrade by using the URL for
1.8. (issue ASTERISK-20503)
* main/manager.c, include/asterisk/module.h: Continue to group
config files (issue ASTERISK-20259)
* CREDITS: CREDITS clean up As discussed online
http://lists.digium.com/pipermail/asterisk-dev/2012-October/057245.html
the credits file needs some cleaning. This is 95% whitespace with
a few additions found in file headers. Further additions should
be added here instead of in the file being updated. (issue
ASTERISK-20259)
* contrib/asterisk-ng-doxygen: Revert Local testing Config Revert a
local testing config that I made. This was not intended to be
committed. Thank you Matt Jordan for noticing this. (issue
ASTERISK-20259)
2012-10-11 21:19 +0000 [r374852-374878] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Fix a bug where audio on Google Voice
would not work due to ignoring candidates. Instead of ignoring
parts of the message that are not known just ignore the ones we
know may be present and that would cause a problem. ........
Merged revisions 374877 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_motif.c: Fix an issue where outgoing calls would
fail to establish audio due to ICE negotiation failures. This
change removes the requirement for ufrag and pwd in the transport
stanza and also makes us the controlling agent. (closes issue
ASTERISK-20554) Reported by: mmichelson ........ Merged revisions
374850 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-11 15:49 +0000 [r374849] Mark Michelson <mmichelson@digium.com>
* include/asterisk/sip_api.h, channels/chan_sip.exports.in
(removed), main/sip_api.c (added), /, channels/chan_sip.c: Don't
make chan_sip export global symbols. During testing, it was
discovered that having chan_sip export global symbols was
problematic. The biggest problem was that load order was
affected. Trying to use realtime could be problematic since in
all likelihood the necessary realtime driver(s) would not be
loaded before chan_sip. In addition, it was found that it was
impossible to use the Digium Phone Module for Asterisk since it
must be loaded before chan_sip since it must hook into chan_sip's
configuration parsing. The solution is to use a virtual table in
the same manner that other modules in Asterisk do, like
app_voicemail. (closes issue ASTERISK-20545) Reported by: kmoore
........ Merged revisions 374842 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-11 15:44 +0000 [r374846] Matthew Jordan <mjordan@digium.com>
* main/cdr.c, /: Fix incorrect billing duration reported when batch
mode is enabled Similar to r369351, the billing duration can be
skewed when batch mode is enabled. This happened much more rarely
than the duration, as it only occured when the call was answered
(thereby indicating an actual answer time) and immediately hung
up on (indicating a billsec of 0). Since a billing time of '0'
can either mean that the call immediately ended or that the CDR
was improperly answered, we have to use additional information to
know whether or not we can trust the CDR billsec value. Prior to
this patch, we looked to see if we had a valid answer time. If we
did, and billsec was zero, we used the current time to calculate
what billsec value we could from the CDR being written. If batch
mode is enabled, this will incorrectly report a billsec value
being much greater than the actual duration of the call. Instead
of relying on the presence of an answer time to know whether or
not we can re-calculate the billsec for the CDR, we now also use
the presence of the CDR's end time to know if we need to
re-calculate or whether we can trust the billsec value that we
have. This prevents erroneous jumps in the billsec value, while
still making sure that in the worst case, some billing time will
be calculated. (closes issue AST-1016) Reported by: Thomas
Arimont Tested by: Thomas Arimont ........ Merged revisions
374843 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 374844 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374845 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-11 13:34 +0000 [r374834] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Consider the Google Talk content stanza
name (jin:content) valid. ........ Merged revisions 374833 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-10 21:05 +0000 [r374805] Richard Mudgett <rmudgett@digium.com>
* /, apps/app_queue.c: app_queue: Made pass connected line updates
from the caller to ringing queue members. Party A calls Party B
Party B puts Party A on hold. Party B calls a queue. Ringing
queue member D sees Party B identification. Party B transfers
Party A to the queue. Queue member D does not get a connected
line update for Party A. Queue member D answers the call and
still sees Party B information. However, if Party A later
transfers the call to Party C then queue member D gets a
connected line update for Party C. * Made pass connected line
updates from the caller to queue members while the queue members
are ringing. (closes issue AST-1017) Reported by: Thomas Arimont
(closes issue ABE-2886) Reported by: Thomas Arimont Tested by:
rmudgett ........ Merged revisions 374801 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
........ Merged revisions 374802 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374803 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374804 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-10 13:40 +0000 [r374793] Kinsey Moore <kmoore@digium.com>
* main/manager.c, /: Fix segfault regression from r370681 Due to
usage of ast_hook_send_action, AMI action handling code should be
able to handle a NULL mansession->session. This would cause a
crash on NULL dereference if action_originate was called from
ast_hook_send_action. (closes issue ASTERISK-20544) ........
Merged revisions 374792 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-09 22:24 +0000 [r374778] Richard Mudgett <rmudgett@digium.com>
* main/pbx.c, /: Fix execution of 'i' extension due to
uninitialized variable. The fix for ASTERISK-18243 added code
that could potentially use dst_exten[] uninitialized. As a result
the 'i' exten may not be executed when it should. (closes issue
ASTERISK-20455) Reported by: Richard Miller Patches:
pbx-1.8.16.0.diff (license #5685) patch uploaded by Richard
Miller Made some cosmetic modifications. ........ Merged
revisions 374758 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374763 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374771 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-09 21:35 +0000 [r374757] Joshua Colp <jcolp@digium.com>
* /, channels/chan_sip.c: Improve logging for DTLS-SRTP failure
situations. (closes issue ASTERISK-20487) Reported by: mjordan
........ Merged revisions 374756 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-08 22:31 +0000 [r374717-374730] Richard Mudgett <rmudgett@digium.com>
* configs/chan_dahdi.conf.sample, /: dahdi.conf.sample: Add
description for "buffers" setting. This contains an edited
version of the patch originally created by John Bigelow. (closes
issue ASTERISK-14435) Reported by: John Bigelow Patches:
buffers.patch (license #5091) patch uploaded by John Bigelow
0001-dahdi.conf.sample-Add-description-for-buffers-settin.patch
(license #5417) patch uploaded by Shaun Ruffell Modified ........
Merged revisions 374727 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374728 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374729 from
http://svn.asterisk.org/svn/asterisk/branches/11
* pbx/pbx_spool.c, /: Fix deletion of unopenable spool files. If
scan_service() cannot open the spool file, it logs a message
saying that it will delete the file and calls remove_from_queue()
to do it. However, remove_from_queue() fails to delete the spool
file because struct outgoing has not yet been fully initialized.
* Merged allocating a new struct outgoing and init_outgoing()
into new_outgoing(). Allocation is initialization. * Made
apply_outgoing() not initialize the spool filename in struct
outgoing. * Made apply_outgoing() call ast_trim_blanks() and
ast_skip_blanks() rather than manually inlining them. * Reduced
indentation levels in apply_outgoing(). * Fixed a garbled comment
in remove_from_queue(). * Reworked scan_service() to simplify it.
(closes issue ASTERISK-17231) Reported by: David Chappell
Patches: spool_open_failure.diff (license #4997) patch uploaded
by David Chappell Started with this patch. ........ Merged
revisions 374686 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 * Fixed some
memory leaks on off nominal paths in init_outgoing() when merging
into the new_outgoing() function dealing with o->capabilities.
........ Merged revisions 374695 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374708 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-08 20:39 +0000 [r374633-374677] Matthew Jordan <mjordan@digium.com>
* /, configs/rtp.conf.sample, res/res_rtp_asterisk.c: Disable ICE
support by default Since there are a number of legacy devices out
there that fail to handle ICE candidates properly (which is a
nice way of saying something much uglier), disable it by default.
Support for ICE candidates can be enabled in rtp.conf using the
icesupport setting. ........ Merged revisions 374676 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/confbridge/include/conf_state.h (added),
apps/confbridge/conf_state_multi.c (added),
apps/app_confbridge.c, apps/confbridge/conf_state_multi_marked.c
(added), apps/confbridge/conf_state_empty.c (added),
apps/confbridge/conf_state.c (added),
apps/confbridge/conf_state_single.c (added),
apps/confbridge/conf_state_inactive.c (added),
apps/confbridge/conf_state_single_marked.c (added), /,
apps/confbridge/include/confbridge.h: Resolve issues in
ConfBridge regarding marked, waitmarked, and unmarked users
Thank's to Neil Tallim (flan)'s tireless testing, issue
reporting, and patches it became clear that app_confbridge had
some complex logic in how it handled interactions between marked,
waitmarked, and unmarked users. In particular, there were some
areas in which the interactions between the users resulted in
inconsistent behavior, and app_confbridge was missing logic in
how to handle some corner cases. Some areas included: * Poor
handling of mixing unmarked and waitmarked users *
Inconsistencies in how MOH and muting was applied to various
users * Handling of various announcements for different user
profile options flan's patches seem to fix the various issues,
but highlighted how hard the code could be to maintain. In an
attempt to make things easier to maintain and to more fully
enumerate the various cases that exist, this patch breaks up the
logic into a state machine-like setup. Please note that the
various state transitioned are documented on the Asterisk wiki:
https://wiki.asterisk.org/wiki/display/AST/Confbridge+state+changes
Review: //https://reviewboard.asterisk.org/r/2072/ Note that for
the following issues, mjordan uploaded the patch, although it was
written by twilson. Any contributor license discrepency is due to
that. (closes issue ASTERISK-19562) Reported by: flan Tested by:
flan, mjordan, jrose patches:
bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by
twilson (license 6283) (closes issue ASTERISK-19726) Reported by:
flan Tested by: flan patches:
bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by
twilson (license 6283) (closes issue ASTERISK-20181) Reported by:
Jonathan White Tested by: Jonathan White patches:
bugASTERISK-19562_ASTERISK-19726_ASTERISK-20181.patch uploaded by
twilson (license 6283) ........ Merged revisions 374652 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374657 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/pjproject/pjlib/include/pj/sock.h,
res/pjproject/pjlib/src/pj/sock_symbian.cpp, /,
res/pjproject/pjlib/src/pj/sock_bsd.c,
res/pjproject/pjlib/src/pj/sock_linux_kernel.c: pjproject: Fix
for Solaris builds. Do not undef s_addr. pjproject, in order to
solve build problems on Windows [1], undefines s_addr in one of
it's headers that is included in res_rtp_asterisk.c. On Solaris
s_addr is not a structure member, but defined to map to the real
strucuture member, therefore when building on Solaris it's
possible to get build errors like: [CC] res_rtp_asterisk.c ->
res_rtp_asterisk.o In file included from
/export/home/admin/asterisk-11-svn/include/asterisk/stun.h:29,
from res_rtp_asterisk.c:51:
/export/home/admin/asterisk-11-svn/include/asterisk/network.h: In
function `inaddrcmp':
/export/home/admin/asterisk-11-svn/include/asterisk/network.h:92:
error: structure has no member named `s_addr'
/export/home/admin/asterisk-11-svn/include/asterisk/network.h:92:
error: structure has no member named `s_addr' res_rtp_asterisk.c:
In function `ast_rtp_on_ice_tx_pkt': res_rtp_asterisk.c:706:
warning: dereferencing type-punned pointer will break
strict-aliasing rules res_rtp_asterisk.c:710: warning:
dereferencing type-punned pointer will break strict-aliasing
rules res_rtp_asterisk.c: In function
`rtp_add_candidates_to_ice': res_rtp_asterisk.c:1085: error:
structure has no member named `s_addr' make[2]: ***
[res_rtp_asterisk.o] Error 1 make[1]: *** [res] Error 2 make[1]:
Leaving directory `/export/home/admin/asterisk-11-svn' gmake: ***
[_cleantest_all] Error 2 Unfortunately, in order to make this
work, I also had to make sure pjproject only used the typdef
pj_in_addr and not the struct pj_in_addr so that when building
Asterisk I could "typedef struct in_addr pj_in_addr". It's
possible then that the library and users of those interfaces in
Asterisk have a different idea about the type of the argument,
while on the surface it looks like they are all 32 bit big endian
values. [1] http://trac.pjsip.org/repos/changeset/484 (issues
ASTERISK-20366) Reported by: Ben Klang Tested by: Ben Klang,
mjordan patches:
0001-pjproject-Fix-for-Solaris-builds.-Do-not-undef-s.patch
uploaded by Shaun Ruffell (license 5417) ........ Merged
revisions 374642 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/acl.c: Trivial patch to make 'best_score' defined for all
architectures. Fixes trivial build error on Solaris: acl.c: In
function `get_local_address': acl.c:196: error: `best_score'
undeclared (first use in this function) acl.c:196: error: (Each
undeclared identifier is reported only once acl.c:196: error: for
each function it appears in.) make[2]: *** [acl.o] Error 1 (issue
ASTERISK-20366) Reported by: Ben Klang Tested by: Ben Klang
patches:
0002-main-acl.c-Trivial.-best_score-should-be-defined-for.patch
by Shaun Ruffell (license 5417) ........ Merged revisions 374632
from http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-06 03:22 +0000 [r374612-374623] Matthew Jordan <mjordan@digium.com>
* /, res/res_xmpp.c: Handle capability stanzas that fail to provide
node or version information While XEP-0115 states that the node
and ver attributes are both required, some devices fail to
provide either field. Prior to this patch, failure to provide the
node or ver attribute would cause a crash in res_xmpp. While
failing to provide the node or ver attribute is technically
invalid, since this information is not utilized by Asterisk
except for reporting purposes, for interoperability reasons, we
continue to process the capability stanza anyways. (closes issue
ASTERISK-20495) Reported by: Martin W Tested by: Martin W
patches: 20495.patch uploaded by Martin W (license #6434)
........ Merged revisions 374622 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_xmpp.c, main/message.c, /: Update documentation for
MessageSend application/command's From field for XMPP When using
the channel technology agnostic application/AMI command
MessageSend, the "From" field is technically optional for the SIP
channel driver. However, if being sent by the XMPP resource
module (either res_xmpp or res_jabber), the "From" field is
necessary, and must correspond to a defined account. This patch
updates the documentation for this application/AMI command to
reflect this. (closes issue ASTERISK-20405) Reported by: Leif
Madsen ........ Merged revisions 374611 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-05 20:33 +0000 [r374588] David M. Lee <dlee@digium.com>
* /, main/manager.c: Multiple revisions 374570,374581 ........
r374570 | dlee | 2012-10-05 15:14:41 -0500 (Fri, 05 Oct 2012) |
22 lines Improve AMI long line error handling In AMI's parser,
when it receives a long line (> 1024 characters), it discards
that line, but continues to process the message normally.
Typically, this is not a problem because a) who has lines that
long and b) usually a discarded line results in an invalid
message. But if that line is specifying an optional field, then
the message will be processed, you get a 'Response: Success', but
things don't work the way you expected them to. This patch
changes the behavior when a line-too-long parse error occurs. *
Changes the log message to avoid way-too-long (and truncated
anyways) log messages * Adds a 'parsing' status flag to Response:
Success * Sets parsing = MESSAGE_LINE_TOO_LONG if, well, a line
is too long * Responds with an appropriate error if parsing !=
MESSAGE_OKAY (closes issue AST-961) Reported by: John Bigelow
Review: https://reviewboard.asterisk.org/r/2142/ ........ r374581
| dlee | 2012-10-05 15:20:28 -0500 (Fri, 05 Oct 2012) | 1 line
I've committed too much. Reverting part of r374570. ........
Merged revisions 374570,374581 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374586 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374587 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-05 18:42 +0000 [r374539] Richard Mudgett <rmudgett@digium.com>
* channels/misdn/isdn_lib.h, channels/chan_misdn.c, /,
channels/misdn/isdn_msg_parser.c, channels/misdn/isdn_lib.c:
Merged revisions 374515-374535 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
................ r374515 | rmudgett | 2012-10-04 17:52:36 -0500
(Thu, 04 Oct 2012) | 10 lines chan_misdn: Remove some deadcode *
Made setup_bc() static. Patches: patch1_unused-code.diff (license
#6372) patch uploaded by Guenther Kelleter Modified JIRA ABE-2882
................ r374516 | rmudgett | 2012-10-04 18:01:01 -0500
(Thu, 04 Oct 2012) | 7 lines chan_misdn: Remove unused bchan
states Patches: patch2_unused-states.diff (license #6372) patch
uploaded by Guenther Kelleter JIRA ABE-2882 ................
r374517 | rmudgett | 2012-10-04 18:17:51 -0500 (Thu, 04 Oct 2012)
| 16 lines chan_misdn: Remove unnecessary null pointer checks and
checks for stack->nt * cleanup_bc() is always called with valid
bc (or it would've crashed before). * Value of stack->nt is known
in advance at some places. * Rename handle_event() to
handle_event_te(), handle_frm() to handle_frm_te(). Patches:
patch3_checks.diff (license #6372) patch uploaded by Guenther
Kelleter Modified JIRA ABE-2882 ................ r374518 |
rmudgett | 2012-10-04 18:21:59 -0500 (Thu, 04 Oct 2012) | 7 lines
chan_misdn: Fix spelling in log messages Patches:
patch4_spelling.diff (license #6372) patch uploaded by Guenther
Kelleter JIRA ABE-2882 ................ r374519 | rmudgett |
2012-10-04 18:31:59 -0500 (Thu, 04 Oct 2012) | 15 lines
chan_misdn: Don't cleanup a bc twice. In handle_frm_te() after
calling misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE) bc is
emptied, cleaned and set not in use, although
misdn_lib_send_event() already did the same. This is bad. When
it's not in use we are not allowed to touch it. * Moved log
message in front of the resulting actions and fixed it to match
the case. Patches: patch5_bccleanup.diff (license #6372) patch
uploaded by Guenther Kelleter JIRA ABE-2882 ................
r374520 | rmudgett | 2012-10-04 18:43:56 -0500 (Thu, 04 Oct 2012)
| 12 lines chan_misdn: Fix memory leaks, bc, chan not cleaned up
etc., really bad stuff. * Fix return codes of cb_events() for
EVENT_SETUP to use caller's cleanup mechanisms. * Move
cl_queue_chan() call after bearer check. Patches:
patch6_leaks.diff (license #6372) patch uploaded by Guenther
Kelleter JIRA ABE-2882 ................ r374521 | rmudgett |
2012-10-04 18:48:38 -0500 (Thu, 04 Oct 2012) | 11 lines
chan_misdn: We must initialize cause on sending a DISCONNECT. We
must initialize cause on sending a DISCONNECT, so it is later
correctly indicated to ast_channel in case the answer
(RELEASE/RELEASE_COMPLETE) does not include one. Patches:
patch7_hangupcause.diff (license #6372) patch uploaded by
Guenther Kelleter JIRA ABE-2882 ................ r374522 |
rmudgett | 2012-10-04 19:03:56 -0500 (Thu, 04 Oct 2012) | 7 lines
chan_misdn: Remove unused code for upqueue Patches:
patch8_unused-upqueue.diff (license #6372) patch uploaded by
Guenther Kelleter JIRA ABE-2882 ................ r374523 |
rmudgett | 2012-10-04 19:11:50 -0500 (Thu, 04 Oct 2012) | 7 lines
chan_misdn: Improve debugging (port number, messages fixed, dups
removed) Patches: patch9_debug.diff (license #6372) patch
uploaded by Guenther Kelleter JIRA ABE-2882 ................
r374533 | rmudgett | 2012-10-05 12:17:18 -0500 (Fri, 05 Oct 2012)
| 8 lines chan_misdn: Better debug: we can print_bc_info even if
there's no ast leg. Patches: patch10_debug-bc-2.diff (license
#6372) patch uploaded by Guenther Kelleter Modified. JIRA
ABE-2882 ................ r374534 | rmudgett | 2012-10-05
12:34:10 -0500 (Fri, 05 Oct 2012) | 16 lines chan_misdn:
setup_bc() is called too early for an incoming SETUP on TE. This
prevents the B channel from being setup for HDLC mode when
requested by the bearer capability and config option hdlc=yes. It
violates ETS300102 Ch.5.2.3.2: "The user, in any case, must not
connect to the channel until a CONNECT ACKNOWLEDGE message has
been received." * Call setup_bc() on receipt of
CONNECT_ACKNOWLEGDE for PTMP, and on first response to SETUP for
PTP. Patches: abe-2881-2.diff (license #6372) patch uploaded by
Guenther Kelleter Modified. JIRA ABE-2881 ................
r374535 | rmudgett | 2012-10-05 12:41:05 -0500 (Fri, 05 Oct 2012)
| 2 lines chan_misdn: Remove some more deadcode. ................
........ Merged revisions 374536 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374537 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374538 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-04 20:21 +0000 [r374478-374493] Alec L Davis <sivad.a@paradise.net.nz>
* /, configs/dsp.conf.sample, CHANGES, main/dsp.c: dsp.c User
Configurable DTMF_HITS_TO_BEGIN and DTMF_MISSES_TO_END Instead of
a recompile, allow values to be adjusted in dsp.conf For binary
distributions allows easy adjustment for wobbly GSM calls, and
other reasons. Defaults to DTMF_HITS_TO_BEGIN=2 and
DTMF_MISSES_TO_END=3 (closes issue ASTERISK-17493) Reported by:
alecdavis Tested by: alecdavis alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2144/ ........ Merged
revisions 374479 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374481 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374485 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/dsp.c, /: dsp.c fix incorrect DTMF Digit_Duration. it's
always short by 'hits_to_begin*DTMF_GSIZE', or 25.5ms if
hitstobegin=2 (issue ASTERISK-16003) Tested by: alecdavis
alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2145/ ........ Merged
revisions 374475 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374476 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374477 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-04 15:48 +0000 [r374429] David M. Lee <dlee@digium.com>
* /, res/res_agi.c, main/db.c: Fix DBDelTree error codes for AMI,
CLI and AGI The AMI DBDelTree command will return Success/Key
tree deleted successfully even if the given key does not exist.
The CLI command 'database deltree' had a similar problem, but was
saved because it actually responded with '0 database entries
removed'. AGI had a slightly different error, where it would
return success if the database was unavailable. This came from
confusion about the ast_db_deltree retval, which is -1 in the
event of a database error, or number of entries deleted
(including 0 for deleting nothing). * Changed some poorly named
res variables to num_deleted * Specified specific errors when
calling ast_db_deltree (database unavailable vs. entry not found
vs. success) * Fixed similar bug in AGI database deltree, where
'Database unavailable' results in successful result (closes issue
AST-967) Reported by: John Bigelow Review:
https://reviewboard.asterisk.org/r/2138/ ........ Merged
revisions 374426 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374427 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374428 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-04 13:49 +0000 [r374414] Joshua Colp <jcolp@digium.com>
* main/rtp_engine.c, channels/chan_sip.c,
include/asterisk/rtp_engine.h: Add support for applying direct
media ACLs between differing channel technologies. Review:
https://reviewboard.asterisk.org/r/2122/
2012-10-04 04:50 +0000 [r374387] Alec L Davis <sivad.a@paradise.net.nz>
* CHANGES, main/dsp.c, /, configs/dsp.conf.sample: dsp.c User
configuration of DTMF_NORMAL_TWIST and DTMF_REVERSE_TWIST values
Asterisk's DTMF Specifications are based on AT&T specs, which may
not be compatible in other countries. Various countries have
different specifications for the maximum power level differences
between the DTMF low group and high group of frequencies. Power
level difference between frequencies for different
Administrations/RPOAs NTT = Max. 5 dB AT&T = 4dB(reverse) to
8dB(normal) Danish = Max. 6 dB Australian = Max. 10 dB Brazilian
= Max. 9 dB ETSI = Max. 6 dB from ETSI ES 201 235-3 V1.3.1
(2006-03) Now allow 4 variables to be individually configured in
dsp.conf, with reasonable min/max of 2dB to 20dB. Default is AT&T
specifications Add's the following variables to dsp.conf
;dtmf_normal_twist=6.31 ;dtmf_reverse_twist=2.51
;relax_dtmf_normal_twist=6.31 ;relax_dtmf_reverse_twist=3.98
(closes issue ASTERISK-20442) Reported by: tbsky Tested by:
tbsky,alecdavis alecdavis (license 585) Review
https://reviewboard.asterisk.org/r/2141/ ........ Merged
revisions 374384 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374385 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374386 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-04 02:16 +0000 [r374302-374338] Matthew Jordan <mjordan@digium.com>
* res/res_jabber.c, /: Check for presence of buddy in info/dinfo
handlers The res_jabber resource module uses the ASTOBJ library
for managing its ref counted objects. After calling
ASTOBJ_CONTAINER_FIND to locate a buddy object, the pointer to
the object has to be checked to see if the buddy existed. Prior
to this patch, the buddy object was not checked for NULL; with
this patch in both aji_client_info_handler and aji_dinfo_handler
the pointer is checked before used and, if no buddy object was
found, the handlers return an error code. This patch does not
take the approach that our JID can be used to log in from another
resource. If that approach is desired, an improvement could be
made to this patch to create the buddy on the fly. This patch
seeks only to prevent Asterisk from crashing. FYI: In Asterisk
11+, you really should be using res_xmpp. It does not have this
problem, as it moved to the astobj2 library. Note that multiple
people have proposed patches for this issue; the patch being
committed here is based on those. (closes issue ASTERISK-19532)
Reported by: Karsten Wemheuer Tested by: Byron Clark patches:
fix-jabber uploaded by Karsten Wemheuer (license #5930)
xmpp_no_crash_with_ejabberd.patch uploaded by Byron Clark
(license #6157) (closes issue ASTERISK-19557) Reported by:
ulugutz ........ Merged revisions 374335 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374336 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374337 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/ccss.c: Destroy the generic_monitors container after the
core_instances in ccss For each item in core_instances disposed
of in the shutdown of ccss, any generic monitor instances
referenced by the objects will be removed from generic_monitors
during their destruction. Hilarity ensues if generic_monitors no
longer exists. Thanks to the Asterisk Test Suite's generic_ccss
test for complaining loudly when it ran into this. ........
Merged revisions 374300 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374301 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-02 23:23 +0000 [r374269-374279] Richard Mudgett <rmudgett@digium.com>
* main/astobj2.c: Missed an astobj2.c debug tag.
* main/astobj2.c: * Add ref debug tags to astobj2.c ref usage. *
Make container nodes not show up in the ref debug log.
2012-10-02 21:26 +0000 [r374197-374259] Matthew Jordan <mjordan@digium.com>
* /, main/asterisk.c: Ensure Shutdown AMI event is still fired
during Asterisk shutdown Richard pointed out that having the
manager dispose of itself gracefully during shutdown meant that
the Shutdown event will no longer get fired. This patch moves the
AMI event just prior to running the atexit callbacks. ........
Merged revisions 374230 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374231 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374248 from
http://svn.asterisk.org/svn/asterisk/branches/11
* utils/hashtest2.c: Modify hashtest2 to compile after r374213.
Someone, somewhere, may care. Because hashtest2 has to provide
symbols for things in asterisk that items it includes may use,
when astobj2 decided to use ast_register_atexit it needed to
provide a declaration for that as well. Otherwise - no linky. On
a related note, ASTERISK-20505 was filed to convert
hashtest/hashtest2 into actual unit tests, so we don't run into
this problem again.
* main/astobj2.c, main/message.c, /: Fix findings from check-in on
r374177 Richard pointed out two problems with the check-in from
r374177: * The ast_msg_shutdown function declaration doesn't
match the prototype in main/message.c. * The ref/alloc function
usage in astobj2 (in trunk) can use the ao2_t_* variants of the
functions to allow the REF_DEBUG flag to enable/disable their
debug counterparts. ........ Merged revisions 374210 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374211 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/named_acl.c, main/cel.c, main/astobj2.c, main/format_pref.c,
main/indications.c, main/channel.c, main/data.c, main/manager.c,
main/features.c, main/config_options.c, main/event.c,
main/message.c, main/asterisk.c, main/db.c, main/xmldoc.c,
main/format.c, main/udptl.c, main/pbx.c, /, main/ccss.c,
include/asterisk/astobj2.h, channels/chan_agent.c,
res/res_xmpp.c, main/taskprocessor.c, res/res_musiconhold.c: Fix
a variety of ref counting issues This patch resolves a number of
ref leaks that occur primarily on Asterisk shutdown. It adds a
variety of shutdown routines to core portions of Asterisk such
that they can reclaim resources allocate duringd initialization.
Review: https://reviewboard.asterisk.org/r/2137 ........ Merged
revisions 374177 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374178 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374196 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-01 23:39 +0000 [r374164-374167] Andrew Latham <lathama@gmail.com>
* addons/app_mysql.c, include/asterisk/doxyref.h,
contrib/asterisk-ng-doxygen, main/http.c, main/asterisk.c:
Doxygen Cleanup Start adding configuration file linking and
pages. Add module loading doxygen block. Breaking up commits to
keep it easy to track (issue ASTERISK-20259)
* channels/chan_console.c, channels/chan_gtalk.c,
channels/chan_iax2.c, channels/chan_oss.c, channels/chan_mgcp.c,
channels/chan_jingle.c, channels/chan_dahdi.c,
channels/chan_misdn.c, channels/chan_vpb.cc, channels/chan_sip.c,
channels/chan_skinny.c, channels/chan_motif.c,
channels/chan_alsa.c: Doxygen Cleanup Start adding configuration
file linking and pages. Add module loading doxygen block.
Breaking up commits to keep it easy to track (issue
ASTERISK-20259)
* res/res_smdi.c, res/res_snmp.c, res/res_fax.c,
res/res_phoneprov.c, res/res_musiconhold.c, res/res_xmpp.c,
res/res_config_ldap.c, res/res_curl.c, res/res_config_sqlite.c,
res/res_timing_kqueue.c, res/res_odbc.c, res/res_calendar.c,
res/res_clialiases.c, res/res_config_sqlite3.c: Doxygen Cleanup
Start adding configuration file linking and pages. Add module
loading doxygen block. Breaking up commits to keep it easy to
track (issue ASTERISK-20259)
* apps/app_followme.c, apps/app_queue.c, apps/app_adsiprog.c,
apps/app_voicemail.c, apps/app_meetme.c, apps/app_festival.c,
apps/app_skel.c, apps/app_alarmreceiver.c, apps/app_amd.c,
apps/app_confbridge.c: Doxygen Cleanup Start adding configuration
file linking and pages. Add module loading doxygen block. (issue
ASTERISK-20259)
2012-10-01 20:36 +0000 [r374134-374151] Sean Bright <sean@malleable.com>
* tests/test_db.c, apps/app_queue.c, main/db.c,
include/asterisk/astdb.h, /: app_queue: Support persisting and
loading of long member lists. Greenlight in #asterisk brought up
that he was receiving an error message "Could not create
persistent member string, out of space" when running app_queue in
Asterisk 10. dump_queue_members() made an assumption that 8K
would be enough to store the generated string, but with queues
that have large member lists this is not always the case. This
patch removes the limitation and uses ast_str instead of a fixed
sized buffer. The complicating factor comes from the fact that
ast_db_get requires a buffer and buffer size argument, which
doesn't let us pull back more than what we pass in, so I
introduced a new ast_db_get_allocated() which returns an
ast_strdup()'d copy of the value from astdb. As an aside, I did
some testing on the maximum size of data that we can store in the
BDB library we distribute and was able to store a 10MB string and
retrieve it with no problems, so I feel this is a safe patch.
Review: https://reviewboard.asterisk.org/r/2136/ ........ Merged
revisions 374108 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 374135 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374150 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/db.c, /: Use ast_copy_string instead of strncpy to guarantee
a NUL terminated string. ........ Merged revisions 374132 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374133 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-01 17:05 +0000 [r374109] Richard Mudgett <rmudgett@digium.com>
* main/cli.c: Change core show help output format. The CLI "core
show help" output leaves something to be desired. 1) The command
is truncated to a maximum of 30 characters. 2) The output columns
are mirrored from the 31st column. Current output format: logger
mute Toggle logging output to a console logger reload Reopens the
log files logger rotate Rotates and reopens the log files logger
set level {DEBUG|NOTICE Enables/Disables a specific logging level
for this console logger show channels List configured log
channels New format: logger mute -- Toggle logging output to a
console logger reload -- Reopens the log files logger rotate --
Rotates and reopens the log files logger set level
{DEBUG|NOTICE|WARNING|ERROR|VERBOSE|DTMF} {on|off} --
Enables/Disables a specific logging level for this console logger
show channels -- List configured log channels Review:
https://reviewboard.asterisk.org/r/2133/
2012-10-01 16:26 +0000 [r374107] Mark Michelson <mmichelson@digium.com>
* /, apps/confbridge/conf_config_parser.c: Don't destroy confbridge
config when error is encountered during a reload. Not panicking
means that the old config is kept. (closes issue ASTERISK-20458)
Reported by: Leif Madsen Patches: ASTERISK-20458.patch uploaded
by Mark Michelson(license #5049) Tested by Leif Madsen ........
Merged revisions 374106 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-10-01 12:29 +0000 [r374096] Joshua Colp <jcolp@digium.com>
* include/asterisk/speech.h, res/res_speech.c,
apps/app_speech_utils.c: Add support for retrieving engine
specific settings using the speech API and from dialplan. (closes
issue ASTERISK-17136) Reported by: kenner
2012-09-29 03:56 +0000 [r374086] Matthew Jordan <mjordan@digium.com>
* /, channels/chan_sip.c: Fix ref leak when adding ICE candidates
to an SDP There was a missing decrement to the reference count
for the current ICE candidate when local candidates are being
added to an outbound SDP. This patch corrects that. ........
Merged revisions 374085 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-28 22:11 +0000 [r374075] Richard Mudgett <rmudgett@digium.com>
* res/res_agi.c: Include channel uniqueid in "AsyncAGI" and
"AGIExec" events. * Added AMI event documentation for AsyncAGI
and AGIExec events. (closes issue ASTERISK-20318) Reported by:
Dan Cropp Patches: res_agi_patch.txt (license #6422) patch
uploaded by Dan Cropp modified for trunk.
2012-09-28 19:37 +0000 [r374060] Jonathan Rose <jrose@digium.com>
* res/res_jabber.c, /: res_jabber: Remove CLI command 'jabber test'
The opinion of development was that it is both improper to have
Matt's personal email address used in the source and that the
command wouldn't be useful without it. (closes issue AST-467)
Reported by: Malcolm Davenport ........ Merged revisions 374032
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 374045 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 374059 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-28 18:27 +0000 [r374030] Richard Mudgett <rmudgett@digium.com>
* channels/chan_dahdi.c, channels/sig_analog.c, UPGRADE.txt,
main/app.c, apps/app_senddtmf.c: Add pause one second W dial
modifier. * The following dialplan applications now recognize 'W'
to pause sending DTMF for one second in addition to the
previously existing 'w' that paused sending DTMF for half a
second. Dial, ExternalIVR, and SendDTMF. * The chan_dahdi analog
port dialing and deferred DTMF dialing for PRI now distinguishes
between 'w' and 'W'. The 'w' pauses dialing for half a second.
The 'W' pauses dialing for one second. * Created dahdi_dial_str()
in chan_dahdi that eliminated a lot of duplicated dialing code
and diagnostic messages for the channel driver. (closes issue
ASTERISK-20039) Reported by: Jeremiah Gowdy Patches:
jgowdy-wait-6-22-2012.diff (license #5621) patch uploaded by
Jeremiah Gowdy Expanded patch to add support in chan_dahdi.
Tested by: rmudgett
2012-09-28 13:04 +0000 [r374020] Brent Eagles <beagles@digium.com>
* res/res_xmpp.c, main/message.c, /: Reset hangup flags on channels
created through messages and cleanup globals in res_xmpp on
unload. This patch fixes an issue where hangup flags were not
being reset on a channel, affecting subsequent use of that
channel. The patch also adds some additional cleanup to res_xmpp
to fix an issue with reloading the module. (closes
ASTERISK-20360) Reported by: Noah Engelberth Tested by: beagles
Review: https://reviewboard.asterisk.org/r/2134/ ........ Merged
revisions 374019 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-28 12:17 +0000 [r373992] Joshua Colp <jcolp@digium.com>
* res/res_agi.c, /: Update documentation to make it explicit that
"stream file" will not restart musiconhold. (issue
ASTERISK-17367) Reported by: oej ........ Merged revisions 373989
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 373990 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373991 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-28 03:06 +0000 [r373979] Matthew Jordan <mjordan@digium.com>
* CHANGES, apps/app_senddtmf.c: Add Duration header for PlayDTMF
AMI Action This patch adds an optional header to the PlayDTMF AMI
action, Duration. It allows the duration of the DTMF digit to be
played on the channel to be specified in milliseconds. (closes
issue ASTERISK-18172) Reported by: Renato dos Santos patches:
send-dtmf.patch uploaded by Renato dos Santos (license #6267)
Modified slightly for this commit for Asterisk 12.
2012-09-27 22:43 +0000 [r373965-373967] Richard Mudgett <rmudgett@digium.com>
* apps/app_dial.c: Tweak app_dial documentation.
* main/app.c: Cleanup ast_dtmf_stream() * Made ast_dtmf_stream()
wait after starting the silence generator rather than before. *
Made ast_dtmf_stream() put the peer in autoservice for the whole
time things are being done to the chan.
* apps/app_senddtmf.c, /: Fix SendDTMF crash and channel reference
leak using channel name parameter. The SendDTMF channel name
parameter has two issues. 1) Crashes if the channel name does not
exist. 2) Leaks a channel reference if the channel is the current
channel. Problem introduced by ASTERISK-15956. * Updated SendDTMF
documentation. * Renamed app to senddtmf_name and tweaked the
type. ........ Merged revisions 373945 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373946 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373954 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-27 17:12 +0000 [r373915] Joshua Colp <jcolp@digium.com>
* res/res_http_websocket.c, /, channels/chan_sip.c,
include/asterisk/http_websocket.h: Make res_http_websocket an
optional dependency on supported platforms for chan_sip. (closes
issue ASTERISK-20439) Reported by: sruffell Patches:
0001-chan_sip-websocket-support-is-an-optional-API.patch uploaded
by sruffell (license 5417) ........ Merged revisions 373914 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-27 17:02 +0000 [r373913] Kinsey Moore <kmoore@digium.com>
* CHANGES, apps/app_voicemail.c: Add VoicemailRefresh AMI Action
Currently, if there are modifications to mailboxes that Asterisk
is not aware of, the user needs to add "pollmailboxes" to their
mailbox configuration, which repeatedly polls the subscribed
mailboxes for changes. This results in a lot of extra work for
the CPU. This patch introduces the AMI command VoicemailRefresh
which permits external applications to trigger the refresh
themselves. The refresh can apply to a specified mailbox only, an
entire context, or all configured mailboxes. Even a refresh
performed on every mailbox would not consume as much CPU as the
pollmailboxes option, given that pollmailboxes runs continuously
and this only runs on demand. (closes issue ASTERISK-17206)
(closes issue ASTERISK-19908) Reported-by: Jeff Hutchins
Reported-by: Tilghman Lesher Patch-by: Tilghman Lesher
2012-09-27 16:53 +0000 [r373881-373912] Joshua Colp <jcolp@digium.com>
* /, main/loader.c: loader: Ensure dependent modules are properly
initialized. If an Asterisk module specifies a dependency in
ast_module_info.nonoptreq, it is possible for Asterisk to skip
calling the modules's .load function. Asterisk was loading and
linking the module via load_dynamic_module() but was not adding
the module to the resource_heap. Therefore the module was not
initialized based on it's priority along with the other modules
in the heap. Now use load_resource() instead of
load_dynamic_module() for non-optional requirement. This will add
the module to the resource_heap so the module can be properly
initialized in the correct order. This is required if there are
any module global data structures initialized in the .load()
callback for the module on platforms which do not support weak
references. (issue ASTERISK-20439) Reported by: sruffell Patches:
0001-loader-Ensure-dependent-modules-are-properly-initial.patch
uploaded by sruffell (license 5417) ........ Merged revisions
373909 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 373910 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373911 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_local.c, /: Fix an issue where Local channels
dialed by app_queue are considered in use immediately. The
chan_local channel driver returns a device state of in use even
if a created Local channel has not yet been dialed. This fix
changes the logic to return a state of not in use until the
channel itself has been dialed. (closes issue ASTERISK-20390)
Reported by: tim_ringenbach Review:
https://reviewboard.asterisk.org/r/2116/ ........ Merged
revisions 373878 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373879 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373880 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-26 21:17 +0000 [r373852] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Move handling of 408 response so there is
no misleading warning message. (closes issue ASTERISK-20060)
Reported by: Walter Doekes ........ Merged revisions 373848 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373849 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373850 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-26 18:23 +0000 [r373835] Richard Mudgett <rmudgett@digium.com>
* /, apps/app_meetme.c: Fixed meetme tab completion and command
documentation. * Removed unnecessary case sensitivity in meetme
list, lock, unlock, mute, unmute, and kick commands. * Separated
meetme lock/unlock, mute/unmute, and kick commands into their own
registered commands to simplify tab completion and parameter
checking. meetme_lock_cmd(), meetme_mute_cmd(), and
meetme_kick_cmd() * Simplified meetme_show_cmd() (closes issue
AST-1006) Reported by: John Bigelow Tested by: rmudgett ........
Merged revisions 373815 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373816 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373818 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-26 08:31 +0000 [r373805] Alec L Davis <sivad.a@paradise.net.nz>
* apps/app_queue.c, /: app_queue: 'agent available' hint, cleanup
restart, and initial state Fix previously untested senarios; 1).
On queue initialisation set queue_avail devstate to INUSE.
Previously was unavailable, which indicated an agent was
available. 2). When removing members, if there are no other
members available, set queue_avail to INUSE. Previously, if a
member interface had become 'unavailable', they were never going
to be removed, particularly when persistant queues is enabled.
3). When adding a member, check that they are available, if they
are set queue_avail to NOT_INUSE. Previously on reloaded, members
may have been 'unavailable'. 4). When pausing or unpausing a
member, set appropriate queue availability. alecdavis (license
585) Reported by: Alec Davis Tested by: alecdavis Review:
https://reviewboard.asterisk.org/r/2129/ ........ Merged
revisions 373804 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 23:10 +0000 [r373740-373776] Mark Michelson <mmichelson@digium.com>
* /, main/say.c: Fix saying of date in Dutch. The Dutch say the
date before the month. (closes issue ASTERISK-20353) Reported by:
Teun Ouwehand ........ Merged revisions 373773 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373774 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373775 from
http://svn.asterisk.org/svn/asterisk/branches/11
* configs/agents.conf.sample, /, channels/chan_agent.c: Remove dead
code and documentation for nonexistent feature. multiplelogin was
removed from chan_agent back in 1.6.0 when AgentCallbackLogin()
was removed. (closes issue AST-948) reported by Steve Pitts
........ Merged revisions 373768 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373769 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373770 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_voicemail.c, /: Fix error where improper IMAP greetings
would be deleted. (closes issue ASTERISK-20435) Reported by:
fhackenberger Patches: asterisk-20435-imap-del-greeting.diff
uploaded by Michael L. Young (License #5026) (with suggested
modification made by me) ........ Merged revisions 373735 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373737 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373738 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 20:14 +0000 [r373708] Joshua Colp <jcolp@digium.com>
* channels/chan_local.c, /: Fix T.38 support when used with
chan_local in between. Users of the T.38 API can indicate
AST_T38_REQUEST_PARMS on a channel to request that the channel
indicate a T.38 negotiation with the parameters present on the
channel. The return value of this indication is expected to be
AST_T38_REQUEST_PARMS upon success but with chan_local involved
this could never occur. This fix changes chan_local to always
return AST_T38_REQUEST_PARMS for this situation. If the
underlying channel technology on the other side does not support
T.38 this would have been determined ahead of time using
ast_channel_get_t38_state and an indication would not occur.
(closes issue ASTERISK-20229) Reported by: wdoekes Patches:
ASTERISK-20229.patch uploaded by wdoekes (license 5674) Review:
https://reviewboard.asterisk.org/r/2070/ ........ Merged
revisions 373705 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373706 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373707 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 19:29 +0000 [r373701] Mark Michelson <mmichelson@digium.com>
* CHANGES, channels/sig_pri.c, funcs/func_callerid.c,
include/asterisk/callerid.h, main/channel.c,
channels/chan_misdn.c, channels/chan_sip.c, main/callerid.c,
include/asterisk/channel.h: Allow for redirecting reasons to be
set to arbitrary strings. This allows for the REDIRECTING
dialplan function to be used to set the reason to any string. The
SIP channel driver has been modified to set the redirecting
reason string to the value received in a Diversion header. In
addition, SIP 480 response reason text will set the redirecting
reason as well. (closes issue AST-942) reported by Malcolm
Davenport (closes issue AST-943) reported by Malcolm Davenport
Review: https://reviewboard.asterisk.org/r/2101
2012-09-25 19:08 +0000 [r373691] Terry Wilson <twilson@digium.com>
* /, channels/chan_sip.c, configs/sip.conf.sample,
channels/sip/include/sip.h: Properly handle UAC/UAS roles for SIP
session timers The SIP session timer mechanism contains a
mandatory 'refresher' parameter (included in the Session-Expires
header) which is used in the session timer offer/answer signaling
within a SIP Invite dialog. It looks like asterisk is
interpreting the uac resp. uas role only as the initial role of
client and server (caller is uac, callee is uas). The standard
rfc 4028 however assigns the client role to the ((RE)-Invite)
requester, the server role to the ((RE)-Invite) responder. This
patch has Asterisk track the actual refresher as "us" or "them"
as opposed to relying on just the configured "uas" or "uac"
properties. (closes issue AST-922) Reported by: Thomas Airmont
Review: https://reviewboard.asterisk.org/r/2118/ ........ Merged
revisions 373652 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373665 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373690 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 18:33 +0000 [r373689] Kinsey Moore <kmoore@digium.com>
* apps/app_queue.c, /: "show" completion option for "queue"
shouldn't appear twice When tab-completing CLI commands starting
with "queue", "show" appeared twice in the list due to the way
that Asterisk's tab completion functions and the order in which
the commands were registered. The registration order has been
altered to resolve this issue. (closes issue AST-940)
Reported-by: Steve Pitts ........ Merged revisions 373666 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373675 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373688 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 17:22 +0000 [r373636-373656] Richard Mudgett <rmudgett@digium.com>
* /, codecs/ilbc/iLBC_encode.c, codecs/ilbc/iLBC_decode.c: Fix
valgrind found memcpy issues in codec_ilbc. Valgrind found
codec_ilbc using memcpy instead of memmove for overlapping memory
blocks. (issue ASTERISK-19890) (closes issue ASTERISK-20231)
Reported by: Walter Doekes Patches: ASTERISK-20231.patch (license
#5674) patch uploaded by Walter Doekes ........ Merged revisions
373640 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 373645 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373650 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, codecs/Makefile: Make rebuild GSM, ilbc, or lpc10 codecs if
the respective sources change. ........ Merged revisions 373618
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 373633 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373635 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 16:45 +0000 [r373608-373634] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Set Quality of Service for
video rtp instance (closes issue ASTERISK-20201) Reported by:
ddkprog Patches: chan_sip.c.diff uploaded by ddkprog (license
6008) ........ Merged revisions 373617 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373631 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373632 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_agi.c: res_agi: async_agi responsiveness improvement on
datastore problems This patch changes get_agi_cmd so that the
return can be checked to differentiate between an empty list
success and something that triggered an error. This in turn
allows launch_asyncagi to detect these errors and break free from
the command processing loop so that the async agi can be ended
more cleanly (closes issue ASTERISK-20109) Reported by: Jeremiah
Gowdy Patches: jgowdy-7-9-2012.diff uploaded by Jeremiah Gowdy
(license 6358) (Modified by me to fix some logical issues and
apply to trunk) Review: https://reviewboard.asterisk.org/r/2117/
2012-09-25 14:13 +0000 [r373583] Mark Michelson <mmichelson@digium.com>
* funcs/func_presencestate.c, /: "He who go through turnstile
sideways is going to Bangkok" ........ Merged revisions 373582
from http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 13:29 +0000 [r373581] Kinsey Moore <kmoore@digium.com>
* configs/res_odbc.conf.sample, /: Fix documentation for default
username in res_odbc This was previously stated to be "root", but
is actually the name of the context if unspecified. (closes issue
ASTERISK-20258) Reported by: Stefan x ........ Merged revisions
373578 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 373579 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373580 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-25 12:12 +0000 [r373553] Joshua Colp <jcolp@digium.com>
* res/res_rtp_multicast.c, /: Fix an issue where a caller to
ast_write on a MulticastRTP channel would determine it failed
when in reality it did not. When sending RTP packets via
multicast the amount of data sent is stored in a variable and
returned from the write function. This is incorrect as any
non-zero value returned is considered a failure while a return
value of 0 is success. For callers (such as ast_streamfile) that
checked the return value they would have considered it a failure
when in reality nothing went wrong and it was actually a success.
The write function for the multicast RTP engine now returns -1 on
failure and 0 on success, as it should. (closes issue
ASTERISK-17254) Reported by: wybecom ........ Merged revisions
373550 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 373551 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373552 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-24 22:14 +0000 [r373503] Richard Mudgett <rmudgett@digium.com>
* /, channels/chan_sip.c: Be consistent, send From: "Anonymous"
<sip:anonymous@anonymous.invalid> When setting
CALLERID(pres)=unavailable in the dialplan, the From header in
the SIP message contains "Anonymous"
<sip:Anonymous@anonymous.invalid>. For consistency, Asterisk
should use a lowercase a in the userpart of the URI. * Make the
From header use a lowercase A in the userpart of the anonymous
URI. (closes issue ASTERISK-19838) Reported by: Antti Yrjola
Patches: chan_sip_patch_ASTERISK-19838.patch (license #6383)
patch uploaded by Antti Yrjola ........ Merged revisions 373500
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 373501 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373502 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-24 21:19 +0000 [r373479] Jonathan Rose <jrose@digium.com>
* apps/app_mixmonitor.c, funcs/func_audiohookinherit.c, /:
func_audiohookinherit: Document some missed sources. This patch
also mentions that AUDIOHOOK_INHERIT can be used to transfer
MixMonitor audiohooks. There is also wiki that addresses
audiohooks and the use of AUDIOHOOK_INHERIT at the following
link: https://wiki.asterisk.org/wiki/display/AST/Audiohooks
(closes issue ASTERISK-18220) Reported by: Ishfaq Malik ........
Merged revisions 373467 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373468 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373470 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-24 21:15 +0000 [r373471] Richard Mudgett <rmudgett@digium.com>
* /, channels/chan_sip.c: Fix potential reentrancy problems in
chan_sip. Asterisk v1.8 and later was not as vulnerable to this
issue. * Made find_call() lock each private as it processes the
found dialogs. (Primary cause of ABE-2876) * Made the other
functions that traverse the dialogs container lock each private
as it examines them. * Fix race condition in sip_call() if the
thread that sent the INVITE is held up long enough for a response
to be processed. The p->initid for the INVITE retransmission
could be added after it was canceled by the response processing.
* Made __sip_destroy() clean up resource pointers after freeing.
This is primarily defensive in case someone has a stale private
pointer. * Removed redundant memset() in reqprep(). The call to
init_req() already does the memset() and is the first reference
to req in reqprep(). * Removed useless set of req.method in
transmit_invite(). The calls to initreqprep() and reqprep() have
to do this because they memset() the req. JIRA ABE-2876
.......... Merged -r373423 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
........ Merged revisions 373424 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373466 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373469 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-24 19:23 +0000 [r373414-373456] Joshua Colp <jcolp@digium.com>
* /, channels/chan_sip.c: Fix a deadlock caused by a race condition
between removing a hint and reloading the dialplan and
subscribing to the removed hint. If conditions were right it was
possible for both the PBX core and chan_sip to deadlock by both
having a lock that the other wants. In the case of the PBX core
it had the contexts lock and wanted a SIP dialog lock, while in
the case of chan_sip it had the SIP dialog lock and wanted the
contexts lock. This fix unlocks the SIP dialog before getting the
extension state so that the other thread will not block on trying
to lock it. Once the extension state is retrieved the SIP dialog
is locked again and life carries on. As the SIP dialog is
reference counted it is not possible for it to go away after
unlocking. (closes issue ASTERISK-20437) Reported by: jhutchins
........ Merged revisions 373438 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373440 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373454 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c, res/res_format_attr_h264.c: Fix an issue
with H.264 format attribute comparison and fix an issue with
improper SDP being produced. The H.264 format attribute module
compares two format attribute structures to determine if they are
compatible or not. In some instances it was possible for this
check to determine that both structures were incompatible when
they actually should be considered compatible. This check has now
been made even more permissive by assuming that if no attribute
information is available the two structures are compatible. If
both structures contain attribute information a base level
comparison of the H.264 IDC value is done to see if they are
compatible or not. The above issue uncovered a secondary issue in
chan_sip where the SDP being produced would be incorrect if the
formats were considered incompatible. This has now been fixed by
checking that all information required to produce the SDP is
available instead of assuming it is. (closes issue
ASTERISK-20464) Reported by: Leif Madsen ........ Merged
revisions 373413 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-24 12:42 +0000 [r373404] Brent Eagles <beagles@digium.com>
* res/res_rtp_asterisk.c, /, configs/rtp.conf.sample:
res_rtp_asterisk: Make TURN and STUN server configurations
consistent. This patch removes the turnport configuration
property and changes the turnaddr property to be a combined
host[:port] configuration string. The patch also modifies the
documentation in the example configuration to reflect the
property changes and adds some additional text indicating how the
STUN port is configured. (closes issue ASTERISK-20344) Reported
by: beagles Tested by: beagles Review:
https://reviewboard.asterisk.org/r/2111/ ........ Merged
revisions 373403 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-22 20:43 +0000 [r373384] Andrew Latham <lathama@gmail.com>
* include/asterisk/xmpp.h, apps/app_minivm.c,
cel/cel_sqlite3_custom.c, include/asterisk/format.h,
main/audiohook.c, include/asterisk/pbx.h,
res/res_timing_kqueue.c, addons/chan_mobile.c, main/asterisk.c,
main/xmldoc.c, channels/chan_mgcp.c, apps/app_voicemail.c,
utils/refcounter.c, res/res_config_pgsql.c, main/pbx.c,
main/ccss.c, channels/chan_sip.c, tests/test_gosub.c,
include/asterisk/doxygen/mantisworkflow.h (removed),
contrib/asterisk-ng-doxygen, channels/chan_agent.c, main/astfd.c,
apps/app_queue.c, codecs/speex/speex_resampler.h,
res/res_config_sqlite.c, Makefile, cel/cel_odbc.c,
include/asterisk/doxyref.h, main/manager.c, doc/README.txt:
Doxygen Updates Janitor Work * Whitespace, doc-blocks, spelling,
case, missing and incorrect tags. * Add cleanup to Makefile for
the Doxygen configuration update * Start updating Doxygen
configuration for cleaner output * Enable inclusion of
configuration files into documentation * remove mantisworkflow...
* update documentation README * Add markup to Tilghman's email
and talk with him about updating his email, he knows... * no code
changes on this commit other than the mentioned Makefile change
(issue ASTERISK-20259)
2012-09-21 19:35 +0000 [r373369] Jonathan Rose <jrose@digium.com>
* channels/iax2-provision.c, /: iax2-provision: Fix improper return
on failed cache retrieval (closes issue ASTERISK-20337) reported
by: John Covert Patches: iax2-provision.c.patch uploaded by John
Covert (license 5512) ........ Merged revisions 373342 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373343 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373368 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-21 18:22 +0000 [r373320-373341] Andrew Latham <lathama@gmail.com>
* contrib/asterisk-ng-doxygen: Update Doxygen Config Comments This
annoying update is almost totally whitespace and updated config
comments. I did add Python to the documented file types. (issue
ASTERISK-20259)
* channels/chan_misdn.c,
include/asterisk/doxygen/asterisk-git-howto.h,
include/asterisk/xmpp.h, include/asterisk/jabber.h,
channels/chan_h323.c, include/asterisk/doxygen/reviewboard.h,
channels/sip/include/sdp_crypto.h, main/asterisk.c,
main/xmldoc.c, include/asterisk/doxygen/architecture.h,
include/asterisk/acl.h, cel/cel_pgsql.c, funcs/func_speex.c,
cel/cel_radius.c, apps/app_meetme.c, main/ccss.c, res/res_snmp.c,
include/asterisk/doxygen/mantisworkflow.h, main/sha1.c,
channels/sip/reqresp_parser.c, include/asterisk/localtime.h,
apps/app_ices.c, cdr/cdr_pgsql.c, res/res_xmpp.c,
res/res_jabber.c, cdr/cdr_radius.c,
include/asterisk/doxygen/releases.h, include/asterisk/doxyref.h,
res/res_smdi.c, main/manager.c, main/tdd.c,
include/asterisk/bridging_features.h, main/ast_expr2f.c,
cdr/cdr_sqlite.c, apps/app_skel.c, include/asterisk/sip_api.h,
channels/chan_motif.c, main/http.c, apps/app_confbridge.c,
include/asterisk/doxygen/commits.h, res/res_config_ldap.c,
res/res_curl.c, main/strings.c, res/res_config_pgsql.c,
codecs/codec_speex.c, res/res_crypto.c, main/acl.c,
channels/chan_console.c, res/res_config_curl.c,
channels/chan_jingle.c, include/asterisk/app.h,
include/asterisk/res_odbc.h: Doxygen Updates - janitor work
Doxygen updates including mistakes, misspellings, missing
parameters, updates for Doxygen style. Some missing txt file
links are removed but their content or essense will be included
in some later updates. A majority of the txt files were removed
in the 1.6 era but never noted. The HR and EXTREF are simple
changes that make the documentation more compatable with more
versions of Doxygen. Further updates coming. (issue
ASTERISK-20259)
* README: Start work on documentation janitor project with a little
commit. This adds a link to the Asterisk wiki at
https://wiki.asterisk.org to the README file. (issue
ASTERISK-20259)
2012-09-21 15:41 +0000 [r373319] Jonathan Rose <jrose@digium.com>
* /, apps/app_queue.c: app_queue: Make queue reload members and
variants of that work Prior to this patch, 'queue reload members'
cli command did not work at all. This also affects the manager
function 'QueueReload' when supplied with the 'members: yes'
field. (closes issue AST-956) Reported by: John Bigelow ........
Merged revisions 373298 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373300 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373318 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-21 09:11 +0000 [r373275-373284] Alec L Davis <sivad.a@paradise.net.nz>
* main/dsp.c: dsp.c: remove more whitespace mentioned in review2107
* main/dsp.c: dsp.c ast_dsp_call_progress use local short variable
in loop, plus other cleanup janitor cleanup. No functional
change. 1). ast_dsp_call_progress: use 'short samp' instead of
s[x] inside loop. apply same casting as other _init, dsp->energy
= (int32_t) samp * (int32_t) samp 2). ast_dtmf_detect_init: move
repeated setting of s->energy to outside of loop. do
goertzel_init loop first before setting s->lasthit and
s->current_hit, consistant with ast_dsp_digitreset() 3).
ast_mf_detect_init: do goertzel_init loop first before setting
s->hits[] and s->current_hit, consistant with
ast_dsp_digitreset() 4). Don't chain init different variables, as
the type may change Review
https://reviewboard.asterisk.org/r/2107/
2012-09-20 19:16 +0000 [r373247] Joshua Colp <jcolp@digium.com>
* /, apps/app_meetme.c: Fix incorrect MeetME conference bridge
reference count decrementing and sometimes premature destruction.
When using the 'e' or 'E' option to MeetMe the configured
conference bridges are loaded and examined to see if any are
empty. If no conference bridges are empty the caller is prompted
to enter the number of one. This operation left around a pointer
to the last created conference bridge still containing
participants. When the caller that was not able to find any empty
conference bridge hung up this pointer was disposed of and the
reference count of the conference bridge decremented. If there
was only a single participant in the conference bridge it was
ultimately destroyed prematurely. (closes issue AST-994) Reported
by: John Bigelow ........ Merged revisions 373242 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373245 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373246 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-20 18:44 +0000 [r373239] Matthew Jordan <mjordan@digium.com>
* CHANGES, apps/app_queue.c, configs/extensions.conf.sample, /: Add
queue monitoring hints This patch adds support for hints on a
queue. Hints can be added using the nomenclature 'Queue:name',
where name is the name of the queue being monitored. This nifty
feature was done by Alec Davis. Review:
https://reviewboard.asterisk.org/r/1619 Reported by: Alec Davis
Tested by: alecdavis patches: review1619.diff2 by alecdavis
(license 585) ........ Merged revisions 373235 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-20 18:27 +0000 [r373234] Joshua Colp <jcolp@digium.com>
* res/res_rtp_asterisk.c, main/rtp_engine.c, /,
channels/chan_sip.c, configure, include/asterisk/autoconfig.h.in,
configure.ac, configs/sip.conf.sample,
include/asterisk/rtp_engine.h, channels/sip/include/sip.h: Add
support for DTLS-SRTP to res_rtp_asterisk and chan_sip. As
mentioned on the review for this, WebRTC has moved towards
choosing DTLS-SRTP as the mechanism for key exchange for SRTP.
This commit adds support for this but makes it available for
normal SIP clients as well. Testing has been done to ensure that
this introduces no regressions with existing behavior and also
that it functions as expected. Review:
https://reviewboard.asterisk.org/r/2113/ ........ Merged
revisions 373229 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-20 18:02 +0000 [r373222] Matthew Jordan <mjordan@digium.com>
* apps/app_queue.c: Support all ways a member can be available for
'agent available' hints Alec's patch in r373188 added the ability
to subscribe to a hint for when Queue members are available. This
patch modifies the check that determines when a Queue member is
available by refactoring the availability checks in
num_available_members into a shared function is_member_available.
This should now handle the ringinuse option, as well as device
state values other than AST_DEVICE_NOT_INUSE.
2012-09-20 17:22 +0000 [r373221] Richard Mudgett <rmudgett@digium.com>
* apps/app_directed_pickup.c, funcs/func_channel.c,
main/features.c, include/asterisk/channel.h,
include/asterisk/features.h, main/channel.c, /: Named call pickup
groups. Fixes, missing functionality, and improvements. *
ASTERISK-20383 Missing named call pickup group features:
CHANNEL(callgroup) - Need CHANNEL(namedcallgroup)
CHANNEL(pickupgroup) - Need CHANNEL(namedpickupgroup) Pickup() -
Needs to also select from named pickup groups. * ASTERISK-20384
Using the pickupexten, the pickup channel selection could fail
even though there was a call it could have picked up. In a call
pickup race when there are multiple calls to pickup and two
extensions try to pickup a call, it is conceivable that the loser
will not pick up any call even though it could have picked up the
next oldest matching call. Regression because of the named call
pickup group feature. * See ASTERISK-20386 for the implementation
improvements. These are the changes in channel.c and channel.h. *
Fixed some locking issues in CHANNEL(). (closes issue
ASTERISK-20383) Reported by: rmudgett (closes issue
ASTERISK-20384) Reported by: rmudgett (closes issue
ASTERISK-20386) Reported by: rmudgett Tested by: rmudgett Review:
https://reviewboard.asterisk.org/r/2112/ ........ Merged
revisions 373220 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-20 13:04 +0000 [r373212] Kinsey Moore <kmoore@digium.com>
* /, channels/chan_sip.c: Correct handling of unknown SDP stream
types When the patch to handle arbitrary SDP stream arrangements
went into Asterisk, it also included an ability to transparently
decline unknown stream types. The scanf calls used were not
checked properly causing this part of the functionality to be
broken. (closes issue ASTERISK-20203) ........ Merged revisions
373211 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-20 11:05 +0000 [r373203] Sean Bright <sean@malleable.com>
* res/res_curl.c: When trying to unload res_curl.so, warn about all
dependent modules. Before this, attempting to unload res_curl.so
would warn you about the first module it found that was
dependent. We now warn about all of the loaded modules instead.
2012-09-20 10:41 +0000 [r373188-373202] Alec L Davis <sivad.a@paradise.net.nz>
* main/dsp.c: dsp.c: remove whitespace mentioned in review2107
Related https://reviewboard.asterisk.org/r/2107/
* configs/extensions.conf.sample, CHANGES, apps/app_queue.c:
app_queue: Support an 'agent available' hint Sets INUSE when no
free agents, NOT_INUSE when an agent is free. modifes
handle_statechange() scan members loop to scan for a free agent
and updates the Queue:queuename_avial devstate. Previously exited
early if the member was found in the queue. Now Exits later when
both a member was found, and a free agent was found. alecdavis
(license 585) Reported by: Alec Davis Tested by: alecdavis
Review: https://reviewboard.asterisk.org/r/2121/
2012-09-18 20:19 +0000 [r373134-373142] Sean Bright <sean@malleable.com>
* main/logger.c: Make the casing of CALL_ID in debug messages
consistent to satisfy my OCD.
* main/manager.c, /: Don't crash when passing a NULL message to
__astman_get_header. Before this commit, __astman_get_header
would blindly dereference the passed in 'struct message *' to
traverse the header list. There are cases, however, such as
'*CLI> sip qualify peer foo' where the message pointer is NULL,
so we need to check for that. ........ Merged revisions 373131
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 373132 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373133 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-18 15:50 +0000 [r373120] David M. Lee <dlee@digium.com>
* makeopts.in, Makefile, include/asterisk/utils.h, /, configure,
include/asterisk/autoconfig.h.in, configure.ac: Add
-fnested-functions compile flag, if needed. In order to use
nested functions on some versions of GCC (e.g. GCC on OS X), the
-fnested-functions flag must be passed to the compiler. This
patch adds detection logic to ./configure to add the flag if
necessary. It also adds a comment to utils.h as to why the nested
function needs a prototype. (closes issue ASTERISK-20399)
Reported by: David M. Lee Review:
https://reviewboard.asterisk.org/r/2102/ ........ Merged
revisions 373119 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-15 00:32 +0000 [r373108] Richard Mudgett <rmudgett@digium.com>
* /, channels/sig_ss7.c: Made companding law for SS7 calls only
determined by SS7 signaling type. For SS7, the companding law for
a call was chosen inconsistently depending upon ss7type (ITU vs
ANSI) and the DAHDI companding default (T1 vs E1). For incoming
calls, the companding law was determined by ss7type. For outgoing
calls, the companding law was determined by the DAHDI default.
With the wrong combination you would get A-law/u-law conflicts.
An A-law/u-law conflict sounds like bad static on the line. SS7
ITU signaling with E1 line: ok SS7 ITU signaling with T1 line:
noise SS7 ANSI signaling with E1 line: noise SS7 ANSI signaling
with T1 line: ok * Fix the companding law used to be determined
by the SS7 signaling type only. ........ Merged revisions 373090
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 373101 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373107 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-14 19:53 +0000 [r373080] Matthew Jordan <mjordan@digium.com>
* main/libasteriskssl.c, main/tcptls.c, /, channels/chan_sip.c:
Resolve memory leaks in TLS initialization and TLS client
connections This patch resolves two sources of memory leaks when
using TLS in Asterisk: 1) It removes improper initialization (and
multiple re-initializations) of portions of the SSL library.
Asterisk calls SSL_library_init and SSL_load_error_strings during
SSL initialization; collectively this obviates the need for
calling any of the following during initialization or client
connection handling: * ERR_load_crypto_strings (handled by
SSL_load_error_strings) * OpenSSL_add_all_algorithms (synonym for
SSL_library_init) * SSLeay_add_ssl_algorithms (synonym for
SSL_library_init) 2) Failure to completely clean up all memory
allocated by Asterisk and by the SSL library for TLS clients.
This included not freeing the SSL_CTX object in the SIP channel
driver, as well as not clearing the error stack when the TLS
client exited. Note that these memory leaks were found by Thomas
Arimont, and this patch was essentially written by him with some
minor tweaks. (closes issue AST-889) Reported by: Thomas Arimont
Tested by: Thomas Arimont patches: (bugAST-889.patch) by Thomas
Arimont (license 5525) Review:
https://reviewboard.asterisk.org/r/2105 ........ Merged revisions
373061 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 373062 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373079 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-13 20:05 +0000 [r373046-373048] David M. Lee <dlee@digium.com>
* /, main/Makefile: Fixed make clean when configured
--disable-asteriskssl ........ Merged revisions 373047 from
http://svn.asterisk.org/svn/asterisk/branches/11
* include/asterisk/channel.h, main/channel.c, /: Fix timeouts for
ast_waitfordigit[_full]. ast_waitfordigit_full would simply pass
its timeout to ast_waitfor_nandfds, expecting it to decrement the
timeout by however many milliseconds were waited. This is a
problem if it consistently waits less than 1ms. The timeout will
never be decremented, and we wait... FOREVER! This patch makes
ast_waitfordigit_full manage the timeout itself. It maintains the
previously undocumented behavior that negative timeouts wait
forever. (closes issue ASTERISK-20375) Reported by: Mark
Michelson Tested by: Mark Michelson Review:
https://reviewboard.asterisk.org/r/2109/ ........ Merged
revisions 373024 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 373025 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 373029 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-12 21:02 +0000 [r372997] Richard Mudgett <rmudgett@digium.com>
* main/astobj2.c, main/channel.c, include/asterisk/astobj2.h,
tests/test_astobj2.c: Enhance astobj2 to support other types of
containers. The new API allows for sorted containers, insertion
options, duplicate handling options, and traversal order options.
* Adds the ability for containers to be sorted when they are
created. * Adds container creation options to handle duplicates
when they are inserted. * Adds container creation option to
insert objects at the beginning or end of the container traversal
order. * Adds OBJ_PARTIAL_KEY to allow searching with a partial
key. The partial key works similarly to the OBJ_KEY flag. (The
real search speed improvement with this flag will come when
red-black trees are added.) * Adds container traversal and
iteration order options: Ascending and Descending. * Adds an
AST_DEVMODE compile feature to check the stats and integrity of
registered containers using the CLI "astobj2 container stats
<name>" and "astobj2 container check <name>". The channels
container is normally registered since it is one of the most
important containers in the system. * Adds ao2_iterator_restart()
to allow iteration to be restarted from the beginning. * Changes
the generic container object to have a v_method table pointer to
support other types of containers. * Changes the container nodes
holding objects to be ref counted. The ref counted nodes and
v_method table pointer changes pave the way to allow other types
of containers. * Includes a large astobj2 unit test enhancement
that tests the new features. (closes issue ASTERISK-19969)
Reported by: rmudgett Review:
https://reviewboard.asterisk.org/r/2078/
2012-09-12 20:54 +0000 [r372996] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Skip any non-content information when
looking for and handling content. This fixes a bug with Jitsi and
conference calling. Jitsi implements XEP-0298 which places some
conference-info information in the session-initiate request which
chan_motif did not expect to occur. ........ Merged revisions
372995 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-12 18:33 +0000 [r372976-372985] Jonathan Rose <jrose@digium.com>
* /, res/res_xmpp.c: res_xmpp: Fix a segfault caused by bodyless
messages (closes issue ASTERISK-20361) Reported by: Noah
Engelberth Review: https://reviewboard.asterisk.org/r/2108/
........ Merged revisions 372984 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/logger.c, configs/logger.conf.sample: logger: Add
rotatestrategy option of 'none' which does not perform rotations
With this option in use, it may be necessary to regulate your log
files externally. (closes issue ASTERISK-20189) Reported by: Jaco
Kroon Patches: asterisk-logger-norotate-trunk.patch uploaded by
Jaco Kroon (license 5671)
2012-09-12 15:21 +0000 [r372943] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Add channel name to a warning to make
debugging easier. The "autodestruct with owner in place" message
is typically indicative of a channel reference leak. Printing out
the name of the channel in the message may be helpful when trying
to debug the issue. ........ Merged revisions 372932 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372933 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372937 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-12 14:22 +0000 [r372931] David M. Lee <dlee@digium.com>
* /, main/Makefile: Fixed r372696 when configured
--disable-asteriskssl; properly install libasteriskssl.dylib on
OS X. I didn't realize that libasteriskssl.c was still compiled,
even when you disable asteriskssl; it simple gets statically
linked into asterisk. ........ Merged revisions 372930 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-11 22:40 +0000 [r372918] Jonathan Rose <jrose@digium.com>
* channels/chan_local.c, /: chan_local: Switch from using a random
4 digit hex identifier to unique id Changes chan_local channels
to use an 8 digit hex identifier generated atomically and
sequentially in order to eliminate the chance of having multiple
channels with the same name during high call volume situations.
(issue ASTERISK-20318) Reported by: Dan Cropp Review:
https://reviewboard.asterisk.org/r/2104/ ........ Merged
revisions 372902 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372916 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372917 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-11 21:17 +0000 [r372887-372891] Mark Michelson <mmichelson@digium.com>
* /, include/asterisk/_private.h, main/message.c, main/asterisk.c:
Fix inability to shutdown gracefully due to an unending channel
reference. message.c makes use of a special message queue channel
that exists in thread storage. This channel never goes away due
to the fact that the taskprocessor used by message.c does not get
shut down, meaning that it never ends the thread that stores the
channel. This patch fixes the problem by shutting down the
taskprocessor when Asterisk is shut down. In addition, the thread
storage has a destructor that will release the channel reference
when the taskprocessor is destroyed. (closes issue AST-937)
Reported by Jason Parker Patches: AST-937.patch uploaded by Mark
Michelson (License #5049) Tested by Jason Parker ........ Merged
revisions 372885 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372888 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/features.c: Fix bad channel application data reference.
When channels get bridged due to an AMI bridge action or a DTMF
attended transfer, the two channels that get bridged have their
application data pointing to the other channel's name. This means
that if one channel is hung up but the other moves on, it means
that the channel that moves on will have its application data
pointing at freed memory. (issue ASTERISK-20335) Reported by:
aragon ........ Merged revisions 372840 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372841 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372886 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-11 18:09 +0000 [r372874] David M. Lee <dlee@digium.com>
* Makefile, /: Corrects the astsbindir setting when installing the
sample asterisk.conf. (closes issue ASTERISK-20406) ........
Merged revisions 372863 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372864 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-11 14:43 +0000 [r372808-372832] Jonathan Rose <jrose@digium.com>
* CHANGES, UPGRADE.txt: chan_sip: Fix CHANGES and UPGRADE.txt for
r372808 (issue AST-969) Reported by John Bigelow
* channels/chan_sip.c: chan_sip: Change SIPQualifyPeer to improve
initial response time Prior to this patch, The acknowledgement
wasn't produced until after executing the sip_poke_peer action
actually responsible for qualifying the peer. Now the response is
given immediately once it is known that a peer will be qualified
and a SIPqualifypeerdone event is issued when the process is
finished. Thanks to OEJ for identifying the problem and helping
to come up with a solution. (issue AST-969) Reported by John
Bigelow Review: https://reviewboard.asterisk.org/r/2098/
2012-09-10 21:00 +0000 [r372796-372807] Kinsey Moore <kmoore@digium.com>
* /, channels/chan_iax2.c: Ensure iax2 debug output is displayed
when expected When IAX2 debug was changed from iax_showframe to
iax_outputframe, some instances were missed (or added afterward).
This was causing debug output to not be displayed when expected.
(closes issue ASTERISK-20338) Reported-by: John Covert Patch-by:
John Covert ........ Merged revisions 372804 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372805 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372806 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/devicestate.c, channels/chan_gtalk.c, res/res_jabber.c,
channels/chan_jingle.c, include/asterisk/doxygen/architecture.h,
/: Deprecate chan_gtalk, chan_jingle, and res_jabber chan_gtalk,
chan_jingle, and res_jabber are now deprecated in favor of using
chan_motif and res_xmpp. They are a feature-equivalent
replacement and are written to be more easily maintainable.
(closes issue ASTERISK-20298) Review:
https://reviewboard.asterisk.org/r/2082/ Reported-by: Leif Madsen
........ Merged revisions 372795 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-10 19:22 +0000 [r372787] David M. Lee <dlee@digium.com>
* res/res_rtp_asterisk.c, /: res_rtp_asterisk: Eliminate
"type-punned pointer" build warning. Removes
"res_rtp_asterisk.c:706: warning: dereferencing type-punned
pointer will break strict-aliasing rules" warning from the build
on 32-bit platforms. The problem is that 'size' was referenced
aliased to both (pj_size_t *) and (pj_ssize_t *). Now just make a
copy of size that is the right type so there isn't any pointer
aliasing happening. It also adds comments and asserts regarding
what looks like an inappropriate use of pj_sock_sendto, but is
actually totally fine. (closes issue ASTERISK-20368) Reported by:
Shaun Ruffell Tested by: Michael L. Young Patches:
0001-res_rtp_asterisk-Eliminate-type-punned-pointer-build.patch
uploaded by Shaun Ruffell (license 5417) slightly modified by
David M. Lee. ........ Merged revisions 372777 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-10 18:58 +0000 [r372755-372769] Jonathan Rose <jrose@digium.com>
* /, apps/app_meetme.c: app_meetme: Document that 'p' option will
continue in dialplan. (closes issue AST-991) Reported by John
Bigelow ........ Merged revisions 372765 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372767 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372768 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/channel.c, /: Masquerade: Retain parkinglot settings made by
CHANNEL function. Prior to this patch, the user would have a
parkinglot set on a channel that was parked and when the channel
was retrieved, any attempt by that channel to park would simply
use the default. This patch makes parkinglot values set in this
way be retained through the masquerade. (closes issue AST-990)
Reported by: Nick Huskinson Patches:
masquerade_parkinglot_patch.diff Uploaded by Jonathan Rose
(license 6182) ........ Merged revisions 372736 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372737 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372754 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-09 01:28 +0000 [r372712] Matthew Jordan <mjordan@digium.com>
* channels/sip/sdp_crypto.c, /: Only re-create an SRTP session when
needed In r356604, SRTP handling was fixed to accomodate multiple
crypto keys in an SDP offer and the ability to re-create an SRTP
session when the crypto keys changed. In certain circumstances -
most notably when a phone is put on hold after having been
bridged for a significant amount of time - the act of re-creating
the SRTP session causes problems for certain models of phones.
The patch committed in r356604 always re-created the SRTP session
regardless of whether or not the cryptographic keys changed.
Since this is technically not necessary, this patch modifies the
behavior to only re-create the SRTP session if Asterisk detects
that the remote key has changed. This allows models of phones
that do not handle the SRTP session changing to continue to work,
while also providing the behavior needed for those phones that do
re-negotiate cryptographic keys. (issue ASTERISK-20194) Reported
by: Nicolo Mazzon Tested by: Nicolo Mazzon Review:
https://reviewboard.asterisk.org/r/2099 ........ Merged revisions
372709 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 372710 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372711 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-08 06:18 +0000 [r372699] David M. Lee <dlee@digium.com>
* /, main/Makefile: Add OPENSSL_INCLUDE to the CFLAGS for ssl.c and
tcptls.c. Without this flag, those files will compile with the
system installed OpenSSL headers (if they exist). This is a real
bummer if a different path was specified using --with-ssl=
(closes issue ASTERISK-20392) ........ Merged revisions 372682
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Recorded merge of revisions 372695 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........
Recorded merge of revisions 372696 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-07 23:10 +0000 [r372623-372658] Richard Mudgett <rmudgett@digium.com>
* main/astmm.c, /: Fix MALLOC_DEBUG version of ast_strndup().
(closes issue ASTERISK-20349) Reported by: Brent Eagles ........
Merged revisions 372655 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372656 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372657 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, funcs/func_math.c: Remove annoying unconditional debug message
from INC/DEC functions. (closes issue AST-1001) Reported by:
Guenther Kelleter ........ Merged revisions 372628 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372629 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372630 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_queue.c: Fix exception path typo in app_queue.c
try_calling(). (closes issue ASTERISK-20380) Reported by: Jeremy
Pepper Patches: fix-local-channel-locking.patch (license #6350)
patch uploaded by Jeremy Pepper ........ Merged revisions 372624
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 372625 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372626 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_voicemail.c, /: Fix VoicemailUserEntry event headers
ServerEmail and MailCommand reported values. The AMI action
VoicemailUsersList VoicemailUserEntry event headers ServerEmail
and MailCommand did not report the global values if they were not
overridden. The VoicemailUserEntry event header ServerEmail was
not populated with the global value if the voicemail user did not
override it. The VoicemailUserEntry event header MailCommand was
never populated with a value. * Removed unused struct ast_vm_user
member mailcmd[]. (closes issue AST-973) Reported by: John
Bigelow Tested by: rmudgett ........ Merged revisions 372620 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372621 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372622 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-07 21:04 +0000 [r372610-372612] David M. Lee <dlee@digium.com>
* res/pjproject/pjsip/lib, res/pjproject/pjsip-apps/lib,
res/pjproject/pjsip/bin, res/pjproject/pjsip-apps/bin,
res/pjproject/third_party/lib, res/pjproject/third_party/bin,
res/pjproject/lib, res/pjproject/pjlib/lib, /,
res/pjproject/pjmedia/lib, codecs/ilbc,
res/pjproject/pjlib-util/lib, res/pjproject/pjmedia/bin,
res/pjproject/third_party/gsm/lib,
res/pjproject/third_party/gsm/bin, res/pjproject/pjnath/lib:
svn:ignore cleanup. * pjproject bin and lib directories should
pretty much ignore everything * Ignore *.o in codecs/ilbc
........ Merged revisions 372611 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, res/Makefile: Fix parallel make for res_asterisk_rtp. Fixes a
build regression introduced in r369517 "Add support for
ICE/STUN/TURN in res_rtp_asterisk and chan_sip." [1]. [1]
http://svnview.digium.com/svn/asterisk?view=revision&revision=369517
When compiling asterisk in parallel like: $ make -j 10 It's
possible to get errors like the following:
.pjlib-util-test-x86_64-unknown-linux-gnu.depend:120: *** missing
separator. Stop. make[4]: *** [depend] Error 2 make[3]: *** [dep]
Error 1 make[2]: ***
[/home/sruffell/asterisk-working/res/pjproject/pjnath/lib/libpjnath-x86_64-unknown-linux-gnu.a]
Error 2 make[3]: warning: jobserver unavailable: using -j1. Add
`+' to parent make rule. This is because the build system is
trying to build each of the libraries in pjproject in parallel.
Now the build will build pjproject in a single job and link the
results into res_asterisk_rtp. Parallel builds, on one test
system, saves ~1.5 minutes from a default Asterisk build: Single
job: $ git clean -fdx >/dev/null && time ( ./configure >/dev/null
2>&1 && make >/dev/null 2>&1 ) real 2m34.529s user 1m41.810s sys
0m15.970s Parallel make: $ git clean -fdx >/dev/null && time (
./configure >/dev/null 2>&1 && make -j10 >/dev/null 2>&1 ) real
1m2.353s user 2m39.120s sys 0m18.850s (closes issue
ASTERISK-20362) Reported by: Shaun Ruffel Patches:
0001-res_asterisk_rtp-Fix-build-error-when-using-parallel.patch
uploaded by Shaun Ruffel (License #5417) ........ Merged
revisions 372609 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-07 02:27 +0000 [r372538-372584] Matthew Jordan <mjordan@digium.com>
* /, apps/app_minivm.c: Free ast_str objects when temp file fails
to be created in MiniVM The previous commit (r372554) was from a
patch that was written before r366880, which ensured that ast_str
objects allocated in the sendmail routine were free'd in off
nominal paths. This commit frees the string objects in the off
nominal path introduced in r372554. (issue ASTERISK-17133)
Reported by: Tzafrir Cohen ........ Merged revisions 372581 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372582 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372583 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_minivm.c: Fix file descriptor leak and pointer scope
issue in MiniVM when sending mail When MiniVM sends an e-mail and
it has the volgain option set, it will spawn sox in a separate
process to handle the manipulation of the sound file. In doing
so, it creates a temporary file. There are two problems here: 1)
The file descriptor returned from mkstemp is leaked 2) The
finalfilename character pointer points to a buffer that loses
scope once volgain processing is finished. Note that in r316265,
Russell fixed some gcc warnings by using the return value of the
mkstemp call. A warning was placed in minivm that the file
descriptor was going to be leaked. This patch reverts that
change, as it handles the leak and 'uses' the file descriptor
returned from mkstemp. (closes issue ASTERISK-17133) Reported by:
Tzafrir Cohen patches: minivm_18501_demo.diff uploaded by Tzafrir
Cohen (license #5035) ........ Merged revisions 372554 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372555 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372556 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_queue.c, /: Update QueueMemberStatus event documentation
to include member status values The Status: header in a
QueueMemberStatus event (and other QueueMember* events) is the
numeric value of the device state corresponding to that Queue
Member. As those values are not exactly obvious, listing them in
the documentation is useful. Matt Riddell reported this
indirectly through the wiki page. (closes issue ASTERISK-20243)
Reported by: Matt Riddell ........ Merged revisions 372531 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-06 22:14 +0000 [r372524] Richard Mudgett <rmudgett@digium.com>
* /, channels/sig_pri.c: Fix loss of MOH on an ISDN channel when
parking a call for the second time. Using the AMI redirect action
to take an ISDN call out of a parking lot causes the MOH state to
get confused. The redirect action does not take the call off of
hold. When the call is subsequently parked again, the call no
longer hears MOH. * Make chan_dahdi/sig_pri restart MOH on
repeated AST_CONTROL_HOLD frames if it is already in a state
where it is supposed to be sending MOH. The MOH may have been
stopped by other means. (Such as killing the generator.) This
simple fix is done rather than making the AMI redirect action
post an AST_CONTROL_UNHOLD unconditionally when it redirects a
channel and thus potentially breaking something with an
unexpected AST_CONTROL_UNHOLD. (closes issue ABE-2873) Patches:
jira_abe_2873_c.3_bier.patch (license #5621) patch uploaded by
rmudgett ........ Merged revisions 372521 from
https://origsvn.digium.com/svn/asterisk/be/branches/C.3-bier
........ Merged revisions 372522 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372523 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-06 21:43 +0000 [r372520] Kinsey Moore <kmoore@digium.com>
* /, apps/app_queue.c: Ensure listed queues are not offered for
completion When using tab-completion for the list of queues on
"queue reset stats" or "queue reload
{all|members|parameters|rules}", the tab-completion listing for
further queues erroneously listed queues that had already been
added to the list. The tab-completion listing now only displays
queues that are not already in the list. (closes issue AST-963)
Reported-by: John Bigelow ........ Merged revisions 372517 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372518 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372519 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-06 15:57 +0000 [r372474] Jonathan Rose <jrose@digium.com>
* /, UPGRADE-1.8.txt: chan_sip: Note change in behavior to how
directmediapermit/deny ACL works r366547 introduced a change to
the directmedia ACL for chan_sip which modified the behavior
significantly. Prior to the patch, this option would bridge peers
with directmedia if a peer's IP address matched its own
directmedia ACL. After that patch, the peer would check the
bridged peer's ACL instead. This change has been present since
1.8.14.0. That patched failed to document the change in
Upgrade.txt, so this patch adds mention of that change to
UPGRADE.txt (UPGRADE-1.8.txt in newer branches) (issue AST-876)
........ Merged revisions 372471 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372472 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372473 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-06 14:31 +0000 [r372447] Kinsey Moore <kmoore@digium.com>
* apps/app_queue.c, /: Ensure "rules" is tab-completable for "queue
show" Previously, tabbing at the end of "queue show" produced a
list of available queues about which information could be shown,
but did not include an alternative command, "rules", to access
information about queue rules. The "rules" item should now be
shown in the list of tab-completable items. (closes issue
AST-958) Reported-by: John Bigelow ........ Merged revisions
372444 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 372445 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372446 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-06 02:52 +0000 [r372393-372420] Matthew Jordan <mjordan@digium.com>
* /, pbx/pbx_dundi.c: Fix DUNDi message routing bug when
neighboring peer is unreachable Consider a scenario where DUNDi
peer PBX1 has two peers that are its neighbors, PBX2 and PBX3,
and where PBX2 and PBX3 are also neighbors. If the connection is
temporarily broken between PBX1 and PBX3, PBX1 should not include
PBX3 in the list of peers it sends to PBX2 in a DPDISCOVER
message, as it cannot send messages to PBX3. If it does, PBX2
will assume that PBX3 already received the message and fail to
forward the message on to PBX3 itself. This patch fixes this by
only including peers in a DPDISCOVER message that are reachable
by the sending node. This includes all peers with an empty
address (00:00:00:00:00:00) and that are have been reached by a
qualify message. This patch also prevents attempting to qualify a
dynamic peer with an empty address until that peer registers. The
patch uploaded by Peter was modified slightly for this commit.
(closes issue ASTERISK-19309) Reported by: Peter Racz patches:
dundi_routing.patch uploaded by Peter Racz (license 6290)
........ Merged revisions 372417 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372418 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372419 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_followme.c, /: Allow configured numbers for FollowMe to
be greater than 90 characters When parsing a 'number' defined in
followme.conf, FollowMe previously parsed the number in the
configuration file into a buffer with a length of 90 characters.
This can artificially limit some parallel dial scenarios. This
patch allows for numbers of any length to be defined in the
configuration file. Note that Clod Patry originally wrote a patch
to fix this problem and received a Ship It! on the JIRA issue.
The patch originally expanded the buffer to 256 characters.
Instead, the patch being committed duplicates the string in the
config file on the stack before parsing it for consumption by the
application. (closes issue ASTERISK-16879) Reported by: Clod
Patry Tested by: mjordan patches: followme_no_limit.diff uploaded
by Clod Patry (license #5138) Slightly modified for this commit.
........ Merged revisions 372390 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372391 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372392 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 19:44 +0000 [r372374] Richard Mudgett <rmudgett@digium.com>
* /: Recorded merge of revisions 372373 from
http://svn.asterisk.org/svn/asterisk/branches/11 ........ Fix
compile error. ........ Merged revisions 372372 from
http://svn.asterisk.org/svn/asterisk/branches/10
2012-09-05 19:26 +0000 [r372344-372371] Kinsey Moore <kmoore@digium.com>
* /, main/manager.c: Correct documentation for ModuleLoad AMI
action The documentation incorrectly listed 'rtp' as a reloadable
subsystem and left out many other reloadable subsystems. It is
now also documented that subsystems may only be reloaded, not
loaded or unloaded. (closes issue AST-977) Reported-by: John
Bigelow ........ Merged revisions 372354 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372358 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372365 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/pbx.c, /: Ensure counts generated in
manager_show_dialplan_helper are correct When
manager_show_dialplan_helper was written, the counter increment
for the total number of contexts was placed with the extensions
increment instead of in the enclosing loop. This function should
now generate correct context counts. (closes issue AST-970)
Reported-by: John Bigelow ........ Merged revisions 372337 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372338 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372340 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 18:56 +0000 [r372343] Alec L Davis <sivad.a@paradise.net.nz>
* main/dsp.c, /: dsp.c: in ast_mf_detect_init incorrectly sets
goertzel samples to 160, should be MF_GSIZE Remove unused
goertzel_state_t member 'samples'. Related
https://reviewboard.asterisk.org/r/2097/
2012-09-05 17:38 +0000 [r372329] Richard Mudgett <rmudgett@digium.com>
* res/res_rtp_asterisk.c, /: Multiple revisions 372327-372328
........ r372327 | rmudgett | 2012-09-05 12:33:11 -0500 (Wed, 05
Sep 2012) | 15 lines Fix RTP/RTCP read error message confusion.
The RTP/RTCP read error message can report "fail: success" when
the read failure is because of an ICE failure. * Changed
__rtp_recvfrom() to generate a PJ ICE message when ICE fails. *
Changed RTP/RTCP read error message to indicate an unspecified
error when errno is zero. (closes issue ASTERISK-20288) Reported
by: Joern Krebs Patches: jira_asterisk_20288_err_msg.patch
(license #5621) patch uploaded by rmudgett (modified) ........
r372328 | rmudgett | 2012-09-05 12:35:20 -0500 (Wed, 05 Sep 2012)
| 1 line Fix coding guidelines issue with a recent commit.
........ Merged revisions 372327-372328 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 16:24 +0000 [r372310-372319] Mark Michelson <mmichelson@digium.com>
* res/res_rtp_asterisk.c, main/rtp_engine.c, /,
include/asterisk/rtp_engine.h: Re-fix sending unnegotiated
payloads during a P2P RTP bridge. The previous fix still would
look in the static_RTP_PT table, which is inappropriate since we
specifically want to find a codec that has been negotiated.
(closes issue ASTERISK-20296) reported by NITESH BANSAL Patches:
codec_negotiation.patch Uploaded by NITESH BANSAL (License #6418)
........ Merged revisions 372311 from
http://svn.asterisk.org/svn/asterisk/branches/11
* apps/app_alarmreceiver.c: Add fixes and cleanup to
app_alarmreceiver. This work comes courtesy of Pedro Kiefer
(License #6407) The work was posted to review board by Kaloyan
Kovachev (License #5506) (closes issue ASTERISK-16668) Reported
by Grant Crawshay (closes issue ASTERISK-16694) Reported by Fred
van Lieshout (closes issue ASTERISK-18417) Reported by Kostas
Liakakis (closes issue ASTERISK-19435) Reported by Deon George
(closes issue ASTERISK-20157) Reported by Pedro Kiefer (closes
issue ASTERISK-20158) Reported by Pedro Kiefer (closes issue
ASTERISK-20224) Reported by Pedro Kiefer Review:
https://reviewboard.asterisk.org/r/2075
2012-09-05 14:44 +0000 [r372302] Matthew Jordan <mjordan@digium.com>
* /, apps/app_voicemail.c: Fix memory leaks in app_voicemail when
using IMAP storage or realtime config This patch fixes two memory
leaks: 1. When find_user is called with NULL as its first
parameter, the voicemail user returned is allocated on the heap.
The inboxcount2 function uses find_user in such a fashion when
counting new messages, and fails to free the resulting voicemail
user object. 2. When populate_defaults is called on a voicemail
user, it wipes whatever flags have been set on the object by
copying over the global flags object. If the VM_ALLOCED flag was
ste on the voicemail user prior to doing so, that flag is
removed. This leaks the voicemail user when free_user is later
called. (closes issue ASTERISK-19155) Reported by: Filip Jenicek
patches: asterisk.patch2 uploaded by Filip Jenicek (license 6277)
Patch slightly modified for this commit. Review:
https://reviewboard.asterisk.org/r/2096 ........ Merged revisions
372268 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 372288 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372289 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 14:12 +0000 [r372290] Darren Sessions <dmsessions@gmail.com>
* channels/chan_sip.c, configs/res_ldap.conf.sample: LDAP Realtime
Peers Cannot Register Prior to 1.8, it was not necessary for an
explicit "type" to be set for an asterisk LDAP realtime peer. Now
the routine find_peer actually checks the type field during
registration and fails to find the peer if it is not set. The
attached patch makes the realtime type equal whatever type is
being searched for if the type is 0 upon return from routine
build_peer. (closes issue ASTERISK-17222) Reported by: John
Covert Patch by: David Vossel Tested by: Darren Sessions Review:
https://reviewboard.asterisk.org/r/2095/
2012-09-05 12:18 +0000 [r372267] Michael L. Young <elgueromexicano@gmail.com>
* res/res_rtp_asterisk.c, /: Fix breakage caused by last merge.
Missing a variable for 11 and trunk. ........ Merged revisions
372266 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 07:43 +0000 [r372215-372242] Alec L Davis <sivad.a@paradise.net.nz>
* main/dsp.c, /: dsp.c: Fix multiple issues when no-interdigit
delay is present, and fast DTMF 50ms/50ms Revert DTMF hit/miss
detector to original -r349249 method with some changes, remove
unnecessary; 1. reseting of hits=0, when no signal, only need to
set it once. 2. incrementing of hits, when the hit is the same as
the current hit. 3. setting of lasthit, when it's the same as
before. Change HITS_TO_BEGIN to 2, MISSES_TO_END to 3 & 3
spelling mistakes (closes issue ASTERISK-19610) alecdavis
(license 585) Reported by: Jean-Philippe Lord Tested by:
alecdavis Review: https://reviewboard.asterisk.org/r/2085/
........ Merged revisions 372239 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372240 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372241 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/dsp.c: dsp.c: optimize goerztzel sample loops, in
dtmf_detect, mf_detect and tone_detect use a temporary short int
when repeatedly used to call goertzel_sample. alecdavis (license
585) Reported by: alecdavis Tested by: alecdavis Review:
https://reviewboard.asterisk.org/r/2093/ ........ Merged
revisions 372212 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372213 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372214 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 04:55 +0000 [r372200] Michael L. Young <elgueromexicano@gmail.com>
* res/res_rtp_asterisk.c, /: Fix Incrementing Sequence Number For
Retransmitted DTMF End Packets In Asterisk 1.4+, a fix was put in
place to increment the sequence number for retransmitted DTMF end
packets. With the introduction of the RTP engine API in 1.8, the
sequence number was no longer being incremented. This patch fixes
this regression as well as cleans up a few lines that were not
doing anything. (closes issue ASTERISK-20295) Reported by: Nitesh
Bansal Tested by: Michael L. Young Patches:
01_rtp_event_seq_num.patch uploaded by Nitesh Bansal (license
6418) asterisk-20295-dtmf-fix-cleanup.diff uploaded by Michael L.
Young (license 5026) Review:
https://reviewboard.asterisk.org/r/2083/ ........ Merged
revisions 372185 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372198 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372199 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-05 02:26 +0000 [r372176] Matthew Jordan <mjordan@digium.com>
* cel/cel_pgsql.c, /: Fix memory leak when CEL is successfully
written to PostgreSQL database PQClear is not called when the
result object of a call to PQExec has a status of
PGRES_COMMAND_OK. Interestingly enough, the off nominal case was
handled properly, so this memory leak only occurred when CEL
records were successfully written. This patch properly clears the
result in the nominal code path. (closes issue ASTERISK-19991)
Reported by: Etienne Lessard Tested by: Etienne Lessard patches:
mem_leak_cel_pgsql.patch uploaded by Etienne Lessard (license
#6394) ........ Merged revisions 372158 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372165 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372175 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-09-04 19:30 +0000 [r372148-372149] Jonathan Rose <jrose@digium.com>
* UPGRADE.txt: app_queue: PAUSEALL/UNPAUSEALL logged only if
interface is a queue member Adding UPGRADE.txt entry for r372148
(issue AST-946) Reported by: John Bigelow
* CHANGES, apps/app_queue.c: app_queue: Only log
PAUSEALL/UNPAUSEALL when 1+ memebers changed. Prior to this
patch, if pause or unpause was issued on an interface without
specifying a specific queue, a PAUSEALL or UNPAUSEALL event would
be logged in the queue log even if that interface wasn't a member
of any queues. This patch changes it so that these events are
only logged when at least one member of any queue exists for that
interface. (closes issue AST-946) Reported by: John Bigelow
Review: https://reviewboard.asterisk.org/r/2079/
2012-09-04 15:50 +0000 [r372136-372138] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Fix issue where SIP devices were not
notified when custom devices changed to "ringing". The problem
had to do with logic used when checking for what the oldest
ringing channel was. The problem was that if no channel was
found, then no notification would be sent. For custom device
states, there is no associated channel, so no notification would
get sent. This fixes the issue by still sending the notification
even if no associated channel can be found for a ringing device
state change. (closes issue ASTERISK-20297) Reported by Noah
Engelberth ........ Merged revisions 372137 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/config_options.c, apps/app_confbridge.c: Prevent crash
from using app_page with no confbridge.conf file provided. Also
prevents other potential crashes when using aco API with
uninitialized aco_info structs. (closes issue ASTERISK-20305)
reported by Noah Engelberth Tested by Noah Engelberth Review:
https://reviewboard.asterisk.org/r/2086 ........ Merged revisions
372135 from http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-31 21:15 +0000 [r372119] Mark Michelson <mmichelson@digium.com>
* res/res_rtp_asterisk.c, /: Prevent local RTP bridges from sending
inappropriate formats to participants. A change for Asterisk 11
caused a check for failure to incorrectly check the return value.
This resulted in the possibility of transmitting media that a
party had not negotiated. If this media happened to be G.729,
then this could potentially result in one-way audio if no G.729
translators are installed. (closes issue ASTERISK-20296) reported
by NITESH BANSAL ........ Merged revisions 372118 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-30 20:54 +0000 [r372051-372092] Mark Michelson <mmichelson@digium.com>
* apps/app_queue.c, /: Prevent crash on shutdown due to refcount
error on queues container. When app_queue is unloaded, the queues
container has its refcount decremented, potentially to 0. Then
the taskprocessor responsible for handling device state changes
is unreferenced. If the taskprocessor happens to be just about to
run its task, then it will create and destroy an iterator on the
queues container. This can cause the refcount on the queues
container to increase to 1 and then back to 0. Going back to 0 a
second time results in double frees. This failure was seen
periodically in the testsuite when Asterisk would shut down.
........ Merged revisions 372089 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 372090 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372091 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, apps/app_queue.c: Help prevent ringing queue members from
being rung when ringinuse set to no. Queue member status would
not always get updated properly when the member was called, thus
resulting in the member getting multiple calls. With this change,
we update the member's status at the time of calling, and we also
check to make sure the member is still available to take the call
before placing an outbound call. (closes issue ASTERISK-16115)
reported by nik600 Patches: app_queue.c-svn-r370418.patch
uploaded by Italo Rossi (license #6409) ........ Merged revisions
372048 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 372049 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372050 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-30 16:25 +0000 [r371964-372029] Matthew Jordan <mjordan@digium.com>
* channels/chan_iax2.c, /: AST-2012-013: Resolve ACL rules being
ignored during calls by some IAX2 peers When an IAX2 call is made
using the credentials of a peer defined in a dynamic Asterisk
Realtime Architecture (ARA) backend, the ACL rules for that peer
are not applied to the call attempt. This allows for a remote
attacker who is aware of a peer's credentials to bypass the ACL
rules set for that peer. This patch ensures that the ACLs are
applied for all peers, regardless of their storage mechanism.
(closes issue ASTERISK-20186) Reported by: Alan Frisch Tested by:
mjordan, Alan Frisch ........ Merged revisions 372028 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/manager.c, /, README-SERIOUSLY.bestpractices.txt:
AST-2012-012: Resolve AMI User Unauthorized Shell Access through
ExternalIVR The AMI Originate action can allow a remote user to
specify information that can be used to execute shell commands on
the system hosting Asterisk. This can result in an unwanted
escalation of permissions, as the Originate action, which
requires the "originate" class authorization, can be used to
perform actions that would typically require the "system" class
authorization. Previous attempts to prevent this permission
escalation (AST-2011-006, AST-2012-004) have sought to do so by
inspecting the names of applications and functions passed in with
the Originate action and, if those applications/functions matched
a predefined set of values, rejecting the command if the user
lacked the "system" class authorization. As noted by IBM X-Force
Research, the "ExternalIVR" application is not listed in the
predefined set of values. The solution for this particular
vulnerability is to include the "ExternalIVR" application in the
set of defined applications/functions that require "system" class
authorization. Unfortunately, the approach of inspecting fields
in the Originate action against known applications/functions has
a significant flaw. The predefined set of values can be bypassed
by creative use of the Originate action or by certain dialplan
configurations, which is beyond the ability of Asterisk to
analyze at run-time. Attempting to work around these scenarios
would result in severely restricting the applications or
functions and prevent their usage for legitimate means. As such,
any additional security vulnerabilities, where an
application/function that would normally require the "system"
class authorization can be executed by users with the "originate"
class authorization, will not be addressed. Instead, the
README-SERIOUSLY.bestpractices.txt file has been updated to
reflect that the AMI Originate action can result in commands
requiring the "system" class authorization to be executed. Proper
system configuration can limit the impact of such scenarios.
(closes issue ASTERISK-20132) Reported by: Zubair Ashraf of IBM
X-Force Research ........ Merged revisions 371998 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371999 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 372000 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/cdr.c, main/channel.c, include/asterisk/crypto.h,
include/asterisk/config_options.h,
include/asterisk/bridging_technology.h,
include/asterisk/audiohook.h,
apps/confbridge/include/confbridge.h, include/asterisk/format.h,
include/asterisk/netsock2.h, include/asterisk/rtp_engine.h,
include/asterisk/ccss.h, main/pbx.c, include/asterisk/utils.h,
channels/sip/srtp.c, channels/chan_sip.c,
include/asterisk/format_pref.h, include/asterisk/astobj2.h,
include/asterisk/presencestate.h, channels/chan_agent.c,
include/asterisk/config.h, pbx/pbx_lua.c,
formats/format_ogg_vorbis.c, include/asterisk/channel.h,
main/named_acl.c, codecs/speex/speex_resampler.h,
include/asterisk/manager.h, include/asterisk/format_cap.h,
include/asterisk/framehook.h, include/asterisk/heap.h,
channels/sig_pri.h, Makefile, include/asterisk/message.h,
include/asterisk/bridging.h, include/asterisk/datastore.h,
main/file.c, include/asterisk/strings.h, include/asterisk/pbx.h,
channels/sip/include/srtp.h, main/audiohook.c,
include/asterisk/translate.h: Clean up doxygen warnings This
patch fixes numerous doxygen warnings across Asterisk. It also
updates the makefile to regenerate the doxygen configuration on
the local system before running doxygen to help prevent
warnings/errors on the local system. Much thanks to Andrew for
tackling one of the Asterisk janitor projects! (issue
ASTERISK-20259) Reported by: Andrew Latham Patches:
doxygen_partial.diff uploaded by Andrew Latham (license 5985)
make_progdocs.diff uploaded by Andrew Latham (license 5985)
* doc/CODING-GUIDELINES (added), /: Restore CODING-GUIDELINES to
doc folder In r294740, the CODING-GUIDELINES was removed from the
doc folder in favor of the content on the Asterisk wiki. Some
folks still look in the doc folder initially for coding guideline
suggestions; as such, this patch adds a CODING-GUIDELINES file
back into the doc folder. The content of the file merely points
to the correct page on the Asterisk wiki where the coding
guidelines currently live. (closes issue ASTERISK-20279) Reported
by: Andrew Latham Patches: CODING-GUIDELINES.diff uploaded by
Andrew Latham (license 5985) ........ Merged revisions 371961
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 371962 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371963 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-29 22:48 +0000 [r371951-371952] Richard Mudgett <rmudgett@digium.com>
* include/asterisk/md5.h: Ensure alignment of in[] field in
MD5Context struct. The struct MD5Context character buffer is cast
to an int32_t* without making sure that said buffer is aligned.
Since the buffer follows two uint32_t's, the chance of 'in' being
(32 bits) unaligned is nil in practice. But adding code to ensure
that 'in' stays aligned costs nothing and removes all doubts
about the casts being safe. (closes issue ASTERISK-20241)
Reported by: Walter Doekes Patches: tmp.diff (license #5674)
patch uploaded by Walter Doekes
* /, apps/app_meetme.c: Fix compile errors. ........ Merged
revisions 371950 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-29 21:15 +0000 [r371922] Jonathan Rose <jrose@digium.com>
* /, apps/app_meetme.c: app_meetme: Adding test events for
following activity in MeetMe. ........ Merged revisions 371919
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 371920 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371921 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-29 19:57 +0000 [r371892-371894] Richard Mudgett <rmudgett@digium.com>
* /, main/channel.c: Fix theoretical compile error with HAVE_EPOLL.
Really shows how much epoll is used since it had not been
reported yet. ........ Merged revisions 371893 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/channel.c, /: Initialize file descriptors for dummy channels
to -1. Dummy channels usually aren't read from, but functions
like SHELL and CURL use autoservice on the channel. (closes issue
ASTERISK-20283) Reported by: Gareth Palmer Patches:
svn-371580.patch (license #5169) patch uploaded by Gareth Palmer
(modified) ........ Merged revisions 371888 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371890 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371891 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-29 19:38 +0000 [r371889] Jonathan Rose <jrose@digium.com>
* channels/chan_sip.c, UPGRADE.txt: chan_sip: Change manager event
to confirm SIPqualifypeer into an ack Matt Jordan informed me
that it was more appropriate to use an astman_send_ack here
instead of making an event response. I've also used this
opportunity to update UPGRADE.txt to mention this change in
behavior. (issue AST-969) Reported by: John Bigelow
2012-08-29 18:40 +0000 [r371863] Richard Mudgett <rmudgett@digium.com>
* apps/app_dial.c, /: Fix hangup cause passthrough regression. The
v1.8 -r369258 change to fix the F and F(x) action logic
introduced a regression in passing the hangup cause from the
called channel to the caller channel. (closes issue
ASTERISK-20287) Reported by: Konstantin Suvorov Patches:
app_dial_hangupcause.patch (license #6421) patch uploaded by
Konstantin Suvorov (modified) Tested by: rmudgett ........ Merged
revisions 371860 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371861 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371862 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-29 17:35 +0000 [r371823-371851] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Send 408 on retransmit timeout
instead of 603 (closes issue ASTERISK-20124) Reported by: Walter
Doekes ........ Merged revisions 371824 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371825 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371845 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_sip.c: chan_sip: Send a manager event to confirm
SIPqualifypeer completes Prior to this patch, Issuing
SIPqualifypeer either resulted in an error or if it succeeded, a
few \r\ns. This patch adds a SIPqualifypeerComplete event issued
as a response when the command is successfully executed. (closes
issue AST-969) Reported by: John Bigelow
2012-08-27 21:51 +0000 [r371785-371791] Mark Michelson <mmichelson@digium.com>
* configs/agents.conf.sample, /: Fix misleading documentation in
agents.conf.sample regarding ackcall usage. The documentation
made it sound as if the DTMF acknowledgment was needed at the
time the agent logs in, rather than when the agent is called.
This is likely a relic from the days when there were multiple
ways of logging in agents. (closes issue AST-962) reported by
Steve Pitts ........ Merged revisions 371787 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371789 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371790 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/manager.c, /: Fix incorrect documentation of the
MailboxStatus manager command. The "Waiting" field was
misdocumented as reporting the number of messages waiting. In
reality, it simply indicated the presence or absence of waiting
messages. ........ Merged revisions 371782 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371783 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371784 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-27 18:16 +0000 [r371754] David M. Lee <dlee@digium.com>
* /, res/pjproject/pjlib/bin,
res/pjproject/pjlib-util/build/output, res/pjproject/pjnath/bin,
res/pjproject/pjlib/build/output, res/pjproject/pjlib-util/bin,
res/pjproject/pjnath/build/output: svn:ignore pjproject bin &
output for all platforms. ........ Merged revisions 371753 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-27 17:52 +0000 [r371751] Mark Michelson <mmichelson@digium.com>
* /, configs/queues.conf.sample: Fix incorrectly documented option
in queues.conf sharedlastcall defaults to "no" not "yes" (closes
issue AST-979) reported by Steve Pitts ........ Merged revisions
371747 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 371748 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371750 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-27 16:56 +0000 [r371721] David M. Lee <dlee@digium.com>
* /, main/lock.c: Fixes ast_rwlock_timed[rd|wr]lock for BSD and
variants. The original implementations simply wrap pthread
functions, which take absolute time as an argument. The spinlock
version for systems without those functions treated the argument
as a delta. This patch fixes the spinlock version to be
consistent with the pthread version. (closes issue
ASTERISK-20240) Reported by: Egor Gorlin Patches: lock.c.patch
uploaded by Egor Gorlin (license 6416) ........ Merged revisions
371718 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 371720 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-27 14:13 +0000 [r371693] Kinsey Moore <kmoore@digium.com>
* /, main/utils.c: Implement workaround for BETTER_BACKTRACES crash
When compiling with BETTER_BACKTRACES enabled, Asterisk will
sometimes crash when "core show locks" is run. This happens
regularly in the testsuite since several tests run "core show
locks" to help with debugging. This seems to be a fault with
libraries on certain operating systems (notably CentOS 6.2/6.3)
running on virtual machines and utilizing gcc 4.4.6. (closes
issue ASTERISK-20090) ........ Merged revisions 371690 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371691 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371692 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-26 23:10 +0000 [r371665] Alec L Davis <sivad.a@paradise.net.nz>
* main/dsp.c, /: mf_detect: incorrectly used DTMF_GSIZE instead of
MF_GSIZE ........ Merged revisions 371662 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371663 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371664 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-23 04:12 +0000 [r371633] Mark Michelson <mmichelson@digium.com>
* tests/test_scoped_lock.c (added): I forgot to add the unit tests
for scoped locks earlier today.
2012-08-22 15:55 +0000 [r371620] Joshua Colp <jcolp@digium.com>
* /, channels/chan_motif.c: Add support for call-id logging to
chan_motif. Review: https://reviewboard.asterisk.org/r/2077/
........ Merged revisions 371619 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-21 21:01 +0000 [r371572-371593] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c, funcs/func_odbc.c, main/file.c,
main/utils.c, apps/app_queue.c, pbx/pbx_config.c,
res/res_jabber.c, apps/app_stack.c, channels/chan_oss.c,
res/res_config_sqlite.c, cdr/cdr_tds.c, main/xmldoc.c,
apps/app_dial.c, channels/chan_dahdi.c: Fix misuses of asprintf
throughout the code. This fixes three main issues * Change
asprintf() uses to ast_asprintf() so that it pairs properly with
ast_free() and no longer causes MALLOC_DEBUG to freak out. * When
ast_asprintf() fails, set the pointer NULL if it will be
referenced later. * Fix some memory leaks that were spotted while
taking care of the first two points. (Closes issue
ASTERISK-20135) reported by Richard Mudgett Review:
https://reviewboard.asterisk.org/r/2071 ........ Merged revisions
371590 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 371591 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371592 from
http://svn.asterisk.org/svn/asterisk/branches/11
* include/asterisk/lock.h, main/config.c: Add scoped locks to
Asterisk. With the SCOPED_LOCK macro, you can create a variable
that locks a specific lock and unlocks the lock when the variable
goes out of scope. This is useful for situations where many
breaks, continues, returns, or other interruptions would require
separate unlock statements. With a scoped lock, these aren't
necessary. There are specializations for mutexes, read locks,
write locks, ao2 locks, ao2 read locks, ao2 write locks, and
channel locks. Each of these is a SCOPED_LOCK at heart though.
Review: https://reviewboard.asterisk.org/r/2060
* res/res_rtp_asterisk.c, /: Use thread-local storage to store
pj_thread_descs. pj_thread_register() takes a parameter of type
pj_thread_desc. It was assumed that pj_thread_register either
used this item temporarily or made a copy of it. Unfortunately,
all it does is keep a pointer to the structure in thread-local
storage. This means that if our pj_thread_desc goes out of scope,
then pjlib will be referencing bogus data quite often, most
commonly on operations involving a pj_mutex_t. In our case, our
pj_thread_desc was on the stack and went out of scope very
shortly after registering our thread with pjlib. With this
change, the pj_thread_desc is stored in thread-local storage so
the pointer that pjlib keeps in thread-local storage will
reference legitimate memory. (closes issue ASTERISK-20237)
reported by Jeremy Pepper Patches: ASTERISK-20237.patch uploaded
by Mark Michelson (license #5049) Tested by Jeremy Pepper
........ Merged revisions 371571 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-20 15:39 +0000 [r371535-371547] Kinsey Moore <kmoore@digium.com>
* main/udptl.c, /: Ignore recovered zero-length secondary UDPTL
packets In some cases, recovering lost packets using the
secondary packet recovery mechanism with UDPTL/T.38 can result in
the recovery of zero-length packets. These must be ignored or the
frame generated from them can cause segfaults and allocation
failures. (closes issue ASTERISK-19762) (closes issue
ASTERISK-19373) Reported-by: Benjamin (bulkorok) Reported-by: Rob
Gagnon (rgagnon) ........ Merged revisions 371544 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371545 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371546 from
http://svn.asterisk.org/svn/asterisk/branches/11
* main/utils.c: Fix for commit r371535
* main/utils.c: Apply work-around for BETTER_BACKTRACES crash When
compiling with BETTER_BACKTRACES enabled, Asterisk will sometimes
crash when "core show locks" is run. This happens regularly in
the testsuite since several tests run "core show locks" to help
with debugging. This seems to be a fault with libraries on
certain operating systems (notably CentOS 6.2/6.3) running on
virtual machines and utilizing gcc 4.4.6. (issue ASTERISK-20090)
2012-08-18 02:09 +0000 [r371493-371521] Matthew Jordan <mjordan@digium.com>
* /, main/http.c: Remove old debug code from http configuration
loading (closes issue ASTERISK-20254) Reported by: Andrew Latham
Patches: http.diff uploaded by Andrew Latham (license #5985)
........ Merged revisions 371520 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_xmpp.c, /: Fix typo in JabberSend that looked for '2'
instead of '@' in recipient argument The summary says about all
there is to say. (closes issue ASTERISK-20239) Reported by:
Gregory Porras ........ Merged revisions 371518 from
http://svn.asterisk.org/svn/asterisk/branches/11
* funcs/func_hangupcause.c, /: Make the name of the
"HangupCauseClear" application consistent The name of the
"HangupCauseClear" application is "HangupCauseClear", not
"HangupcauseClear". The incorrect case of 'cause' caused the XML
documentation to not register properly. As an aside, this commit
message felt very awkward, but I'm not sure how else to note that
"X", which has to be "X", was referred to as "x". (closes issue
ASTERISK-20253) Reported by: Andrew Latham Patches:
hangupcause.diff uploaded by Andrew Latham (license #5985)
........ Merged revisions 371516 from
http://svn.asterisk.org/svn/asterisk/branches/11
* res/res_curl.c, build_tools/cflags.xml, utils/utils.xml, /,
res/res_fax.c, sounds/sounds.xml: Update module support level on
a variety of modules and compiler options Some core support
modules and compiler options were no longer tagged with a module
support level. This patch adds 'core' back to those options. Note
that this patch modifies a few of the patches provided by Andrew
Latham slightly. res_curl and res_fax are both 'core' supported
modules. (closes issue ASTERISK-20215) Reported by: Andrew Latham
Tested by: mjordan Patches: astcanary.diff (license #5985)
uploaded by Andrew Latham cflagsxml.diff (license #5985) uploaded
by Andrew Latham curl_fax.diff (license #5985) uploaded by Andrew
Latham soundsxml.diff (license #5985) uploaded by Andrew Latham
........ Merged revisions 371507 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, main/xmldoc.c: Fix memory leak in XML documentation When
formatting documentation fields, the XML documentation parser
calls xmldoc_get_formatted. This function allocates a string
buffer at the beginning of its routine. Unfortunately, on certain
code paths, it also calls xmldoc_string_cleanup, which assumes
that it will create the string buffer. The previously allocated
string buffer is then leaked by the xmldoc_string_cleanup
routine. Now: we don't do that. (closes issue AST-932) Reported
by: Alexander Homig ........ Merged revisions 371469 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371491 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371492 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-17 19:50 +0000 [r371483] Joshua Colp <jcolp@digium.com>
* /, channels/chan_sip.c: When a peer registers using WebSocket do
not resolve the Contact provided. (closes issue ASTERISK-20238)
Reported by: james.mortensen ........ Merged revisions 371482
from http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-17 16:01 +0000 [r371439] Kinsey Moore <kmoore@digium.com>
* main/loader.c, /: Add instrumentation to subsystem reloads When
Asterisk is built with TEST_FRAMEWORK defined, Asterisk will now
generate TestEvent AMI events on subsystem reloads such as cdr,
dnsmgr, extconfig, etc. (issue PQ-1126) ........ Merged revisions
371436 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........ Merged revisions 371437 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371438 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-17 12:42 +0000 [r371428] Russell Bryant <russell@russellbryant.com>
* res/res_rtp_asterisk.c, /: rtp: Ensure defaults are set without
rtp.conf. While building up a new install to test chan_motif, I
ran into a failure due to icesupport being disabled. This was due
to me not having an rtp.conf. It was intended in the code for it
to be enabled by default, but it was only applied if rtp.conf
existed. This patch updates res_rtp_asterisk to be consistent in
how it handles defaults. A few options didn't have their default
values set globally, including icesupport. They are now set and
icesupport is enabled by default, even if you do not have an
rtp.conf. ........ Merged revisions 371425 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-17 12:25 +0000 [r371427] Joshua Colp <jcolp@digium.com>
* /, res/res_format_attr_h264.c: Add some additional H.264
attributes, "max-smbps" and "max-fps", for passthrough. (closes
issue ASTERISK-20206) Reported by: ddkprog Patches:
res_format_attr_h264.c.diff uploaded by ddkprog (license 6008)
........ Merged revisions 371426 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-16 23:08 +0000 [r371400] Terry Wilson <twilson@digium.com>
* main/config.c, /: Handle integer over/under-flow in
ast_parse_args The strtol family of functions will return
*_MIN/*_MAX on overflow. To detect when an overflow has happened,
errno must be set to 0 before calling the function, then checked
afterward. (closes issue ASTERISK-20120) Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2073/ ........ Merged
revisions 371392 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371398 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371399 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-16 22:45 +0000 [r371396] Kinsey Moore <kmoore@digium.com>
* /, main/loader.c: Add module reload instrumentation for
TEST_FRAMEWORK This adds AMI events for module reloads when
Asterisk is built with TEST_FRAMEWORK enabled and corrects
generation of the module load AMI event. (issue PQ-1126) ........
Merged revisions 371393 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371394 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371395 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-16 19:52 +0000 [r371356-371383] Jonathan Rose <jrose@digium.com>
* /, channels/chan_sip.c: chan_sip: Use pvt outgoing_call variable
to set Remote-Party-ID Header Previously the pvt SIP_OUTGOING
flag was used instead, which will frequently flip during
reinvites. (closes issue AST-897) Reported by: Thomas Arimont
........ Merged revisions 371357 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371358 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371382 from
http://svn.asterisk.org/svn/asterisk/branches/11
* /, channels/chan_sip.c: chan_sip: Trigger reinvite if the SDP
answer is included in the SIP ACK Under certain conditions, a SIP
transaction involving directmedia wouldn't trigger a re-invite
because the SDP answer was included in an ACK instead of in a
message that we would have triggered the invite with. This patch
just queues a source change control frame if the dialog is using
directmedia when we find sdp for an ACK. (closes issue AST-913)
Reported by: Thomas Arimont ........ Merged revisions 371337 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371338 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371355 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-15 23:35 +0000 [r371325] Mark Michelson <mmichelson@digium.com>
* apps/app_queue.c, /: Fix bug where final queue member would not
be removed from memory. If a static queue had realtime members,
then there could be a potential for those realtime members not to
be properly deleted from memory. If the queue's members were
loaded from realtime and then all the members were deleted from
the backend, then the queue would still think these members
existed. The reason was that there was a short- circuit in code
such that if there were no members found in the backend, then the
queue would not be updated to reflect this. Note that this only
affected static queues with realtime members. Realtime queues
with realtime members were unaffected by this issue. (closes
issue ASTERISK-19793) reported by Marcus Haas ........ Merged
revisions 371306 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371313 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371324 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-15 20:43 +0000 [r371296] Michael L. Young <elgueromexicano@gmail.com>
* /, channels/chan_sip.c: Fix Segfault When Registering SIP Over
WebSockets The helper function, get_address_family_filter, in
chan_sip for dns resolution by address family was not recognizing
the websockets transport and resulting in a null pointer being
sent to functions in netsock2, in an attempt to determine if we
are bound to ANY address ([::]) or not. This patch fixes this
issue by handling the transport types SIP_TRANSPORT_WS and
SIP_TRANSPORT_WSS which results in a sock address being set
properly for use in determining the address family. (closes issue
ASTERISK-20221) Reported by: Sven Beisiegel Tested by: Sven
Beisiegel, James Mortensen Patches:
asterisk-20221-ws-family-filter.diff uploaded by Michael L. Young
(license 5026) ........ Merged revisions 371295 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-15 20:18 +0000 [r371259-371277] Kinsey Moore <kmoore@digium.com>
* /, channels/chan_sip.c: Avoid unconditional NULLing of mwipvt on
relatedpeer on SIP dialog destruction The other instance of this
bug was fixed by jcolp/file in r121496. If we are destroying a
dialog only set the MWI dialog pointer on the related peer to
NULL if it is the dialog currently being destroyed. (closes issue
ASTERISK-20119) Patch-by: Misha Vodsedalek ........ Merged
revisions 371270 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371271 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371272 from
http://svn.asterisk.org/svn/asterisk/branches/11
* channels/chan_iax2.c, channels/sig_pri.c, channels/sig_ss7.c,
channels/chan_dahdi.c, channels/sig_analog.c, /,
channels/chan_sip.c: Add HANGUPCAUSE information to callee
channels This adds HANGUPCAUSE information to called channels so
that hangup handlers can, in conjunction with predial dialplan
execution, access the hangupcause information when the dialed
channel hangs up on a one-to-one basis instead of a many-to-one
basis as with HANGUPCAUSE usage on the caller channel. Review:
https://reviewboard.asterisk.org/r/2069/ (closes issue
ASTERISK-20198) ........ Merged revisions 371258 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-13 20:36 +0000 [r371228] Kinsey Moore <kmoore@digium.com>
* main/loader.c, /, apps/app_meetme.c: Add test instrumentation
This adds test instrumentation for loading and unloading of
modules and for certain actions in MeetMe to be used in the
testsuite or any other consumer of AMI events. These will only be
generated when Asterisk is built with TEST_FRAMEWORK enabled.
(issue PQ-1131) (issue PQ-1133) ........ Merged revisions 371201
from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
Merged revisions 371203 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371227 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-13 20:02 +0000 [r371202] Mark Michelson <mmichelson@digium.com>
* /, channels/chan_sip.c: Fix problem where incorrect pointer was
checked for nullity. ........ Merged revisions 371198 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371199 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371200 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-11 19:13 +0000 [r371170] Matthew Jordan <mjordan@digium.com>
* UPGRADE-11.txt (added), UPGRADE.txt: Add UPGRADE-11.txt file;
update UPGRADE.txt to reflect Asterisk 12
2012-08-10 22:04 +0000 [r371147] Richard Mudgett <rmudgett@digium.com>
* /, CHANGES: Update CHANGES for private party ID. ........ Merged
revisions 371146 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-10 21:35 +0000 [r371144] Mark Michelson <mmichelson@digium.com>
* apps/app_queue.c, /: Fix a couple of documentation problems in
app_queue.c * The RemoveQueueMember app made mention of options
that could be passed in, but no options are supported. I have
removed the listing of options from the documentation. * The
RQMSTATUS variable did not list "NOTDYNAMIC" as a possible value
that could be set. (closes issue AST-949) reported by Steve Pitts
(closes issue AST-954) reported by Steve Pitts ........ Merged
revisions 371141 from
http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
revisions 371142 from
http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
revisions 371143 from
http://svn.asterisk.org/svn/asterisk/branches/11
2012-08-10 21:09 +0000 [r371134] Matthew Jordan <mjordan@digium.com>
* /: Remove 10 properties, add 11 properties
2012-08-10 19:54 +0000 [r371120] Richard Mudgett <rmudgett@digium.com>
* channels/sig_pri.c, funcs/func_callerid.c, main/cli.c,
main/channel.c, channels/chan_misdn.c, channels/chan_sip.c,
main/channel_internal_api.c, main/features.c,
include/asterisk/channel.h: Add private representation of caller,
connected and redirecting party ids. This patch adds the feature
"Private representation of caller, connected and redirecting
party ids", as previously discussed with us (DATUS) and Digium.
1. Feature motivation Until now it is quite difficult to modify a
party number or name which can only be seen by exactly one
particular instantiated technology channel subscriber. One
example where a modified party number or name on one channel is
spread over several channels are supplementary services like call
transfer or pickup. To implement these features Asterisk
internally copies caller and connected ids from one channel to
another. Another example are extension subscriptions. The
monitoring entities (watchers) are notified of state changes and
- if desired - of party numbers or names which represent the
involving call parties. One major feature where a private
representation of party names is essentially needed, i.e. where a
party name shall be exclusively signaled to only one particular
user, is a private user-specific name resolution for party
numbers. A lookup in a private destination-dependent telephone
book shall provide party names which cannot be seen by any other
user at any time. 2. Feature Description This feature comes along
with the implementation of additional private party id elements
for caller id, connected id and redirecting ids inside Asterisk
channels. The private party id elements can be read or set by the
user using Asterisk dialplan functions. When a technology channel
is initiating a call, receives an internal connected-line update
event, or receives an internal redirecting update event, it
merges the corresponding public id with the private id to create
an effective party id. The effective party id is then used for
protocol signaling. The channel technologies which initially
support the private id representation with this patch are SIP
(chan_sip), mISDN (chan_misdn) and PRI (chan_dahdi). Once a
private name or number on a channel is set and (implicitly) made
valid, it is generally used for any further protocol signaling
until it is rewritten or invalidated. To simplify the
invalidation of private ids all internally generated
connected/redirecting update events and also all
connected/redirecting update events which are generated by
technology channels -- receiving regarding protocol information -
automatically trigger the invalidation of private ids. If not
using the private party id representation feature at all, i.e. if
using only the 'regular' caller-id, connected and redirecting
related functions, the current characteristic of Asterisk is not
affected by the new extended functionality. 3. User interface
Description To grant access to the private name and number
representation from the Asterisk dialplan, the CALLERID,
CONNECTEDLINE and REDIRECTING dialplan functions are extended by
the following data types. The formats of these data types are
equal to the corresponding regular 'non-private' already existing
data types: CALLERID: priv-all priv-name priv-name-valid
priv-name-charset priv-name-pres priv-num priv-num-valid
priv-num-plan priv-num-pres priv-subaddr priv-subaddr-valid
priv-subaddr-type priv-subaddr-odd priv-tag CONNECTEDLINE:
priv-name priv-name-valid priv-name-pres priv-name-charset
priv-num priv-num-valid priv-num-pres priv-num-plan priv-subaddr
priv-subaddr-valid priv-subaddr-type priv-subaddr-odd priv-tag
REDIRECTING: priv-orig-name priv-orig-name-valid
priv-orig-name-pres priv-orig-name-charset priv-orig-num
priv-orig-num-valid priv-orig-num-pres priv-orig-num-plan
priv-orig-subaddr priv-orig-subaddr-valid priv-orig-subaddr-type
priv-orig-subaddr-odd priv-orig-tag priv-from-name
priv-from-name-valid priv-from-name-pres priv-from-name-charset
priv-from-num priv-from-num-valid priv-from-num-pres
priv-from-num-plan priv-from-subaddr priv-from-subaddr-valid
priv-from-subaddr-type priv-from-subaddr-odd priv-from-tag
priv-to-name priv-to-name-valid priv-to-name-pres
priv-to-name-charset priv-to-num priv-to-num-valid
priv-to-num-pres priv-to-num-plan priv-to-subaddr
priv-to-subaddr-valid priv-to-subaddr-type priv-to-subaddr-odd
priv-to-tag Reported by: Thomas Arimont Review:
https://reviewboard.asterisk.org/r/2030/