asterisk/asterisk.git
8 years agoDocument the 400 error response for originate
David M. Lee [Wed, 10 Jul 2013 17:13:21 +0000 (17:13 +0000)]
Document the 400 error response for originate

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393987 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoCorrected api-docs for channel variables
David M. Lee [Wed, 10 Jul 2013 13:50:48 +0000 (13:50 +0000)]
Corrected api-docs for channel variables

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393968 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoastobj2-ify the SLA code
Russell Bryant [Wed, 10 Jul 2013 01:56:15 +0000 (01:56 +0000)]
astobj2-ify the SLA code

The SLA code within app_meetme was written before asotbj2 had been
merged into Asterisk.  Worse, support for reloads did not exist at first
and was added later as a bolt-on feature.  I knew at the time that
reloading was not safe at all while SLA was in use, so the reload would
be queued up to execute when the system was idle.  Unfortunately, this
approach was still prone to errors beyond the fact that this was the
only place in Asterisk where configuration was not reloaded
instantly when requested.

This patch converts various SLA objects to be reference counted objects
using astobj2.  This allows reloads to be processed while the system is
in use.  The code ensures that the objects will not disappear while one
of the other threads is using them.  However, they will be immediately
removed from the global trunk and station containers so no new calls
will use them if removed from configuration.

Review: https://reviewboard.asterisk.org/r/2581/
........

Merged revisions 393928 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 393929 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393930 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMake SCOPED_LOCK use RAII_VAR.
Jason Parker [Tue, 9 Jul 2013 21:40:38 +0000 (21:40 +0000)]
Make SCOPED_LOCK use RAII_VAR.

This fixes an issue with requiring SCOPED_LOCK to be the last variable
declaration and removes duplicate code in the process.

Review: https://reviewboard.asterisk.org/r/2665/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393919 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix printf NULL string (null) substituion for NULL config framework default.
Richard Mudgett [Tue, 9 Jul 2013 21:06:21 +0000 (21:06 +0000)]
Fix printf NULL string (null) substituion for NULL config framework default.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393910 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoUse correct function for getting bridged peer when doing direct media checks.
Mark Michelson [Tue, 9 Jul 2013 20:07:21 +0000 (20:07 +0000)]
Use correct function for getting bridged peer when doing direct media checks.

(closes issue ASTERISK-21947)
reported by Matt Jordan

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393897 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix some stasis doxygen comments.
Richard Mudgett [Tue, 9 Jul 2013 19:38:00 +0000 (19:38 +0000)]
Fix some stasis doxygen comments.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393896 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoEnsure all pjsip_regc_* access occurs within a pjlib thread.
Joshua Colp [Tue, 9 Jul 2013 11:05:48 +0000 (11:05 +0000)]
Ensure all pjsip_regc_* access occurs within a pjlib thread.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393870 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoTweak log message slightly.
Joshua Colp [Mon, 8 Jul 2013 21:27:18 +0000 (21:27 +0000)]
Tweak log message slightly.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393858 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoTreat the authentication object as invalid if digest configuration is chosen and...
Joshua Colp [Mon, 8 Jul 2013 21:26:37 +0000 (21:26 +0000)]
Treat the authentication object as invalid if digest configuration is chosen and the digest is not of the correct length.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393857 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoOh menuconfig, why do you hate margins?
David M. Lee [Mon, 8 Jul 2013 20:31:41 +0000 (20:31 +0000)]
Oh menuconfig, why do you hate margins?

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393843 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoBetter structure for the WebSocket validation failure message
David M. Lee [Mon, 8 Jul 2013 20:07:58 +0000 (20:07 +0000)]
Better structure for the WebSocket validation failure message

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393834 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoEnsure that a valid bind host is specified for transports.
Joshua Colp [Mon, 8 Jul 2013 19:53:13 +0000 (19:53 +0000)]
Ensure that a valid bind host is specified for transports.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393833 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRefactor operations to access the stasis cache instead of objects directly when retri...
Joshua Colp [Mon, 8 Jul 2013 19:19:55 +0000 (19:19 +0000)]
Refactor operations to access the stasis cache instead of objects directly when retrieving information.

(closes issue ASTERISK-21883)

Review: https://reviewboard.asterisk.org/r/2645/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393831 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agores_stasis_http doesn't depend on res_stasis any more
David M. Lee [Mon, 8 Jul 2013 16:04:01 +0000 (16:04 +0000)]
res_stasis_http doesn't depend on res_stasis any more

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393816 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agores_parking: Apply ringing role option on swap with a channel that rings
Jonathan Rose [Mon, 8 Jul 2013 15:59:47 +0000 (15:59 +0000)]
res_parking: Apply ringing role option on swap with a channel that rings

(closes issue ASTERISK-21877)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2656/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393815 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix building.
Joshua Colp [Mon, 8 Jul 2013 15:11:07 +0000 (15:11 +0000)]
Fix building.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393807 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI: Add support for getting/setting channel and global variables.
Jason Parker [Mon, 8 Jul 2013 14:46:20 +0000 (14:46 +0000)]
ARI: Add support for getting/setting channel and global variables.

This allows for reading and writing of functions on channels.

(closes issue ASTERISK-21868)

Review: https://reviewboard.asterisk.org/r/2641/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393806 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMove channel driver Registry manager events to core.
Jason Parker [Mon, 8 Jul 2013 14:42:57 +0000 (14:42 +0000)]
Move channel driver Registry manager events to core.

This also shuffles the stasis system topic and related handling.

(closes issue ASTERISK-21488)

Review: https://reviewboard.asterisk.org/r/2631/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393804 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoCreate Local channel messages on the Stasis message bus and produce AMI events
Matthew Jordan [Mon, 8 Jul 2013 14:26:40 +0000 (14:26 +0000)]
Create Local channel messages on the Stasis message bus and produce AMI events

This patch does the following:

* It adds a virtual table of callbacks to core_unreal. These callbacks can be
  supplied by concrete implementations of "unreal" channel drivers, which lets
  the unreal channel driver call specific functionality when it performs some
  action. Currently, this is done to notify implementations when an
  optimization operation has begun, and when an optimization operation has
  succeeded.

* It adds Stasis-Core messages for Local channel bridging and Local channel
  optimization. Local channel optimization is now two events: a Begin and an
  End. Some consumers of Stasis-Core may want to know when an operation is
  beginning so that they can 'prepare' their information; others will be more
  concerned about when the operation has completed, so that they can 'fix up'
  information. Stasis-Core allows for both, as does AMI.

Review: https://reviewboard.asterisk.org/r/2552

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393801 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix some broken logic in sending outbound caller ID.
Mark Michelson [Mon, 8 Jul 2013 13:57:28 +0000 (13:57 +0000)]
Fix some broken logic in sending outbound caller ID.

* trust_id_outbound was required even when the caller ID was not marked
private. This is against intentions and documentation.
* We now check both name and number privacy instead of checking name privacy
twice.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393793 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoIn a channel destructor dispose of items that raise Stasis message properly
Matthew Jordan [Sun, 7 Jul 2013 21:29:40 +0000 (21:29 +0000)]
In a channel destructor dispose of items that raise Stasis message properly

This patch reorders certain actions that may raise Stasis messages in the
channel destructor such that they occur before the Stasis cache is cleared.
Once the Stasis cache is cleared, its rather a bad idea to be trying to
publish information about a channel.

(closes issue ASTERISK-22001)
Reported by: Jonathan Rose

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393785 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoHandle hangup logic in the Stasis message bus and consumers of Stasis messages
Matthew Jordan [Sun, 7 Jul 2013 20:34:38 +0000 (20:34 +0000)]
Handle hangup logic in the Stasis message bus and consumers of Stasis messages

This patch does the following:
* It adds a new soft hangup flag AST_SOFTHANGUP_HANGUP_EXEC that is set when a
  channel is executing dialplan hangup logic, i.e., the 'h' extension or a
  hangup handler. Stasis messages now also convey the soft hangup flag so
  consumers of the messages can know when a channel is executing said
  hangup logic.
* It adds a new channel flag, AST_FLAG_DEAD, which is set when a channel is
  well and truly dead. Not just a zombie, but dead, Jim. Manager, CEL, CDRs,
  and other consumers of Stasis have been updated to look for this flag to
  know when the channel should by lying six feet under.
* The CDR engine has been updated to better handle a channel entering and
  leaving a bridge. Previously, a new CDR was automatically created when a
  channel left a bridge and put into the 'Pending' state; however, this
  way of handling CDRs made it difficult for the 'endbeforehexten' logic to
  work correctly - there was always a new CDR waiting in the hangup logic
  and, even if 'ended', wouldn't be the CDR people wanted to inspect in the
  hangup routine. This patch completely removes the Pending state and instead
  defers creation of the new CDR until it gets a new message that requires
  a new CDR.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393777 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI: return a 503 if Asterisk isn't fully booted
David M. Lee [Fri, 5 Jul 2013 22:08:27 +0000 (22:08 +0000)]
ARI: return a 503 if Asterisk isn't fully booted

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393768 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoPrint error details when set nonblock fails
David M. Lee [Fri, 5 Jul 2013 19:56:50 +0000 (19:56 +0000)]
Print error details when set nonblock fails

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393757 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoDocument MissingParams error message for /ari/events
David M. Lee [Fri, 5 Jul 2013 19:15:27 +0000 (19:15 +0000)]
Document MissingParams error message for /ari/events

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393749 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRefactor RTCP events over to Stasis; associate with channels
Matthew Jordan [Fri, 5 Jul 2013 17:33:33 +0000 (17:33 +0000)]
Refactor RTCP events over to Stasis; associate with channels

This patch does the following:

* It merges Jaco Kroon's patch from ASTERISK-20754, which provides channel
  information in the RTCP events. Because Stasis provides a cache, Jaco's
  patch was modified to pass the channel uniqueid to the RTP layer as
  opposed to a pointer to the channel. This has the following benefits:
  (1) It keeps the RTP engine 'clean' of references back to channels
  (2) It prevents circular dependencies and other potential ref counting issues
* The RTP engine now allows any RTP implementation to raise RTCP messages.
  Potentially, other implementations (such as res_rtp_multicast) could also
  raise RTCP information. The engine provides structs to represent RTCP headers
  and RTCP SR/RR reports.
* Some general refactoring in res_rtp_asterisk was done to try and tame the
  RTCP code. It isn't perfect - that's *way* beyond the scope of this work -
  but it does feel marginally better.
* A few random bugs were fixed in the RTCP statistics. (Example: performing an
  assignment of a = a is probably not correct)
* We now raise RTCP events for each SR/RR sent/received. Previously we wouldn't
  raise an event when we sent a RR report.

Note that this work will be of use to others who want to monitor call quality
or build modules that report call quality statistics. Since the events are now
moving across the Stasis message bus, this is far easier to accomplish. It is
also a first step (though by no means the last step) towards getting Olle's
pinefrog work incorporated.

Again: note that the patch by Jaco Kroon was modified slightly for this work;
however, he did all of the hard work in finding the right places to set the
channel in the RTP engine across the channel drivers. Much thanks goes to Jaco
for his hard work here.

Review: https://reviewboard.asterisk.org/r/2603/

(closes issue ASTERISK-20574)
Reported by: Jaco Kroon
patches:
  asterisk-rtcp-channel.patch uploaded by jkroon (License 5671)

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393740 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoOneTouchRecord: Add function defined earlier: ast_bridge_features_do()
Richard Mudgett [Fri, 5 Jul 2013 14:54:27 +0000 (14:54 +0000)]
OneTouchRecord: Add function defined earlier: ast_bridge_features_do()

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393729 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRemove parkinglot from the channel snapshot
Matthew Jordan [Fri, 5 Jul 2013 03:08:58 +0000 (03:08 +0000)]
Remove parkinglot from the channel snapshot

Legacy channel drivers often include the ability to set a default parking lot
on an endpoint basis; when channels are created for that endpoint, they inherit
the parkinglot option. Parking used to use this option more frequently; while
it is still supported, other options (such as using channel variables or
creation of a custom parkinglot) are supported. More importantly, conveying the
parkinglot information through a channel snapshot isn't terribly useful - it
is rarely (if ever) changed on a channel and some consumers of channel
snapshots, such as ARI, will never use the information.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393716 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agores_parking: Replace Parker snapshots with ParkerDialString
Jonathan Rose [Thu, 4 Jul 2013 18:46:56 +0000 (18:46 +0000)]
res_parking: Replace Parker snapshots with ParkerDialString

This process also involved a large amount of rework regarding how to redial
the Parker when a channel leaves a parking lot due to timeout. An attended
transfer channel variable has been added to attended transfers to extensions
that will eventually park (but haven't at the time of transfer) as well.
This resolves one of the two BUGBUG comments remaining in res_parking.

(issues ASTERISK-21877)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2638/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393704 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix int width problem for 32-bit... again
David M. Lee [Thu, 4 Jul 2013 13:37:57 +0000 (13:37 +0000)]
Fix int width problem for 32-bit... again

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393687 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix int width problem for 32-bit
David M. Lee [Thu, 4 Jul 2013 13:18:45 +0000 (13:18 +0000)]
Fix int width problem for 32-bit

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393679 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix utils directory breakage.
David M. Lee [Thu, 4 Jul 2013 13:06:15 +0000 (13:06 +0000)]
Fix utils directory breakage.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393675 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd BUGBUG note for ASTERISK-22009
Richard Mudgett [Wed, 3 Jul 2013 23:59:17 +0000 (23:59 +0000)]
Add BUGBUG note for ASTERISK-22009

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393633 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRevert accidental overcommit.
Richard Mudgett [Wed, 3 Jul 2013 23:57:37 +0000 (23:57 +0000)]
Revert accidental overcommit.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393632 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd BUGBUG note for ASTERISK-22009
Richard Mudgett [Wed, 3 Jul 2013 23:55:53 +0000 (23:55 +0000)]
Add BUGBUG note for ASTERISK-22009

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393631 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agochan_dahdi: Fix segfault reloading chan_dahdi when round robin is used.
Richard Mudgett [Wed, 3 Jul 2013 23:34:19 +0000 (23:34 +0000)]
chan_dahdi: Fix segfault reloading chan_dahdi when round robin is used.

* Clear round_robin[] in dahdi_restart().

(closes issue ASTERISK-21847)
Reported by: Ivo Andonov
Patches:
      jira_asterisk_21847_v1.8.patch (license #5621) patch uploaded by rmudgett
........

Merged revisions 393627 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 393628 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393629 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoOneTouchRecord: Make so Monitor/MixMonitor can be toggled/started/stopped.
Richard Mudgett [Wed, 3 Jul 2013 22:36:38 +0000 (22:36 +0000)]
OneTouchRecord: Make so Monitor/MixMonitor can be toggled/started/stopped.

The OneTouchRecord feature has historically been a toggle.  This patch
adds the ability to make the OneTouchRecord hook optionally start/stop
recording only.  If OneTouchRecord is already doing what is requested then
only the invoker hears the courtesy tone and/or start/stop recording
message.

The new feature is written so we could easily add explicit start/stop
recording DTMF hooks for Monitor and MixMonitor.

The majority of the changes in bridge_builtin_features.c is a refactoring
of the OneTouchRecord code (Monitor and MixMonitor versions) so it is easy
to direct the toggle/start/stop functionality.

Review: https://reviewboard.asterisk.org/r/2655/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393612 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMove when bridge channel enter is published so it does not interrupt the thought...
Richard Mudgett [Wed, 3 Jul 2013 22:07:25 +0000 (22:07 +0000)]
Move when bridge channel enter is published so it does not interrupt the thought of some lines of code.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393601 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix some indentation in stasis_config.c.
Richard Mudgett [Wed, 3 Jul 2013 22:05:54 +0000 (22:05 +0000)]
Fix some indentation in stasis_config.c.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393600 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix some bugs in CDRs; add some CLI commands to help debugging
Matthew Jordan [Wed, 3 Jul 2013 22:04:08 +0000 (22:04 +0000)]
Fix some bugs in CDRs; add some CLI commands to help debugging

This patch fixes a few minor bugs and one major one: the CDR by bridge
container was less than helpful. The mechanism previously used to try
and find all of the CDRs in a particular bridge ended up missing CDRs,
resulting in incorrect records.

When looking up CDRs in a bridge, we now just bite the bullet and do
a selection across all existing CDRs.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393599 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoLet Stasis load itself with default values
Matthew Jordan [Wed, 3 Jul 2013 21:14:03 +0000 (21:14 +0000)]
Let Stasis load itself with default values

While a Stasis configuration file is nice, it shouldn't be mandatory.
We can carry on with default values.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393589 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoPublish a bridge enter before pulling on a push-and-swap operation.
Mark Michelson [Wed, 3 Jul 2013 20:41:00 +0000 (20:41 +0000)]
Publish a bridge enter before pulling on a push-and-swap operation.

Prior to this patch, the order of procedures on a bridge push was

* Add new bridge channel to bridge's array.
* Pull the swap channel out of the bridge
* Publish a bridge enter event.

The problem is that when the swap channel was pulled from the bridge,
a bridge leave event would be published. The bridge snapshot
published during the bridge leave showed the new channel that had
been added to the bridge, but there had been no bridge enter event
for that channel.

The fix provided here was to change the order a bit

* Add new bridge channel to bridge's array.
* Publish bridge enter event.
* Pull the swap channel out of the bridge.

This makes it so that the bridge snapshots during the stasis
events are accurate.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393586 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix load errors related to the new ari_model_validators.
David M. Lee [Wed, 3 Jul 2013 19:46:50 +0000 (19:46 +0000)]
Fix load errors related to the new ari_model_validators.

The Asterisk strategy of loading modules with RTLD_LAZY to extract metadata
from the module works well enough, until you try to take the address of a
function.

If a module takes the address of a function, that function needs to be
resolved at load time. That kinda defeats RTLD_LAZY.

This patch adds some ari_validator_{id}_fn() wrapper functions for safely
getting the function pointer from a different module.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393576 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoViolating the margins to make menuconfig happy
David M. Lee [Wed, 3 Jul 2013 18:24:45 +0000 (18:24 +0000)]
Violating the margins to make menuconfig happy

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393561 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI - channel recording support
David M. Lee [Wed, 3 Jul 2013 17:58:45 +0000 (17:58 +0000)]
ARI - channel recording support

This patch is the first step in adding recording support to the
Asterisk REST Interface.

Recordings are stored in /var/spool/recording. Since recordings may be
destructive (overwriting existing files), the API rejects attempts to
escape the recording directory (avoiding issues if someone attempts to
record to ../../lib/sounds/greeting, for example).

(closes issue ASTERISK-21594)
(closes issue ASTERISK-21581)
Review: https://reviewboard.asterisk.org/r/2612/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393550 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoConfiguration for Stasis threadpool
David M. Lee [Wed, 3 Jul 2013 17:20:43 +0000 (17:20 +0000)]
Configuration for Stasis threadpool

The appropriate settings for the Stasis threadpool is very system
specific, depending upon both workload and system configuration.

This patch adds a stasis.conf file which can be used to configure the
key attributes of the threadpool for the Stasis message bus.

(closes issue ASTERISK-21280)
Review: https://reviewboard.asterisk.org/r/2651/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393542 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI authentication.
David M. Lee [Wed, 3 Jul 2013 16:33:13 +0000 (16:33 +0000)]
ARI authentication.

This patch adds authentication support to ARI.

Two authentication methods are supported. The first is HTTP Basic
authentication, as specified in RFC 2617[1]. The second is by simply
passing the username and password as an ?api_key query parameter
(which allows swagger-ui[2] to authenticate more easily).

ARI usernames and passwords are configured in the ari.conf file
(formerly known as stasis_http.conf). The user may be set to
`read_only`, which will prohibit the user from issuing POST, DELETE,
etc. Also, the user's password may be specified in either plaintext,
or encrypted using the crypt() function.

Several other notes about the patch.

 * A few command line commands for seeing ARI config and status were
   also added.
 * The configuration parsing grew big enough that I extracted it to
   its own file.

 [1]: http://www.ietf.org/rfc/rfc2617.txt [2]:
 https://github.com/wordnik/swagger-ui

(closes issue ASTERISK-21277)
Review: https://reviewboard.asterisk.org/r/2649/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393530 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoUpdate events to use Swagger 1.3 subtyping, and related aftermath
David M. Lee [Wed, 3 Jul 2013 16:32:41 +0000 (16:32 +0000)]
Update events to use Swagger 1.3 subtyping, and related aftermath

This patch started with the simple idea of changing the /events data
model to be more sane. The original model would send out events like:

    { "stasis_start": { "args": [], "channel": { ... } } }

The event discriminator was the field name instead of being a value in
the object, due to limitations in how Swagger 1.1 could model objects.
While technically sufficient in communicating event information, it was
really difficult to deal with in terms of client side JSON handling.

This patch takes advantage of a proposed extension[1] to Swagger which
allows type variance through the use of a discriminator field. This had
a domino effect that made this a surprisingly large patch.

 [1]: https://groups.google.com/d/msg/wordnik-api/EC3rGajE0os/ey_5dBI_jWcJ

In changing the models, I also had to change the swagger_model.py
processor so it can handle the type discriminator and subtyping. I took
that a big step forward, and using that information to generate an
ari_model module, which can validate a JSON object against the Swagger
model.

The REST and WebSocket generators were changed to take advantage of the
validators. If compiled with AST_DEVMODE enabled, JSON objects that
don't match their corresponding models will not be sent out. For REST
API calls, a 500 Internal Server response is sent. For WebSockets, the
invalid JSON message is replaced with an error message.

Since this took over about half of the job of the existing JSON
generators, and the .to_json virtual function on messages took over the
other half, I reluctantly removed the generators.

The validators turned up all sorts of errors and inconsistencies in our
data models, and the code. These were cleaned up, with checks in the
code generator avoid some of the consistency problems in the future.

 * The model for a channel snapshot was trimmed down to match the
   information sent via AMI. Many of the field being sent were not
   useful in the general case.
 * The model for a bridge snapshot was updated to be more consistent
   with the other ARI models.

Another impact of introducing subtyping was that the swagger-codegen
documentation generator was insufficient (at least until it catches up
with Swagger 1.2). I wanted it to be easier to generate docs for the API
anyways, so I ported the wiki pages to use the Asterisk Swagger
generator. In the process, I was able to clean up many of the model
links, which would occasionally give inconsistent results on the wiki. I
also added error responses to the wiki docs, making the wiki
documentation more complete.

Finally, since Stasis-HTTP will now be named Asterisk REST Interface
(ARI), any new functions and files I created carry the ari_ prefix. I
changed a few stasis_http references to ari where it was non-intrusive
and made sense.

(closes issue ASTERISK-21885)
Review: https://reviewboard.asterisk.org/r/2639/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393529 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoShuffle RESTful URL's around.
David M. Lee [Wed, 3 Jul 2013 16:32:00 +0000 (16:32 +0000)]
Shuffle RESTful URL's around.

This patch moves the RESTful URL's around to more appropriate
locations for release.

The /stasis URL's are moved to /ari, since Asterisk REST Interface was
a more appropriate name than Stasis-HTTP. (Most of the code still has
stasis_http references, but they will be cleaned up after there are no
more outstanding branches that would have merge conflicts with such a
change).

A larger change was moving the ARI events WebSocket off of the shared
/ws URL to its permanent home on /ari/events. The Swagger code
generator was extended to handle "upgrade: websocket" and
"websocketProtocol:" attributes on an operation.

The WebSocket module was modified to better handle WebSocket servers
that have a single registered protocol handler. If a client
connections does not specify the Sec-WebSocket-Protocol header, and
the server has a single protocol handler registered, the WebSocket
server will go ahead and accept the client for that subprotocol.

(closes issue ASTERISK-21857)
Review: https://reviewboard.asterisk.org/r/2621/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393528 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd a SystemName field to all AMI events.
Jason Parker [Tue, 2 Jul 2013 22:01:23 +0000 (22:01 +0000)]
Add a SystemName field to all AMI events.

This only gets sent out if configured in asterisk.conf

(closes issue ASTERISK-21494)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393508 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMixMonitor: Minor code cleanup.
Richard Mudgett [Tue, 2 Jul 2013 21:19:21 +0000 (21:19 +0000)]
MixMonitor: Minor code cleanup.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393500 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMixMonitor: Make start_mixmonitor_callback() options parameter NULL tolerant.
Richard Mudgett [Tue, 2 Jul 2013 21:16:25 +0000 (21:16 +0000)]
MixMonitor: Make start_mixmonitor_callback() options parameter NULL tolerant.

* Removed some unnecessary code in start_mixmonitor_callback().

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393496 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMixMonitor: Don't use ast_strdupa() in a loop.
Richard Mudgett [Tue, 2 Jul 2013 21:13:56 +0000 (21:13 +0000)]
MixMonitor: Don't use ast_strdupa() in a loop.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393494 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMixMonitor: Update XML documentation and CLI "mixmonitor {start|stop|list}" help.
Richard Mudgett [Tue, 2 Jul 2013 21:12:26 +0000 (21:12 +0000)]
MixMonitor: Update XML documentation and CLI "mixmonitor {start|stop|list}" help.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393493 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMixMonitor: Fix refleak in manager_stop_mixmonitor() if could not stop monitoring.
Richard Mudgett [Tue, 2 Jul 2013 21:01:23 +0000 (21:01 +0000)]
MixMonitor: Fix refleak in manager_stop_mixmonitor() if could not stop monitoring.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393490 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoMixMonitor: Remove some unnecessary channel locking.
Richard Mudgett [Tue, 2 Jul 2013 20:56:13 +0000 (20:56 +0000)]
MixMonitor: Remove some unnecessary channel locking.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393489 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix MixMonitor b option.
Richard Mudgett [Tue, 2 Jul 2013 20:45:47 +0000 (20:45 +0000)]
Fix MixMonitor b option.

The option had not been converted to use the replacement for
ast_bridged_channel().  One touch mixmonitor now records files again.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393487 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix chan_gtalk.c compile error.
Richard Mudgett [Tue, 2 Jul 2013 20:43:10 +0000 (20:43 +0000)]
Fix chan_gtalk.c compile error.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393485 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd pjproject dependency to res_sip_notify
David M. Lee [Tue, 2 Jul 2013 20:34:42 +0000 (20:34 +0000)]
Add pjproject dependency to res_sip_notify

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393484 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRemove unused blind transfer publication structure.
Mark Michelson [Tue, 2 Jul 2013 18:28:16 +0000 (18:28 +0000)]
Remove unused blind transfer publication structure.

I ended up using a bridge blob, so this structure was
unused. Keeping it in the header would just cause confusion.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393463 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoStasis - Refactor AOC Events
Kevin Harwell [Tue, 2 Jul 2013 17:20:20 +0000 (17:20 +0000)]
Stasis - Refactor AOC Events

Refactored the AMI events in AOC onto Stasis-Core.  The ast_aoc_manager_event
function now publishes a channel snapshot, along with a JSON blob describing
the advice of charge.  A "to_ami" handler has also been added that converts
the channel snapshot and AOC event data back into the appropriate data structure
for use with AMI.

(closes issue ASTERISK-21472)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2643/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393449 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoNew SIP Channel driver: Always Auth Reject
Kevin Harwell [Tue, 2 Jul 2013 17:06:06 +0000 (17:06 +0000)]
New SIP Channel driver: Always Auth Reject

If no matching endpoint is found for the incoming request Asterisk will respond
with a 401 Unauthorized (rejecting the request), but will first challenge if
no authorization creditials are given.

Changes also included moving ACL options into a new global 'security'
configuration section in res_sip.conf.

(closes issue ASTERISK-21433)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2554/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393442 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix transfer AMI event parameter naming
Kinsey Moore [Tue, 2 Jul 2013 16:11:32 +0000 (16:11 +0000)]
Fix transfer AMI event parameter naming

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393429 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd CEL unit tests and do some cleanup
Kinsey Moore [Tue, 2 Jul 2013 14:01:53 +0000 (14:01 +0000)]
Add CEL unit tests and do some cleanup

This adds several unit tests for CEL functionality and provides the
requisite framework for creating additional unit tests.

This also cleans up some reference leaks that were occurring in
Stasis-Core message callback code.

Review: https://reviewboard.asterisk.org/r/2646/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393410 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix issue with inability to cancell call transfer made by on-sceen menus.
Igor Goncharovskiy [Tue, 2 Jul 2013 10:16:27 +0000 (10:16 +0000)]
Fix issue with inability to cancell call transfer made by on-sceen menus.

Reported by: Igor Olhovskiy
........

Merged revisions 393395 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393396 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoast_tls_cert: don't recreate generated files
Tzafrir Cohen [Tue, 2 Jul 2013 08:23:16 +0000 (08:23 +0000)]
ast_tls_cert: don't recreate generated files

Don't regenrate cat.cfg, ca.crt and ca.key if they were already created
on a previous run.

(closes issue ASTERISK-21932)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393383 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoNew SIP Channel Driver - Add CLI/AMI initiated NOTIFY requests
Kevin Harwell [Mon, 1 Jul 2013 21:28:32 +0000 (21:28 +0000)]
New SIP Channel Driver - Add CLI/AMI initiated NOTIFY requests

Added the ability to send unsolicited NOTIFY requests to a particular endpoint
with a configured payload.  Added both CLI and AMI support.  For a given
endpoint, this module will iterate over all its contacts sending the appropriate
NOTIFY request to each.

(closes issue ASTERISK-21436)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2623/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393364 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoPrevent crash during synchronous AMI origination by ref bumping returned channel
Matthew Jordan [Mon, 1 Jul 2013 21:24:20 +0000 (21:24 +0000)]
Prevent crash during synchronous AMI origination by ref bumping returned channel

The originate APIs allow callers to provide a pointer to a channel that will
point to the originated channel if the function call succeeds. This is used by AMI
to provide channel information when the originate is performed synchronously.
Unfortunately, if the originate fails in certain ways, the outbound channel is
already disposed of during the dialing itself. This results in the channel being
improperly dereferenced by the internal originate function in pbx.c.

This patch ref bumps the channel to prevent this from occurring. Callers must now
unlock and unref the channel (which is more in line with general channel management
guidelines anyway).

This only affects manager, as it is the only consumer of this API function that
actually passes in a channel pointer.

Review: https://reviewboard.asterisk.org/r/2617/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393361 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI: Implement channel hold/unhold.
Jason Parker [Mon, 1 Jul 2013 18:56:21 +0000 (18:56 +0000)]
ARI: Implement channel hold/unhold.

This puts the channel on hold (rather than queueing a frame from the channel).

(closes issue ASTERISK-21619)

Review: https://reviewboard.asterisk.org/r/2647/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393332 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI: Implement channel dial.
Jason Parker [Mon, 1 Jul 2013 18:19:15 +0000 (18:19 +0000)]
ARI: Implement channel dial.

This creates a new outbound channel, and bridges it to a channel already in
the Stasis application.

(closes issue ASTERISK-21620)

Review: https://reviewboard.asterisk.org/r/2634/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393326 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agobridge_features: Support One touch Monitor/MixMonitor
Jonathan Rose [Mon, 1 Jul 2013 16:01:24 +0000 (16:01 +0000)]
bridge_features: Support One touch Monitor/MixMonitor

In addition to porting those features, they now enjoy greater feature parity
with one another. Specifically, AutoMixMon now has a start and stop
message that can be specified with TOUCH_MIXMONITOR_MESSAGE_START and
TOUCH_MIXMONITOR_MESSAGE_STOP.

(closes issue ASTERISK-21553)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2620/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393309 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRefactor extraneous channel events
Kinsey Moore [Mon, 1 Jul 2013 13:16:09 +0000 (13:16 +0000)]
Refactor extraneous channel events

This change removes JitterBufStats, ChannelReload, and ChannelUpdate
and refactors the following events to travel over Stasis-Core:
* LocalBridge
* DAHDIChannel
* AlarmClear
* SpanAlarmClear
* Alarm
* SpanAlarm
* DNDState
* MCID
* SIPQualifyPeerDone
* SessionTimeout

Review: https://reviewboard.asterisk.org/r/2627/
(closes issue ASTERISK-21476)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393284 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoNothing to see here, move along.
Joshua Colp [Sat, 29 Jun 2013 13:47:22 +0000 (13:47 +0000)]
Nothing to see here, move along.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393264 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoImplement the defined PUBLISH ESC API within res_sip_pubsub.
Joshua Colp [Sat, 29 Jun 2013 13:42:19 +0000 (13:42 +0000)]
Implement the defined PUBLISH ESC API within res_sip_pubsub.

(closes issue ASTERISK-21452)

Review: https://reviewboard.asterisk.org/r/2630/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393262 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoTweak after bridge callback reason to string strings.
Richard Mudgett [Sat, 29 Jun 2013 00:31:00 +0000 (00:31 +0000)]
Tweak after bridge callback reason to string strings.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393241 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix after bridge callback datastore data memory leak.
Richard Mudgett [Sat, 29 Jun 2013 00:26:07 +0000 (00:26 +0000)]
Fix after bridge callback datastore data memory leak.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393240 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoThis is no longer needed.
Richard Mudgett [Sat, 29 Jun 2013 00:18:57 +0000 (00:18 +0000)]
This is no longer needed.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393239 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoPromote local channel optimizing debug messages to verbose 3 messages.
Richard Mudgett [Fri, 28 Jun 2013 20:43:48 +0000 (20:43 +0000)]
Promote local channel optimizing debug messages to verbose 3 messages.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393219 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agores_parking: Dynamic Parking Lots
Jonathan Rose [Fri, 28 Jun 2013 19:22:16 +0000 (19:22 +0000)]
res_parking: Dynamic Parking Lots

(closes issue ASTERISK-21644)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2615/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393197 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agofeatures: call pickup stasis refactoring
Jonathan Rose [Fri, 28 Jun 2013 19:19:15 +0000 (19:19 +0000)]
features: call pickup stasis refactoring

(issue ASTERISK-21544)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2588/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393190 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix overlapping enum ast_bridge_feature_flags.
Richard Mudgett [Fri, 28 Jun 2013 19:05:52 +0000 (19:05 +0000)]
Fix overlapping enum ast_bridge_feature_flags.

Things may no longer behave in an unexpected fashion.  Local channel
optimization to holding bridges will work again.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393184 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd stasis publications for blind and attended transfers.
Mark Michelson [Fri, 28 Jun 2013 18:42:24 +0000 (18:42 +0000)]
Add stasis publications for blind and attended transfers.

This creates stasis messages that are sent during a blind or
attended transfer. The stasis messages also are converted to
AMI events.

Review: https://reviewboard.asterisk.org/r/2619

(closes issue ASTERISK-21337)
Reported by Matt Jordan

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393182 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoHandle an originated channel being sent into a non-empty bridge
Matthew Jordan [Fri, 28 Jun 2013 17:31:33 +0000 (17:31 +0000)]
Handle an originated channel being sent into a non-empty bridge

Originated channels are a bit odd - they are technically a dialed channel (thus
the party B or peer) but, since there is no caller, they are treated as the
party A. When entering into a bridge that already contains participants, the CDR
engine - if the CDR record is in the Dial state - attempts to match the person
entering the bridge with an existing participant. The idea is that if you dialed
someone and the person you dialed is already in the bridge, you don't need a new
CDR record, the existing CDR record describes the relationship.

Unfortunately, for an originated channel, there is no Party B. If no one was in
the bridge this didn't cause any issues; however, if participants were in the
bridge the CDR engine would attempt to match a non-existant Party B on the
channel's CDR record and explode.

This patch fixes that, and a unit test has been added to cover this case.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393164 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoChange ARI originate to also allow dialing an exten/context/priority.
Jason Parker [Fri, 28 Jun 2013 16:23:24 +0000 (16:23 +0000)]
Change ARI originate to also allow dialing an exten/context/priority.

The old way didn't make much sense, so some of the fields were repurposed.

(closes issue ASTERISK-21658)

Review: https://reviewboard.asterisk.org/r/2626/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393144 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoBetter handle parking in CDRs
Matthew Jordan [Fri, 28 Jun 2013 15:50:56 +0000 (15:50 +0000)]
Better handle parking in CDRs

Parking typically occurs when a channel is transferred to a parking extension.
When this occurs, the channel never actually hits the dialplan if the extension
it was transferred to was a "parking extension", that is, the extension in
the first priority calls the Park application. Instead, the channel is
immediately sent into the holding bridge acting as the parking bridge.

This is problematic.

Because we never go out to the dialplan, the CDRs won't transition properly
and the application field will not be set to "Park". CDRs typically swallow
holding bridges, so the CDR itself won't even be generated.

This patch handles this by pulling out the holding bridge handling into its
own CDR state. CDRs now have an explicit parking state that accounts for this
specific subclass of the holding bridge. In addition, we handle the parking
stasis message to set application specific data on the CDR such that the
last known application for the CDR properly reflects "Park".

This is a bit sad since we're working around the odd internal implementation
of parking that exists in Asterisk (and that we had to maintain in order to
continue to meet some odd use cases of parking), but at least the code to
handle that is where it belongs: in CDRs as opposed to sprinkled liberally
throughout the codebase.

This patch also properly clears the OUTBOUND channel flag from a channel when
it leaves a bridge, and tweaks up dialing handling to properly compare the
correct CDR with the channel calling/being dialed.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393130 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoChange some 500 errors to 400.
Jason Parker [Fri, 28 Jun 2013 15:36:49 +0000 (15:36 +0000)]
Change some 500 errors to 400.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393128 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRemoved stray apostrophe.
David M. Lee [Fri, 28 Jun 2013 02:14:27 +0000 (02:14 +0000)]
Removed stray apostrophe.

Apparently the pluralization of an acronym does not use an apostophe,
according to most modern style guides. I feel like I've been living a
lie this whole time.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393100 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRemoved the automatic 302 redirects for ARI URL's that end with a slash.
David M. Lee [Fri, 28 Jun 2013 01:07:32 +0000 (01:07 +0000)]
Removed the automatic 302 redirects for ARI URL's that end with a slash.

There were some problems redirecting RESTful API requests; notably the client
would change the request method to GET on the redirected requests. After some
looking into, I decided that a 404 would be simpler and have more consistent
behavior.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393083 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoChange the name of some local variables in bridging.c to reflect what they really...
Richard Mudgett [Thu, 27 Jun 2013 21:01:04 +0000 (21:01 +0000)]
Change the name of some local variables in bridging.c to reflect what they really mean.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393066 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd config framework non-empty string validation requirement option.
Richard Mudgett [Thu, 27 Jun 2013 02:55:16 +0000 (02:55 +0000)]
Add config framework non-empty string validation requirement option.

Add config framework OPT_CHAR_ARRAY_T and OPT_STRINGFIELD_T non-empty
requirement option.  There are cases were you don't want a config option
string to be empty.  To require the option string to be non-empty, just
set the aco_option_register() flags parameter to non-zero.

* Updated some config framework enum aco_option_type comments.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393034 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agofunc_channel: Read/Write after_bridge_goto option
Jonathan Rose [Wed, 26 Jun 2013 20:59:14 +0000 (20:59 +0000)]
func_channel: Read/Write after_bridge_goto option

Allows reading and setting of a channel's after_bridge_goto datastore

(closes issue ASTERISK-21875)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2628/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393005 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoARI: Add support for continuing to a different location in dialplan.
Jason Parker [Wed, 26 Jun 2013 19:29:57 +0000 (19:29 +0000)]
ARI: Add support for continuing to a different location in dialplan.

This allows going elsewhere in the dialplan, so that the location can be
specified after exiting the Stasis application.

(closes issue ASTERISK-21870)

Review: https://reviewboard.asterisk.org/r/2644/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392987 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoRemove some redundant parking config error messages.
Richard Mudgett [Wed, 26 Jun 2013 19:15:23 +0000 (19:15 +0000)]
Remove some redundant parking config error messages.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392972 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix several problems with ast_bridge_add_channel().
Richard Mudgett [Wed, 26 Jun 2013 14:38:57 +0000 (14:38 +0000)]
Fix several problems with ast_bridge_add_channel().

* Fix locking problems.  ast_bridge_move() locks two bridges.  To do that,
deadlock avoidance must be done.  Called bridge_move_locked() instead.

* Fix inconsistency in the bridge dissolve check callers.  The original
caller has already removed the channel from the bridge.  The new caller
has not removed the channel from the bridge.  Reverted
bridge_dissolve_check() and added bridge_dissolve_check_stolen() to be
used by the new caller on the original bridge after the channel is moved
to the new bridge.

* Fix memory leak of features if the added channel was already in a
bridge.

* Fix incorrect call to ast_bridge_impart().

* Renamed bridge_chan to yanked_chan.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392953 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix incorrect calls to ast_bridge_impart().
Richard Mudgett [Wed, 26 Jun 2013 01:46:30 +0000 (01:46 +0000)]
Fix incorrect calls to ast_bridge_impart().

There was a misunderstanding about ast_bridge_impart()'s handling of the
imparted channel's reference.  The channel reference is passed by the
caller unless ast_bridge_impart() returns an error.

* Fixed a memory leak in conf_announce_channel_push() if the impart
failed.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392934 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAMI Bridge action: Get channel xfer config after we have found the second channel.
Richard Mudgett [Wed, 26 Jun 2013 01:39:04 +0000 (01:39 +0000)]
AMI Bridge action: Get channel xfer config after we have found the second channel.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392933 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agores_parking: Add Parking manager action to the new parking system
Jonathan Rose [Tue, 25 Jun 2013 22:28:22 +0000 (22:28 +0000)]
res_parking: Add Parking manager action to the new parking system

(closes issue ASTERISK-21641)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2573/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392915 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoFix typo with XML docs.
Jason Parker [Tue, 25 Jun 2013 20:25:55 +0000 (20:25 +0000)]
Fix typo with XML docs.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392898 65c4cc65-6c06-0410-ace0-fbb531ad65f3

8 years agoAdd a note about being ready to accept observer invocations before adding an observer.
Joshua Colp [Tue, 25 Jun 2013 19:22:13 +0000 (19:22 +0000)]
Add a note about being ready to accept observer invocations before adding an observer.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392879 65c4cc65-6c06-0410-ace0-fbb531ad65f3