8 years agoastobj2: Only define ao2_bt() once.
Richard Mudgett [Thu, 5 Sep 2013 21:48:02 +0000 (21:48 +0000)]
astobj2: Only define ao2_bt() once.

* Make ao2_bt() not use single char variable names.

* Fix ao2_bt() formatting.

Merged revisions 398498 from

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

8 years agochan_iax2: Reduce indentation in __attempt_transmit().
Richard Mudgett [Thu, 5 Sep 2013 19:18:10 +0000 (19:18 +0000)]
chan_iax2: Reduce indentation in __attempt_transmit().

* Reduce indentation in __attempt_transmit().

* Don't update the static last error time variable every time in
__schedule_action() and socket_read().

Merged revisions 398456 from

Merged revisions 398457 from

Merged revisions 398458 from

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

8 years agochan_iax2: Fix stray reference to worker thread idle_list.
Richard Mudgett [Thu, 5 Sep 2013 17:31:29 +0000 (17:31 +0000)]
chan_iax2: Fix stray reference to worker thread idle_list.

* Fix stray reference to idle_list in cleanup_thread_list().  This may be
the reason for the note in iax2_process_thread() about threads not being
removed from the task lists.

* Move cleanup_thread_list(&idle_list) to after the other lists are
cleaned up.

Merged revisions 398416 from

Merged revisions 398417 from

Merged revisions 398418 from

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

8 years agochan_iax2: Fix bridgecallno deadlock avoidance.
Richard Mudgett [Thu, 5 Sep 2013 17:17:53 +0000 (17:17 +0000)]
chan_iax2: Fix bridgecallno deadlock avoidance.

* Fix bridgecallno deadlock avoidance.  When doing deadlock avoidance, you
need to retest the status of values for each loop to see if you still need
the lock for bridgecallno.

* As a safety check, after acquiring the bridgecallno lock you should
check if iaxs[bridgecallno] is NULL just like the current callno checks.

* Move setting thread->iostate to IAX_IOSTATE_IDLE to after processing any
deferred frames to ensure that the iostate is IDLE when it is placed back
into the idle list.  defer_full_frame() tries to ensure
iax2_process_thread() wakes up to process the frame.

Merged revisions 398379 from

Merged revisions 398380 from

Merged revisions 398381 from

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

8 years agoClarify server_uri and client_uri registration settings.
Mark Michelson [Thu, 5 Sep 2013 14:10:45 +0000 (14:10 +0000)]
Clarify server_uri and client_uri registration settings.

Used some of Rusty's suggested language plus also included
more SIPesque descriptions of where the URIs are actually
used in an outgoing REGISTER.

(closes issue ASTERISK-22390)
reported by Rusty Newton

Merged revisions 398368 from

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

8 years agochan_iax2: Add missing control frame names to debug frame decode output.
Richard Mudgett [Wed, 4 Sep 2013 23:07:41 +0000 (23:07 +0000)]
chan_iax2: Add missing control frame names to debug frame decode output.

Merged revisions 398301 from

Merged revisions 398302 from

Merged revisions 398303 from

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

8 years agoGive more detail regarding failures to create request with auth credentials.
Mark Michelson [Wed, 4 Sep 2013 22:49:25 +0000 (22:49 +0000)]
Give more detail regarding failures to create request with auth credentials.

(issue ASTERISK-22386)

Merged revisions 398299 from

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

8 years agounit tests: test_voicemail_api leaks stringfields from snapshots
Jonathan Rose [Wed, 4 Sep 2013 21:37:01 +0000 (21:37 +0000)]
unit tests: test_voicemail_api leaks stringfields from snapshots

(closes issue ASTERISK-22414)
Reported by: Corey Farrell
    test_voicemail_api-leaks-11.patch uploaded by coreyfarrell (license 5909)

Merged revisions 398285 from

Merged revisions 398286 from

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

8 years agoapp_voicemail: Fix leaking config objects when msg_id doesn't match
Jonathan Rose [Wed, 4 Sep 2013 21:20:02 +0000 (21:20 +0000)]
app_voicemail: Fix leaking config objects when msg_id doesn't match

(issues ASTERISK-22414)
Reported by: Corey Farrell
    test_voicemail_api-leaks-11.patch uploaded by coreyfarrell (license 5909)

Merged revisions 398281 from

Merged revisions 398283 from

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

8 years agochan_misdn: Fix misdn debug output printed with arbitrary verbose levels.
Richard Mudgett [Wed, 4 Sep 2013 16:03:14 +0000 (16:03 +0000)]
chan_misdn: Fix misdn debug output printed with arbitrary verbose levels.

Fix the misdn debug output to remote consoles.  chan_misdn uses
ast_console_puts() which doesn't know about verbose levels.  Better to use
ast_verbose() instead.  Without this patch the misdn debug messages are
appended to the verbose level which ever was set by the message sent to
the console before, i.e.  any undefined level.

(closes issue AST-1218)
Reported by: Guenther Kelleter
      misdnlog.patch (license #6372) patch uploaded by Guenther Kelleter

Merged revisions 398235 from

Merged revisions 398236 from

Merged revisions 398237 from

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

8 years agoDebug messages for pjsip outbound registration
Kevin Harwell [Wed, 4 Sep 2013 14:32:25 +0000 (14:32 +0000)]
Debug messages for pjsip outbound registration

Added debug messages indicating that an outbound registration attempt was made
and it was successful in pjsip.

(closes issue ASTERISK-22388)
Reported by: Rusty Newton

Merged revisions 398226 from

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

8 years agoFix remote tcs sequence handling on empty tcs received
Alexandr Anikin [Tue, 3 Sep 2013 20:28:01 +0000 (20:28 +0000)]
Fix remote tcs sequence handling on empty tcs received

Merged revisions 398214 from

Merged revisions 398215 from

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

8 years agoPrevent a crash in res_pjsip_dtmf_info.c
Kinsey Moore [Tue, 3 Sep 2013 18:09:02 +0000 (18:09 +0000)]
Prevent a crash in res_pjsip_dtmf_info.c

This change makes sure that a content type header exists before
checking the contents of the header against known SIP INFO DTMF content

Merged revisions 398206 from

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

8 years agoFixed 'make clean' for wiki docs
David M. Lee [Tue, 3 Sep 2013 17:19:30 +0000 (17:19 +0000)]
Fixed 'make clean' for wiki docs

Merged revisions 398198 from

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

8 years agoBe a little more verbose when loading cel_custom.conf.
Walter Doekes [Tue, 3 Sep 2013 14:29:52 +0000 (14:29 +0000)]
Be a little more verbose when loading cel_custom.conf.


Merged revisions 398167 from

Merged revisions 398168 from

Merged revisions 398196 from

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

8 years agoFix graceful shutdown crash.
David M. Lee [Fri, 30 Aug 2013 20:58:59 +0000 (20:58 +0000)]
Fix graceful shutdown crash.

The cleanup code for optional_api needs to happen after all of the optional
API users and providers have unused/unprovided. Unfortunately, regsitering the
atexit() handler at the beginning of main() isn't soon enough, since module
destructors run after that.

Merged revisions 398149 from

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

8 years agoNew pjsip.conf.sample
Rusty Newton [Fri, 30 Aug 2013 20:37:54 +0000 (20:37 +0000)]
New pjsip.conf.sample

(issue ASTERISK-22145)
(closes issue ASTERISK-22145)
Reported By: Matt Jordan

Merged revisions 398147 from

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

8 years agoAdd a reloadable option for sorcery type objects
Kevin Harwell [Fri, 30 Aug 2013 19:55:56 +0000 (19:55 +0000)]
Add a reloadable option for sorcery type objects

Some configuration objects currently won't place nice if reloaded.
Specifically, in this case the pjsip transport objects.  Now when
registering an object in sorcery one may specify that the object is
allowed to be reloaded or not.  If the object is set to not reload
then upon reloading of the configuration the objects of that type
will not be reloaded.  The initially loaded objects of that type
however will remain.

While the transport objects will not longer be reloaded it is still
possible for a user to configure an endpoint to an invalid transport.
A couple of log messages were added to help diagnose this problem if
it occurs.

(closes issue ASTERISK-22382)
Reported by: Rusty Newton
(closes issue ASTERISK-22384)
Reported by: Rusty Newton

Merged revisions 398139 from

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

8 years agoFix various memory leaks
Kevin Harwell [Fri, 30 Aug 2013 19:22:59 +0000 (19:22 +0000)]
Fix various memory leaks

main/config.c - cleanup cache fie includes
res/res_security_log.c - unregister logger level
channesl/chan_sip.c - cleanup io context and notify_types
main/translator.c - cleanup at shutdown
main/named_acl.c - cleanup cli commands
main/indications.c - ast_get_indication_tone() unref default_tone_zone if used

(closes issues ASTERISK-22378)
Reported by: Corey Farrell
     config_shutdown.patch uploaded by coreyfarrell (license 5909)
     res_security_log.patch uploaded by coreyfarrell (license 5909)
     chan_sip-11.patch uploaded by coreyfarrell (license 5909)
     indications_refleak.patch uploaded by coreyfarrell (license 5909)
     named_acl-cli_unreg-trunk.patch uploaded by coreyfarrell (license 5909)
     translate_shutdown.patch uploaded by coreyfarrell (license 5909)


Merged revisions 398102 from

Merged revisions 398103 from

Merged revisions 398116 from

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

8 years agoUpdate UPGRADE.txt file for Asterisk 12
Matthew Jordan [Fri, 30 Aug 2013 18:38:00 +0000 (18:38 +0000)]
Update UPGRADE.txt file for Asterisk 12

This simply pulls in the changes that were breaking from the CHANGES file
and updates a few other areas accordingly. It also removes the 10 => 11
notes, which are traditionally removed from each major version and stored
in the appropriate UPGRADE-X.txt file.

Merged revisions 398100 from

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

8 years agofeatures_config: Ignore parkinglots in features.conf instead of failing to load
Jonathan Rose [Fri, 30 Aug 2013 18:30:01 +0000 (18:30 +0000)]
features_config: Ignore parkinglots in features.conf instead of failing to load

Parkinglots are defined in res_features.conf now, but this patch fixes
features_config so that features don't fail to load when parkinglots
are present in features.conf


Merged revisions 398068 from

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

8 years agofeatures_config: Don't require features.conf to be present for Asterisk to load
Jonathan Rose [Fri, 30 Aug 2013 18:04:41 +0000 (18:04 +0000)]
features_config: Don't require features.conf to be present for Asterisk to load

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

Merged revisions 398020 from

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

8 years agoMemory leak fix
Kevin Harwell [Fri, 30 Aug 2013 17:59:06 +0000 (17:59 +0000)]
Memory leak fix

ast_xmldoc_printable returns an allocated block that must be freed by the
caller.  Fixed manager.c and res_agi.c to stop leaking these results.

(closes issue ASTERISK-22395)
Reported by: Corey Farrell
     manager-leaks-12.patch uploaded by coreyfarrell (license 5909)
     res_agi-xmldoc-leaks.patch uploaded by coreyfarrell (license 5909)

Merged revisions 398060 from

Merged revisions 398061 from

Merged revisions 398062 from

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

8 years agotest_substitution: Fix failing test.
Richard Mudgett [Fri, 30 Aug 2013 17:11:06 +0000 (17:11 +0000)]
test_substitution: Fix failing test.

Revert the -r392190 change.  The original test was correct.  The CDR code
was actually returning an unititialized buffer.

Merged revisions 398025 from

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

8 years agotest_substituition: Fix failed test reporting to actually report failure.
Richard Mudgett [Fri, 30 Aug 2013 17:03:09 +0000 (17:03 +0000)]
test_substituition: Fix failed test reporting to actually report failure.

You cannot put the "Testing <blah> pass/fail" on a single line before
actually performing the test.  Now any additional failure information is
logged before the test pass/fail announcement.

* Added an additional CDR(answer,u) test.

Merged revisions 398018 from

Merged revisions 398019 from

Merged revisions 398023 from

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

8 years agoFix memory leaks
Kevin Harwell [Fri, 30 Aug 2013 16:27:57 +0000 (16:27 +0000)]
Fix memory leaks

(closes issue ASTERISK-22368)
Reported by: Corey Farrell
     issueA22368_mixmonitor_free_filename.patch uploaded by wdoekes (license 5674)

Merged revisions 398004 from

Merged revisions 398011 from

Merged revisions 398016 from

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

8 years agoCheck return value on fwrite
Kevin Harwell [Fri, 30 Aug 2013 15:39:09 +0000 (15:39 +0000)]
Check return value on fwrite

Merged revisions 398000 from

Merged revisions 398002 from

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

8 years agooptional_api: Fix linking problems between modules that export global symbols
David M. Lee [Fri, 30 Aug 2013 13:40:27 +0000 (13:40 +0000)]
optional_api: Fix linking problems between modules that export global symbols

With the new work in Asterisk 12, there are some uses of the
optional_api that are prone to failure. The details are rather involved,
and captured on [the wiki][1].

This patch addresses the issue by removing almost all of the magic from
the optional API implementation. Instead of relying on weak symbol
resolution, a new optional_api.c module was added to Asterisk core.

For modules providing an optional API, the pointer to the implementation
function is registered with the core. For modules that use an optional
API, a pointer to a stub function, along with a optional_ref function
pointer are registered with the core. The optional_ref function pointers
is set to the implementation function when it's provided, or the stub
function when it's now.

Since the implementation no longer relies on magic, it is now supported
on all platforms. In the spirit of choice, an OPTIONAL_API flag was
added, so we can disable the optional_api if needed (maybe it's buggy on
some bizarre platform I haven't tested on)

The AST_OPTIONAL_API*() macros themselves remained unchanged, so
existing code could remain unchanged. But to help with debugging the
optional_api, the patch limits the #include of optional API's to just
the modules using the API. This also reduces resource waste maintaining
optional_ref pointers that aren't used.

Other changes made as a part of this patch:
 * The stubs for http_websocket that wrap system calls set errno to

 * res_http_websocket now properly increments module use count.

 * In loader.c, the while() wrappers around dlclose() were removed. The
   while(!dlclose()) is actually an anti-pattern, which can lead to
   infinite loops if the module you're attempting to unload exports a
   symbol that was directly linked to.

 * The special handling of nonoptreq on systems without weak symbol
   support was removed, since we no longer rely on weak symbols for


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

Merged revisions 397989 from

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

8 years agoARI: Implement /recordings/stored API's
David M. Lee [Fri, 30 Aug 2013 13:28:50 +0000 (13:28 +0000)]
ARI: Implement /recordings/stored API's

his patch implements the ARI API's for stored recordings. While the
original task only specified deleting a recording, it was simple
enough to implement the GET for all recordings, and for an individual

The recording playback operation was modified to use the same code for
accessing the recording as the REST API, so that they will behave

There were several problems with the api-docs that were also fixed,
bringing the ARI spec in line with the implementation. There were some
'wishful thinking' fields on the stored recording model (duration and
timestamp) that were removed, because I ended up not implementing a
metadata file to go along with the recording to store such information.

The GET /recordings/live operation was removed, since it's not really
that useful to get a list of all recordings that are currently going
on in the system. (At least, if we did that, we'd probably want to
also list all of the current playbacks. Which seems weird.)

(closes issue ASTERISK-21582)

Merged revisions 397985 from

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

8 years agoMultiple revisions 397975-397976
David M. Lee [Fri, 30 Aug 2013 13:27:52 +0000 (13:27 +0000)]
Multiple revisions 397975-397976

  r397975 | rmudgett | 2013-08-29 20:00:00 -0500 (Thu, 29 Aug 2013) | 1 line

  pbx.c: Make ast_str_substitute_variables_full() not mask variables.
  r397976 | rmudgett | 2013-08-29 20:00:41 -0500 (Thu, 29 Aug 2013) | 1 line

  Revert last commit.

Merged revisions 397975-397976 from

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

8 years agopbx.c: Make pbx_substitute_variables_helper_full() not mask variables.
Richard Mudgett [Fri, 30 Aug 2013 01:20:05 +0000 (01:20 +0000)]
pbx.c: Make pbx_substitute_variables_helper_full() not mask variables.

Merged revisions 397977 from

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

8 years agoSanitize XML output for PIDF bodies.
Mark Michelson [Fri, 30 Aug 2013 00:11:22 +0000 (00:11 +0000)]
Sanitize XML output for PIDF bodies.

PJSIP's PIDF API does not replace angle brackets with
their appropriate counterparts for XML. So we have to
do it ourself. In this particular case, the problem had
to do with attempting to place an unsanitized SIP URI
into an XML node. Now we don't get a 488 from recipients
of our PIDF NOTIFYs.

Merged revisions 397968 from

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

8 years agoFix method for creating activities string in PIDF bodies.
Mark Michelson [Thu, 29 Aug 2013 22:54:05 +0000 (22:54 +0000)]
Fix method for creating activities string in PIDF bodies.

The previous method did not allocate enough space to create
the entire string, but adjusted the string's slen value to
be larger than the actual allocation. This resulted in garbled
text in NOTIFY requests from Asterisk.

This method allocates the proper amount of space first and then
writes the content into the buffer.

Merged revisions 397960 from

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

8 years agoVerbose logging discrepancies
Kevin Harwell [Thu, 29 Aug 2013 22:49:24 +0000 (22:49 +0000)]
Verbose logging discrepancies

Refactored cases where a combination of ast_verbose/options_verbose were
present.  Also in general tried to eliminate, in as many places as possible,
where the options_verbose global variable was being used.  Refactored the way
local and remote consoles handle verbose message logging in an attempt to
solve the various discrepancies that sometimes would show between the two.

(closes issue AST-1193)
Reported by: Guenther Kelleter

Merged revisions 397948 from

Merged revisions 397958 from

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

8 years agoFix when the subscription_terminated callback is called for subscription handlers.
Mark Michelson [Thu, 29 Aug 2013 22:26:03 +0000 (22:26 +0000)]
Fix when the subscription_terminated callback is called for subscription handlers.

The previous placement would result in the resubscribe() callback called instead of
the subscription_terminated() callback being called when a subscription was ended
via a SUBSCRIBE request. This would result in confusing PJSIP and having it throw
an assertion.

Merged revisions 397955 from

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

8 years agoFix a race condition where a canceled call was answered.
Mark Michelson [Thu, 29 Aug 2013 22:25:16 +0000 (22:25 +0000)]
Fix a race condition where a canceled call was answered.

RFC 5407 section 3.1.2 details a scenario where a UAC sends
a CANCEL at the same time that a UAS sends a 200 OK for the
INVITE that the UAC is canceling. When this occurs, it is the
role of the UAC to immediately send a BYE to terminate
the call.

This scenario was reproducible by have a Digium phone with two lines
place a call to a second phone that forwarded the call to the second
line on the original phone. The Digium phone, upon realizing that it
was connecting to itself, would attempt to cancel the call. The timing
of this happened to trigger the aforementioned race condition about
80% of the time. Asterisk was not doing its job of sending a BYE
when receiving a 200 OK on a cancelled INVITE. The result was that
the ast_channel structure was destroyed but the underlying SIP
session, as well as the PJSIP inv_session and dialog, were still
alive. Attempting to perform an action such as a transfer, once in
this state, would result in Asterisk crashing.

The circumstances are now detected properly and the session is ended
as recommended in RFC 5407.

(closes issue AST-1209)
reported by John Bigelow

Merged revisions 397945 from

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

8 years agoMemory leaks fix
Kevin Harwell [Thu, 29 Aug 2013 21:37:29 +0000 (21:37 +0000)]
Memory leaks fix

(closes ASTERISK-22376)
Reported by: John Hardin
     memleak.patch uploaded by jhardin (license 6512)
     memleak2.patch uploaded by jhardin (license 6512)

Merged revisions 397946 from

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

8 years agoRevert r394939 due to (numerous) objections
Matthew Jordan [Thu, 29 Aug 2013 20:22:08 +0000 (20:22 +0000)]
Revert r394939 due to (numerous) objections

The patch from ASTERISK-21965 was committed perhaps a bit too hastily. Walter
and Tzafrir have pointed out numerous issues with the approach and have
propsed an alternative in r/2757. Since it's not a time critical issue and
is not worth holding up the release of 12 for it, I've gone ahead and reverted
r394939 from 12/trunk and re-opened ASTERISK-21965.

Merged revisions 397938 from

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

8 years agoAccount for {} in Swagger notes
David M. Lee [Thu, 29 Aug 2013 16:21:31 +0000 (16:21 +0000)]
Account for {} in Swagger notes

Merged revisions 397927 from

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

8 years agoRecursively search for '.c' files when making documentation with 'make full'
Matthew Jordan [Thu, 29 Aug 2013 16:05:23 +0000 (16:05 +0000)]
Recursively search for '.c' files when making documentation with 'make full'

Without this, documentation defined in sub-folders is ignored. Since having
properly generated documentation is especially important in Asterisk 12 -
not having it can cause a module to not load - 'make full' needs to look in
all .c files.

Merged revisions 397924 from

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

8 years agoMultiple revisions 397921-397922
Mark Michelson [Thu, 29 Aug 2013 15:43:23 +0000 (15:43 +0000)]
Multiple revisions 397921-397922

  r397921 | mmichelson | 2013-08-29 10:42:10 -0500 (Thu, 29 Aug 2013) | 6 lines

  Resolve assumptions that bridge snapshots would be non-NULL for transfer stasis events.

  Attempting to transfer an unbridged call would result in crashes in either CEL code or
  in the conversion to AMI messages.
  r397922 | mmichelson | 2013-08-29 10:42:29 -0500 (Thu, 29 Aug 2013) | 3 lines

  Remove extra debug message.

Merged revisions 397921-397922 from

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

8 years agoActually *add* the database schema management utilities
Matthew Jordan [Thu, 29 Aug 2013 12:30:07 +0000 (12:30 +0000)]
Actually *add* the database schema management utilities

In r397874, the scripts were removed... but not replaced. Thanks to
Michael Young for noticing this!

Merged revisions 397911 from

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

8 years agoFix some uninitialized buffers for CDR handling valgrind found.
Richard Mudgett [Wed, 28 Aug 2013 23:15:43 +0000 (23:15 +0000)]
Fix some uninitialized buffers for CDR handling valgrind found.

* Made ast_strftime_locale() ensure that the output buffer is initialized.
The std library strftime() returns 0 and does not touch the buffer if it
has an error.  However, the function can also return 0 without an error.

(closes issue ASTERISK-22412)
Reported by: rmudgett

Merged revisions 397902 from

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

8 years agoFixed problems with ast_cdr_serialize_variables().
Richard Mudgett [Wed, 28 Aug 2013 22:56:03 +0000 (22:56 +0000)]
Fixed problems with ast_cdr_serialize_variables().

* Fixed return value of ast_cdr_serialize_variables() on error.  It needs
to return 0 indicating no CDR variables found.

* Made ast_cdr_serialize_variables() check the return value of
cdr_object_format_property() and assert if nonzero.  A member of the
cdr_readonly_vars[] was not handled.

* Removed unused elements from cdr_readonly_vars[]: total_duration,
total_billsec, first_start, and first_answer.

Merged revisions 397900 from

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

8 years agoMade the on/off in CLI "cdr set debug [on|off]" case insensitive.
Richard Mudgett [Wed, 28 Aug 2013 22:43:14 +0000 (22:43 +0000)]
Made the on/off in CLI "cdr set debug [on|off]" case insensitive.

Merged revisions 397898 from

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

8 years agoMake CDR variable name chandling consistently case insensitive.
Richard Mudgett [Wed, 28 Aug 2013 22:38:30 +0000 (22:38 +0000)]
Make CDR variable name chandling consistently case insensitive.

Merged revisions 397896 from

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

8 years agoMake CDR code deal with channel names case insensitively.
Richard Mudgett [Wed, 28 Aug 2013 22:35:25 +0000 (22:35 +0000)]
Make CDR code deal with channel names case insensitively.

Merged revisions 397894 from

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

8 years agoSome CDR code optimization.
Richard Mudgett [Wed, 28 Aug 2013 22:24:01 +0000 (22:24 +0000)]
Some CDR code optimization.

Merged revisions 397892 from

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

8 years agoWhitespace and curly braces.
Richard Mudgett [Wed, 28 Aug 2013 21:38:39 +0000 (21:38 +0000)]
Whitespace and curly braces.

Merged revisions 397885 from

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

8 years agoImprove detection of answer on SIP blind transfer.
Mark Michelson [Wed, 28 Aug 2013 21:09:43 +0000 (21:09 +0000)]
Improve detection of answer on SIP blind transfer.

A problem encountered during testing was that res_pjsip_refer would
not ever send a NOTIFY with a 200 OK sipfrag. This is because the framehook
that was supposed to send the NOTIFY would never be told that an answer
had occurred. This happened for two reasons:

1) The transferee channel on which the framehook was on was already up.
2) Answers are rarely if ever written to channels. Rather, the ast_answer()
or ast_raw_answer() function is used to answer channels.

Thanks to a suggestion by Matt Jordan, the best way to detect that the call
had been answered was to find out when the transferee channel joined a bridge.
With stasis this is an easy task. So now, in addition to the framehook logic,
there is a stasis subscription used to determine when the transferee has entered
a bridge. Once it has entered, an appropriate NOTIFY is sent.

Merged revisions 397876 from

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

8 years agoAdd database schema management using Alembic
Matthew Jordan [Wed, 28 Aug 2013 20:55:53 +0000 (20:55 +0000)]
Add database schema management using Alembic

This patch replaces contrib/realtime/ with a new setup for managing the
database schema required for database integration with Asterisk.  In
addition to initializing a database with the proper schema, alembic can do a
database migration to assist with upgrading Asterisk in the future.
Hopefully this helps make setting up and operating Asterisk with a database

With this the schema only needs to be maintained in one place instead of
once per database.  The schemas I have added here have a bit of improvement
over the examples that were there before (some added consistency and added
some missing indexes).  Managing the schema in one place here also applies
to all databases supported by SQLAlchemy.

See contrib/ast-db-manage/ for more details.


patch by Russell Bryant (license 6300)

Merged revisions 397874 from

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

8 years agoUpdate CHANGES file for Asterisk 12
Matthew Jordan [Wed, 28 Aug 2013 20:49:02 +0000 (20:49 +0000)]
Update CHANGES file for Asterisk 12

This updates the Asterisk 12 CHANGES file with the things that were missed
during the development cycle.


Merged revisions 397870 from

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

8 years agopbx.c: Make ast_str_substitute_variables_full() not mask variables.
Richard Mudgett [Wed, 28 Aug 2013 16:13:18 +0000 (16:13 +0000)]
pbx.c: Make ast_str_substitute_variables_full() not mask variables.

Merged revisions 397859 from

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

8 years agoast_free() is null tollerant.
Richard Mudgett [Wed, 28 Aug 2013 16:09:12 +0000 (16:09 +0000)]
ast_free() is null tollerant.

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

8 years agoMatch use of ast_free() with ast_calloc() and add some curly braces.
Richard Mudgett [Wed, 28 Aug 2013 16:07:30 +0000 (16:07 +0000)]
Match use of ast_free() with ast_calloc() and add some curly braces.

Merged revisions 397856 from

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

8 years agoFix dialog matching in the SIP distributor.
Mark Michelson [Wed, 28 Aug 2013 15:43:15 +0000 (15:43 +0000)]
Fix dialog matching in the SIP distributor.

Dialog matching is performed in the distributor for the sole
purpose of retrieving an associated serializer so the request
may be serialized.

This patch fixes two problems.

First, incoming CANCEL requests that had no to-tag (which really
should be *all* CANCEL requests) would not match with a dialog.
An earlier bug fix to deal with early CANCEL requests would result
in the CANCEL being replied to with a 481. The fix for this is to
find the matching INVITE transaction and get the dialog from that

Second, no SIP responses were matching dialogs. This is because we
were inverting the tags that we were passing into PJSIP's dialog
finding function. This logic has been corrected by setting local
and remote tag variables based on whether the incoming message is
a request or response.

Merged revisions 397854 from

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

8 years agoARI: WebSocket event cleanup
David M. Lee [Tue, 27 Aug 2013 19:19:36 +0000 (19:19 +0000)]
ARI: WebSocket event cleanup

Stasis events (which get distributed over the ARI WebSocket) are created
by subscribing to the channel_all_cached and bridge_all_cached topics,
filtering out events for channels/bridges currently subscribed to.

There are two issues with that. First was a race condition, where
messages in-flight to the master subscribe-to-all-things topic would get
sent out, even though the events happened before the channel was put
into Stasis. Secondly, as the number of channels and bridges grow in the
system, the work spent filtering messages becomes excessive.

Since r395954, individual channels and bridges have caching topics, and
can be subscribed to individually. This patch takes advantage, so that
channels and bridges are subscribed to on demand, instead of filtering
the global topics.

The one case where filtering is still required is handling BridgeMerge
messages, which are published directly to the bridge_all topic.

Other than the change to how subscriptions work, this patch mostly just
moves code around. Most of the work generating JSON objects from
messages was moved to .to_json handlers on the message types. The
callback functions handling app subscriptions were moved from res_stasis
(b/c they were global to the model) to stasis/app.c (b/c they are local
to the app now).

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

Merged revisions 397816 from

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

8 years agoMade MALLOC_DEBUG less CPU intensive by default.
Richard Mudgett [Tue, 27 Aug 2013 18:52:23 +0000 (18:52 +0000)]
Made MALLOC_DEBUG less CPU intensive by default.

Storing a backtrace for each allocation in anticipation of a memory
management problem is very CPU intensive.

* Added the CLI "memory backtrace {on|off}" command to request that the
backtrace be gathered only on request.  The backtrace is off by default.

(issue ASTERISK-22221)
Reported by: Matt Jordan

Merged revisions 397809 from

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

8 years agoAST-2013-005: Fix crash caused by invalid SDP
Matthew Jordan [Tue, 27 Aug 2013 18:10:40 +0000 (18:10 +0000)]
AST-2013-005: Fix crash caused by invalid SDP

If the SIP channel driver processes an invalid SDP that defines media
descriptions before connection information, it may attempt to reference
the socket address information even though that information has not yet
been set. This will cause a crash.

This patch adds checks when handling the various media descriptions that
ensures the media descriptions are handled only if we have connection
information suitable for that media.

Thanks to Walter Doekes, OSSO B.V., for reporting, testing, and providing
the solution to this problem.

(closes issue ASTERISK-22007)
Reported by: wdoekes
Tested by: wdoekes
  issueA22007_sdp_without_c_death.patch uploaded by wdoekes (License 5674)

Merged revisions 397756 from

Merged revisions 397757 from

Merged revisions 397758 from

Merged revisions 397759 from

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

8 years agoAST-2013-004: Fix crash when handling ACK on dialog that has no channel
Matthew Jordan [Tue, 27 Aug 2013 17:35:20 +0000 (17:35 +0000)]
AST-2013-004: Fix crash when handling ACK on dialog that has no channel

A remote exploitable crash vulnerability exists in the SIP channel driver if an
ACK with SDP is received after the channel has been terminated. The handling
code incorrectly assumed that the channel would always be present.

This patch adds a check such that the SDP will only be parsed and applied if
Asterisk has a channel present that is associated with the dialog.

Note that the patch being applied was modified only slightly from the patch
provided by Walter Doekes of OSSO B.V.

(closes issue ASTERISK-21064)
Reported by: Colin Cuthbertson
Tested by: wdoekes, Colin Cutherbertson
  issueA21064_fix.patch uploaded by wdoekes (License 5674)

Merged revisions 397710 from

Merged revisions 397711 from

Merged revisions 397712 from

Merged revisions 397713 from

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

8 years agoFix uninitialized value in struct ast_control_pvt_cause_code usage.
Richard Mudgett [Tue, 27 Aug 2013 16:51:08 +0000 (16:51 +0000)]
Fix uninitialized value in struct ast_control_pvt_cause_code usage.

Merged revisions 397744 from

Merged revisions 397745 from

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

8 years agoBetter handle clearing the OUTGOING flag when a channel leaves a bridge
Matthew Jordan [Mon, 26 Aug 2013 23:48:56 +0000 (23:48 +0000)]
Better handle clearing the OUTGOING flag when a channel leaves a bridge

When a channel with the OUTGOING flag leaves a bridge, and it will survive
being pulled from the bridge (either because it will execute dialplan,
go into another bridge, or live in a friendly autoloop), we have to clear
the OUTGOING flag. This is the signal to the CDR engine that this channel
is no longer a second class citizen, i.e., it is not "dialed".

The soft hangup flags are only half the picture. If a channel is being
moved from one bridge to another, the soft hangup flags aren't set; however,
the state of the bridge_channel will not be hung up. Since the channel does
not have one of the two hang up states, that implies that the channel is
still technically alive.

This patch modifies the check so that it checks both the soft hangup flags
as well as the bridge_channel state. If either suggests that the channel
is going to persist, we clear the OUTGOING flag.

Merged revisions 397690 from

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

8 years agoFixed bucket.c for systems where tv_usec is not an unsigned long.
David M. Lee [Mon, 26 Aug 2013 21:32:13 +0000 (21:32 +0000)]
Fixed bucket.c for systems where tv_usec is not an unsigned long.

Merged revisions 397673 from

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

8 years agobridging: Fix a livelock with local channel optimization.
Richard Mudgett [Mon, 26 Aug 2013 16:25:39 +0000 (16:25 +0000)]
bridging: Fix a livelock with local channel optimization.

Use a better means of waking up the bridge channel thread.

Merged revisions 397650 from

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

8 years agochan_dahdi: Add some missing build cleanup.
Richard Mudgett [Mon, 26 Aug 2013 16:15:02 +0000 (16:15 +0000)]
chan_dahdi: Add some missing build cleanup.

Merged revisions 397643 from

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

8 years agoFix bucket unit tests
Matthew Jordan [Sun, 25 Aug 2013 18:12:42 +0000 (18:12 +0000)]
Fix bucket unit tests

After the review for buckets was completed (r2715), the handling of names in
the bucket core was deferred to the wizards. As such, the bucket unit tests
cannot expect that passing a URI with a scheme specified but no actual resource
name will automatically fail. The tests have been updated to not make this

Merged revisions 397630 from

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

8 years agoFix the config_options_test
Matthew Jordan [Sun, 25 Aug 2013 18:00:46 +0000 (18:00 +0000)]
Fix the config_options_test

The config options test requires the entire configuration item to be transparent from
the documentation system. So we let it do that too.

As an aside, please do not use this power for evil. Documentation is your friend, and
you really should document your configurations. Hiding your module's configuration
information from the system attempting to enforce some sanity in the universe is something
only a Bond villain would contemplate.

Merged revisions 397628 from

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

8 years agoAdd rtpengine configuration parameter
Matthew Jordan [Sun, 25 Aug 2013 01:15:28 +0000 (01:15 +0000)]
Add rtpengine configuration parameter

The rtpengine configuration parameter was documented in the XML documentation,
but it was not actually registered with the sorcery object. This adds the
parameter with a default of "asterisk", such that res_rtp_asterisk is chosen as
the default RTP implementation.

(closes issue ASTERISK-22380)
Reported by: Rusty Newton
Tested by: Rusty Newton

Merged revisions 397621 from

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

8 years agoSet new merge properties on 12
Matthew Jordan [Fri, 23 Aug 2013 22:40:57 +0000 (22:40 +0000)]
Set new merge properties on 12

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

8 years agoFix building of trunk.
Joshua Colp [Fri, 23 Aug 2013 22:20:39 +0000 (22:20 +0000)]
Fix building of trunk.

Note: This is why I commit on the weekend.

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

8 years agoFix channel reference leak in Originated channels
Matthew Jordan [Fri, 23 Aug 2013 22:12:57 +0000 (22:12 +0000)]
Fix channel reference leak in Originated channels

When originating channels, ast_pbx_outgoing_* caused the dialed channel
reference to be bumped twice. Ostensibly, this routine is bumping the channel
lifetime such that the channel doesn't get nuked in between locks/unlocks;
however, since the routine should return the dialed channel with its
reference bumped, it only needs to do this one time.

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

8 years agoBlocked revisions 397604
Joshua Colp [Fri, 23 Aug 2013 21:59:31 +0000 (21:59 +0000)]
Blocked revisions 397604

Make libuuid an optional dependency for res_rtp_asterisk instead of a requirement.


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

8 years agoAdd some clarifying documentation to the rewrite_contact endpoint option.
Mark Michelson [Fri, 23 Aug 2013 21:53:48 +0000 (21:53 +0000)]
Add some clarifying documentation to the rewrite_contact endpoint option.

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

8 years agoBlank line tweaks.
Richard Mudgett [Fri, 23 Aug 2013 21:51:19 +0000 (21:51 +0000)]
Blank line tweaks.

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

8 years agoAdd the bucket API.
Joshua Colp [Fri, 23 Aug 2013 21:49:47 +0000 (21:49 +0000)]
Add the bucket API.

Bucket is a URI based API for the creation, retrieval, updating, and deletion
of "buckets" and files contained within them.


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

8 years agoFix a bug where the argc value was passed as no_doc when registering custom sorcery...
Joshua Colp [Fri, 23 Aug 2013 21:45:48 +0000 (21:45 +0000)]
Fix a bug where the argc value was passed as no_doc when registering custom sorcery types.

This also adds a _nodoc equivalent.

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

8 years agoAdd test events necessary for bridge tests to pass in the test suite.
Mark Michelson [Fri, 23 Aug 2013 21:02:26 +0000 (21:02 +0000)]
Add test events necessary for bridge tests to pass in the test suite.

(closes issue AST-1200)
reported by John Bigelow

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

8 years agoFix error in using ast_channel_snapshot_type before initialization
Matthew Jordan [Fri, 23 Aug 2013 20:14:46 +0000 (20:14 +0000)]
Fix error in using ast_channel_snapshot_type before initialization

Starting Asterisk would kick back an ERROR message stating that the Stasis
message type ast_channel_snapshot_type was used prior to initialization.
This occurred due to the caching topic being created prior to the message
type that it depended on.

This patch re-orders the start up such that the message type is initialized
prior to the caching topic. It also checks the return value of the
initialization of the agent login/logoff types.

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

8 years agobridge_native_rtp: Fix hold chain bugs caused by native RTP bridge framehook
Jonathan Rose [Fri, 23 Aug 2013 19:05:20 +0000 (19:05 +0000)]
bridge_native_rtp: Fix hold chain bugs caused by native RTP bridge framehook

Issuing hold/unhold would lead to odd behavior. Between two chan_sip devices,
a hold could cause an endless chain of updates while with pjsip a similar chain
would begin but then end somewhat randomly. This patch fixes that by no longer
tweaking the RTP glue on both sides of the call for every

(issue ASTERISK-22217)
Reported by: Matt Jordan

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

8 years agoHandle DTMF and hold wrapup when a channel leaves the bridging system.
Richard Mudgett [Fri, 23 Aug 2013 18:33:36 +0000 (18:33 +0000)]
Handle DTMF and hold wrapup when a channel leaves the bridging system.

DTMF start/end and hold/unhold events have state because a DTMF begin
event and hold event must be ended by something.

The following cases need to be handled when a channel is moved around in
the system.

* When a channel leaves a bridge it may owe a DTMF end event to the

* When a channel leaves a bridge it may owe an UNHOLD event to the bridge.
(This case is explicitly ignored because things like transfers need
explicit control over this.)

* When a channel leaves the bridging system it may need to simulate a DTMF
end event to the channel.

* When a channel leaves the bridging system it may need to simulate an
UNHOLD event to the channel.

The patch also fixes the following:
* Fixes playing a file and restarting MOH using the latest MOH class used.

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


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

8 years agoFix sorcery unit tests
Matthew Jordan [Fri, 23 Aug 2013 18:10:11 +0000 (18:10 +0000)]
Fix sorcery unit tests

When strict XML documentation checking was re-enabled, the test objects used in
sorcery would fail to register as the types were not marked internal and the
nodoc option wasn't used for the options. This fixes that problem, such that,
as one would hope, they once again pass.

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

8 years agoFix memory corruption when trying to get "core show locks".
Richard Mudgett [Fri, 23 Aug 2013 18:07:40 +0000 (18:07 +0000)]
Fix memory corruption when trying to get "core show locks".

Review tried to fix the mismatch
in memory pools but had a math error determining the buffer size and
didn't address other similar memory pool mismatches.

* Effectively reverted the previous patch to go in the same direction as
trunk for the returned memory pool of ast_bt_get_symbols().

* Fixed memory leak in ast_bt_get_symbols() when BETTER_BACKTRACES is

* Fixed some formatting in ast_bt_get_symbols().

* Fixed sig_pri.c freeing memory allocated by libpri when MALLOC_DEBUG is

* Fixed __dump_backtrace() freeing memory from ast_bt_get_symbols() when
MALLOC_DEBUG is enabled.

* Moved __dump_backtrace() because of compile issues with the utils

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


Merged revisions 397525 from

Merged revisions 397528 from

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

8 years agoPrevent seg fault in off nominal path when registered option fails to validate
Matthew Jordan [Fri, 23 Aug 2013 18:02:36 +0000 (18:02 +0000)]
Prevent seg fault in off nominal path when registered option fails to validate

If an option is registered to a type and it is the last known type in the list
of registered types, and the option fails to register, an overrun of the types
array can occur due to the index variable having been already incremented.

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

8 years agoPSJIP - sip.conf to res_sip.conf script
Kevin Harwell [Fri, 23 Aug 2013 17:45:05 +0000 (17:45 +0000)]
PSJIP - sip.conf to res_sip.conf script

Most, if not all, of the backing features of a conf file should now be
implemented (e.g. multi-line comments, includes, templates, etc...).  A
few of the options still need to be mapped.  Those are currently listed
in the '' file.

Things to do:

(1) There is more work to do here, at least for the sip.conf items that
aren't currently parsed. An issue will be created for that.
(2) All of the scripts should probably be passed through pylint and have
as many PEP8 issues fixed as possible.
(3) A public review is probably warranted at that point of the entire script.

Reported by: Matt Jordan

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

8 years agoARI: Correct error codes for bridge operations
David M. Lee [Fri, 23 Aug 2013 17:19:02 +0000 (17:19 +0000)]
ARI: Correct error codes for bridge operations

This patch adds error checking to ARI bridge operations, when
adding/removing channels to/from bridges.

In general, the error codes fall out as follows:
 * Bridge not found - 404 Not Found
 * Bridge not in Stasis - 409 Conflict
 * Channel not found - 400 Bad Request
 * Channel not in Stasis - 422 Unprocessable Entity
 * Channel not in this bridge (on remove) - 422 Unprocessable Entity

(closes issue ASTERISK-22036)

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

8 years agoUpdate CHANGES file to reflect pass through support for Opus/VP8
Matthew Jordan [Fri, 23 Aug 2013 15:49:50 +0000 (15:49 +0000)]
Update CHANGES file to reflect pass through support for Opus/VP8

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

8 years agoAdd pass through support for Opus and VP8; Opus format attribute negotiation
Matthew Jordan [Fri, 23 Aug 2013 15:42:27 +0000 (15:42 +0000)]
Add pass through support for Opus and VP8; Opus format attribute negotiation

This patch adds pass through support for Opus and VP8. That includes:

* Format attribute negotiation for Opus. Note that unlike some other codecs,
  the draft RFC specifies having spaces delimiting the attributes in addition
  to ';', so you have "attra=X; attrb=Y". This broke the attribute parsing in
  chan_sip, so a small tweak was also included in this patch for that.

* A format attribute negotiation module for Opus, res_format_attr_opus

* Fast picture update for VP8. Since VP8 uses a different RTCP packet number
  than FIR, this really is specific to VP8 at this time.

Note that the format attribute negotiation in res_pjsip_sdp_rtp was written
by mjordan. The rest of this patch was written completely by Lorenzo Miniero.


(closes issue ASTERISK-21981)
Reported by: Tzafrir Cohen
  asterisk_opus+vp8_passthrough_20130718.patch uploaded by lminiero (License 6518)

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

8 years agoUpdate config framework/sorcery with types/options without documentation
Matthew Jordan [Fri, 23 Aug 2013 15:21:40 +0000 (15:21 +0000)]
Update config framework/sorcery with types/options without documentation

There are times when a configuration option should not have documentation.

1. Some options are registered with a particular object merely as a warning to
   users. These options aren't even really 'deprecated' - which has its own
   separate API call - they are actually provided by a different configuration
   file. The options are merely registered so that the user gets a warning that
   a different configuration file provides the item.

2. Some object types - most notably some used by modules that use sorcery - are
   completely internal and should never be shown to the user.

3. Sorcery itself has several 'hidden' fields that should never be shown to a

This patch updates the configuration framework and sorcery with additional API
calls that allow a module to register types as internal and options as not
requiring documentation. This bypasses the XML documentation checking.

This patch also re-enables the strict XML documentation checking in trunk, as
well as updates some documentation that was missing.


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

(closes issue ASTERISK-22112)
Reported by: Rusty Newton

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

8 years agoFix crash when answering after a transport error occurs.
Joshua Colp [Fri, 23 Aug 2013 13:58:08 +0000 (13:58 +0000)]
Fix crash when answering after a transport error occurs.

If a response to an initial incoming INVITE results in a transport error
the INVITE transaction is removed from the INVITE session. Any attempts
to answer the INVITE session after this results in a crash as it requires
the INVITE transaction to exist. This change explicitly locks the dialog
and checks to ensure that the INVITE transaction exists before answering.

(closes issue AST-1203)
Reported by: John Bigelow

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

8 years agoUpdate CEL sample config
Kinsey Moore [Fri, 23 Aug 2013 13:18:51 +0000 (13:18 +0000)]
Update CEL sample config

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

8 years agoARI: Music on Hold/Background Music for bridges
Jonathan Rose [Fri, 23 Aug 2013 00:26:19 +0000 (00:26 +0000)]
ARI: Music on Hold/Background Music for bridges

Adds ARI functions to be able to turn on/off music on hold in a
bridge. It actually functions more as a background music without
further actions on the bridge since if the rest of the channels
in the bridge aren't explicitly muted, they will still be able
to communicate.

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

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

8 years agoMinor tweaks with ast_moh_start() callers.
Richard Mudgett [Thu, 22 Aug 2013 23:15:14 +0000 (23:15 +0000)]
Minor tweaks with ast_moh_start() callers.

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

8 years agoAdd SayAlphaCase and similar functionality for AGI
Kinsey Moore [Thu, 22 Aug 2013 22:33:48 +0000 (22:33 +0000)]
Add SayAlphaCase and similar functionality for AGI

This adds a new dialplan application, SayAlphaCase, that performs much
the same function as SayAlpha except that it takes additional options
which allow the user to specify whether the case of each letter should
be announced for uppercase, lowercase, or all letters. Similar
functionality has been added to the SAY ALPHA AGI command via an
optional parameter.

Original Patch by: Kevin Scott Adams
Reported by: Kevin Scott Adams
(closes issue ASTERISK-20782)

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

8 years agores_sip_dtmf_info: Support sending of 'raw' DTMF
Kevin Harwell [Thu, 22 Aug 2013 22:09:16 +0000 (22:09 +0000)]
res_sip_dtmf_info: Support sending of 'raw' DTMF

Added the ability to handle 'raw' DTMF within the body of an INFO message.
Also made it so values 10-16 are mapped to valid DTMF values.

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

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

8 years agoAdd missing configOption close tags
Kinsey Moore [Thu, 22 Aug 2013 21:39:10 +0000 (21:39 +0000)]
Add missing configOption close tags

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

8 years agoUpdate MOH start/stop routine doxygen.
Richard Mudgett [Thu, 22 Aug 2013 21:29:16 +0000 (21:29 +0000)]
Update MOH start/stop routine doxygen.

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

8 years agoFix missing xml doc configOption 'type' for for both 'system' and 'global' configObjects
Rusty Newton [Thu, 22 Aug 2013 21:21:25 +0000 (21:21 +0000)]
Fix missing xml doc configOption 'type' for for both 'system' and 'global' configObjects

(issue ASTERISK-22344)
(closes issue ASTERISK-22344)

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

8 years agoBridge API: Set a cause code on a channel when it is ejected from a bridge.
Richard Mudgett [Thu, 22 Aug 2013 21:09:52 +0000 (21:09 +0000)]
Bridge API: Set a cause code on a channel when it is ejected from a bridge.

The cause code needs to be passed from the disconnecting channel to the
bridge peers if the disconnecting channel dissolves the bridge.

* Made the call to an app_agent_pool agent disconnect with the busy cause
code if the agent does not ack the call in time or hangs up before acking
the call.

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


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

8 years agoEnsure CEL creates a default config if it isn't provided with one
Kinsey Moore [Thu, 22 Aug 2013 20:29:15 +0000 (20:29 +0000)]
Ensure CEL creates a default config if it isn't provided with one

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

8 years agoRemove set but unused variable 'meid'.
Mark Michelson [Thu, 22 Aug 2013 20:18:27 +0000 (20:18 +0000)]
Remove set but unused variable 'meid'.

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