9 years agoAdd more constness to the end_buf pointer in the netconsole
Terry Wilson [Thu, 26 Apr 2012 19:33:49 +0000 (19:33 +0000)]
Add more constness to the end_buf pointer in the netconsole

issue ASTERISK-18308

Merged revisions 364046 from

Merged revisions 364047 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoCode formatting fixes.
Olle Johansson [Thu, 26 Apr 2012 13:59:11 +0000 (13:59 +0000)]
Code formatting fixes.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix reference leaks involving SIP Replaces transfers
Kinsey Moore [Thu, 26 Apr 2012 13:31:16 +0000 (13:31 +0000)]
Fix reference leaks involving SIP Replaces transfers

The reference held for SIP blind transfers using the Replaces header in an
INVITE was never freed on success and also failed to be freed in some error
conditions.  This caused a file descriptor leak since the RTP structures in use
at the time of the transfer were never freed.  This reference leak and another
relating to subscriptions in the same code path have now been corrected.

(closes issue ASTERISK-19579)

Merged revisions 363986 from

Merged revisions 363987 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agochan_sip: [general] maxforwards, not checked for a value greater than 255
Alec L Davis [Thu, 26 Apr 2012 09:48:55 +0000 (09:48 +0000)]
chan_sip: [general] maxforwards, not checked for a value greater than 255

The peer maxforwards is checked for both '< 1' and '> 255',
but the default 'maxforwards' in the [general] section is only checked for '< 1'

alecdavis (license 585)
Reported by: alecdavis
Tested by: alecdavis


Merged revisions 363934 from

Merged revisions 363935 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate Pickup application documentation. (Even better)
Richard Mudgett [Thu, 26 Apr 2012 03:12:44 +0000 (03:12 +0000)]
Update Pickup application documentation. (Even better)

Merged revisions 363875 from

Merged revisions 363876 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years ago* Put more information in pickup_exec() LOG_NOTICE.
Richard Mudgett [Thu, 26 Apr 2012 01:29:09 +0000 (01:29 +0000)]
* Put more information in pickup_exec() LOG_NOTICE.

* Delay duplicating a string on the stack in pickup_exec().

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate Pickup application documentation.
Richard Mudgett [Wed, 25 Apr 2012 23:00:26 +0000 (23:00 +0000)]
Update Pickup application documentation.

Merged revisions 363788 from

Merged revisions 363789 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting...
Richard Mudgett [Wed, 25 Apr 2012 20:51:58 +0000 (20:51 +0000)]
Make DAHDISendCallreroutingFacility wait 5 seconds for a reply before disconnecting the call.

Some switches may not handle the call-deflection/call-rerouting message if
the call is disconnected too soon after being sent.  Asteisk was not
waiting for any reply before disconnecting the call.

* Added a 5 second delay before disconnecting the call to wait for a
potential response if the peer does not disconnect first.

(closes issue ASTERISK-19708)
Reported by: mehdi Shirazi
      jira_asterisk_19708_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett

Merged revisions 363730 from

Merged revisions 363734 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoClear ISDN channel resetting state if the peer continues to use it.
Richard Mudgett [Wed, 25 Apr 2012 19:55:12 +0000 (19:55 +0000)]
Clear ISDN channel resetting state if the peer continues to use it.

Some ISDN switches occasionally fail to send a RESTART ACKNOWLEDGE in
response to a RESTART request.

* Made the second SETUP received after sending a RESTART request clear the
channel resetting state as if the peer had sent the expected RESTART
ACKNOWLEDGE before continuing to process the SETUP.  The peer may not be
sending the expected RESTART ACKNOWLEDGE.

(issue ASTERISK-19608)
(issue AST-844)
(issue AST-815)
      jira_ast_815_v1.8.patch (license #5621) patch uploaded by rmudgett (modified)

Merged revisions 363687 from

Merged revisions 363688 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd documentation
Olle Johansson [Wed, 25 Apr 2012 13:57:01 +0000 (13:57 +0000)]
Add documentation

Thanks Tilghman!

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFormatting changes only
Olle Johansson [Wed, 25 Apr 2012 11:18:14 +0000 (11:18 +0000)]
Formatting changes only

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUse the DEFINED value for musicclass length.
Olle Johansson [Wed, 25 Apr 2012 10:49:13 +0000 (10:49 +0000)]
Use the DEFINED value for musicclass length.

For some reason, features.c has it's own definition. Should propably be fixed too.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake it possible to change the minimum DTMF duration in asterisk.conf
Olle Johansson [Wed, 25 Apr 2012 09:32:21 +0000 (09:32 +0000)]
Make it possible to change the minimum DTMF duration in asterisk.conf

Asterisk has a setting for the minimum allowed DTMF. If we get shorter
DTMF tones, these will be changed to the minimum on the outbound call

(closes issue ASTERISK-19772)

Reported by: oej
Tested by: oej
Patches by: oej

Thanks to the reviewers.

1.8 branch for this patch: agave-dtmf-duration-asterisk-conf-1.8

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFormatting fixes
Olle Johansson [Wed, 25 Apr 2012 08:39:01 +0000 (08:39 +0000)]
Formatting fixes

Developer guidelines are important.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFormatting fixes
Olle Johansson [Wed, 25 Apr 2012 08:02:52 +0000 (08:02 +0000)]
Formatting fixes

Found a small amount of curly brackets in my hotel room here in Denmark.
I hereby donate them to the Asterisk project.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix recalled party B feature flags for a failed DTMF atxfer.
Richard Mudgett [Wed, 25 Apr 2012 01:26:44 +0000 (01:26 +0000)]
Fix recalled party B feature flags for a failed DTMF atxfer.

1) B calls A with Dial option T
2) B DTMF atxfer to C
3) B hangs up
4) C does not answer
5) B is called back
6) B answers
7) B cannot initiate transfers anymore

* Add dial features datastore to recalled party B channel that is a copy
of the original party B channel's dial features datastore.

* Extracted add_features_datastore() from add_features_datastores().

* Renamed struct ast_dial_features features_caller and features_callee
members to my_features and peer_features respectively.  These better names
eliminate the need for some explanatory comments.

* Simplified code accessing the struct ast_dial_features datastore.

(closes issue ASTERISK-19383)
Reported by: lgfsantos

Merged revisions 363428 from

Merged revisions 363429 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoHangup affected channel in error paths of bridge_call_thread().
Richard Mudgett [Wed, 25 Apr 2012 00:03:52 +0000 (00:03 +0000)]
Hangup affected channel in error paths of bridge_call_thread().

Merged revisions 363375 from

Merged revisions 363376 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoOpenBSD doesn't have rawmemchr, use strchr
Terry Wilson [Tue, 24 Apr 2012 17:52:26 +0000 (17:52 +0000)]
OpenBSD doesn't have rawmemchr, use strchr

(closes issue ASTERISK-19758)
Reported by: Barry Miller
Tested by: Terry Wilson
  362758-diff uploaded by Barry Miller (license 5434)

Merged revisions 362868 from

Merged revisions 362869 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake app_dial and app_queue use new macro and gosub calls.
Richard Mudgett [Mon, 23 Apr 2012 17:05:55 +0000 (17:05 +0000)]
Make app_dial and app_queue use new macro and gosub calls.

* Simplify some code in app_dial and app_queue by calling
ast_app_exec_macro() and ast_app_exec_sub().

* Fix minor locking issue in app_dial for post-answer macro/gosub

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoOn some platforms, O_RDONLY is not a flag to be checked, but merely the absence of...
Tilghman Lesher [Mon, 23 Apr 2012 16:08:33 +0000 (16:08 +0000)]
On some platforms, O_RDONLY is not a flag to be checked, but merely the absence of O_RDWR and O_WRONLY.

The POSIX specification does not mandate how these 3 flags must be specified,
only that one of the three must be specified in every call.

Merged revisions 363209 from

Merged revisions 363212 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAST-2012-004: Fix an error that allows AMI users to run shell commands sans authoriza...
Jonathan Rose [Mon, 23 Apr 2012 14:48:22 +0000 (14:48 +0000)]
AST-2012-004: Fix an error that allows AMI users to run shell commands sans authorization.

As detailed in the advisory, AMI users without write authorization for SYSTEM class AMI
actions were able to run system commands by going through other AMI commands which did
not require that authorization. Specifically, GetVar and Status allowed users to do this
by setting their variable/s options to the SHELL or EVAL functions.
Also, within 1.8, 10, and trunk there was a similar flaw with the Originate action that
allowed users with originate permission to run MixMonitor and supply a shell command
in the Data argument. That flaw is fixed in those versions of this patch.

(closes issue ASTERISK-17465)
Reported By: David Woolley
162_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
18_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)
10_ami_readfunc_security_r2.diff uploaded by jrose (license 6182)

Merged revisions 363117 from

Merged revisions 363141 from

Merged revisions 363156 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAST-2012-006: Fix crash in UPDATE handling when no channel owner exists
Matthew Jordan [Mon, 23 Apr 2012 14:10:19 +0000 (14:10 +0000)]
AST-2012-006: Fix crash in UPDATE handling when no channel owner exists

If Asterisk receives a SIP UPDATE request after a call has been terminated and
the channel has been destroyed but before the SIP dialog has been destroyed, a
condition exists where a connected line update would be attempted on a
non-existing channel.  This would cause Asterisk to crash.  The patch resolves
this by first ensuring that the SIP dialog has an owning channel before
attempting a connected line update.  If an UPDATE request is received and no
channel is associated with the dialog, a 481 response is sent.

(closes issue ASTERISK-19770)
Reported by: Thomas Arimont
Tested by: Matt Jordan
  ASTERISK-19278-2012-04-16.diff uploaded by Matt Jordan (license 6283)

Merged revisions 363106 from

Merged revisions 363107 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAST-2012-005: Fix remotely exploitable heap overflow in keypad button handling
Matthew Jordan [Mon, 23 Apr 2012 13:53:24 +0000 (13:53 +0000)]
AST-2012-005: Fix remotely exploitable heap overflow in keypad button handling

When handling a keypad button message event, the received digit is placed into
a fixed length buffer that acts as a queue.  When a new message event is
received, the length of that buffer is not checked before placing the new digit
on the end of the queue.  The situation exists where sufficient keypad button
message events would occur that would cause the buffer to be overrun.  This
patch explicitly checks that there is sufficient room in the buffer before
appending a new digit.

(closes issue ASTERISK-19592)
Reported by: Russell Bryant

Merged revisions 363100 from

Merged revisions 363102 from

Merged revisions 363103 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agores_corosync: Recover if corosync gets restarted.
Russell Bryant [Sat, 21 Apr 2012 11:45:28 +0000 (11:45 +0000)]
res_corosync: Recover if corosync gets restarted.

If corosync gets restarted while Asterisk is running, automatically recover.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agores_corosync: reimplement "corosync show members" command.
Russell Bryant [Sat, 21 Apr 2012 11:40:42 +0000 (11:40 +0000)]
res_corosync: reimplement "corosync show members" command.

Reimplement the "corosync show members" CLI command using a CPG iterator
instead of the cpg_membership_get API call.  This will also show all
CPG members, including those in groups other than 'asterisk', which may
be useful at some point for debugging purposes.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate app_dial M and U option GOTO return value documentation.
Richard Mudgett [Sat, 21 Apr 2012 01:46:34 +0000 (01:46 +0000)]
Update app_dial M and U option GOTO return value documentation.

Merged revisions 362997 from

Merged revisions 362998 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix connected-line/redirecting interception gosubs executing more than intended.
Richard Mudgett [Fri, 20 Apr 2012 23:29:56 +0000 (23:29 +0000)]
Fix connected-line/redirecting interception gosubs executing more than intended.

* Redo ast_app_run_sub()/ast_app_exec_sub() to use a known return point so
execution will stop after the routine returns there.

* Create ast_app_exec_macro() and ast_app_exec_sub() to run the macro and
gosub application respectively with the parameter string already created.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMove debug message in ast_rtp_instance_early_bridge_make_compatible().
Richard Mudgett [Fri, 20 Apr 2012 16:57:09 +0000 (16:57 +0000)]
Move debug message in ast_rtp_instance_early_bridge_make_compatible().

Move debug message in ast_rtp_instance_early_bridge_make_compatible() to
be output when what it states has actually happened.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd missing payload type to events API
Michael L. Young [Fri, 20 Apr 2012 16:50:38 +0000 (16:50 +0000)]
Add missing payload type to events API

The Security Events Framework API was changed while adding the generation of
security events in chan_sip.  A payload type and name was missed from being
added to struct ie_maps.

(closes issue ASTERISK-19759)
Reported by: Michael L. Young
    issue-asterisk-19759.diff uploaded by Michael L. Young (license 5026)

Merged revisions 362918 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUse ast_channel_lock_both() where it was inlined before.
Richard Mudgett [Fri, 20 Apr 2012 16:23:01 +0000 (16:23 +0000)]
Use ast_channel_lock_both() where it was inlined before.

The CHANNEL_DEADLOCK_AVOIDANCE() feature of preserving where the channel
lock was originally obtained is overkill where ast_channel_lock_both() was

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years ago* Add more information to some messages in __ast_pbx_run().
Richard Mudgett [Fri, 20 Apr 2012 16:04:37 +0000 (16:04 +0000)]
* Add more information to some messages in __ast_pbx_run().

* Simplify some dialplan priority setting code in ast_explicit_goto()
because of opaquification.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDocument Speech* apps hangup on failure and suggest TryExec
Terry Wilson [Fri, 20 Apr 2012 14:50:42 +0000 (14:50 +0000)]
Document Speech* apps hangup on failure and suggest TryExec

The Speech API apps return -1 on failure, which will hang up the channel. This
may not be desirable behavior for some, but it isn't something that can be
changed without breaking people's dialplans or writing an option to all of the
Speech apps that does what TryExec already does. This patch documents the
hangup behavior of the apps, and suggests TryExec as the solution.

(closes issue AST-813)

Merged revisions 362815 from

Merged revisions 362816 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd original party id and reason support.
Richard Mudgett [Fri, 20 Apr 2012 00:57:13 +0000 (00:57 +0000)]
Add original party id and reason support.

ISDN ETSI PTP and Q.SIG (And SS7 in future) have support for reporting who
was the original redirecting party of a call.

* Added support for the original redirecting party and reason to the
REDIRECTING function and the system core as well as to the stubbed
locations in sig_pri.c.


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix documentation for ${VERSION(ASTERISK_VERSION_NUM)}.
Walter Doekes [Thu, 19 Apr 2012 22:01:20 +0000 (22:01 +0000)]
Fix documentation for ${VERSION(ASTERISK_VERSION_NUM)}.

Merged revisions 362729 from

Merged revisions 362730 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd leading and trailing backslashes
Michael L. Young [Thu, 19 Apr 2012 21:14:35 +0000 (21:14 +0000)]
Add leading and trailing backslashes

A couple of unit tests did not have have leading or trailing backslashes when
setting their test category resulting in a warning message being displayed.
Added the backslash where needed.

Merged revisions 362680 from

Merged revisions 362681 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdate membermacro and membergosub documentation in queues.conf.sample.
Richard Mudgett [Thu, 19 Apr 2012 21:01:07 +0000 (21:01 +0000)]
Update membermacro and membergosub documentation in queues.conf.sample.

Merged revisions 362677 from

Merged revisions 362678 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoConvert some strncpys to ast_copy_string
Terry Wilson [Thu, 19 Apr 2012 19:05:17 +0000 (19:05 +0000)]
Convert some strncpys to ast_copy_string


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoPrevent a crash in ExternalIVR when the 'S' command is sent first.
Sean Bright [Thu, 19 Apr 2012 16:10:04 +0000 (16:10 +0000)]
Prevent a crash in ExternalIVR when the 'S' command is sent first.

If the first command sent from an ExternalIVR client is an 'S' command, we were
blindly removing the first element from the play list and deferencing it, even
if it was NULL.  This corrects that and also locks appropriately in one place.

(issue ASTERISK-17889)
Reported by: Chris Maciejewski

Merged revisions 362586 from

Merged revisions 362587 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoHandle multiple commands per connection via netconsole
Terry Wilson [Thu, 19 Apr 2012 14:35:56 +0000 (14:35 +0000)]
Handle multiple commands per connection via netconsole

Asterisk would accept multiple NULL-delimited CLI commands via the
netconsole socket, but would occasionally miss a command due to the
command not being completely read into the buffer. This patch ensures
that any partial commands get moved to the front of the read buffer,
appended to, and properly sent.

(closes issue ASTERISK-18308)

Merged revisions 362536 from

Merged revisions 362537 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix a variety of potential buffer overflows
Matthew Jordan [Thu, 19 Apr 2012 02:40:55 +0000 (02:40 +0000)]
Fix a variety of potential buffer overflows

* chan_mobile: Fixed an overrun where the cind_state buffer (an integer array
  of size 16) would be overrun due to improper bounds checking. At worst, the
  buffer can be overrun by a total of 48 bytes (assuming 4-byte integers),
  which would still leave it within the allocated memory of struct hfp.  This
  would corrupt other elements in that struct but not necessarily cause any
  further issues.

* app_sms: The array imsg is of size 250, while the array (ud) that the data
  is copied into is of size 160.  If the size of the inbound message is
  greater then 160, up to 90 bytes could be overrun in ud.  This would corrupt
  the user data header (array udh) adjacent to ud.

* chan_unistim: A number of invalid memmoves are corrected.  These would move
  data (which may or may not be valid) into the ends of these buffers.

* asterisk: ast_console_toggle_loglevel does not check that the console log
  level being set is less then or equal to the allowed log levels of 32.

* format_pref: In ast_codec_pref_prepend, if any occurrence of the specified
  codec is not found, the value used to index into the array pref->order
  would be one greater then the maximum size of the array.

* jitterbuf: If the element being placed into the jitter buffer lands in the
  last available slot in the jitter history buffer, the insertion sort attempts
  to move the last entry in the buffer into one slot past the maximum length
  of the buffer.  Note that this occurred for both the min and max jitter
  history buffers.

* tdd: If a read from fsk_serial returns a character that is greater then 32,
  an attempt to read past one of the statically defined arrays containing the
  values that character maps to would occur.

* localtime: struct ast_time and tm are not the same size - ast_time is larger,
  although it contains the elements of tm within it in the same layout.  Hence,
  when using memcpy to copy the contents of tm into ast_time, the size of tm
  should be used, as opposed to the size of ast_time.

* extconf: this treats ast_timing's minmask array as if it had a length of 48,
  when it has defined the size of the array as 24.  pbx.h defines minmask as
  having a size of 48.

(issue ASTERISK-19668)
Reported by: Matt Jordan

Merged revisions 362485 from

Merged revisions 362496 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix building security events test
Michael L. Young [Wed, 18 Apr 2012 17:03:16 +0000 (17:03 +0000)]
Fix building security events test

The Security Events Framework API changed in trunk to support IPv6.  This broke
the building of the security events test which was based around IPv4.  This
patches fixes the build by changing the test to conform to the new changes.

(related to issue ASTERISK-19447)


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd ability to ignore layer 1 alarms for BRI PTMP lines.
Richard Mudgett [Wed, 18 Apr 2012 16:41:17 +0000 (16:41 +0000)]
Add ability to ignore layer 1 alarms for BRI PTMP lines.

Several telcos bring the BRI PTMP layer 1 down when the line is idle.
When layer 1 goes down, Asterisk cannot make outgoing calls.  Incoming
calls could fail as well because the alarm processing is handled by a
different code path than the Q.931 messages.

* Add the layer1_presence configuration option to ignore layer 1 alarms
when the telco brings layer 1 down.  This option can be configured by span
while the similar DAHDI driver teignorered=1 option is system wide.  This
option unlike layer2_persistence does not require libpri v1.4.13 or newer.

Related to JIRA AST-598


Merged revisions 362428 from

Merged revisions 362429 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoHandle case where an unknown format is used to get the preferred codec size
Matthew Jordan [Tue, 17 Apr 2012 21:23:25 +0000 (21:23 +0000)]
Handle case where an unknown format is used to get the preferred codec size

In ast_codec_pref_getsize, if an unknown format is passed to the method,
no preferred codec will be selected and a negative number will be used to
index into the format list.  The method now logs an unknown format as a
warning, and returns an empty format list.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362377 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix places in resources where a negative return value could impact execution
Matthew Jordan [Tue, 17 Apr 2012 21:14:49 +0000 (21:14 +0000)]
Fix places in resources where a negative return value could impact execution

This patch addresses a number of modules in resources that did not handle the
negative return value from function calls adequately.  This includes:

* res_agi.c: if the result of the read function is a negative number,
indicating some failure, the result would instead be treated as the number
of bytes read.  This patch now treats negative results in the same manner
as an end of file condition, with the exception that it also logs the
error code indicated by the return.

* res_musiconhold.c: if spawn_mp3 fails to assign a file descriptor to srcfd,
and instead assigns a negative value, that file descriptor could later be
passed to functions that require a valid file descriptor.  If spawn_mp3 fails,
we now immediately retry instead of continuing in the logic.

* res_rtp_asterisk.c: if no codec can be matched between two RTP instances
in a peer to peer bridge, we immediately return instead of attempting to
use the codec payload type as an index to determine the appropriate negotiated

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362362 from

Merged revisions 362364 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake use of va_args more appropriate to form in various res_config modules plus utils.
Jonathan Rose [Tue, 17 Apr 2012 21:10:50 +0000 (21:10 +0000)]
Make use of va_args more appropriate to form in various res_config modules plus utils.

A number of va_copy operations weren't matched with a corresponding va_end in res_config_odbc. Also, there was a potential for va_end to be invoked twice on the same va_arg in utils, which would mean invoking va_end on an undefined variable... which is bad.
va_end is removed from various functions in config_pgsql and config_curl since they aren't making their own copy.  The invokers of those functions are responsible for calling va_end on them.

(issue ASTERISK-19451)
Reported by: Walter Doekes

Merged revisions 362354 from

Merged revisions 362357 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix places in main where a negative return value could impact execution
Matthew Jordan [Tue, 17 Apr 2012 21:08:05 +0000 (21:08 +0000)]
Fix places in main where a negative return value could impact execution

This patch addresses a number of modules in main that did not handle the
negative return value from function calls adequately, or were not sufficiently
clear that the conditions leading to improper handling of the return values
could not occur.  This includes:

* asterisk.c: A negative return value from the read function would be used
directly as an index into a buffer.  We now check for success of the read
function prior to using its result as an index.

* manager.c: Check for failures in mkstemp and lseek when handling the
temporary file created for processing data returned from a CLI command in
action_command.  Also check that the result of an lseek is sanitized prior
to using it as the size of a memory map to allocate.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362359 from

Merged revisions 362360 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix places where a negative return from ftello could be used as invalid input
Matthew Jordan [Tue, 17 Apr 2012 20:59:25 +0000 (20:59 +0000)]
Fix places where a negative return from ftello could be used as invalid input

In a variety of locations in both reading and writing a file, the result
from the C library function ftello is used as input to other functions.  For
the parameters and functions in question, a negative value is invalid input.
This patch checks the return value from the ftello function to determine if
we were able to determine the current position in the file stream and, if not,
fail gracefully.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362355 from

Merged revisions 362356 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAvoid cppcheck warnings; removing unused vars and a bit of cleanup.
Walter Doekes [Tue, 17 Apr 2012 18:57:40 +0000 (18:57 +0000)]
Avoid cppcheck warnings; removing unused vars and a bit of cleanup.

Patch by: junky

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix error that caused seek format operations to set max file size to '1' or '0'
Matthew Jordan [Tue, 17 Apr 2012 18:29:51 +0000 (18:29 +0000)]
Fix error that caused seek format operations to set max file size to '1' or '0'

A very inappropriate placement of a ')' (introduced in r362151) caused the
maximum size of a file to be set as the result of a comparison operation, as
opposed to the result of the ftello operation.  This resulted in seeking being
restricted to the beginning of the file, or 1 byte into the file.  Thanks to
the Asterisk Test Suite for properly freaking out about this on at least one

(issue ASTERISK-19655)
Reported by: Matt Jordan

Merged revisions 362304 from

Merged revisions 362305 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoTurn off warning message when bind address is set to any.
Michael L. Young [Tue, 17 Apr 2012 15:00:02 +0000 (15:00 +0000)]
Turn off warning message when bind address is set to any.

When a bind address is set to an ANY address (udpbindport=::), a warning message
is displayed stating that "Address remapping activated in sip.conf but we're
using IPv6, which doesn't need it.  Please remove 'localnet' and/or 'externaddr'
settings."  But if one is running dual stack, we shouldn't be told to turn those
settings off.

This patch checks if the bind address is an ANY address or not.  The warning
message will now only be displayed if the bind address is NOT an ANY address and
IPv6 is being used.

Also, updated the copyright year.

(closes issue ASTERISK-19456)
Reported by: Michael L. Young
Tested by: Michael L. Young
  chan_sip_ipv6_message.diff uploaded by Michael L. Young (license 5026)

Merged revisions 362253 from

Merged revisions 362264 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix negative return handling in channel drivers
Matthew Jordan [Mon, 16 Apr 2012 21:58:06 +0000 (21:58 +0000)]
Fix negative return handling in channel drivers

In chan_agent, while handling a channel indicate, the agent channel driver
must obtain a lock on both the agent channel, as well as the channel the
agent channel is using.  To do so, it attempts to lock the other channel
first, then unlock the agent channel which is locked prior to entry into
the indicate handler.  If this unlock fails with a negative return value,
which can occur if the object passed to agent_indicate is an invalid ao2
object or is NULL, the return value is passed directly to strerror, which
can only accept positive integer values.

In chan_dahdi, the return value of dahdi_get_index is used to directly
index into the sub-channel array.  If dahd_get_index returns a negative
value, it would use that value to index into the array, which could cause
an invalid memory access.  If dahdi_get_index returns a negative number,
we now default to SUB_REAL.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362204 from

Merged revisions 362205 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix handling of negative return code when storing voicemails in ODBC storage
Matthew Jordan [Mon, 16 Apr 2012 21:42:12 +0000 (21:42 +0000)]
Fix handling of negative return code when storing voicemails in ODBC storage

When storing a voicemail message using an ODBC connection to a database, the
voicemail message is first stored on disk.  The sound file associated with
the message is read into memory before being transmitted to the database.
When this occurs, a failure in the C library's lseek function would cause a
negative value to be passed to the mmap as the size of the memory map to
create.  This would almost certainly cause the creation of the memory map to
fail, resulting in the message being lost.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362201 from

Merged revisions 362202 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd IPv6 address support to security events framework.
Michael L. Young [Mon, 16 Apr 2012 21:20:50 +0000 (21:20 +0000)]
Add IPv6 address support to security events framework.

The current Security Events Framework API only supports IPv4 when it comes to
generating security events.  This patch does the following:

* Changes the Security Events Framework API to support IPV6 and updates
  the components that use this API.

* Eliminates an error message that was being generated since the current
  implementation was treating an IPv6 socket address as if it was IPv4.

* Some copyright dates were updated on files touched by this patch.

(closes issue ASTERISK-19447)
Reported by: Michael L. Young
Tested by: Michael L. Young
  security_events_ipv6v3.diff uploaded by Michael L. Young (license 5026)


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoCheck for IO stream failures in various format's truncate/seek operations
Matthew Jordan [Mon, 16 Apr 2012 20:17:03 +0000 (20:17 +0000)]
Check for IO stream failures in various format's truncate/seek operations

For the formats that support seek and/or truncate operations, many of
the C library calls used to determine or set the current position indicator
in the file stream were not being checked.  In some situations, if an error
occurred, a negative value would be returned from the library call.  This
could then be interpreted inappropriately as positional data.

This patch checks the return values from these library calls before
using them in subsequent operations.

(issue ASTERISK-19655)
Reported by: Matt Jordan


Merged revisions 362151 from

Merged revisions 362152 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake ForkCDR e option not set end time of the newly forked CDR log
Jonathan Rose [Fri, 13 Apr 2012 16:12:17 +0000 (16:12 +0000)]
Make ForkCDR e option not set end time of the newly forked CDR log

Prior to this patch, ForkCDR's e option would immediately set the end time of the forked
CDR to that of the CDR that is being terminated. This resulted in the new CDR's end time
being roughly the same as it's beginning time (which is in turn roughly the same as the
original's end time).

(closes issue ASTERISK-19164)
Reported by: Steve Davies
cdr_fork_end.v10.patch uploaded by Steve Davies (license 5012)

Merged revisions 362082 from

Merged revisions 362084 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoSend relative path named recordings to the meetme directory instead of sounds
Jonathan Rose [Fri, 13 Apr 2012 15:38:08 +0000 (15:38 +0000)]
Send relative path named recordings to the meetme directory instead of sounds

Prior to this patch, no effort was made to parse the path name to determine a proper
destination for recordings of MeetMe's r option. This fixes that.


Merged revisions 362079 from

Merged revisions 362080 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoConvert SRV lookup message to debug level
Paul Belanger [Thu, 12 Apr 2012 20:08:26 +0000 (20:08 +0000)]
Convert SRV lookup message to debug level

This helps clean up the Asterisk CLI by converting the log message from verbose
to debug

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd option to invoke the extensions.conf stdexten using the legacy macro method.
Richard Mudgett [Thu, 12 Apr 2012 16:29:52 +0000 (16:29 +0000)]
Add option to invoke the extensions.conf stdexten using the legacy macro method.

ASTERISK-18809 eliminated the legacy macro invocation of the stdexten in
favor of the Gosub method without a means of backwards compatibility.

(issue ASTERISK-18809)
(closes issue ASTERISK-19457)
Reported by: Matt Jordan
Tested by: rmudgett


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake trunkfreq take effect when set
Kinsey Moore [Thu, 12 Apr 2012 16:25:09 +0000 (16:25 +0000)]
Make trunkfreq take effect when set

Previously, setting trunkfreq had no effect on initial load or on reload and
only ever used the default value.  This causes trunkfreq to be used
appropriately on initial load and reload.

(closes issue ASTERISK-19521)
Patch-by: Jaco Kroon

Merged revisions 361972 from

Merged revisions 361981 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoSimplify build system architecture optimization
Kinsey Moore [Thu, 12 Apr 2012 15:25:47 +0000 (15:25 +0000)]
Simplify build system architecture optimization

This change to the build system rips out any usage of PROC along with
architecture-specific optimizations in favor of using -march=native where it is
supported.  This fixes broken builds on 64bit Intel systems and results in
better optimized code on systems running GCC 4.2+.

(closes issue ASTERISK-19462)

Merged revisions 361955 from

Merged revisions 361956 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoChange default value of 'ignorebusy' on Queue members so that behavior is more like 1.8
Jonathan Rose [Wed, 11 Apr 2012 17:20:08 +0000 (17:20 +0000)]
Change default value of 'ignorebusy' on Queue members so that behavior is more like 1.8

Prior to this patch, in order to restore that behavior, a function would have
to be used on the QueueMember to make the ringinuse option do anything, which
is pretty unreasonable.

(closes issue ASTERISK-19536)
reported by: Philippe Lindheimer

Merged revisions 361907 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoPrevent invalid access of free'd memory if DAHDI channel during an MWI event
Richard Mudgett [Tue, 10 Apr 2012 21:50:46 +0000 (21:50 +0000)]
Prevent invalid access of free'd memory if DAHDI channel during an MWI event

In the MWI processing loop, when a valid event occurs the temporary caller ID
information is deallocated.  If a new DAHDI channel is successfully created,
the event is passed up to the analog_ss_thread without error and the loop
exits.  If, however, the DAHDI channel is not created, then the caller ID
struct has been free'd, and the gains reset to their previous level.  This
will almost certainly cause an invalid access to the free'd memory, either
in subsequent calls to callerid_free or calls to callerid_feed.

* Rework the -r361705 patch to better manage the cs and mtd allocated

* Fixed use of mwimonitoractive flag to be correct if the mwi_thread()
fails to start.

Merged revisions 361854 from

Merged revisions 361855 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix crash caused by unloading or reloading of res_http_post
Matthew Jordan [Tue, 10 Apr 2012 19:58:04 +0000 (19:58 +0000)]
Fix crash caused by unloading or reloading of res_http_post

When unlinking itself from the registered HTTP URIs, res_http_post could
inadvertently free all URIs registered with the HTTP server.  This patch
modifies the unregister method to only free the URI that is actually
being unregistered, as opposed to all of them.

Merged revisions 361803 from

Merged revisions 361804 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAllow func_curl to exit gracefully if list allocation fails during write
Matthew Jordan [Mon, 9 Apr 2012 21:47:54 +0000 (21:47 +0000)]
Allow func_curl to exit gracefully if list allocation fails during write

If the global_curl_info data structure could not be allocated, the
datastore associated with the operation would be free'd, but the function
would not return.  This would later dereference the datastore, almost
certainly causing Asterisk to crash.  With this patch, if the data
structure is not allocated the method will return an error code, and
not attempt any further operation.

Merged revisions 361753 from

Merged revisions 361754 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoPrevent invalid access of free'd memory if DAHDI channel during an MWI event
Matthew Jordan [Mon, 9 Apr 2012 20:55:53 +0000 (20:55 +0000)]
Prevent invalid access of free'd memory if DAHDI channel during an MWI event

In the MWI processing loop, when a valid event occurs the temporary caller ID
information is deallocated.  If a new DAHDI channel is successfully created,
the event is passed up to the analog_ss_thread without error and the loop
exits.  If, however, the DAHDI channel is not created, then the caller ID
struct has been free'd, and the gains reset to their previous level.  This
will almost certainly cause an invalid access to the free'd memory, either
in subsequent calls to callerid_free or calls to callerid_feed.

This patch makes it so that we only free the caller ID structure if a
DAHDI channel is successfully created, and we bump the gains back up
if we fail to make a DAHDI channel.

Merged revisions 361705 from

Merged revisions 361706 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoChange SHARED function to use a safe traversal when modifying a variable
Matthew Jordan [Mon, 9 Apr 2012 19:44:35 +0000 (19:44 +0000)]
Change SHARED function to use a safe traversal when modifying a variable

When the SHARED function modifies a variable, it removes it from its list of
variables and reinserts the new value at the head of the list of variables.
Doing this inside a standard list traversal can be dangerous, as the
standard list traversal does not account for the list being changed.  While
the code in question should not cause a use after free violation due to its
breaking out of the loop after freeing the variable, it could lead to a
maintenance issue if the loop was modified.  This also fixes a violation
reported by a static analysis tool, which also makes this code easier to
maintain in the future.

Merged revisions 361657 from

Merged revisions 361658 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix memory leak in res_calendar_ews when event email address node is empty
Matthew Jordan [Fri, 6 Apr 2012 22:00:58 +0000 (22:00 +0000)]
Fix memory leak in res_calendar_ews when event email address node is empty

If the XML calendar data returned by a Microsoft Exchange Web Service
specifies an XML Event E-Mail Address ("EmailAddress"), and no e-mail address
is provided, a condition existed where an ast_calendar_attendee struct would
be allocated but not appended to the list of attendees.  Because of that,
the memory associated with the attendee would never be freed.  This patch
frees the memory if no e-mail address is provided.

Merged revisions 361606 from

Merged revisions 361607 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix memory leak when using MeetMeAdmin 'e' option with user specified
Matthew Jordan [Fri, 6 Apr 2012 20:32:52 +0000 (20:32 +0000)]
Fix memory leak when using MeetMeAdmin 'e' option with user specified

A memory leak/reference counting leak occurs if the MeetMeAdmin 'e' command
(eject last user that joined) is used in conjunction with a specified user.
Regardless of the command being executed, if a user is specified for the
command, MeetMeAdmin will look up that user.  Because the 'e' option kicks
the last user that joined, as opposed to the one specified, the reference to
the user specified by the command would be leaked when the user variable
was assigned to the last user that joined.

Merged revisions 361558 from

Merged revisions 361560 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoDon't add an empty MESSAGE_DATA(key) header if it doesn't already exist.
Richard Mudgett [Fri, 6 Apr 2012 19:58:44 +0000 (19:58 +0000)]
Don't add an empty MESSAGE_DATA(key) header if it doesn't already exist.

Doing Set(MESSAGE_DATA(key)=) would add an empty key header if the key
header did not already exist.  If it already existed it would delete it.

* Made msg_set_var_full() exit early if the named variable did not already
exist and the value to set is empty.

Merged revisions 361522 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd missing newlines to CLI logging
Kinsey Moore [Fri, 6 Apr 2012 18:19:03 +0000 (18:19 +0000)]
Add missing newlines to CLI logging

Merged revisions 361471 from

Merged revisions 361472 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMultiple revisions 361403,361412
Paul Belanger [Fri, 6 Apr 2012 16:33:24 +0000 (16:33 +0000)]
Multiple revisions 361403,361412

  r361403 | pabelanger | 2012-04-06 12:24:36 -0400 (Fri, 06 Apr 2012) | 2 lines

  Fix typo in svn:keywords
  r361412 | pabelanger | 2012-04-06 12:27:30 -0400 (Fri, 06 Apr 2012) | 2 lines

  Fix typo in svn:keywords

Merged revisions 361403,361412 from

Merged revisions 361422 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoRemove a few more files related to chan_usbradio and app_rpt.
Russell Bryant [Fri, 6 Apr 2012 15:50:18 +0000 (15:50 +0000)]
Remove a few more files related to chan_usbradio and app_rpt.

Merged revisions 361380 from

Merged revisions 361381 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix a typo in the warning messages for an ignored media stream
Matthew Jordan [Fri, 6 Apr 2012 14:02:16 +0000 (14:02 +0000)]
Fix a typo in the warning messages for an ignored media stream

Added a '\n' to the warning messages when we ignore a media stream due to the
port number being '0'.

(closes issue ASTERISK-19646)
Reported by: Badalian Vyacheslav

Merged revisions 361332 from

Merged revisions 361333 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoRemove unnecessary error message in app_dial.c
Kinsey Moore [Fri, 6 Apr 2012 13:32:34 +0000 (13:32 +0000)]
Remove unnecessary error message in app_dial.c

The error message for failure to stop autoservice after a gosub or macro call
during a dial was removed for macro while Asterisk 1.4 was still being actively
developed. The corresponding gosub error message was never removed.

(closes issue ASTERISK-19551)

Merged revisions 361329 from

Merged revisions 361330 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix MusicOnHold in MeetMe so that it always uses the class if it's been defined
Jonathan Rose [Thu, 5 Apr 2012 17:22:30 +0000 (17:22 +0000)]
Fix MusicOnHold in MeetMe so that it always uses the class if it's been defined

There were a few instances of restarting music on hold in meetme that would cause
Asterisk to revert to the default class of music on hold for no adequate reason.


Merged revisions 361269 from

Merged revisions 361270 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix some stuff involving calls to memcpy and memset
Jonathan Rose [Wed, 4 Apr 2012 20:10:08 +0000 (20:10 +0000)]
Fix some stuff involving calls to memcpy and memset

The important parts of the patch were already applied through other updates.

(closes issue ASTERISK-19445)
Reported by: Makoto Dei
memset-memcpy-length.patch uploaded by Makoto Dei (license 5027)

Merged revisions 361210 from

Merged revisions 361211 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake 'help devstate change' display properly (get rid of excess comma)
Jonathan Rose [Wed, 4 Apr 2012 19:32:57 +0000 (19:32 +0000)]
Make 'help devstate change' display properly (get rid of excess comma)

(closes issue ASTERISK-19444)
Reported by: Makoto Dei
devstate-change-usage-truncate.patch uploaded by Makoto Dei (license 5027)

Merged revisions 361201 from

Merged revisions 361208 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoReplace GNU old-style field designator extensions to fix clang warnings
Jonathan Rose [Wed, 4 Apr 2012 18:08:28 +0000 (18:08 +0000)]
Replace GNU old-style field designator extensions to fix clang warnings

(issue ASTERISK-19540)
Reported by: Makoto Dei
clang-gnu-designator.patch uploaded by Makoto Dei (license 5027)
Also add from the patch the portion in res_fax_spandsp that didn't apply to 1.8

Merged revisions 361142 from
(closes issue ASTERISK-19540)

Merged revisions 361143 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake the MeetMeAdmin N command (mute all nonadmins) not mute admins
Jonathan Rose [Wed, 4 Apr 2012 13:51:45 +0000 (13:51 +0000)]
Make the MeetMeAdmin N command (mute all nonadmins) not mute admins

(Closes Issue ASTERISK-19335)
Reported by: Johan Wilfer

Merged revisions 361090 from

Merged revisions 361091 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix the display of documentation for Transfer
Kinsey Moore [Tue, 3 Apr 2012 20:14:01 +0000 (20:14 +0000)]
Fix the display of documentation for Transfer

This came up while fixing documentation generation for many other cases where
the argument separator was not being displayed properly.  Now that it is
displayed properly, it shows up in the wrong place for Transfer since the '/'
is only required if Tech is present.

(related to issue ASTERISK-18168)

Merged revisions 361040 from

Merged revisions 361041 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix dev-mode compiler warning about gnu_printf
Mark Murawki [Tue, 3 Apr 2012 20:03:44 +0000 (20:03 +0000)]
Fix dev-mode compiler warning about gnu_printf

(related to ASTERISK-19575)

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAllow the Hangup manager action to match channels by regex
Mark Murawki [Tue, 3 Apr 2012 19:31:25 +0000 (19:31 +0000)]
Allow the Hangup manager action to match channels by regex

* Hangup now can take a regular expression as the Channel option.  If you want
  to hangup multiple channels, use /regex/ as the Channel option.  Existing
  behavior to hanging up a single channel is unchanged, but if you pass a regex,
  the manager will send you a list of channels back that were hung up.

(closes issue ASTERISK-19575)
Reported by: Mark Murawski
Tested by: Mark Murawski

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoStop sending out RTCP if RTP is inactive
Kinsey Moore [Mon, 2 Apr 2012 22:27:13 +0000 (22:27 +0000)]
Stop sending out RTCP if RTP is inactive

This change prevents Asterisk from sending RTCP receiver reports during a
remote bridge since it is no longer receiving media and should not be
reporting anything.

(related to ASTERISK-19366)

Merged revisions 360987 from

Merged revisions 360993 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix logger deadlock on Asterisk shutdown.
Richard Mudgett [Fri, 30 Mar 2012 21:38:16 +0000 (21:38 +0000)]
Fix logger deadlock on Asterisk shutdown.

The logger_thread() had an exit path that failed to release the logmsgs
list lock.

* Make logger_thread() exit path unlock the logmsgs list lock.

* Made ast_log() not queue any messages to the logmsgs list if the
close_logger_thread flag is set.

(issue ASTERISK-19463)
Reported by: Matt Jordan

Merged revisions 360933 from

Merged revisions 360934 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix potential race condition during call pickup.
Mark Michelson [Thu, 29 Mar 2012 23:36:37 +0000 (23:36 +0000)]
Fix potential race condition during call pickup.

Prior to this patch, a connected line update was queued during
call pickup and then an answer frame was queued. The original
caller would presumably then have his connected line updated
and then the call would be answered.

In actuality, the answer frame was not how the call ended up
being answered. Rather, an odd section in app_dial that checks
if the called channel's state is up.

The result is that the order of the connected line update and
the answer were variable. In most cases, this wasn't actually
a bad thing. However, if the 'I' option was passed to dial, the
connected line update would be inhibited.

The fix is to queued the connected line after the answer frame is
queued. This way the race in app_dial is between two
conditions resulting in an answer. This way the connected line
update occurs after the answer every time.

(closes issue ASTERISK-19183)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
    Mark Michelson
    ASTERISK-19183.patch uploaded by Mark Michelson (license 5049)

Merged revisions 360884 from

Merged revisions 360885 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoImprove accuracy of identifying information sent in dialog-info SIP NOTIFY requests.
Mark Michelson [Thu, 29 Mar 2012 23:22:01 +0000 (23:22 +0000)]
Improve accuracy of identifying information sent in dialog-info SIP NOTIFY requests.

This change makes use of connected party information in addition to caller ID in order
to populate local and remote XML elements in the dialog-info NOTIFYs.

(closes issue ASTERISK-16735)
Reported by: Maciej Krajewski
Tested by: Maciej Krajewski
    local_remote_hint2.diff uploaded by Mark Michelson (license 5049)

Merged revisions 360862 from

Merged revisions 360863 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMisc changes to make astobj2 enhancement diffs easier to follow.
Richard Mudgett [Thu, 29 Mar 2012 21:57:23 +0000 (21:57 +0000)]
Misc changes to make astobj2 enhancement diffs easier to follow.

* Rename astobj2 API parameter funcname to func.

* Rename astobj2 API iterator parameter to iter.

* Update some documentation for OBJ_MULTIPLE.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoIntroducing the log message unique call identifiers feature
Jonathan Rose [Thu, 29 Mar 2012 20:01:20 +0000 (20:01 +0000)]
Introducing the log message unique call identifiers feature

Log messages will now display a call number that they are tied to (ordered for calls
based on when they started). This feature is made to be minimally invasive without
requiring changes to many of the existing log messages. These IDs  won't show up for
verbose messages on CLI (but they will in log files) This is currently in phase II
of production, see more about this feature on the wiki --


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoundoing 360785 due to merging mistake
Jonathan Rose [Thu, 29 Mar 2012 19:59:30 +0000 (19:59 +0000)]
undoing 360785 due to merging mistake

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoIntroducing the log message unique call identifiers feature
Jonathan Rose [Thu, 29 Mar 2012 19:54:35 +0000 (19:54 +0000)]
Introducing the log message unique call identifiers feature

Log messages will now display a call number that they are tied to (ordered for calls
based on when they started). This feature is made to be minimally invasive without
requiring changes to many of the existing log messages. These IDs  won't show up for
verbose messages on CLI (but they will in log files) This is currently in phase II
of production, see more about this feature on the wiki --


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix setting CDR variables in the hangup extension
Terry Wilson [Wed, 28 Mar 2012 19:39:24 +0000 (19:39 +0000)]
Fix setting CDR variables in the hangup extension

A previous CDR fix for setting CDR variables during a bridge via
custom dialplan features broke setting CDR variables in the
hangup extension. This patch fixes the issue.


Merged revisions 358978 from

Merged revisions 358989 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoMake a debug message regarding subscription changes more accurate.
Mark Michelson [Tue, 27 Mar 2012 18:44:53 +0000 (18:44 +0000)]
Make a debug message regarding subscription changes more accurate.

I was getting confused during some testing why Asterisk was saying that
a subscription was being added when it was clearly being removed. This
fixes that confusion.

Merged revisions 360625 from

Merged revisions 360672 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAdd global ao2 array container.
Richard Mudgett [Tue, 27 Mar 2012 17:13:32 +0000 (17:13 +0000)]
Add global ao2 array container.

Global ao2 objects must always exist after initialization because there is
no access control to obtain another reference to the global object.

It is expected that module configuration could use these new API calls to
replace an active configuration parameter object with an updated
configuration parameter object.

With these new API calls, the global object could be replaced, removed, or
referenced without the risk of someone using a stale global object


git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoAttempt to be more helpful when using a bad ao2 object pointer.
Richard Mudgett [Tue, 27 Mar 2012 17:00:13 +0000 (17:00 +0000)]
Attempt to be more helpful when using a bad ao2 object pointer.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoUpdates config with bootstrap where I changed in r360488
Jonathan Rose [Tue, 27 Mar 2012 14:43:00 +0000 (14:43 +0000)]
Updates config with bootstrap where I changed in r360488

(issue ASTERISK-17842)
Reported by: Bryon Clark

Merged revisions 360574 from

Merged revisions 360575 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoBlocked revisions 360476
Paul Belanger [Mon, 26 Mar 2012 21:36:24 +0000 (21:36 +0000)]
Blocked revisions 360476

Update CHANGES for r360471

Merged revisions 360474 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoConvert ast_verb() to ast_debug() and increase log level
Paul Belanger [Mon, 26 Mar 2012 21:22:23 +0000 (21:22 +0000)]
Convert ast_verb() to ast_debug() and increase log level

Rather then flood the CLI with verbose messages, we've changed the level to
debug. This will help keep the CLI clean.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agoFix BETTER_BACKTRACES library detection for Fedora/RedHat/CentOS
Jonathan Rose [Mon, 26 Mar 2012 19:49:40 +0000 (19:49 +0000)]
Fix BETTER_BACKTRACES library detection for Fedora/RedHat/CentOS

(closes ASTERISK-17842)
Reported by: Bryon Clark
20110512__issue19278.diff.txt uploaded by Tilghman Lesher (license 5003)
configure_bfd_with_dl_and_iberty.patch uploaded by Bryon Clark (license 6157)

Merged revisions 360488 from

Merged revisions 360489 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agofunc_curl: Fix leak of an ast_str in error handling code path.
Russell Bryant [Sat, 24 Mar 2012 23:49:39 +0000 (23:49 +0000)]
func_curl: Fix leak of an ast_str in error handling code path.

Merged revisions 360413 from

Merged revisions 360414 from

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3

9 years agochan_iax2: Use OBJ_NODATA to be a bit more explicit.
Russell Bryant [Sat, 24 Mar 2012 03:18:13 +0000 (03:18 +0000)]
chan_iax2: Use OBJ_NODATA to be a bit more explicit.

This is just a minor code cleanup change.  These uses of ao2_callback() would
never return anything since the callbacks always returned 0.  However, be more
explicit that no returned results are wanted by specifying OBJ_NODATA.

git-svn-id: 65c4cc65-6c06-0410-ace0-fbb531ad65f3