11 years agoBlocked revisions 352616
Kevin P. Fleming [Wed, 25 Jan 2012 21:22:25 +0000 (21:22 +0000)]
Blocked revisions 352616

Avoid unnecessary rebuilds of main/test.c.

main/test.c includes "asterisk/version.h", when it should include
"asterisk/ast_version.h" instead (and it should use the ast_get_version()
and ast_get_version_num() functions). This commit modifies it to extract
the Asterisk version information using the proper APIs, and as a result means
that main/test.c no longer needs to be rebuilt when a Subversion checkout
is updated or modified.

Merged revisions 352612 from

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

11 years agoRemove some extraneous debugging from registry memleak fix
Terry Wilson [Wed, 25 Jan 2012 17:33:23 +0000 (17:33 +0000)]
Remove some extraneous debugging from registry memleak fix

Merged revisions 352551 from

Merged revisions 352556 from

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

11 years agoFixes for sending SIP MESSAGE outside of calls.
Richard Mudgett [Wed, 25 Jan 2012 17:23:25 +0000 (17:23 +0000)]
Fixes for sending SIP MESSAGE outside of calls.

* Fix authenticate MESSAGE losing custom headers added by the MESSAGE_DATA
function in the authorization attempt.

* Pass up better From header contents for SIP to use.  Now is in the
"display-name" <URI> format expected by MessageSend.  (Note that this is a
behavior change that could concievably affect some people.)

* Block user from adding standard headers that are added automatically.
(To, From,...)

* Allow the user to override the Content-Type header contents sent by

* Decrement Max-Forwards header if the user transferred it from an
incoming message.

* Expand SIP short header names so the dialplan and other code only has to
deal with the full names.

* Documents what SIP expects in the MessageSend(from) parameter.

(closes issue ASTERISK-18992)
Reported by: Yuri

(closes issue ASTERISK-18917)
Reported by: Shaun Clark


Merged revisions 352520 from

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

11 years agoClean up some SIP registry-related memory leaks
Terry Wilson [Wed, 25 Jan 2012 17:02:29 +0000 (17:02 +0000)]
Clean up some SIP registry-related memory leaks

1) Be sure and free at unload the epa_backend we allocate at startup
2) Do the same sip_registry cleanup at unload we do at reload


Merged revisions 352514 from

Merged revisions 352515 from

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

11 years agoEliminate unnecessary rebuilds of main/format*.c.
Kevin P. Fleming [Wed, 25 Jan 2012 16:54:54 +0000 (16:54 +0000)]
Eliminate unnecessary rebuilds of main/format*.c.

These files have no need to include "asterisk/version.h", and doing so forces
them to be rebuilt each time a Subversion checkout moves between 'modified'
and 'unmodified' states.

Merged revisions 352516 from

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

11 years agoRedocuments sip types peer, user, friend in sip.conf.sample
Jonathan Rose [Wed, 25 Jan 2012 16:42:55 +0000 (16:42 +0000)]
Redocuments sip types peer, user, friend in sip.conf.sample

There was faulty information in the sample config describing user as a synonym for friend
so it has been changed to better elaborate on the differences between the three entity

(closes issue ASTERISK-15537)
Reported by: yarique

Merged revisions 352511 from

Merged revisions 352512 from

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

11 years agoFix channel opaquification of stringfields for chan_vpb
Terry Wilson [Wed, 25 Jan 2012 01:21:23 +0000 (01:21 +0000)]
Fix channel opaquification of stringfields for chan_vpb

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

11 years agoDon't do a DNS lookup on an outbound REGISTER host if there is an outbound proxy...
Mark Michelson [Tue, 24 Jan 2012 22:28:08 +0000 (22:28 +0000)]
Don't do a DNS lookup on an outbound REGISTER host if there is an outbound proxy configured.

(closes issue ASTERISK-16550)
reported by: Olle Johansson

Merged revisions 352424 from

Merged revisions 352430 from

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

11 years agoSet core sounds version to 1.4.22.
Jonathan Rose [Tue, 24 Jan 2012 20:37:09 +0000 (20:37 +0000)]
Set core sounds version to 1.4.22.

Now that we have the right license for the Russian 1.4.22 sounds as well as the sounds
for the Australian English 1.4.22 sounds, we can finally set the sounds to use 1.4.22!

(closes issue ASTERISK-18978)
Reported by: Cameron Twomey
confbridge.tar.001 uploaded by Cameron Twomey
    confbridge.tar.002 uploaded by Cameron Twomey

Merged revisions 352367 from

Merged revisions 352373 from

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

11 years agoOpaquify channel stringfields
Terry Wilson [Tue, 24 Jan 2012 20:12:09 +0000 (20:12 +0000)]
Opaquify channel stringfields

Continue channel opaque-ification by wrapping all of the stringfields.
Eventually, we will restrict what can actually set these variables, but
the purpose for now is to hide the implementation and keep people from
adding code that directly accesses the channel structure. Semantic
changes will follow afterward.


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

11 years agoFix locking issues with channel datastores in func_odbc.c.
Richard Mudgett [Tue, 24 Jan 2012 17:04:20 +0000 (17:04 +0000)]
Fix locking issues with channel datastores in func_odbc.c.

* Fixed a potential memory leak when an existing datastore is manually
destroyed by inline code instead of calling ast_datastore_free().

(closes issue ASTERISK-17948)
Reported by: Archie Cobbs


Merged revisions 352291 from

Merged revisions 352292 from

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

11 years agoBlocked revisions 352288
Joshua Colp [Tue, 24 Jan 2012 16:32:18 +0000 (16:32 +0000)]
Blocked revisions 352288

Blocked revisions 352287

Move RTP timeout check to before bridged channel check so it is actually executed.

(issue ASTERISK-19179)
Reported by: TSAREGORODTSEV Yury

(closes issue ASTERISK-14534)
Reported by: kriborgen
chan_sip.patch uploaded by kriborgen (license 6138)

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

11 years agoFix grammar of comment.
Mark Michelson [Mon, 23 Jan 2012 20:31:11 +0000 (20:31 +0000)]
Fix grammar of comment.

Merged revisions 352230 from

Merged revisions 352231 from

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

11 years agoFix blind transfers from failing if an 'h' extension is present.
Mark Michelson [Mon, 23 Jan 2012 20:29:48 +0000 (20:29 +0000)]
Fix blind transfers from failing if an 'h' extension is present.

This prevents the 'h' extension from being run on the transferee
channel when it is transferred via a native transfer mechanism such

(closes ASTERISK-19173)
Reported by: Ross Beer
Tested by: Kristjan Vrban
ASTERISK-19173 by Mark Michelson (license 5049)


Merged revisions 352199 from

Merged revisions 352228 from

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

11 years agoCorrectly apply FAXOPT settings (V17, V27, V29) before starting spandsp layer
Matthew Jordan [Mon, 23 Jan 2012 19:22:11 +0000 (19:22 +0000)]
Correctly apply FAXOPT settings (V17, V27, V29) before starting spandsp layer

While the FAXOPT function could be used to set the modem capabilities, the
input to that function was not being applied correctly to the spandsp layer.
This patch applies the current model capabilities before starting the spandsp

(closes issue: ASTERISK-16409)
Reported by: Kristijan Vrban
Tested by: Matt Jordan, Matthew Nicholson
  spandsp-modems-1.8.diff uploaded by mnicholson (license 5081)
  spandsp-modems-10.diff uploaded by mnicholson (license 5081)

Merged revisions 352144 from

Merged revisions 352149 from

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

11 years agoAdd an announcement option to music-on-hold - plays sound when put on hold/between...
Jonathan Rose [Mon, 23 Jan 2012 18:34:47 +0000 (18:34 +0000)]
Add an announcement option to music-on-hold - plays sound when put on hold/between songs

This is a feature patch which allows an 'announcement' option to be specified in
musiconhold.conf which should be set to the name of a sound. If a valid sound is
specified for this option, then it will be played on that music on hold class whenever
a channel bound to that class is put on hold as well as when Asterisk is able to detect
that a song has ended before starting the next song (excludes external players).

(closes ASTERISK-18977)
Reported by: Timo Teräs
asterisk-moh-announcement.diff uploaded by Timo Teräs (license 5409)

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

11 years agoAdds the ability to stop specific mixmonitors by using unique IDs set at monitor...
Jonathan Rose [Mon, 23 Jan 2012 18:16:20 +0000 (18:16 +0000)]
Adds the ability to stop specific mixmonitors by using unique IDs set at monitor launch.

MixMonitor receives a new option i(channel_variable) which stores the unique id at said
variable. StopMixMonitor now accepts ID as an optional argument, which if included will
make StopMixMonitor specifically target the mixmonitor on that particular channel. CLI
commands and AMI actions have been ammended to work with the IDs as well. In addition,
monitors across a channel can now be listed be listed via CLI command "mixmonitor list
<channel>" which will display all of the mixmonitors active on that channel along with
the files they each have open. Created by Sergio González Martín.

(closes issue ASTERISK-19096)
Reported by: Sergio González Martín

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

11 years agoFix sip_cfg.notifycid to be set with the defined enum values.
Richard Mudgett [Mon, 23 Jan 2012 17:36:28 +0000 (17:36 +0000)]
Fix sip_cfg.notifycid to be set with the defined enum values.

The invalid value used when notifycid was enabled was benign.  As far as
the code was concerned -1 and 1 are equivalent.

(closes issue ASTERISK-19232)
Reported by: Eike Kuiper

Merged revisions 352090 from

Merged revisions 352091 from

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

11 years agoFix ast_app_dtget() time unit inconsistency.
Richard Mudgett [Sat, 21 Jan 2012 00:23:13 +0000 (00:23 +0000)]
Fix ast_app_dtget() time unit inconsistency.

Note: Noone calls ast_app_dtget() with the timeout parameter of zero so
the bad code normally will never get executed.

* Fix unnecessary floating point division in func_timeout.c
timeout_write() when all other values are integers.

(closes issue ASTERISK-16817)
Reported by: Dmitry Andrianov

Merged revisions 352029 from

Merged revisions 352035 from

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

11 years agoRemove XXX comment that is not necessary.
Mark Michelson [Sat, 21 Jan 2012 00:11:13 +0000 (00:11 +0000)]
Remove XXX comment that is not necessary.

Merged revisions 352016 from

Merged revisions 352017 from

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

11 years agoFix RTP reference leak.
Mark Michelson [Sat, 21 Jan 2012 00:10:35 +0000 (00:10 +0000)]
Fix RTP reference leak.

If a blind transfer were initiated using a REFER without a prior
reINVITE to place the call on hold, AND if Asterisk were sending
RTCP reports, then there was a reference for the RTP instance
of the transferer.

This fixes the issue by merging two similar but slightly conflicting
sections of code into a single area. It also adds a stop_media_flows()
call in the case that the transferer's UA never sends a BYE to us
like it is supposed to.

(issue ASTERISK-19192)


Merged revisions 352014 from

Merged revisions 352015 from

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

11 years agoMake CLI sip show channel list the complete route set.
Richard Mudgett [Fri, 20 Jan 2012 23:05:06 +0000 (23:05 +0000)]
Make CLI sip show channel list the complete route set.

(closes issue ASTERISK-16877)
Reported by: klaus3000
      show-complete-routeset-patch.txt (license #5054) patch uploaded by klaus3000 (modified)

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

11 years agoSIP session timeout AMI event
Kinsey Moore [Fri, 20 Jan 2012 21:26:50 +0000 (21:26 +0000)]
SIP session timeout AMI event

Add an AMI event in the Call category that is issued when a call is terminated
due to either RTP stream inactivity or SIP session timer expiration.

Event description:

Event: SessionTimeout
Source: source
Channel: channel-name
Uniqueid: channel-unique-id

`source` can be either RTPTimeout or SIPSessionTimer

(closes issue ASTERISK-16467)
Patch-by: Kirill Katsnelson

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

11 years agoVarious parking improvements.
Mark Michelson [Fri, 20 Jan 2012 20:47:42 +0000 (20:47 +0000)]
Various parking improvements.

* Adds per-parking lot options comebackcontext and comebackdialtime
* Makes comebacktoorigin settable per parking lot
* Sets a PARKER channel variable when comebacktoorigin is disabled

(closes issue ASTERISK-16643)
Reported by: Mitch Sharp (bluecrow76)
asterisk- by Mitch Sharp (bluecrow76) license 5231
with updates by me.

Reviewed by Richard Mudgett

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

11 years agoPrevent potential buffer overflow on AMI MixMonitor command.
Mark Michelson [Fri, 20 Jan 2012 20:26:55 +0000 (20:26 +0000)]
Prevent potential buffer overflow on AMI MixMonitor command.

Don't be alarmed. This only affected trunk, and it would have
required manager access to your system.

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

11 years agoMore corrections for the ilbc code
Kinsey Moore [Fri, 20 Jan 2012 19:36:04 +0000 (19:36 +0000)]
More corrections for the ilbc code

These changes are in a file that is not compiled by default, and so were
missed on earlier checks.

Merged revisions 351860 from

Merged revisions 351861 from

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

11 years agoRestore LSF_check function calls from set/unused variable removal
Kinsey Moore [Fri, 20 Jan 2012 16:52:20 +0000 (16:52 +0000)]
Restore LSF_check function calls from set/unused variable removal

These functions are not noops and modify the array that is passed in. Thanks
for the catch Richard.

Merged revisions 351818 from

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

11 years agoRemove more set, but unused variables in the ilbc codec
Kinsey Moore [Fri, 20 Jan 2012 16:33:26 +0000 (16:33 +0000)]
Remove more set, but unused variables in the ilbc codec

GCC 4.6.3 caught these in dev mode as well.

Merged revisions 351816 from

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

11 years agoAdds setting of mwi_from field to check_auth_result check_peer_ok
Jonathan Rose [Fri, 20 Jan 2012 16:00:58 +0000 (16:00 +0000)]
Adds setting of mwi_from field to check_auth_result check_peer_ok

(closes ASTERISK-19057)
Reported By: Yuri
Patches: 348360chan_sip.diff uploaded by Yuri (license 5242)

Merged revisions 351759 from

Merged revisions 351762 from

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

11 years agoRemove unused variable 'tmp' from helpfun in ilbc codec
Matthew Jordan [Fri, 20 Jan 2012 16:00:13 +0000 (16:00 +0000)]
Remove unused variable 'tmp' from helpfun in ilbc codec

gcc version 4.6.2 caught an unused variable in the ilbc codec
library.  This would prevent compilation with --enable-dev-mode;
variable removed.

Merged revisions 351760 from

Merged revisions 351761 from

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

11 years agoenable doxygen build for files in the channels/sip folder like reqresp_parser.c
Stefan Schmidt [Fri, 20 Jan 2012 13:12:56 +0000 (13:12 +0000)]
enable doxygen build for files in the channels/sip folder like reqresp_parser.c

Merged revisions 351707 from

Merged revisions 351708 from

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

11 years agoMisc minor fixes in reqresp_parser.c and chan_sip.c.
Richard Mudgett [Thu, 19 Jan 2012 23:31:17 +0000 (23:31 +0000)]
Misc minor fixes in reqresp_parser.c and chan_sip.c.

* Fix corner cases in get_calleridname() parsing and ensure that the
output buffer is nul terminated.

* Make get_calleridname() truncate the name it parses if the given buffer
is too small rather than abandoning the parse and not returning anything
for the name.  Adjusted get_calleridname_test() unit test to handle the
truncation change.

* Fix get_in_brackets_test() unit test to check the results of
get_in_brackets() correctly.

* Fix parse_name_andor_addr() to not return the address of a local buffer.
This function is currently not used.

* Fix potential NULL pointer dereference in sip_sendtext().

* No need to memset(calleridname) in check_user_full() or tmp_name in
get_name_and_number() because get_calleridname() ensures that it is nul

* Reply with an accurate response if get_msg_text() fails in
receive_message().  This is academic in v1.8 because get_msg_text() can
never fail.

Merged revisions 351618 from

Merged revisions 351646 from

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

11 years agoCorrect output of RTCP jitter statistics in SR and RR reports
Kinsey Moore [Thu, 19 Jan 2012 22:44:38 +0000 (22:44 +0000)]
Correct output of RTCP jitter statistics in SR and RR reports

Change the RTCP RR and SR generation code to convert Asterisk's internal jitter
statistics to be represented in RTP timestamp units based on the rate of the
codec in use instead of in seconds.

(closes issue ASTERISK-14530)

Merged revisions 351611 from

Merged revisions 351612 from

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

11 years agoEliminates doubling the :port part of SIP Notify Message-Account headers.
Jonathan Rose [Thu, 19 Jan 2012 21:55:41 +0000 (21:55 +0000)]
Eliminates doubling the :port part of SIP Notify Message-Account headers.

This patch prevents the domain string from getting mangled during the initreqprep
step by moving the initialization to before its immediate use.  It also documents
this pitfall for the ast_sockaddr_stringify functions.

(issue ASTERISK-19057)
Reported by: Yuri

Merged revisions 351559 from

Merged revisions 351560 from

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

11 years agoPrevent crash when an SDP offer is received with an encrypted video stream when suppo...
Joshua Colp [Thu, 19 Jan 2012 21:13:02 +0000 (21:13 +0000)]
Prevent crash when an SDP offer is received with an encrypted video stream when support for video is disabled and res_srtp is loaded.

(closes issue ASTERISK-19202)
Reported by: Catalin Sanda

Merged revisions 351504 from

Merged revisions 351505 from

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

11 years agoInclude iLBC source code for distribution with Asterisk
Matthew Jordan [Wed, 18 Jan 2012 21:06:29 +0000 (21:06 +0000)]
Include iLBC source code for distribution with Asterisk

This patch includes the iLBC source code for distribution with Asterisk.
Clarification regarding the iLBC source code was provided by Google, and
the appropriate licenses have been included in the codecs/ilbc folder.


(closes issue: ASTERISK-18943)
Reporter: Leif Madsen
Tested by: Matt Jordan

Merged revisions 351450 from

Merged revisions 351451 from

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

11 years agoThe get_pai function in chan_sip.c didn't recognized a proper callerid name and
Stefan Schmidt [Wed, 18 Jan 2012 16:02:15 +0000 (16:02 +0000)]
The get_pai function in chan_sip.c didn't recognized a proper callerid name and
 number from a P-Asserted-Identity cause the header parsing logic was wrong.
Changing the parsing functions to the sip header parsing APIs in
reqresp_parser.h solves this problem.

Reviewed by: wdoekes2 and Mark Michelson

Merged revisions 351396 from

Merged revisions 351408 from

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

11 years agoFix support for parallel building with make (-j).
Walter Doekes [Tue, 17 Jan 2012 19:45:19 +0000 (19:45 +0000)]
Fix support for parallel building with make (-j).

Previously make -j <N> would cause a race between doing cleanup of
certain files (defaults.h, menuselect, ...) and creating them anew.
Add a new target that depends on cleanup only and has a submake doing
the rest as command string. This way the cleanup goes first.

(closes issue ASTERISK-18751)
Tested by: Jeremy Kister
Reviewed by: Paul Belanger

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

11 years agoEliminate odd initialization of probation variable.
Mark Michelson [Tue, 17 Jan 2012 17:23:25 +0000 (17:23 +0000)]
Eliminate odd initialization of probation variable.

Merged revisions 351306 from

Merged revisions 351308 from

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

11 years agoAdds pjmedia probation concepts to res_rtp_asterisk's learning mode.
Jonathan Rose [Tue, 17 Jan 2012 17:15:05 +0000 (17:15 +0000)]
Adds pjmedia probation concepts to res_rtp_asterisk's learning mode.

In order to better handle RTP sources with strictrtp enabled (which is now default in 10)
using the learning mode to figure out new sources when they change is handled by checking
for a number of consecutive (by sequence number) packets received to an rtp struct
based on a new configurable value called 'probation'. Also, during learning mode instead
of liberally accepting all packets received, we now reject packets until a clear source
has been determined.


Merged revisions 351287 from

Merged revisions 351289 from

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

11 years agoUse built-in parsing functions for Contact and Record-Route headers.
Mark Michelson [Tue, 17 Jan 2012 16:56:04 +0000 (16:56 +0000)]
Use built-in parsing functions for Contact and Record-Route headers.

If a Contact or a Record-Route header had a quoted string with an
item in angle brackets, then we would mis-parse it. For instance,
"Bob <1234>" <>
would be misparsed as having the URI "1234"
The fix for this is to use parsing functions from reqresp_parser.h
since they are heavily tested and are awesome.

(issue ASTERISK-18990)

Merged revisions 351284 from

Merged revisions 351286 from

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

11 years agoFix udptl issue with initial INVITE introduced by r351027
Matthew Jordan [Tue, 17 Jan 2012 16:08:43 +0000 (16:08 +0000)]
Fix udptl issue with initial INVITE introduced by r351027

When an inital INVITE occurs that contains image media, a channel
is not yet associated with the SIP dialog.  The file descriptor
associated with the udptl session needs to be set in
initialize_udptl or in sip_new to account for this scenario.

Merged revisions 351233 from

Merged revisions 351234 from

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

11 years agoMerged revisions 351183 via svnmerge from
Russell Bryant [Tue, 17 Jan 2012 01:48:12 +0000 (01:48 +0000)]
Merged revisions 351183 via svnmerge from

  r351183 | russell | 2012-01-16 20:43:19 -0500 (Mon, 16 Jan 2012) | 29 lines

  Merged revisions 351182 via svnmerge from

    r351182 | russell | 2012-01-16 20:37:03 -0500 (Mon, 16 Jan 2012) | 22 lines

    Add some missing locking in chan_sip.

    This patch adds some missing locking to the function
    send_provisional_keepalive_full().  This function is called from the scheduler,
    which is processed in the SIP monitor thread.  The associated channel (or pbx)
    thread will also be using the same sip_pvt and ast_channel so locking must be
    used.  The sip_pvt_lock_full() function is used to ensure proper locking order
    in a safe manner.

    In passing, document a suspected reference counting error in this function.
    The "fix" is left commented out because when the "fix" is present, crashes
    occur.  My theory is that fixing it is exposing a reference counting error
    elsewhere, but I don't know where.  (Or my analysis of this being a problem
    could have been completely wrong in the first place).  Leave the comment in
    the code for so that someone may investigate it again in the future.

    Also add a bit of doxygen to transmit_provisional_response().

    (closes issue ASTERISK-18979)


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

11 years agoEnsure ACK retransmit & hangup on non-200 response to INVITE
Terry Wilson [Mon, 16 Jan 2012 21:50:10 +0000 (21:50 +0000)]
Ensure ACK retransmit & hangup on non-200 response to INVITE

When handling a non-2xx final response on an INVITE transaction, we have to
keep the transaction around after we send an ACK in case we receive a
retransmission of the response so we can re-transmit the ACK, but also tear
down the ast_channel as soon as we transmit the ACK. Before this patch, we
could fail at both of these things. Calling sip_alreadygone/needdestroy
prevented us from keeping the transaction up and retransmitting the ACK, and
queueing CONGESTION was not sufficient to cause the channel to be torn down
when originating calls via the CLI, for example.

This patch queues a hangup with CONGESTION instead of just queueing CONGESTION
for these responses and removes the sip_alreadygone and sip_needdestroy calls
from handle_response_invite on non-2xx responses. It relies on the hangup
calling sip_scheddestroy.

For more information, see section of RFC 3261.

(closes issue ASTERISK-17717)

Merged revisions 351130 from

Merged revisions 351131 from

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

11 years agoDon't prematurely stop SIP session timer
Terry Wilson [Mon, 16 Jan 2012 20:15:24 +0000 (20:15 +0000)]
Don't prematurely stop SIP session timer

When Asterisk is the UAS (incoming call, endpoint is re-inviting) the SIP session timer expires after half the time the sip endpoint indicates in the Session-expires header in proc_session_timer(). The session timer was being stopped totally and being handled as an error case instead of running again until the second expiry. This patch treats the half-time expiry as a non-error case and continues the timer until the true expiry.

(closes issue ASTERISK-18996)
Reported by: Thomas Arimont
Tested by: Thomas Arimont
Patches: session_timer_fix.diff by Terry Wilson (License #5357)
  based on session_timer.patch by Thomas Arimont (License #5525)

Merged revisions 351080 from

Merged revisions 351081 from

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

11 years agoAdd ABS() absolute value function to the expression parser.
Tilghman Lesher [Mon, 16 Jan 2012 19:49:50 +0000 (19:49 +0000)]
Add ABS() absolute value function to the expression parser.

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

11 years agoCreate and initialize udptl only when dialog negotiates for image media
Matthew Jordan [Mon, 16 Jan 2012 19:13:56 +0000 (19:13 +0000)]
Create and initialize udptl only when dialog negotiates for image media

Prior to this patch, the udptl struct was allocated and initialized when a
dialog was associated with a peer that supported T.38, when a new SIP
channel was allocated, or what an INVITE request was received.  This resulted
in any dialog associated with a peer that supported T.38 having udptl support
assigned to it, including the UDP ports needed for communication.  This
occurred even in non-INVITE dialogs that would never send image media.

This patch creates and initializes the udptl structure only when the SDP
for a dialog specifies that image media is supported, or when Asterisk
indicates through the appropriate control frame that a dialog is to support

(closes issue ASTERISK-16698)
Reported by: under
Tested by: Stefan Schmidt
Patches: udptl_20120113.diff uploaded by mjordan (License #6283)

(closes issue ASTERISK-16794)
Reported by: Elazar Broad
Tested by: Stefan Schmidt


Merged revisions 351027 from

Merged revisions 351028 from

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

11 years agoSort the output of 'database showkey' as well.
Sean Bright [Mon, 16 Jan 2012 17:12:36 +0000 (17:12 +0000)]
Sort the output of 'database showkey' as well.

You can pass wildcards (%) to the database CLI commands, so this will sort the
returned list of matches.

Merged revisions 350978 from

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

11 years agoAdd missing code to set direct RTP setup information during dialing.
Joshua Colp [Mon, 16 Jan 2012 17:07:13 +0000 (17:07 +0000)]
Add missing code to set direct RTP setup information during dialing.

Merged revisions 350975 from

Merged revisions 350976 from

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

11 years agoSort the output of 'database show' by key.
Sean Bright [Mon, 16 Jan 2012 14:31:37 +0000 (14:31 +0000)]
Sort the output of 'database show' by key.

This more closely mimics the behavior of 'database show' before the conversion
to sqlite3.

Merged revisions 350938 from

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

11 years agoAllow only one thread at a time to do asterisk cleanup/shutdown.
Walter Doekes [Sun, 15 Jan 2012 20:16:08 +0000 (20:16 +0000)]
Allow only one thread at a time to do asterisk cleanup/shutdown.

Add locking around the really-really-quit part of the core stop/restart
part. Previously more than one thread could be called to do cleanup,
causing atexit handlers to be run multiple times, in turn causing

(issue ASTERISK-18883)
Reviewed by: Terry Wilson

Merged revisions 350888 from

Merged revisions 350889 from

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

11 years agoFix -Werror=unused-but-set-variable compile error in utils/extconf.c.
Walter Doekes [Sun, 15 Jan 2012 19:57:54 +0000 (19:57 +0000)]
Fix -Werror=unused-but-set-variable compile error in utils/extconf.c.

Note that I'm not confirming legitimacy of having that file in tree at
all. Is anyone using aelparse/conf2ael?

(issue ASTERISK-15350)

Merged revisions 350885 from

Merged revisions 350886 from

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

11 years agoEnsure that all AC_LANG_PROGRAM calls in the configure script are properly quoted.
Kevin P. Fleming [Sat, 14 Jan 2012 16:43:12 +0000 (16:43 +0000)]
Ensure that all AC_LANG_PROGRAM calls in the configure script are properly quoted.

Recent versions of autoconf (2.68 on my system) won't properly process the configure
script unless every call to AC_LANG_PROGRAM is m4-quoted. Many calls in the script
were, but many were not. This patch corrects the unquoted calls.

Merged revisions 350837 from

Merged revisions 350838 from

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

11 years agoMultiple revisions 350788-350789
Kevin P. Fleming [Sat, 14 Jan 2012 15:51:43 +0000 (15:51 +0000)]
Multiple revisions 350788-350789

  r350788 | kpfleming | 2012-01-14 09:22:33 -0600 (Sat, 14 Jan 2012) | 8 lines

  Ensure that two prerequisites are properly installed on Debian-style distributions.

  * Don't specify a specific version of libgmime; newer versions are available
    now and acceptable.

  * Install libsrtp so that res_srtp can be built.
  r350789 | kpfleming | 2012-01-14 09:23:32 -0600 (Sat, 14 Jan 2012) | 3 lines

  Correct some 'set-but-not-used' variable warnings.

Merged revisions 350788-350789 from

Merged revisions 350790 from

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

11 years agoRun for the for the ASTERISK-18929 fix
Kinsey Moore [Fri, 13 Jan 2012 22:17:13 +0000 (22:17 +0000)]
Run for the for the ASTERISK-18929 fix

configure and were not regenerated when the fix was committed.

Merged revisions 350736 from

Merged revisions 350737 from

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

11 years agoCorrect eventtype names in cel_odbc and cel_pgsql sample files
Richard Mudgett [Fri, 13 Jan 2012 21:52:44 +0000 (21:52 +0000)]
Correct eventtype names in cel_odbc and cel_pgsql sample files

Merged revisions 350733 from

Merged revisions 350734 from

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

11 years agoMake sure asterisk builds on OpenBSD
Kinsey Moore [Fri, 13 Jan 2012 21:42:12 +0000 (21:42 +0000)]
Make sure asterisk builds on OpenBSD

OpenBSD defines SO_PEERCRED, but it returns a 'struct sockpeercred', not
'struct ucred', which causes compilation of main/asterisk.c to fail in
read_credentials().  This allows configure to check for sockpeercred and
asterisk to deal with it properly.

(closes issue ASTERISK-18929)
Reported-by: Barry Miller
Patch-by: Barry Miller

Merged revisions 350730 from

Merged revisions 350731 from

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

11 years agoSet port to a default sane value if a bogus one is provided when parsing hostnames.
Mark Michelson [Fri, 13 Jan 2012 20:32:19 +0000 (20:32 +0000)]
Set port to a default sane value if a bogus one is provided when parsing hostnames.

Merged revisions 350679 from

Merged revisions 350680 from

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

11 years agoRemove some dead code in ast_bridge_call().
Richard Mudgett [Fri, 13 Jan 2012 18:52:53 +0000 (18:52 +0000)]
Remove some dead code in ast_bridge_call().

None of the parameters to ast_bridge_call() can be NULL for the bridge to
work so no need to check for it.

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

11 years agoAdd missing CEL logging fields to various CEL backends.
Richard Mudgett [Fri, 13 Jan 2012 17:36:44 +0000 (17:36 +0000)]
Add missing CEL logging fields to various CEL backends.

Multiple revisions 350555,350571

  r350555 | rmudgett | 2012-01-13 11:12:51 -0600 (Fri, 13 Jan 2012) | 12 lines

  Add missing CEL logging fields to various CEL backends.

  * Add missing eventextra to cel_psql.c and cel_odbc.c.

  * Add missing PeerAccount and EventExtra to cel_manager.c.

  * Add missing userdeftype support for cel_custom.conf.sample and

  (closes issue ASTERISK-17190)
  Reported by: Bryant Zimmerman
  r350571 | rmudgett | 2012-01-13 11:23:57 -0600 (Fri, 13 Jan 2012) | 8 lines

  Use compatible names for event extra data for various CEL backends.

  * Change eventextra to extra in cel_psql.c and cel_odbc.c.

  * Change EventExtra to Extra in cel_manager.c.

  (issue ASTERISK-17190)

Merged revisions 350555,350571 from

Merged revisions 350585 from

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

11 years agoRealtime queues failed to load queue information without queue member table
Matthew Jordan [Fri, 13 Jan 2012 17:00:12 +0000 (17:00 +0000)]
Realtime queues failed to load queue information without queue member table

Previously, realtime queues could be loaded without defining the queue member
table.  This allowed for queue members to be dynamic, while the realtime
queue definitions could exist in some backing storage.  Revision 342223 broke
this when it changed the return value for realtime_multientry to return NULL
when no results are returned.  Previously, an empty ast_config object was

(closes issue ASTERISK-19170)
Reported by: Rene Mendoza
Tested by: Rene Mendoza
  rt_queue_member_patch.diff uploaded by Matt Jordan (license 6283)

Merged revisions 350552 from

Merged revisions 350553 from

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

11 years agoFix crash from bridge channel hangup race condition in ConfBridge
Matthew Jordan [Fri, 13 Jan 2012 16:48:06 +0000 (16:48 +0000)]
Fix crash from bridge channel hangup race condition in ConfBridge

This patch addresses two issues in ConfBridge and the channel bridge layer:
1. It fixes a race condition wherein the bridge channel could be hung up
2. It removes the deadlock avoidance from the bridging layer and makes the
   bridge_pvt an ao2 ref counted object

Patch by David Vossel (mjordan was merely the commit monkey)

(issue ASTERISK-18988)
(closes issue ASTERISK-18885)
Reported by: Dmitry Melekhov
Tested by: Matt Jordan
Patches: chan_bridge_cleanup_v.diff uploaded by David Vossel (license 5628)

(closes issue ASTERISK-19100)
Reported by: Matt Jordan
Tested by: Matt Jordan


Merged revisions 350550 from

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

11 years agoAdds peer to CEL report on CEL_BRIDGE_START and CEL_BRIDGE_END
Jonathan Rose [Thu, 12 Jan 2012 16:10:47 +0000 (16:10 +0000)]
Adds peer to CEL report on CEL_BRIDGE_START and CEL_BRIDGE_END

(closes issue ASTERISK-17940)
Reporter: Nic Colledge
features_18.patch uploaded by Nic Colledge (license 6245)

Merged revisions 350501 from

Merged revisions 350502 from

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

11 years agoRemove extraneous BRIDGEPEER AMI VarSet event on a CEL dummy channel.
Richard Mudgett [Wed, 11 Jan 2012 22:53:09 +0000 (22:53 +0000)]
Remove extraneous BRIDGEPEER AMI VarSet event on a CEL dummy channel.

(closes issue ASTERISK-19180)
Reported by: Corey Farrell
      asterisk_cel_noevent_varset.diff (license #5909) patch uploaded by Corey Farrell

Merged revisions 350452 from

Merged revisions 350453 from

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

11 years agoMake FollowMe optionally update connected line information when the accepting endpoin...
Richard Mudgett [Wed, 11 Jan 2012 21:56:12 +0000 (21:56 +0000)]
Make FollowMe optionally update connected line information when the accepting endpoint is bridged.

Like Dial and Queue, FollowMe needs to deal with
AST_CONTROL_CONNECTED_LINE information so when the parties are initially
bridged, the connected line information will be correct.

* Added the 'I' option just like the app_dial and app_queue 'I' option.

* Made 'N' option ignored if the call is already answered.

(closes issue ASTERISK-18969)
Reported by: rmudgett
Tested by: rmudgett


Merged revisions 350364 from

Merged revisions 350415 from

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

11 years agoAlways treat arguments to get_by_name_cb as strings
Terry Wilson [Wed, 11 Jan 2012 19:19:35 +0000 (19:19 +0000)]
Always treat arguments to get_by_name_cb as strings

Initially, support was left in for the old style of searching, even
though it wasn't actually used. In the case of name_len != 0, the
OBJ_KEY flag isn't passed because we aren't matching on a full key
and therefor can't use the hash function to optimize. The code left
in to support the old way of searching unfortunately treated a prefix
search like this as though an ast_channel struct was passed as an arg
and caused a crash.

This patch also adds needed parentheses around some matching conditions.

(closes issue ASTERISK-19182)

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

11 years agoFix absolute/relative time mismatch in LOCK function.
Richard Mudgett [Tue, 10 Jan 2012 22:10:18 +0000 (22:10 +0000)]
Fix absolute/relative time mismatch in LOCK function.

The time passed by the LOCK function to an internal function was relative
time when the function expected absolute time.

* Don't use C++ keywords in get_lock().

(closes issue ASTERISK-16868)
Reported by: Andrey Solovyev
      20101102__issue18207.diff.txt (license #5003) patch uploaded by Andrey Solovyev (modified)

Merged revisions 350311 from

Merged revisions 350312 from

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

11 years agoFix compiler warnings reported by gcc v4.2.4.
Richard Mudgett [Mon, 9 Jan 2012 23:21:21 +0000 (23:21 +0000)]
Fix compiler warnings reported by gcc v4.2.4.

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

11 years agoReplace direct access to channel name with accessor functions
Terry Wilson [Mon, 9 Jan 2012 22:15:50 +0000 (22:15 +0000)]
Replace direct access to channel name with accessor functions

There are many benefits to making the ast_channel an opaque handle, from
increasing maintainability to presenting ways to kill masquerades. This patch
kicks things off by taking things a field at a time, renaming the field to
'__do_not_use_${fieldname}' and then writing setters/getters and converting the
existing code to using them. When all fields are done, we can move ast_channel
to a C file from channel.h and lop off the '__do_not_use_'.

This patch sets up main/channel_interal_api.c to be the only file that actually
accesses the ast_channel's fields directly. The intent would be for any API
functions in channel.c to use the accessor functions. No more monkeying around
with channel internals. We should use our own APIs.

The interesting changes in this patch are the addition of
channel_internal_api.c, the moving of the AST_DATA stuff from channel.c to
channel_internal_api.c (note: the AST_DATA stuff will have to be reworked to
use accessor functions when ast_channel is really opaque), and some re-working
of the way channel iterators/callbacks are handled so as to avoid creating fake
ast_channels on the stack to pass in matching data by directly accessing fields
(since "name" is a stringfield and the fake channel doesn't init the
stringfields, you can't use the ast_channel_name_set() function). I went with
ast_channel_name(chan) for a getter, and ast_channel_name_set(chan, name) for a

The majority of the grunt-work for this change was done by writing a semantic
patch using Coccinelle ( ).


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

11 years agoFix joinable thread terminating without joiner memory leak in chan_iax.c.
Richard Mudgett [Mon, 9 Jan 2012 21:56:29 +0000 (21:56 +0000)]
Fix joinable thread terminating without joiner memory leak in chan_iax.c.

The iax2_process_thread() can exit without anyone waiting to join the
thread.  If noone is waiting to join the thread then a large memory leak

* Made iax2_process_thread() deatach itself if nobody is waiting to join
the thread.

(closes issue ASTERISK-17339)
Reported by: Tzafrir Cohen
      asterisk- (license #5617) patch uploaded by Alex Villacis Lasso (modified)

(closes issue ASTERISK-17825)
Reported by: wangjin

Merged revisions 350220 from

Merged revisions 350221 from

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

11 years agoFix shutdown handling of sqlite3 astdb.
Walter Doekes [Mon, 9 Jan 2012 19:37:23 +0000 (19:37 +0000)]
Fix shutdown handling of sqlite3 astdb.

If a db_sync was scheduled just before shutdown, the atexit code calling
db_sync would have no effect, causing the astdb commit thread to stay
alive. This caused the SIP/realtime_sipregs test to fail. (The fallback
kill would run the atexit code again and that would wreak havoc.) This
fixes that the atexit kill condition is picked up properly.

(closes issue ASTERISK-18883)
Reviewed by: Terry Wilson


Merged revisions 350180 from

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

11 years agoMultiple revisions 350127-350128
Richard Mudgett [Mon, 9 Jan 2012 18:58:58 +0000 (18:58 +0000)]
Multiple revisions 350127-350128

  r350127 | rmudgett | 2012-01-09 12:40:33 -0600 (Mon, 09 Jan 2012) | 12 lines

  Update contrib script live_ast to invoke Asterisk with valgrind and suppression file.

  * Added valgrind_compare script to compare two valgrind log files for

  (issue ASTERISK-17339)
  Reported by: Tzafrir Cohen
        valgrind_compare (license #5035) script uploaded by Tzafrir Cohen
        live_ast_valgrind.diff (license #5035) patch uploaded by Tzafrir Cohen
        live_ast_valgrind_v2.diff (license #5185) patch uploaded by Paul Belanger
  r350128 | rmudgett | 2012-01-09 12:54:56 -0600 (Mon, 09 Jan 2012) | 11 lines

  live_ast: valgrind: run asterisk under valgrind

  Adds a new sub-command, "valgrind" to live_ast. It runs asterisk under
  valgrind. The extra command-line parameters are passed to Asterisk as
  usual, and parameters to valgrind are passed through LIVE_AST_VALGRIND_ARGS
  in live.conf .


  Merged revisions 326636 from

Merged revisions 350127-350128 from

Merged revisions 350129 from

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

11 years agoMake Asterisk -x command line parameter imply -r parameter presence.
Richard Mudgett [Mon, 9 Jan 2012 17:06:30 +0000 (17:06 +0000)]
Make Asterisk -x command line parameter imply -r parameter presence.

The Asterisk -x command line parameter is documented inconsistently.

* Made the -x documentation and behavior consistent.

* Since this is also a new year, updated the copyright notices while here.

(closes issue ASTERISK-19094)
Reported by: Eugene
      issueA19094_correct_asterisk_option_x.patch (license #5674) patch uploaded by Walter Doekes (modified)
Tested by: Eugene

Merged revisions 350075 from

Merged revisions 350076 from

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

11 years agoPrevent SLA settings from getting wiped out on reload
Kinsey Moore [Mon, 9 Jan 2012 15:40:16 +0000 (15:40 +0000)]
Prevent SLA settings from getting wiped out on reload

If SLA was reloaded without the config file being changed, current settings got
wiped out before the SLA reload code decided it wasn't going to reload the file
since nothing was changed.  Moving the settings reset later in the reload
process fixes this.

(closes issue AST-744)

Merged revisions 350023 from

Merged revisions 350024 from

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

11 years agoDon't leak CID in From header when presentation=unavailable
Terry Wilson [Fri, 6 Jan 2012 23:31:25 +0000 (23:31 +0000)]
Don't leak CID in From header when presentation=unavailable

When someone does Set(CALLERPRES()=unavailable) (or
Set(CALLERID(pres)=unavailable)) when sendrpid=no, the From header shows
"Anonymous" <anonymous@anonymous.invalid>. When sendrpid=yes/pai, the From
header will still display the callerid info, even though we supply an rpid
header with the anonymous info. It seems like we shouldn't leak that info in
any case. Skimming seems
to indicate that one shouldn't send identifying info in the From in this case.

This patch anonymizes the From header as well even when sendrpid=yes/pai.

(closes issue ASTERISK-16538)


Merged revisions 349968 from

Merged revisions 349977 from

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

11 years agoFix lua goto detection to prevent unexpected behavior with confbridge
Kinsey Moore [Fri, 6 Jan 2012 21:26:16 +0000 (21:26 +0000)]
Fix lua goto detection to prevent unexpected behavior with confbridge

A bug in the pbx_lua goto detection was causing the dialplan to hangup
unexpectedly after confbridge exited if it had called lua dialplan code during

Patch-by: Timo Teras
Acked-by: Matt Nicholson
(closes issue ASTERISK-18976)

Merged revisions 349928 from

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

11 years agoFix memory leaks in app_followme find_realtime().
Richard Mudgett [Fri, 6 Jan 2012 16:50:08 +0000 (16:50 +0000)]
Fix memory leaks in app_followme find_realtime().

(closes issue ASTERISK-19055)
Reported by: Matt Jordan

Merged revisions 349872 from

Merged revisions 349873 from

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

11 years agoFix premature free'ing of the frame committed in r349608
Matthew Jordan [Thu, 5 Jan 2012 23:58:26 +0000 (23:58 +0000)]
Fix premature free'ing of the frame committed in r349608

Even though we set the frame to the ast_null_frame and return that,
the caller of the frame hook may still need the frame.  This now is
a bit more careful about when it frees the frame, i.e., only under
the same conditions that applied when we duplicated it in the first

Merged revisions 349822 from

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

11 years agoMake not assume that the cel_sqlite3_custom SQL table primary key is AcctId.
Richard Mudgett [Thu, 5 Jan 2012 23:47:11 +0000 (23:47 +0000)]
Make not assume that the cel_sqlite3_custom SQL table primary key is AcctId.

If a table is created by some other application and the primary key is not
named "AcctId", cel/cel_sqlite3_custom.c will always try to create the
table and fail because it already exists.

* Change the SQL table query to not require AcctId as the primary key.

(closes issue ASTERISK-18963)
Reported by: socketpair
      fix.patch (license #6337) patch uploaded by socketpair

Merged revisions 349819 from

Merged revisions 349820 from

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

11 years agoMake pbx_config.c use Gosub instead of Macro call for stdexten.
Richard Mudgett [Thu, 5 Jan 2012 23:06:17 +0000 (23:06 +0000)]
Make pbx_config.c use Gosub instead of Macro call for stdexten.

Users created by users.conf with hasvoicemail=yes have been documented as
using a Gosub to stdexten since v1.6.0.  However, the code still generates
dialplan to access stdexten as a Macro as documented in v1.4; which does
not work with the newer extensions.conf.sample file.

* Make generated dialplan access the stdexten dialplan with the documented
Gosub instead of the older Macro style.

(closes issue ASTERISK-18809)
Reported by: Jay Allen
      gosub_patch-pbx_config.patch (license #6323) patch uploaded by Jay Allen (modified)
Tested by: rmudgett

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

11 years agoAllow playback of formats that don't support seeking
Kinsey Moore [Thu, 5 Jan 2012 22:11:41 +0000 (22:11 +0000)]
Allow playback of formats that don't support seeking

ast_streamfile previously did unconditional seeking on files that broke
playback of formats that don't support that functionality.  This patch avoids
the seek that was causing the problem.  This regression was introduced in

(closes issue ASTERISK-18994)
Patch-by: Timo Teras

Merged revisions 349731 from

Merged revisions 349732 from

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

11 years agoFix an issue where dsp.c would interpret multiple dtmf events from a single key press.
Jonathan Rose [Thu, 5 Jan 2012 22:02:33 +0000 (22:02 +0000)]
Fix an issue where dsp.c would interpret multiple dtmf events from a single key press.

When receiving calls from a mobile phone into a DISA system on a connection with
significant interference, the reporter's Asterisk system would interpret DTMF incorrectly
and replicate digits received. This patch resolves that by increasing the number of
frames a mismatch has to be detected before assuming the DTMF is over by 1 frame and
adjusts dtmf_detect function to reset hits and misses only when an edge is detected.

(closes issue ASTERISK-17493)
Reported by: Alec Davis
bug18904-refactor.diff.txt uploaded by Alec Davis (license 5546)

Merged revisions 349728 from

Merged revisions 349729 from

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

11 years agoEnsures Asterisk closes when receiving terminal signals in 'no fork' mode.
Jonathan Rose [Thu, 5 Jan 2012 16:16:51 +0000 (16:16 +0000)]
Ensures Asterisk closes when receiving terminal signals in 'no fork' mode.

When catching a signal, in no fork mode the console thread is identical to the thread
responsible for catching the signal and closing Asterisk, which requires it to first
dispense with the console thread. Prior to this patch, if these threads were identical,
upon receiving a killing signal, the thread will send an URG signal to itself, which
we also catch and then promptly do nothing with. Obviously this isn't useful behavior.

(closes issue ASTERISK-19127)
Reported By: Bryon Clark
quit_on_signals.patch uploaded by Bryon Clark (license 6157)

Merged revisions 349672 from

Merged revisions 349673 from

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

11 years agoFix for ConfBridge config parser unlocking channel mutex too many times
Matthew Jordan [Wed, 4 Jan 2012 22:23:28 +0000 (22:23 +0000)]
Fix for ConfBridge config parser unlocking channel mutex too many times

When looking up a ConfBridge profile, the config parser would, if it
found a channel datastore on the channel requesting the bridge profile,
unlock the channel mutex twice.  Since that's a little aggressive,
it now only unlocks it once.

(closes issue ASTERISK-19042)
Reported by: Matt Jordan
Tested by: Matt Jordan
  19042 uploaded by David Vossel (license 5628)

Merged revisions 349619 from

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

11 years agoFree successfully translated frame in fax_gateway_framehook
Matthew Jordan [Wed, 4 Jan 2012 21:40:45 +0000 (21:40 +0000)]
Free successfully translated frame in fax_gateway_framehook

A frame that is translated via ast_translate is also duplicated via ast_frdup.
This will allocate a new frame on the heap, which needs to be free'd
at the appropriate time.  This issue reporter used valgrind to find that this
occurred in res_fax's fax_gateway_framehook; a quick search through the code
showed that only place this was currently not handling the translatted frame

(closes issue ASTERISK-19133)
Reported by: Sylvain Rochet

Merged revisions 349608 from

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

11 years agoFix segfault in chan_dahdi for CHANNEL(dahdi_span) evaluation on hangup.
Richard Mudgett [Wed, 4 Jan 2012 20:55:59 +0000 (20:55 +0000)]
Fix segfault in chan_dahdi for CHANNEL(dahdi_span) evaluation on hangup.

* Added NULL private pointer checks in the following chan_dahdi channel
callbacks: dahdi_func_read(), dahdi_func_write(), dahdi_setoption(), and

(closes issue ASTERISK-19142)
Reported by: Diego Aguirre
Tested by: rmudgett

Merged revisions 349558 from

Merged revisions 349559 from

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

11 years agoMake debian init script conform to the LSB standard
Kinsey Moore [Wed, 4 Jan 2012 20:24:25 +0000 (20:24 +0000)]
Make debian init script conform to the LSB standard

Previously, this init script would return 1 if Asterisk was already running.
This is incorrect behavior according to the LSB standard and has been fixed by
returning 0 instead.

(closes issue ASTERISK-17958)
Reported-by: johnc

Merged revisions 349529 from

Merged revisions 349532 from

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

11 years agoUpdate autosupport script and man page
Kinsey Moore [Wed, 4 Jan 2012 20:02:34 +0000 (20:02 +0000)]
Update autosupport script and man page

Added information collection from the output of the utilities: top, free, uptime, ifconfig
Added information collection from the output of the Asterisk command 'dahdi show status'
Added option / flag '-n, --non-interactive'
Updated man page to reflect new option / flag '-n, --non-interactive'

Patch-by: John Bigelow (itzanger)
(closes issue AST-749)

Merged revisions 349504 from

Merged revisions 349505 from

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

11 years agoAdds Subscription-State header to notify with call completion. per RFC3265
Jonathan Rose [Wed, 4 Jan 2012 19:53:49 +0000 (19:53 +0000)]
Adds Subscription-State header to notify with call completion. per RFC3265

(Closes issue ASTERISK-17953)
Reported by: George Konopacki
19400.patch uploaded by mmichelson (license 5049)

Merged revisions 349482 from

Merged revisions 349502 from

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

11 years agoFix documentation for SayNumber to reflect the fact that language is changed in CHANNEL()
Jonathan Rose [Wed, 4 Jan 2012 18:46:51 +0000 (18:46 +0000)]
Fix documentation for SayNumber to reflect the fact that language is changed in CHANNEL()

(closes issue ASTERISK-18962)
reported by: Nir Simionovich

Merged revisions 349450 from

Merged revisions 349451 from

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

11 years agoFix some minor formatting issues based on coding guidelines.
Russell Bryant [Sat, 31 Dec 2011 15:48:09 +0000 (15:48 +0000)]
Fix some minor formatting issues based on coding guidelines.

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

11 years agoConstify tag argument in REF_DEBUG related code.
Russell Bryant [Sat, 31 Dec 2011 15:45:57 +0000 (15:45 +0000)]
Constify tag argument in REF_DEBUG related code.

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

11 years agoHandle AST_CONTROL_UPDATE_RTP_PEER frames in local bridge loop
Matthew Jordan [Thu, 29 Dec 2011 15:16:46 +0000 (15:16 +0000)]
Handle AST_CONTROL_UPDATE_RTP_PEER frames in local bridge loop

Failing to handle AST_CONTROL_UPDATE_RTP_PEER frames in the local bridge loop
causes the loop to exit prematurely.  This causes a variety of negative side
effects, depending on when the loop exits.  This patch handles the frame by
essentially swallowing the frame in the local loop, as the current channel
drivers expect the RTP bridge to handle the frame, and, in the case of the
local bridge loop, no additional action is necessary.

(issue ASTERISK-19040)
(issue ASTERISK-19128)
(issue ASTERISK-17725)
(issue ASTERISK-18340)
(closes issue ASTERISK-19095)
Reported by: Stefan Schmidt
Tested by: Matt Jordan


Merged revisions 349339 from

Merged revisions 349340 from

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

11 years agoUse ast_audiohook_write_list_empty to determine if our lists are empty instead
Sean Bright [Wed, 28 Dec 2011 21:39:12 +0000 (21:39 +0000)]
Use ast_audiohook_write_list_empty to determine if our lists are empty instead
of duplicating that logic.

Merged revisions 349289 from

Merged revisions 349290 from

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

11 years agoTell Subversion to gnore the 'astdb2bdb' binary file if it exists.
Kevin P. Fleming [Wed, 28 Dec 2011 19:00:20 +0000 (19:00 +0000)]
Tell Subversion to gnore the 'astdb2bdb' binary file if it exists.

Merged revisions 349250 from

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

11 years agoImprove T.38 gateway V.21 preamble detection.
Kevin P. Fleming [Wed, 28 Dec 2011 18:59:16 +0000 (18:59 +0000)]
Improve T.38 gateway V.21 preamble detection.

This commit removes the V.21 preamble detection code previously added to the
generic DSP implementation in Asterisk, and instead enhances the res_fax module
to be able to utilize V.21 preamble detection functionality made available by
FAX technology modules. This commit also adds such support to res_fax_spandsp,
which uses the Spandsp modem tone detection code to do the V.21 preamble

There should be no functional change here, other than much more reliable V.21
preamble detection (and thus T.38 gateway initiation).

Merged revisions 349248 from

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

11 years agoFix timing source dependency issues with MOH
Matthew Jordan [Tue, 27 Dec 2011 20:55:15 +0000 (20:55 +0000)]
Fix timing source dependency issues with MOH

Prior to this patch, res_musiconhold existed at the same module priority level
as the timing sources that it depends on.  This would cause a problem when
music on hold was reloaded, as the timing source could be changed after
res_musiconhold was processed.  This patch adds a new module priority level,
AST_MODPRI_TIMING, that the various timing modules are now loaded at.  This
now occurs before loading other resource modules, such that the timing source
is guaranteed to be set prior to resolving the timing source dependencies.

(closes issue ASTERISK-17474)
Reporter: Luke H
Tested by: Luke H, Vladimir Mikhelson, zzsurf, Wes Van Tlghem, elguero, Thomas Arimont
 asterisk-17474-dahdi_timing-infinite-wait-fix_v3_branch-1.8.diff uploaded by elguero (License #5026)
 asterisk-17474-dahdi_timing-infinite-wait-fix_v3_branch-10.diff uploaded by elguero (License #5026)
 asterisk-17474-dahdi_timing-infinite-wait-fix_v3.diff uploaded by elguero (License #5026)


Merged revisions 349194 from

Merged revisions 349195 from

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

11 years agoOnce an audiohook is attached to a channel, we continue to transcode all of the
Sean Bright [Tue, 27 Dec 2011 17:17:58 +0000 (17:17 +0000)]
Once an audiohook is attached to a channel, we continue to transcode all of the
frames, even after all of the hooks are detached.  This patch short-cicuits us
out before we transcode unnecessarily.

Merged revisions 349144 from

Merged revisions 349145 from

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

11 years agoAllow overriding of IMAP server settings on a user by user basis
Matthew Jordan [Fri, 23 Dec 2011 21:19:52 +0000 (21:19 +0000)]
Allow overriding of IMAP server settings on a user by user basis

This patch allows the imapserver, imapport, and imapflags settings to be
overridden for any voicemail user.  It also documents the settings in
the sample voicemail.conf file, and updates the voicemail schema to
allow storage of those columns.

(closes issue ASTERISK-16489)
Reporter: Hubert Mickael
Tested by: Matt Jordan


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

11 years agoINFO/Record request configurable to use dynamic features
Jonathan Rose [Fri, 23 Dec 2011 20:42:21 +0000 (20:42 +0000)]
INFO/Record request configurable to use dynamic features

Adds two new options to SIP peers allowing them to specify features (dynamic or builtin)
to use when sending INFO/record requests. Recordonfeature activates whatever feature
is specified when recieving a record: on request while recordofffeature activates
whatever feature is specified when receiving a record: off request. Both of these
features can be disabled by setting the feature to an empty string.

(closes issue ASTERISK-16507)
Reported by: Jon Bright

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