asterisk/asterisk.git
5 years agoRemove duplicate definitions of ast_format_vp8.
Richard Mudgett [Mon, 4 Aug 2014 21:00:51 +0000 (21:00 +0000)]
Remove duplicate definitions of ast_format_vp8.

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

5 years agoAdd the ability to retrieve the source port of a SIP call.
Mark Michelson [Mon, 4 Aug 2014 20:25:16 +0000 (20:25 +0000)]
Add the ability to retrieve the source port of a SIP call.

This adds the ability to call CHANNEL(recvport) on chan_sip
channels to see the port on which an INVITE was received.

ASTERISK-24040 #close
Reported by dtryba
Patches:
dialplan_functions.patch uploaded by dtryba (License #6628)

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

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

5 years agoManager - Improve documentation for manager commands Getvar and Setvar.
Rusty Newton [Mon, 4 Aug 2014 19:47:06 +0000 (19:47 +0000)]
Manager - Improve documentation for manager commands Getvar and Setvar.

The documentation for these commands did not make it clear that they could
accept expressions and functions. Modified to make this clear, but tried
not to be overly explicit.

ASTERISK-21178 #close
Reported by: Rusty Newton
Tested by: Rusty Newton

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

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

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

Merged revisions 419944 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoManager: Add PJSIPShowEndpoint[s] documentation
Kinsey Moore [Sat, 2 Aug 2014 03:37:25 +0000 (03:37 +0000)]
Manager: Add PJSIPShowEndpoint[s] documentation

This adds a large swath of response documentation for PJSIPShowEndpoint
and PJSIPShowEndpoints AMI commands. It relies heavily on the existing
text in the configInfo documentation via xi:include tags to avoid
documentation duplication.

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

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

5 years agoAdd ContactStatusDetail to PJSIPShowEndpoint AMI output.
Mark Michelson [Fri, 1 Aug 2014 14:48:35 +0000 (14:48 +0000)]
Add ContactStatusDetail to PJSIPShowEndpoint AMI output.

Now when running PJSIPShowEndpoint, you will receive a
ContactStatusDetail for each bound contact that Asterisk
is qualifying. This information includes the URI of the
contact, current reachability, and roundtrip time.

AFS-91 #close
Reported by Mark Michelson

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

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

5 years agoPJSIP: Send Notify AMI and CLI commands can now send to URI instead of endpoint
Jonathan Rose [Thu, 31 Jul 2014 16:19:50 +0000 (16:19 +0000)]
PJSIP: Send Notify AMI and CLI commands can now send to URI instead of endpoint

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

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

5 years agores_hep_rtcp: Add module that sends RTCP information to a Homer Server
Matthew Jordan [Thu, 31 Jul 2014 11:57:51 +0000 (11:57 +0000)]
res_hep_rtcp: Add module that sends RTCP information to a Homer Server

This patch adds a new module to Asterisk, res_hep_rtcp. The module subscribes
to the RTCP topics in Stasis and receives RTCP information back from the
message bus. It encodes into HEPv3 packets and sends the information to the
res_hep module for transmission.

Using this, someone with a Homer server can get live call quality monitoring
for all RTP-based channels in their Asterisk 12+ systems.

In addition, there were a few bugs in the RTP engine, res_rtp_asterisk, and
chan_pjsip that were uncovered by the tests written for the Asterisk Test
Suite. This patch fixes the following:
1) chan_pjsip failed to set its channel unique ids on its RTP instance on
   outbound calls. It now does this in the appropriate location, in the
   serialized call callback.
2) The rtp_engine was overflowing some values when packed into JSON.
   Specifically, some longs and unsigned ints can't be be packed into integer
   values, for obvious reasons. Since libjansson only supports integers,
   floats, strings, booleans, and objects, we print these values into strings.
3) res_rtp_asterisk had a few problems:
   (a) it would emit a source IP address of 0.0.0.0 if bound to that IP
       address. We now use ast_find_ourip to get a better IP address, and
       properly marshal the result into an ast_strdupa'd string.
   (b) Reports can be generated with no report bodies. In particular, this
       occurs when a sender is transmitting information to a receiver (who
       will send no RTP back to the sender). As such, the sender has no report
       body for what it received. We now properly handle this case, and the
       sender will emit SR reports with no body. Likewise, if we receive an
       RTCP packet with no report body, we will still generate the appropriate
       events.

ASTERISK-24119 #close
........

Merged revisions 419823 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoxmldocs: Add support for an <example> tag in the Asterisk XML Documentation
Matthew Jordan [Thu, 31 Jul 2014 11:49:40 +0000 (11:49 +0000)]
xmldocs: Add support for an <example> tag in the Asterisk XML Documentation

This patch adds support for an <example /> tag in the XML documentation schema.

For CLI help, this doesn't change the formatting too much:
 - Preceeding white space is removed
 - Unlike with para elements, new lines are preserved

However, having an <example /> tag in the XML schema allows for the wiki
documentation generation script to surround the documentation with {code} or
{noformat} tags, generating much better content for the wiki - and allowing us
to put dialplan examples (and other code snippets, if desired) into the
documentation for an application/function/AMI command/etc.

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

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

5 years agomanager: Add state list commands
Kinsey Moore [Wed, 30 Jul 2014 18:32:25 +0000 (18:32 +0000)]
manager: Add state list commands

This patch adds three new AMI commands:
 * ExtensionStateList (pbx.c) - list all known extension state hints
   and their current statuses. Events emitted by the list action are
   equivalent to the ExtensionStatus events.
 * PresenceStateList (res_manager_presencestate) - list all known
   presence state values. Events emitted are generated by the stasis
   message type, and hence are PresenceStateChange events.
 * DeviceStateList (res_manager_devicestate) - list all known device
   state values. Events emitted are generated by the stasis message
   type, and hence are DeviceStateChange events.

Patch-by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3799/

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

5 years agoDo not omit the first header of a UserEvent AMI action from the corresponding emitted...
Mark Michelson [Tue, 29 Jul 2014 19:41:54 +0000 (19:41 +0000)]
Do not omit the first header of a UserEvent AMI action from the corresponding emitted UserEvent.

ASTERISK-24124 #close
Reported by Matt Jordan

AFS-131 #close
Reported by Matt Jordan

Patches:
userevent.patch uploaded by Matt Jordan (License #6283)

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

5 years agores_pjsip_session: Fix race condition where redirecting information may not be set.
Joshua Colp [Tue, 29 Jul 2014 10:56:40 +0000 (10:56 +0000)]
res_pjsip_session: Fix race condition where redirecting information may not be set.

Since the PJSIP INVITE session module is invoked before any session supplements it was
possible for it to handle a redirect before the res_pjsip_diversion module interpreted
and set redirecting information on the channel. This would cause the redirecting
information to get lost.

This patch ensures that session supplements are *always* invoked before a redirect occurs
by explicitly calling them in the redirect handler.

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

Merged revisions 419764 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_pjsip_pidf_body_generator / res_pjsip_xpidf_body_generator: Ensure local entity...
Joshua Colp [Tue, 29 Jul 2014 09:54:24 +0000 (09:54 +0000)]
res_pjsip_pidf_body_generator / res_pjsip_xpidf_body_generator: Ensure local entity is unquoted.

The local entity as provided by PJSIP is quoted within '<' and '>'. As a result placing
this value into XML will result in malformed XML being produced. This patch now unquotes
the local entity so it can go safely into the XML.

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

Merged revisions 419750 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agodatastores: Audit ast_channel_datastore_remove usage.
Richard Mudgett [Mon, 28 Jul 2014 18:58:43 +0000 (18:58 +0000)]
datastores: Audit ast_channel_datastore_remove usage.

Audit of v1.8 usage of ast_channel_datastore_remove() for datastore memory
leaks.

* Fixed leaks in app_speech_utils and func_frame_trace.

* Fixed app_speech_utils not locking the channel when accessing the
channel datastore list.

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

Audit of v11 usage of ast_channel_datastore_remove() for datastore memory
leaks.

* Fixed leak in func_jitterbuffer.  (Was not in v12)

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

Audit of v12 usage of ast_channel_datastore_remove() for datastore memory
leaks.

* Fixed leaks in abstract_jb.

* Fixed leak in ast_channel_unsuppress().  Used by ARI mute control and
res_mutestream.

* Fixed ref leak in ast_channel_suppress().  Used by ARI mute control and
res_mutestream.

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

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

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

Merged revisions 419686 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoloader: Fix an infinite loop when printing modules using "module show".
Joshua Colp [Fri, 25 Jul 2014 18:09:40 +0000 (18:09 +0000)]
loader: Fix an infinite loop when printing modules using "module show".

When creating the alphabetical sorted list each module is added to a list
temporarily. On the second iteration each module already has a pointer to
another module, causing stuff to go into a loop.

ASTERISK-24123 #close
Reported by: Malcolm Davenport

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

5 years agoAdd module support level to ast_module_info structure. Print it in CLI "module show" .
Mark Michelson [Fri, 25 Jul 2014 16:47:17 +0000 (16:47 +0000)]
Add module support level to ast_module_info structure. Print it in CLI "module show" .

ASTERISK-23919 #close
Reported by Malcolm Davenport

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

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

5 years agoMultiple revisions 419565-419566
Matthew Jordan [Fri, 25 Jul 2014 14:47:09 +0000 (14:47 +0000)]
Multiple revisions 419565-419566

........
  r419565 | mjordan | 2014-07-25 09:41:23 -0500 (Fri, 25 Jul 2014) | 21 lines

  ARI: report duration values in LiveRecording objects

  This patch adds three new fields to the LiveRecording model:
   - total_duration: the total length of the live recording
   - talking_duration: optional. The duration of talking energy that was
     detected while the recording was made.
   - silence_duration: optional. The duration of silence that was detected while
     the recording was made.

  These values are reported in the RecordingFinished ARI event.

  When a DSP is enabled on the channel during the recording - which occurs when
  the recording is created with max_silence_seconds (indicating that the user
  actually cares about how much silence is in the file), we will report the
  talking_duration and silence_duration in addition to the total_duration.

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

  ASTERISK-24037 #close
  Reported by: Samuel Galarneau
........
  r419566 | mjordan | 2014-07-25 09:46:15 -0500 (Fri, 25 Jul 2014) | 1 line

  Update CHANGES for r419565
........

Merged revisions 419565-419566 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agomodule loader: Unload modules in reverse order of their start order
Matthew Jordan [Fri, 25 Jul 2014 14:27:52 +0000 (14:27 +0000)]
module loader: Unload modules in reverse order of their start order

When Asterisk starts a module (calling its load_module function), it re-orders
the module list, sorting it alphabetically. Ostensibly, this was done so that
the output of 'module show' listed modules in alphabetic order. This had the
unfortunate side effect of making modules with complex usage patterns
unloadable. A module that has a large number of modules that depend on it is
typically abandoned during the unloading process. This results in its memory
not being reclaimed during exit.

Generally, this isn't harmful - when the process is destroyed, the operating
system will reclaim all memory allocated by the process. Prior to Asterisk 12,
we also didn't have many modules with complex dependencies. However, with
the advent of ARI and PJSIP, this can make make unloading those modules
successfully nearly impossible, and thus tracking memory leaks or ref debug
leaks a real pain.

While this patch is not a complete overhaul of the module loader - such an
effort would be beyond the scope of what could be done for Asterisk 13 -
this does make some marginal improvements to the loader such that modules
like res_pjsip or res_stasis *may* be made properly un-loadable in the future.

1. The linked list of modules has been replaced with a doubly linked list. This
   allows traversal of the module list to occur backwards. The module shutdown
   routine now walks the global list backwards when it attempts to unload
   modules.
2. The alphabetic reorganization of the module list on startup has been
   removed. Instead, a started module is placed at the end of the module list.
3. The ast_update_module_list function - which is used by the CLI to display
   the modules - now does the sorting alphabetically itself. It creates its own
   linked list and inserts the modules into it in alphabetic order. This allows
   for the intent of the previous code to be maintained.

This patch also contains a fix for res_calendar. Without calendar.conf, the
calendar modules were improperly bumping the use count of res_calendar, then
failing to load themselves. This patch makes it so that we detect whether or
not calendaring is enabled before altering the use count.

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

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

5 years agoapp_bridgewait: Remove possibility of race condition between channels leaving/joining.
Joshua Colp [Fri, 25 Jul 2014 10:54:49 +0000 (10:54 +0000)]
app_bridgewait: Remove possibility of race condition between channels leaving/joining.

Bridges created by app_bridgewait previously had the "dissolve when empty" flag set.
This caused the bridge core to destroy them when the last channel had left. This
introduced a race condition where we may have a reference to the bridge but it is
not actually joinable when we try to join it. This flag has now been removed and the
bridge is guaranteed to be joinable at all times.

ASTERISK-23987 #close
Reported by: Matt Jordan

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

Merged revisions 419538 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agobridge: Make "bridge destroy" only available in developer mode and add "all" to ...
Joshua Colp [Fri, 25 Jul 2014 10:49:52 +0000 (10:49 +0000)]
bridge: Make "bridge destroy" only available in developer mode and add "all" to "bridge kick".

The "bridge destroy" CLI command is invasive to bridges and can leave them in an unexpected
state for the users of them. Since this command may be useful for developers it is now
only available when developer mode is available. To take its place "all" has been added
as a valid option to the "bridge kick" CLI command. It will kick all of the channels
in the bridge out.

ASTERISK-23987
Reported by: Matt Jordan

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

Merged revisions 419536 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoaccountcode: Slightly change accountcode propagation.
Richard Mudgett [Thu, 24 Jul 2014 22:48:38 +0000 (22:48 +0000)]
accountcode: Slightly change accountcode propagation.

The previous behavior was to simply set the accountcode of an outgoing
channel to the accountcode of the channel initiating the call.  It was
done this way a long time ago to allow the accountcode set on the SIP/100
channel to be propagated to a local channel so the dialplan execution on
the Local;2 channel would have the SIP/100 accountcode available.

SIP/100 -> Local;1/Local;2 -> SIP/200

Propagating the SIP/100 accountcode to the local channels is very useful.
Without any dialplan manipulation, all channels in this call would have
the same accountcode.

Using dialplan, you can set a different accountcode on the SIP/200 channel
either by setting the accountcode on the Local;2 channel or by the Dial
application's b(pre-dial), M(macro) or U(gosub) options, or by the
FollowMe application's b(pre-dial) option, or by the Queue application's
macro or gosub options.  Before Asterisk v12, the altered accountcode on
SIP/200 will remain until the local channels optimize out and the
accountcode would change to the SIP/100 accountcode.

Asterisk v1.8 attempted to add peeraccount support but ultimately had to
punt on the support.  The peeraccount support was rendered useless because
of how the CDR code needed to unconditionally force the caller's
accountcode onto the peer channel's accountcode.  The CEL events were thus
intentionally made to always use the channel's accountcode as the
peeraccount value.

With the arrival of Asterisk v12, the situation has improved somewhat so
peeraccount support can be made to work.  Using the indicated example, the
the accountcode values become as follows when the peeraccount is set on
SIP/100 before calling SIP/200:

SIP/100 ---> Local;1 ---- Local;2 ---> SIP/200
acct: 100 \/ acct: 200 \/ acct: 100 \/ acct: 200
peer: 200 /\ peer: 100 /\ peer: 200 /\ peer: 100

If a channel already has an accountcode it can only change by the
following explicit user actions:

1) A channel originate method that can specify an accountcode to use.

2) The calling channel propagating its non-empty peeraccount or its
non-empty accountcode if the peeraccount was empty to the outgoing
channel's accountcode before initiating the dial.  e.g., Dial and
FollowMe.  The exception to this propagation method is Queue.  Queue will
only propagate peeraccounts this way only if the outgoing channel does not
have an accountcode.

3) Dialplan using CHANNEL(accountcode).

4) Dialplan using CHANNEL(peeraccount) on the other end of a local
channel pair.

If a channel does not have an accountcode it can get one from the
following places:

1) The channel driver's configuration at channel creation.

2) Explicit user action as already indicated.

3) Entering a basic or stasis-mixing bridge from a peer channel's
peeraccount value.

You can specify the accountcode for an outgoing channel by setting the
CHANNEL(peeraccount) before using the Dial, FollowMe, and Queue
applications.  Queue adds the wrinkle that it will not overwrite an
existing accountcode on the outgoing channel with the calling channels
values.

Accountcode and peeraccount values propagate to an outgoing channel before
dialing.  Accountcodes also propagate when channels enter or leave a basic
or stasis-mixing bridge.  The peeraccount value only makes sense for
mixing bridges with two channels; it is meaningless otherwise.

* Made peeraccount functional by changing accountcode propagation as
described above.

* Fixed CEL extracting the wrong ie value for the peeraccount.  This was
done intentionally in Asterisk v1.8 when that version had to punt on
peeraccount.

* Fixed a few places dealing with accountcodes that were reading from
channels without the lock held.

AFS-65 #close

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

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

5 years agocore/db: Revert Patch Added In Attempt To Improve I/O Performance
Michael L. Young [Thu, 24 Jul 2014 21:01:37 +0000 (21:01 +0000)]
core/db: Revert Patch Added In Attempt To Improve I/O Performance

Reverting the patch since it was causing a regression and after fixing the
regression, there were no performance gains.  At least based on my method
for measurement.

ASTERISK-24050

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

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

5 years agoBlocked revisions 419442
Corey Farrell [Thu, 24 Jul 2014 18:01:00 +0000 (18:01 +0000)]
Blocked revisions 419442

These change was applied to trunk in r419438

........
chan_sip: sip_subscribe_mwi_destroy should not call sip_destroy

sip_subscribe_mwi_destroy calls sip_destroy on the reference counted
mwi->call.  This results in the fields of mwi->call being freed, but
mwi->call itself it leaked.  If other code is still using mwi->call
it can cause problems.  This change uses dialog_unref instead, to
balance the ref provided by sip_alloc().

ASTERISK-24087 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3834/
........

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

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

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

5 years agoDeprecate astobj.h
Corey Farrell [Thu, 24 Jul 2014 17:50:46 +0000 (17:50 +0000)]
Deprecate astobj.h

This flags astobj.h as deprecated, warns people to use astobj2.h instead.
Only netsock.c (also deprecated) still uses astobj.h.

ASTERISK-24069 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3818/

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

5 years agochan_sip: complete upgrade to ao2
Corey Farrell [Thu, 24 Jul 2014 17:47:29 +0000 (17:47 +0000)]
chan_sip: complete upgrade to ao2

This change upgrades sip_registry and sip_subscription_mwi to astobj2.

ASTERISK-24067 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3759/

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

5 years agoDon't cause Asterisk to exit if ooh323.conf not found.
Jason Parker [Thu, 24 Jul 2014 16:52:00 +0000 (16:52 +0000)]
Don't cause Asterisk to exit if ooh323.conf not found.

(closes issue ASTERISK-23814)
........

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

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

Merged revisions 419376 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agodevice state: Update the core to report ONHOLD if a channel is on hold
Matthew Jordan [Thu, 24 Jul 2014 15:20:58 +0000 (15:20 +0000)]
device state: Update the core to report ONHOLD if a channel is on hold

In Asterisk, it is possible for a device to have a status of ONHOLD. This is
not typically an easy thing to determine, as a channel being on hold is not
a direct channel state. Typically, this has to be calculated outside of the
core independently in channel drivers, notably, chan_sip and chan_pjsip. Both
of these channel drivers already have to calculate device state in a fashion
more complex than the core can handle, as they aggregate all state of all
channels associated with a peer/endpoint; they also independently track
whether or not one of those channels is currently on hold and mark the device
state appropriately.

In 12+, we now have the ability to report an AST_DEVICE_ONHOLD state for all
channels that defer their device state to the core. This is due to channel hold
state actually now being tracked on the channel itself. If a channel driver
defers its device state to the core (which many, such as DAHDI, IAX2, and
others do in most situations), the device state core already goes out to get a
channel associated with the device. As such, it can now also factor the channel
hold state in its calculation.

This patch adds this logic to the device state core. It also uses an existing
mapping between device state and channel state to handle more channel states.
chan_pjsip has been updated slightly as well to make use of this (as it was,
for some reason, reporting a channel state of BUSY as a device state of INUSE,
which feels slightly wrong).

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

ASTERISK-24038 #close

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

5 years agoAMI: Allow for command response documentation
Kinsey Moore [Thu, 24 Jul 2014 13:00:59 +0000 (13:00 +0000)]
AMI: Allow for command response documentation

Allow for responses to AMI actions/commands to be documented properly
in XML and displayed via the CLI. Response events are documented
exactly as standard AMI events are documented.

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

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

5 years agoendpoints: Fix failing unit tests from r419196
Matthew Jordan [Wed, 23 Jul 2014 16:46:13 +0000 (16:46 +0000)]
endpoints: Fix failing unit tests from r419196

This patch does two things:
(1) It updates the unit tests to expect additional stasis messages. More
    messages are now sent to the endpoint topic, due to forwarding all
    channel messages and the forwarding relationship set up between
    endpoints themselves.
(2) Remove the technology forwarding subscription during
    ast_endpoint_shutdown. This prevents an improper double shutdown of
    an endpoint from occurring.
........

Merged revisions 419318 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoBlocked revisions 419316
Matthew Jordan [Wed, 23 Jul 2014 16:43:22 +0000 (16:43 +0000)]
Blocked revisions 419316

........
res_pjsip_refer: remove stray debugging line

How'd those @ symbols get in there...

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

5 years agoapp_voicemail: use a consistent generator string
Scott Griepentrog [Wed, 23 Jul 2014 14:00:09 +0000 (14:00 +0000)]
app_voicemail: use a consistent generator string

When updating voicemail.conf when a user changes
their pin, change the generator string to be the
same as the module name when reading so that the
same config_hook will be called.

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

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

Merged revisions 419285 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_fax: unregister manager actions on unload
Corey Farrell [Wed, 23 Jul 2014 01:28:57 +0000 (01:28 +0000)]
res_fax: unregister manager actions on unload

* Unregister manager actions FAXSessions, FAXSession and FAXStats at unload.
* Update ast_manager_register2 use ao2_t_alloc tagged with the action name.

ASTERISK-24058 #close
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3831/

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

5 years agocore/bridge_channel: Substitute Variables In Features Application Map
Michael L. Young [Tue, 22 Jul 2014 20:22:36 +0000 (20:22 +0000)]
core/bridge_channel: Substitute Variables In Features Application Map

Say you wanted to include variables in an application map and have those
variables substituted and passed along to the application being executed;
currently this does not happen.

This patch adds this ability to pass channel variable values to an
application before being executed.

ASTERISK-22608 #close
Reported by: Michael L. Young
patches:
  features_substitute_arguments_v2.diff
                                     uploaded by Michael L. Young (license 5026)

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

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

5 years agoapps/app_mixmonitor: Add Options To Play Beep At Start Or Stop
Michael L. Young [Tue, 22 Jul 2014 20:01:42 +0000 (20:01 +0000)]
apps/app_mixmonitor: Add Options To Play Beep At Start Or Stop

We have a new periodic beep feature but sometimes a user needs some sort of
feedback, without the need to have a periodic beep during the recording, to let
them know that MixMonitor started recording or ended the recording.  The use
case where this patch is being used is when using Dynamic Features to start and
end MixMonitor.

This patch adds an option to play a beep when MixMonitor starts and an option to
play a beep when MixMonitor ends.

ASTERISK-24051 #close
Reported by: Michael L. Young
patches:
  mixmonitor-play-beep-start-stop.diff
                                     uploaded by Michael L. Young (license 5026)

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

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

5 years agocore/db: Improve I/O When Updating Rows
Michael L. Young [Tue, 22 Jul 2014 18:56:00 +0000 (18:56 +0000)]
core/db: Improve I/O When Updating Rows

When updating a row, we are currently doing an INSERT OR REPLACE INTO.  The
downside to this is that the row is deleted if it exists and then a new row is
inserted.  So, we are hitting the disk twice.  One for the deletion and one for
the insertion.

This patch changes this statement to an INSERT INTO and if the insert fails
because a row with that key exists, we will IGNORE the failure.  Then we will
attempt to perform an UPDATE on the existing row if that row wasn't just
INSERTed.

ASTERISK-24050 #close
Reported by: Michael L. Young
patches:
  astdb-insert-update-io-help_trunk_v2.diff
                                     uploaded by Michael L. Young (license 5026)

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

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

5 years agocodec_speex: Fix trashing normal static frame for AST_FRAME_CNG.
Richard Mudgett [Tue, 22 Jul 2014 17:10:36 +0000 (17:10 +0000)]
codec_speex: Fix trashing normal static frame for AST_FRAME_CNG.

Made use a local static frame to generate the AST_FRAME_CNG frame when
silence starts.

I don't think the handling of the AST_FRAME_CNG has ever really worked
because there doesn't seem to be any consumers of it.

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

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

5 years agoARI: Fix endpoint/channel subscription issues; allow for subscriptions to tech
Matthew Jordan [Tue, 22 Jul 2014 16:20:58 +0000 (16:20 +0000)]
ARI: Fix endpoint/channel subscription issues; allow for subscriptions to tech

This patch serves two purposes:
(1) It fixes some bugs with endpoint subscriptions not reporting all of the
    channel events
(2) It serves as the preliminary work needed for ASTERISK-23692, which allows
    for sending/receiving arbitrary out of call text messages through ARI in a
    technology agnostic fashion.

The messaging functionality described on ASTERISK-23692 requires two things:
(1) The ability to send/receive messages associated with an endpoint. This is
    relatively straight forwards with the endpoint core in Asterisk now.
(2) The ability to send/receive messages associated with a technology and an
    arbitrary technology defined URI. This is less straight forward, as
    endpoints are formed from a tech + resource pair. We don't have a
    mechanism to note that a technology that *may* have endpoints exists.

This patch provides such a mechanism, and fixes a few bugs along the way.

The first major bug this patch fixes is the forwarding of channel messages
to their respective endpoints. Prior to this patch, there were two problems:
(1) Channel caching messages weren't forwarded. Thus, the endpoints missed
    most of the interesting bits (such as channel creation, destruction, state
    changes, etc.)
(2) Channels weren't associated with their endpoint until after creation.
    This resulted in endpoints missing the channel creation message, which
    limited the usefulness of the subscription in the first place (a major use
    case being 'tell me when this endpoint has a channel'). Unfortunately,
    this meant another parameter to ast_channel_alloc. Since not all channel
    technologies support an ast_endpoint, this patch makes such a call
    optional and opts for a new function, ast_channel_alloc_with_endpoint.

When endpoints are created, they will implicitly create a technology endpoint
for their technology (if one does not already exist). A technology endpoint is
special in that it has no state, cannot have channels created for it, cannot
be created explicitly, and cannot be destroyed except on shutdown. It does,
however, have all messages from other endpoints in its technology forwarded to
it.

Combined with the bug fixes, we now have Stasis messages being properly
forwarded. Consider the following scenario: two PJSIP endpoints (foo and bar),
where bar has a single channel associated with it and foo has two channels
associated with it. The messages would be forwarded as follows:

channel PJSIP/foo-1 --
                      \
                       --> endpoint PJSIP/foo --
                      /                         \
channel PJSIP/foo-2 --                           \
                                                  ---- > endpoint PJSIP
                                                /
channel PJSIP/bar-1 -----> endpoint PJSIP/bar --

ARI, through the applications resource, can:
 - subscribe to endpoint:PJSIP/foo and get notifications for channels
   PJSIP/foo-1,PJSIP/foo-2 and endpoint PJSIP/foo
 - subscribe to endpoint:PJSIP/bar and get notifications for channels
   PJSIP/bar-1 and endpoint PJSIP/bar
 - subscribe to endpoint:PJSIP and get notifications for channels
   PJSIP/foo-1,PJSIP/foo-2,PJSIP/bar-1 and endpoints PJSIP/foo,PJSIP/bar

Note that since endpoint PJSIP never changes, it never has events itself. It
merely provides an aggregation point for all other endpoints in its technology
(which in turn aggregate all channel messages associated with that endpoint).

This patch also adds endpoints to res_xmpp and chan_motif, because the actual
messaging work will need it (messaging without XMPP is just sad).

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

ASTERISK-23692
........

Merged revisions 419196 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agochan_iax2: Restore previous behavior of iax2_best_codec.
Joshua Colp [Tue, 22 Jul 2014 14:36:26 +0000 (14:36 +0000)]
chan_iax2: Restore previous behavior of iax2_best_codec.

The iax2_best_codec function was changed to convert the formats
into a format compatibilities structure and grab the first
format from it. The resulting order differs from the previous
order of iax2_best_codec which causes unexpected formats to
get chosen (such as g723).

This commit brings back the old behavior of iax2_best_codec by
having a specified preference list.

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

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

5 years agoFix more dev-mode build issues
Kinsey Moore [Tue, 22 Jul 2014 14:22:00 +0000 (14:22 +0000)]
Fix more dev-mode build issues
........

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

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

Merged revisions 419163 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoDial API: Prevent crash on NULL cap
Kinsey Moore [Mon, 21 Jul 2014 17:03:58 +0000 (17:03 +0000)]
Dial API: Prevent crash on NULL cap

This prevents a crash in the Dial API triggered by use of the Page()
application where a format capability struct was used before checking
whether it was NULL.

ASTERISK-24074 #close

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

5 years agoFix build in dev-mode
Kinsey Moore [Mon, 21 Jul 2014 17:01:05 +0000 (17:01 +0000)]
Fix build in dev-mode

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

5 years agochan_iax2: Restore codec choice behavior from media formats branch
Jonathan Rose [Mon, 21 Jul 2014 16:26:36 +0000 (16:26 +0000)]
chan_iax2: Restore codec choice behavior from media formats branch

After merging the media formats branch, chan_iax2 was discarding
codec preferences for the purpose of choosing which codec a
channel would use once a call started. This patch restores the
Asterisk 1.8-12 codec choice behaviors.

ASTERISK-23958 #close
Review: https://reviewboard.asterisk.org/r/3800/

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

5 years agochan_iax2: Only send mini frames if the underlying format has not changed, not if...
Joshua Colp [Mon, 21 Jul 2014 16:09:33 +0000 (16:09 +0000)]
chan_iax2: Only send mini frames if the underlying format has not changed, not if it has.

ASTERISK-24072 #close
Reported by: Matt Jordan

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

5 years agoFix build when pjproject is installed in a non-standard location.
Sean Bright [Mon, 21 Jul 2014 14:49:43 +0000 (14:49 +0000)]
Fix build when pjproject is installed in a non-standard location.

When configuring Asterisk to build against a version of pjproject installed
in a non-standard location, the checks for "PJSIP Transaction Group Lock
Support" and "PJSIP Media Stream Replacement Support" fail.  This is
because these secondary checks are not taking the CFLAGS and LIBS returned
by the pkg-config check into account.

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

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

5 years agores_smdi: convert to astobj2
Corey Farrell [Mon, 21 Jul 2014 08:41:29 +0000 (08:41 +0000)]
res_smdi: convert to astobj2

Remove functions:
ast_smdi_interface_unref
ast_smdi_md_message_putback
ast_smdi_mwi_message_putback
ast_smdi_md_message destructor
ast_smdi_mwi_message destructor

Includes for astobj.h are removed everywhere it's possible.

ASTERISK-24066 #close
Review: https://reviewboard.asterisk.org/r/3758/

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

5 years agomedia formats: re-architect handling of media for performance improvements
Matthew Jordan [Sun, 20 Jul 2014 22:06:33 +0000 (22:06 +0000)]
media formats: re-architect handling of media for performance improvements

In the old times media formats were represented using a bit field. This was
fast but had a few limitations.
 1. Asterisk was limited in how many formats it could handle.
 2. Formats, being a bit field, could not include any attribute information.
    A format was strictly its type, e.g., "this is ulaw".
This was changed in Asterisk 10 (see
https://wiki.asterisk.org/wiki/display/AST/Media+Architecture+Proposal for
notes on that work) which led to the creation of the ast_format structure.
This structure allowed Asterisk to handle attributes and bundle information
with a format.

Additionally, ast_format_cap was created to act as a container for multiple
formats that, together, formed the capability of some entity. Another
mechanism was added to allow logic to be registered which performed format
attribute negotiation. Everywhere throughout the codebase Asterisk was
changed to use this strategy.

Unfortunately, in software, there is no free lunch. These new capabilities
came at a cost.

Performance analysis and profiling showed that we spend an inordinate
amount of time comparing, copying, and generally manipulating formats and
their related structures. Basic prototyping has shown that a reasonably
large performance improvement could be made in this area. This patch is the
result of that project, which overhauled the media format architecture
and its usage in Asterisk to improve performance.

Generally, the new philosophy for handling formats is as follows:
 * The ast_format structure is reference counted. This removed a large amount
   of the memory allocations and copying that was done in prior versions.
 * In order to prevent race conditions while keeping things performant, the
   ast_format structure is immutable by convention and lock-free. Violate this
   tenet at your peril!
 * Because formats are reference counted, codecs are also reference counted.
   The Asterisk core generally provides built-in codecs and caches the
   ast_format structures created to represent them. Generally, to prevent
   inordinate amounts of module reference bumping, codecs and formats can be
   added at run-time but cannot be removed.
 * All compatibility with the bit field representation of codecs/formats has
   been moved to a compatibility API. The primary user of this representation
   is chan_iax2, which must continue to maintain its bit-field usage of formats
   for interoperability concerns.
 * When a format is negotiated with attributes, or when a format cannot be
   represented by one of the cached formats, a new format object is created or
   cloned from an existing format. That format may have the same codec
   underlying it, but is a different format than a version of the format with
   different attributes or without attributes.
 * While formats are reference counted objects, the reference count maintained
   on the format should be manipulated with care. Formats are generally cached
   and will persist for the lifetime of Asterisk and do not explicitly need
   to have their lifetime modified. An exception to this is when the user of a
   format does not know where the format came from *and* the user may outlive
   the provider of the format. This occurs, for example, when a format is read
   from a channel: the channel may have a format with attributes (hence,
   non-cached) and the user of the format may last longer than the channel (if
   the reference to the channel is released prior to the format's reference).

For more information on this work, see the API design notes:
  https://wiki.asterisk.org/wiki/display/AST/Media+Format+Rewrite

Finally, this work was the culmination of a large number of developer's
efforts. Extra thanks goes to Corey Farrell, who took on a large amount of the
work in the Asterisk core, chan_sip, and was an invaluable resource in peer
reviews throughout this project.

There were a substantial number of patches contributed during this work; the
following issues/patch names simply reflect some of the work (and will cause
the release scripts to give attribution to the individuals who work on them).

Reviews:
 https://reviewboard.asterisk.org/r/3814
 https://reviewboard.asterisk.org/r/3808
 https://reviewboard.asterisk.org/r/3805
 https://reviewboard.asterisk.org/r/3803
 https://reviewboard.asterisk.org/r/3801
 https://reviewboard.asterisk.org/r/3798
 https://reviewboard.asterisk.org/r/3800
 https://reviewboard.asterisk.org/r/3794
 https://reviewboard.asterisk.org/r/3793
 https://reviewboard.asterisk.org/r/3792
 https://reviewboard.asterisk.org/r/3791
 https://reviewboard.asterisk.org/r/3790
 https://reviewboard.asterisk.org/r/3789
 https://reviewboard.asterisk.org/r/3788
 https://reviewboard.asterisk.org/r/3787
 https://reviewboard.asterisk.org/r/3786
 https://reviewboard.asterisk.org/r/3784
 https://reviewboard.asterisk.org/r/3783
 https://reviewboard.asterisk.org/r/3778
 https://reviewboard.asterisk.org/r/3774
 https://reviewboard.asterisk.org/r/3775
 https://reviewboard.asterisk.org/r/3772
 https://reviewboard.asterisk.org/r/3761
 https://reviewboard.asterisk.org/r/3754
 https://reviewboard.asterisk.org/r/3753
 https://reviewboard.asterisk.org/r/3751
 https://reviewboard.asterisk.org/r/3750
 https://reviewboard.asterisk.org/r/3748
 https://reviewboard.asterisk.org/r/3747
 https://reviewboard.asterisk.org/r/3746
 https://reviewboard.asterisk.org/r/3742
 https://reviewboard.asterisk.org/r/3740
 https://reviewboard.asterisk.org/r/3739
 https://reviewboard.asterisk.org/r/3738
 https://reviewboard.asterisk.org/r/3737
 https://reviewboard.asterisk.org/r/3736
 https://reviewboard.asterisk.org/r/3734
 https://reviewboard.asterisk.org/r/3722
 https://reviewboard.asterisk.org/r/3713
 https://reviewboard.asterisk.org/r/3703
 https://reviewboard.asterisk.org/r/3689
 https://reviewboard.asterisk.org/r/3687
 https://reviewboard.asterisk.org/r/3674
 https://reviewboard.asterisk.org/r/3671
 https://reviewboard.asterisk.org/r/3667
 https://reviewboard.asterisk.org/r/3665
 https://reviewboard.asterisk.org/r/3625
 https://reviewboard.asterisk.org/r/3602
 https://reviewboard.asterisk.org/r/3519
 https://reviewboard.asterisk.org/r/3518
 https://reviewboard.asterisk.org/r/3516
 https://reviewboard.asterisk.org/r/3515
 https://reviewboard.asterisk.org/r/3512
 https://reviewboard.asterisk.org/r/3506
 https://reviewboard.asterisk.org/r/3413
 https://reviewboard.asterisk.org/r/3410
 https://reviewboard.asterisk.org/r/3387
 https://reviewboard.asterisk.org/r/3388
 https://reviewboard.asterisk.org/r/3389
 https://reviewboard.asterisk.org/r/3390
 https://reviewboard.asterisk.org/r/3321
 https://reviewboard.asterisk.org/r/3320
 https://reviewboard.asterisk.org/r/3319
 https://reviewboard.asterisk.org/r/3318
 https://reviewboard.asterisk.org/r/3266
 https://reviewboard.asterisk.org/r/3265
 https://reviewboard.asterisk.org/r/3234
 https://reviewboard.asterisk.org/r/3178

ASTERISK-23114 #close
Reported by: mjordan
  media_formats_translation_core.diff uploaded by kharwell (License 6464)
  rb3506.diff uploaded by mjordan (License 6283)
  media_format_app_file.diff uploaded by kharwell (License 6464)
  misc-2.diff uploaded by file (License 5000)
  chan_mild-3.diff uploaded by file (License 5000)
  chan_obscure.diff uploaded by file (License 5000)
  jingle.diff uploaded by file (License 5000)
  funcs.diff uploaded by file (License 5000)
  formats.diff uploaded by file (License 5000)
  core.diff uploaded by file (License 5000)
  bridges.diff uploaded by file (License 5000)
  mf-codecs-2.diff uploaded by file (License 5000)
  mf-app_fax.diff uploaded by file (License 5000)
  mf-apps-3.diff uploaded by file (License 5000)
  media-formats-3.diff uploaded by file (License 5000)

ASTERISK-23715
  rb3713.patch uploaded by coreyfarrell (License 5909)
  rb3689.patch uploaded by mjordan (License 6283)

ASTERISK-23957
  rb3722.patch uploaded by mjordan (License 6283)
  mf-attributes-3.diff uploaded by file (License 5000)

ASTERISK-23958
Tested by: jrose
  rb3822.patch uploaded by coreyfarrell (License 5909)
  rb3800.patch uploaded by jrose (License 6182)
  chan_sip.diff uploaded by mjordan (License 6283)
  rb3747.patch uploaded by jrose (License 6182)

ASTERISK-23959 #close
Tested by: sgriepentrog, mjordan, coreyfarrell
  sip_cleanup.diff uploaded by opticron (License 6273)
  chan_sip_caps.diff uploaded by mjordan (License 6283)
  rb3751.patch uploaded by coreyfarrell (License 5909)
  chan_sip-3.diff uploaded by file (License 5000)

ASTERISK-23960 #close
Tested by: opticron
  direct_media.diff uploaded by opticron (License 6273)
  pjsip-direct-media.diff uploaded by file (License 5000)
  format_cap_remove.diff uploaded by opticron (License 6273)
  media_format_fixes.diff uploaded by opticron (License 6273)
  chan_pjsip-2.diff uploaded by file (License 5000)

ASTERISK-23966 #close
Tested by: rmudgett
  rb3803.patch uploaded by rmudgetti (License 5621)
  chan_dahdi.diff uploaded by file (License 5000)

ASTERISK-24064 #close
Tested by: coreyfarrell, mjordan, opticron, file, rmudgett, sgriepentrog, jrose
  rb3814.patch uploaded by rmudgett (License 5621)
  moh_cleanup.diff uploaded by opticron (License 6273)
  bridge_leak.diff uploaded by opticron (License 6273)
  translate.diff uploaded by file (License 5000)
  rb3795.patch uploaded by rmudgett (License 5621)
  tls_fix.diff uploaded by mjordan (License 6283)
  fax-mf-fix-2.diff uploaded by file (License 5000)
  rtp_transfer_stuff uploaded by mjordan (License 6283)
  rb3787.patch uploaded by rmudgett (License 5621)
  media-formats-explicit-translate-format-3.diff uploaded by file (License 5000)
  format_cache_case_fix.diff uploaded by opticron (License 6273)
  rb3774.patch uploaded by rmudgett (License 5621)
  rb3775.patch uploaded by rmudgett (License 5621)
  rtp_engine_fix.diff uploaded by opticron (License 6273)
  rtp_crash_fix.diff uploaded by opticron (License 6273)
  rb3753.patch uploaded by mjordan (License 6283)
  rb3750.patch uploaded by mjordan (License 6283)
  rb3748.patch uploaded by rmudgett (License 5621)
  media_format_fixes.diff uploaded by opticron (License 6273)
  rb3740.patch uploaded by mjordan (License 6283)
  rb3739.patch uploaded by mjordan (License 6283)
  rb3734.patch uploaded by mjordan (License 6283)
  rb3689.patch uploaded by mjordan (License 6283)
  rb3674.patch uploaded by coreyfarrell (License 5909)
  rb3671.patch uploaded by coreyfarrell (License 5909)
  rb3667.patch uploaded by coreyfarrell (License 5909)
  rb3665.patch uploaded by mjordan (License 6283)
  rb3625.patch uploaded by coreyfarrell (License 5909)
  rb3602.patch uploaded by coreyfarrell (License 5909)
  format_compatibility-2.diff uploaded by file (License 5000)
  core.diff uploaded by file (License 5000)

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

5 years agoari: Add a copy operation for stored recordings
Matthew Jordan [Fri, 18 Jul 2014 21:48:46 +0000 (21:48 +0000)]
ari: Add a copy operation for stored recordings

This patch adds a new operation for stored recordings, copy. It takes an
existing stored recording and makes a copy of it in the same directory
or a relative directory under the stored recording directory.

/ari/recordings/stored/{recordingName}/copy?destinationRecordingName={copy_name}

This is particularly useful for voicemail-esque applications, which may need to
copy or move recordings around a directory structure.

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

ASTERISK-24036 #close
Reported by: Sam Galarneau
Tested by: Sam Galarneau
........

Merged revisions 419021 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agostasis: fix call to ao2_t_alloc for stasis_message_router_create
Corey Farrell [Fri, 18 Jul 2014 21:25:14 +0000 (21:25 +0000)]
stasis: fix call to ao2_t_alloc for stasis_message_router_create

This fixes a build failure introduced by r3821.  struct stasis_topic is
opaque, so topic->name is unavailable.  Switch to using stasis_topic_name().
........

Merged revisions 419019 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agostasis: use ao2_t_alloc for certain object allocators
Corey Farrell [Fri, 18 Jul 2014 19:55:24 +0000 (19:55 +0000)]
stasis: use ao2_t_alloc for certain object allocators

Add tags to stasis objects using the name.  This makes it
easier to track the source of certain stasis ref leaks.

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

Merged revisions 418996 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoFix build in dev-mode
Kinsey Moore [Fri, 18 Jul 2014 19:07:12 +0000 (19:07 +0000)]
Fix build in dev-mode

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

5 years agoastobj2: assert on invalid ref and backtrace cleanup
Scott Griepentrog [Fri, 18 Jul 2014 17:55:38 +0000 (17:55 +0000)]
astobj2: assert on invalid ref and backtrace cleanup

If a reference count goes negative, instead of
just logging that fact, be more helpful with a
backtrace and an assert that will DO_CRASH.

This patch also removes the duplicate ao2_bt()
function and cleans up extraneous usage of the
ast_log_backtrace() call.

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

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

5 years agomedia formats: fix ref leak of peer for mwi subscription
Scott Griepentrog [Fri, 18 Jul 2014 17:42:41 +0000 (17:42 +0000)]
media formats: fix ref leak of peer for mwi subscription

Holding a reference to the peer during mwi subscriptions
resulted in a circular reference because the final event
message would not be sent until destruction of the peer.

Instead, pass the name of the peer to the event callback
so that it can fail gracefully after the peer has gone.

ASTERISK-23959
Review: https://reviewboard.asterisk.org/r/3754/
........

Merged revisions 418636 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agofeature_config: insure featuregroups and applicationmaps are initialized
Scott Griepentrog [Fri, 18 Jul 2014 17:40:54 +0000 (17:40 +0000)]
feature_config: insure featuregroups and applicationmaps are initialized

If the features.conf is missing, the cfg->featurgroups
and cfg->applicationmaps is not initialized, resulting
in assert on ao2_find of a null container.  This patch
changes the initialization call and adds asserts for a
safeguard.

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

Merged revisions 418886 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agofunc_audiohookinherit.c: Fixup some XML documentation wording.
Richard Mudgett [Fri, 18 Jul 2014 16:47:23 +0000 (16:47 +0000)]
func_audiohookinherit.c: Fixup some XML documentation wording.
........

Merged revisions 418937 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoChannels: Masquerades to automatically move frame/audio hooks
Jonathan Rose [Fri, 18 Jul 2014 16:28:10 +0000 (16:28 +0000)]
Channels: Masquerades to automatically move frame/audio hooks

Whenever possible, audiohooks and framehooks will now be copied over
to the channel that the masquerading channel gets cloned into. This
should occur for all audiohooks and most framehooks. As a result,
in Asterisk 12.5 and up, the AUDIOHOOK_INHERIT function is now
deprecated and its behavior is essentially the new default for all
audiohooks, plus some additional audiohooks/framehooks.

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

Merged revisions 418914 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_fax: Provide AMI equivalents for fax CLI commands
Jonathan Rose [Fri, 18 Jul 2014 15:49:46 +0000 (15:49 +0000)]
res_fax: Provide AMI equivalents for fax CLI commands

Specifically the following equivalents were created:
fax show session -> FAXSession
fax show sessions -> FAXSessions
fax show stats -> FAXStats

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

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

5 years agoUpdate config.guess and config.sub
Sean Bright [Fri, 18 Jul 2014 00:11:37 +0000 (00:11 +0000)]
Update config.guess and config.sub

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

5 years agoAdd missing file from previous commit.
Sean Bright [Fri, 18 Jul 2014 00:10:16 +0000 (00:10 +0000)]
Add missing file from previous commit.

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

5 years agoImport Asterisk's autoconf magic instead of using our own.
Sean Bright [Fri, 18 Jul 2014 00:07:48 +0000 (00:07 +0000)]
Import Asterisk's autoconf magic instead of using our own.

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

5 years agoconfigs: Move sample config files into a subdirectory of configs
Matthew Jordan [Thu, 17 Jul 2014 21:17:28 +0000 (21:17 +0000)]
configs: Move sample config files into a subdirectory of configs

This moves all samples configs from configs/ to configs/samples. This allows
for additional sets of sample configuration files to be added in the future.

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

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

5 years agochan_sip: Make progressinband=never really mean 'never'
Matthew Jordan [Thu, 17 Jul 2014 21:04:01 +0000 (21:04 +0000)]
chan_sip: Make progressinband=never really mean 'never'

progressinband=never in sip.conf is easily defeated if an onward trunk sends a
progress indication of its own. This is almost certain to happen if the onward
trunk is ISDN or IAX as these technologies send a progress indication even if
early media is not required. This progress message is passed to the caller,
and causes the "never" option to be rather badly named.

This patch changes the behaviour of this setting in the following ways:

1) In sip_write(), do not pass the media unless we have either progressed
   beyond INV_EARLY_MEDIA, or we are in INV_EARLY_MEDIA state, and early
   media is both set-up and wanted. This helps resolve double-ringing on some
   buggy handsets.

2) In sip_indicate(), if we see AST_CONTROL_PROGRESS, but
   SIP_PROG_INBAND_NEVER is set, send a 180 Ringing instead to avoid implicitly
   enabling early media. Avoid sending double ring indications.

NOTE: the meaning of the SIP_PROGRESS_SENT flag changes slightly in this patch
to also encapsulate the fact that a channel has *sent or received* a 183
Progress indication. This makes the updated code in sip_write() much more
simple.

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

ASTERISK-23972 #close
Reported by: Steve Davies
patches:
  inband_never_present_early_media2 uploaded by Steve Davies (License 5012)

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

5 years agoAdd svn:ignore property
Matthew Jordan [Thu, 17 Jul 2014 20:08:50 +0000 (20:08 +0000)]
Add svn:ignore property

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

5 years agoconfigure: Fix libxml2 development library dependency checking
Matthew Jordan [Thu, 17 Jul 2014 19:31:05 +0000 (19:31 +0000)]
configure: Fix libxml2 development library dependency checking

The commit that added libxml2 support didn't fully check for the libxml2
development script in the Asterisk configure file. As a result, Asterisk could
be configured, then fail on menuselect. This patch fixes it so that Asterisk
should detect the libxml2 dependency failure first.

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

5 years agomenuselect: Add libxml2 support (Patch 3)
Matthew Jordan [Thu, 17 Jul 2014 19:02:22 +0000 (19:02 +0000)]
menuselect: Add libxml2 support (Patch 3)

This is the final patch in adding menuselect to Asterisk.
 - The first patch (r418832) added menuselect along with mxml
 - The second patch (r418833) removed mxml from menuselect

This patch adds support for libxml2 to menuselect, and makes libxml2 a
required library for Asterisk.

Note that the libxml2 portion of this patch was written by Sean Bright,
and was made available on a team branch:
  http://svn.digium.com/svn/menuselect/team/seanbright/libxml2/

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

ASTERISK-20703 #close
patches:
  some_mysterious_team_branch uploaded by seanbright (License 5060)

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

5 years agomenuselect: Remove mxml from menuselect (Patch 2)
Matthew Jordan [Thu, 17 Jul 2014 18:46:06 +0000 (18:46 +0000)]
menuselect: Remove mxml from menuselect (Patch 2)

This is the second patch that adds menuselect to Asterisk trunk. The previous
commit (r418832) added menuselect along with mxml; this patch removes mxml
completely from Menuselect.

A subsequent patch will switch menuselect over to using libxml2, and make
libxml2 a required dependency for Asterisk.

ASTERISK-20703

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

5 years agomenuselect: Add menuselect to Asterisk trunk (Patch 1)
Matthew Jordan [Thu, 17 Jul 2014 18:42:43 +0000 (18:42 +0000)]
menuselect: Add menuselect to Asterisk trunk (Patch 1)

This is the first patch that adds menuselect to Asterisk trunk, and removes
the svn:externals property. This is being done for two reasons:
(1) The removal of external repositories eases a future migration to git
(2) Asterisk is now the only thing that uses menuselect; as a result, there's
    little need to keep it in an external repository

Subsequent patches will remove the mxml dependency from menuselect and tidy
up the build system.

ASTERISK-20703

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

5 years agoTEST_FRAMEWORK: Fix threewaytransfer reporting
Kinsey Moore [Thu, 17 Jul 2014 14:28:16 +0000 (14:28 +0000)]
TEST_FRAMEWORK: Fix threewaytransfer reporting

Ensure that three-way transfers can be reported even if featuremap is
non-NULL.
........

Merged revisions 418810 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoRemove include of astobj.h from channels/dahdi/bridge_native_dahdi.c.
Corey Farrell [Wed, 16 Jul 2014 23:08:19 +0000 (23:08 +0000)]
Remove include of astobj.h from channels/dahdi/bridge_native_dahdi.c.

The include was unneeded, this is split off from r3758 as it applies to 12.
........

Merged revisions 418787 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_pjsip: Support setting a default accountcode on endpoints
Matthew Jordan [Wed, 16 Jul 2014 14:03:51 +0000 (14:03 +0000)]
res_pjsip: Support setting a default accountcode on endpoints

Most channel drivers let you specify a default accountcode to be set on
channels associated with a particular peer/endpoint/object. Prior to this
patch, chan_pjsip/res_pjsip did not support such a setting.

This patch adds a new setting to the res_pjsip endpoint object, 'accountcode'.
When a channel is created that is associated with an endpoint with this value
set, the channel will automatically have its accountcode property set to the
value configured for the endpoint.

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

ASTERISK-24000 #close
Reported by: Matt Jordan
........

Merged revisions 418756 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agocel_pgsql, cdr_pgsql, res_config_pgsql: Add PostgreSQL application_name support
Matthew Jordan [Wed, 16 Jul 2014 13:55:36 +0000 (13:55 +0000)]
cel_pgsql, cdr_pgsql, res_config_pgsql: Add PostgreSQL application_name support

This patch adds support for the PostgreSQL application_name connection setting.
When the appropriate PostgreSQL module's configuration is set with an
application name, the name will be passed to PostgreSQL on connection and
displayed in the database's pg_stat_activity view, as well as in CSV logs. This
aids in managing which applications/servers are connected to a PostgreSQL
database, as well as tracing the activity of those connections.

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

ASTERISK-23737 #close
Reported by: Gergely Domodi
patches:
  pgsql_application_name.patch uploaded by Gergely Domodi (License 6610)

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

5 years agocodec_adpcm: Change description of codec "ADPCM" to "Dialogic ADPCM"
Matthew Jordan [Tue, 15 Jul 2014 23:29:29 +0000 (23:29 +0000)]
codec_adpcm: Change description of codec "ADPCM" to "Dialogic ADPCM"

Technically, ADPCM is a method that can be applied to several codecs.
Asterisk's ADPCM codec is the Dialogic ADPCM or VOX codec.

See http://en.wikipedia.org/wiki/Dialogic_ADPCM for more information
about said codec.

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

patches:
  rb3744.patch uploaded by dennis.guse (License 6513)

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

5 years agomanager: Return ActionID on nominal responses to PresenceState action
Matthew Jordan [Tue, 15 Jul 2014 23:12:33 +0000 (23:12 +0000)]
manager: Return ActionID on nominal responses to PresenceState action

When the PresenceState action is executed, the nominal path fails to include
the ActionID in the successful response. This patch adds a call to
astman_start_ack, which guarantees that an ActionID (if provided) will be
sent back to the AMI client.

Unlike the Asterisk 11 and 12 patches, this patch also deprecates the
duplicate Message key in the response to the action, replacing it with the
key 'PresenceMessage'.

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

ASTERISK-23985 #close
........

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

Merged revisions 418714 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoTEST_FRAMEWORK: Fix ref leak in feature activation
Kinsey Moore [Tue, 15 Jul 2014 23:03:40 +0000 (23:03 +0000)]
TEST_FRAMEWORK: Fix ref leak in feature activation

This fixes two reference leaks that would occur when TEST_FRAMEWORK was
enabled and features were successfully executed.
........

Merged revisions 418715 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agofunc_uri: URIENCODE/URIDECODE - allow empty strings as argument
Jonathan Rose [Tue, 15 Jul 2014 17:57:17 +0000 (17:57 +0000)]
func_uri: URIENCODE/URIDECODE - allow empty strings as argument

Previously these two dialplan functions would issue warnings and
return failure when an empty string is used as the argument. Now
they will not issue a warning and will successfully return an
empty string.

ASTERISK-23911 #close
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3745/
........

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

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

Merged revisions 418650 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoUpdate Asterisk copyright year in main/asterisk.c
Sean Bright [Tue, 15 Jul 2014 12:11:25 +0000 (12:11 +0000)]
Update Asterisk copyright year in main/asterisk.c

It's been 2014 for like... 6 months.

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

5 years agologger.h: Extract DEBUG_ATLEAST() to complement VERBOSITY_ATLEAST().
Richard Mudgett [Mon, 14 Jul 2014 14:55:30 +0000 (14:55 +0000)]
logger.h: Extract DEBUG_ATLEAST() to complement VERBOSITY_ATLEAST().
........

Merged revisions 418586 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoActually delete the removed files.
Richard Mudgett [Mon, 14 Jul 2014 01:45:01 +0000 (01:45 +0000)]
Actually delete the removed files.

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

5 years agoastobj2: work around REF_DEBUG race which causes out of order log entries
Corey Farrell [Sun, 13 Jul 2014 21:57:00 +0000 (21:57 +0000)]
astobj2: work around REF_DEBUG race which causes out of order log entries

* Update refcounter.py to use delta's to track the current reference count.
* Use result from internal_ao2_ref to write old_refcount to refs_log.

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

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

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

Merged revisions 418506 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoastobj2: correct define for ao2_t_cleanup
Scott Griepentrog [Sun, 13 Jul 2014 20:08:37 +0000 (20:08 +0000)]
astobj2: correct define for ao2_t_cleanup

This change maps the ao2_t_cleanup() function to the
correct debug function so that it can be used.

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

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

5 years agoFix minor reference leaks in app_skel and TEST_FRAMEWORK
Corey Farrell [Sun, 13 Jul 2014 16:48:48 +0000 (16:48 +0000)]
Fix minor reference leaks in app_skel and TEST_FRAMEWORK

* Cleanup games object in app_skel.
* Cleanup stasis subscription to TEST_FRAMEWORK in manager.c (12+).

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

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

Merged revisions 418466 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoRemove files left behind on removal of h323, jingle and jabber.
Corey Farrell [Sun, 13 Jul 2014 05:05:49 +0000 (05:05 +0000)]
Remove files left behind on removal of h323, jingle and jabber.

This change removes h323.conf.sample, jingle.h, jabber.h left behind by r3698.

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

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

5 years agoastobj2: Add tag variants for ao2_bump, ao2_cleanup, and ao2_replace
Matthew Jordan [Fri, 11 Jul 2014 23:00:21 +0000 (23:00 +0000)]
astobj2: Add tag variants for ao2_bump, ao2_cleanup, and ao2_replace

Tags are useful in hunting down ref imbalances; this patch adds tag variants
for these commonly used macros/functions.

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

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

5 years agoastobj2: tweak ao2_replace to do nothing when it would be a NoOp
Corey Farrell [Fri, 11 Jul 2014 21:10:45 +0000 (21:10 +0000)]
astobj2: tweak ao2_replace to do nothing when it would be a NoOp

This change causes ao2_replace to do nothing when src == dst. This
avoids REF_DEBUG logging when we're not actually doing anything.

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

Merged revisions 418396 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoconfig: inform config hook of change when writing file
Scott Griepentrog [Fri, 11 Jul 2014 16:42:49 +0000 (16:42 +0000)]
config: inform config hook of change when writing file

When updated configuration is written back to the conf
file - for example when a user changes their voicemail
pin, make sure that any config hook that wants to know
of changes is informed.

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

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

Merged revisions 418369 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoinclude/asterisk/xmpp.h: Convert indentation to tabs
Matthew Jordan [Thu, 10 Jul 2014 15:36:55 +0000 (15:36 +0000)]
include/asterisk/xmpp.h: Convert indentation to tabs

This is a whitespace only change.
........

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

Merged revisions 418324 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agochan_dahdi/sig_pri: Fix type mismatch in the idledial feature's channel creation.
Richard Mudgett [Thu, 10 Jul 2014 01:59:44 +0000 (01:59 +0000)]
chan_dahdi/sig_pri: Fix type mismatch in the idledial feature's channel creation.

Square pegs in round holes don't work very well.
........

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

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

Merged revisions 418263 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoARI: Make mixing bridges propagate linkedids and accountcodes.
Richard Mudgett [Wed, 9 Jul 2014 16:34:51 +0000 (16:34 +0000)]
ARI: Make mixing bridges propagate linkedids and accountcodes.

* Create a Stasis bridge sub-class to propagate linkedids and
accountcodes.

* Fixed the basic bridge sub-class to update peeraccount codes when the
number of channels in the bridge drops back down to two parties.

* Refactored ast_bridge_channel_update_accountcodes() to handle channels
joining/leaving the bridge.

* Fixed the basic bridge sub-class to not call the base bridge class pull
method twice.

AFS-105 #close
ASTERISK-23852 #close
Reported by: Richard Mudgett

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

Merged revisions 418225 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agomanager/ARI: Update version to 2.4.0/1.4.0; Update UPGRADE.txt
Matthew Jordan [Tue, 8 Jul 2014 14:48:30 +0000 (14:48 +0000)]
manager/ARI: Update version to 2.4.0/1.4.0; Update UPGRADE.txt
........

Merged revisions 418182 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_rtp_asterisk: Fix undefined function when PJPROJECT is not installed
Matthew Jordan [Tue, 8 Jul 2014 14:38:42 +0000 (14:38 +0000)]
res_rtp_asterisk: Fix undefined function when PJPROJECT is not installed

The dtls_perform_handshake function was mistakenly placed under the guards for
USE_PJPROJECT. If PJPROJECT was not installed, the function would not be
defined, while other functions would attempt to still use it. This prevented
res_rtp_asterisk from being loaded.

ASTERISK-24001 #close
Reported by: Don Fanning
........

Merged revisions 418172 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_pjsip_dialog_info_body_generator: Add dialog-info+xml support for presence.
Joshua Colp [Mon, 7 Jul 2014 16:08:47 +0000 (16:08 +0000)]
res_pjsip_dialog_info_body_generator: Add dialog-info+xml support for presence.

This module implements dialog-info+xml for the purposes of presence. This means
that phones such as Grandstreams can now subscribe to receive presence information
for an extension.

ASTERISK-21443 #close
Reported by: Matt Jordan

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

Merged revisions 418116 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoARI/res_stasis: Subscribe to both Local channel halves when originating to app
Matthew Jordan [Mon, 7 Jul 2014 02:15:00 +0000 (02:15 +0000)]
ARI/res_stasis: Subscribe to both Local channel halves when originating to app

This patch fixes two bugs:

1. When originating a channel into a Stasis application, we already create a
   subscription for the channel that is going into our Stasis app.
   Unfortunately, when you create a Local channel and pass it off to a Stasis
   app, you really aren't creating just one channel: you're creating two. This
   patch snags the second half of the Local channel pair (assuming it is a
   Local channel pair, but luckily core_local is kind about such assumptions)
   and subscribes to it as well.

2. Subscriptions are a bit sticky right now. If a subscription is made, the
   'interest' count gets bumped on the Stasis subscription - but unless
   something explicitly unsubscribes the channel, said subscription sticks
   around. This is not much of a problem is a user is creating the subscription
   - if they made it, they must want it. However, when we are creating
   implicit subscriptions, we need to make sure something clears them out.
   This patch takes a pessimistic approach: it watches the cache updates
   coming from Stasis and, if we notice that the cache just cleared out an
   object, we delete our subscription object. This keeps our ao2 container of
   Stasis forwards in an application from growing out of hand; it also is a
   bit more forgiving for end users who may not realize they were supposed to
   unsubscribe from that channel that just hung up.

Review: https://reviewboard.asterisk.org/r/3710/
#ASTERISK-23939 #close
........

Merged revisions 418089 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoCEL: Fix incorrect/missing extra field information
Kinsey Moore [Mon, 7 Jul 2014 01:22:44 +0000 (01:22 +0000)]
CEL: Fix incorrect/missing extra field information

This corrects two issues with the extra field information in Asterisk
12+ in channel event logs.

It is possible to inject custom values into the dialstatus provided by
ast_channel_dial_type() Stasis messages that fall outside the
enumeration allowed for the DIALSTATUS channel variable. CEL now
filters for the allowed values and ignores other values.

The "hangupsource" extra field key is always blank if the far end
channel is a chan_pjsip channel. This is because the hangupsource is
never set for the pjsip channel driver. This change sets the
hangupsource whenever a hangup is queued for chan_pjsip channels.

This corrects an issue with the pjsip channel driver where the
hangupcause information was not being set properly.

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

Merged revisions 418071 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agoHTTP: Fix build for gcc 4.10
Kinsey Moore [Mon, 7 Jul 2014 01:10:55 +0000 (01:10 +0000)]
HTTP: Fix build for gcc 4.10
........

Merged revisions 418066 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agomain/Makefile: fix compilation error of buildinfo occurring on 'make install'
Matthew Jordan [Fri, 4 Jul 2014 15:26:58 +0000 (15:26 +0000)]
main/Makefile: fix compilation error of buildinfo occurring on 'make install'

Egads. Another bad deletion of too much when attempting to remove h323 stuff.

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

5 years agoconfigure: Remove last vestiges of h323; DO create menuselect-deps
Matthew Jordan [Fri, 4 Jul 2014 15:11:51 +0000 (15:11 +0000)]
configure: Remove last vestiges of h323; DO create menuselect-deps

The previous patch (r418034) fixed the 'glitch' that the channels/h323
Makefile no longer existed. Unfortunately, removing the entire line was a bit
of a blunder, as it meant that build_tools/menuselect-deps was never
generated. Hilarity ensued when actually trying to compile.

But hey! At least configure worked.

This patch fixes *that* glitch, and removes some more of the vestiges of h323.
(It had tendrils in the main Makefile? Crazy.)

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

5 years agoconfigure: Update script to pass if channels/h323/Makefile.in does not exist
Matthew Jordan [Fri, 4 Jul 2014 14:33:22 +0000 (14:33 +0000)]
configure: Update script to pass if channels/h323/Makefile.in does not exist

This simply removes that check from the configure script, as r418019 removed
chan_h323.

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

5 years agoRemove many deprecated modules
Matthew Jordan [Fri, 4 Jul 2014 13:26:37 +0000 (13:26 +0000)]
Remove many deprecated modules

Billing records are fair,
To get paid is quite bright,
You should really use ODBC;
Good-bye cdr_sqlite.

Microsoft did once push H.323,
Hell, we all remember NetMeeting.
But try to compile chan_h323 now
And you will take quite a beating.

The XMPP and SIP war was fierce,
And in the distant fray
Was birthed res_jabber/chan_jingle;
But neither to stay.

For everyone did care and chase what Google professed.
"Free Internet Calling" was what devotees cried,
But Google did change the specs so often
That the developers were happy the day chan_gtalk died.

And then there was that odd application
Dedicated to the Polish tongue.
app_saycountpl was subsumed by Say;
One could say its bell was rung.

To read and parse a file from the dialplan
You could (I guess) use an application.
app_readfile did fill that purpose, but I think
A function is perhaps better in its creation.

Barging is rude, I'm not sure why we do it.
Inwardly, the caller will probably sigh.
But if you really must do it,
Don't use app_dahdibarge, use ChanSpy.

We all despise the sound of tinny robots
It makes our queues so cold.
To control such an abomination
It's better to not use Wait/SetMusicOnHold.

It's often nice to know properties of a channel
It makes our calls right
We have a nice function called CHANNEL
And so SIPCHANINFO is sent off into the night.

And now things get odd;
Apparently one could delimit with a colon
Properties from the SIPPEER function!
Commas are in; all others are done.

Finally, a word on pipes and commas.
We're sorry. We can't say it enough.
But those compatibility options in asterisk.conf;
To maintain them forever was just too tough.

This patch removes:

* cdr_sqlite
* chan_gtalk
* chan_jingle
* chan_h323
* res_jabber
* app_saycountpl
* app_readfile
* app_dahdibarge

It removes the following applications/functions:

* WaitMusicOnHold
* SetMusicOnHold
* SIPCHANINFO

It removes the colon delimiter from the SIPPEER function.

Finally, it also removes all compatibility options that were configurable from
asterisk.conf, as these all applied to compatibility with Asterisk 1.4 systems.

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

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

5 years agochan_dahdi: Add inband_on_setup_ack compatibility option.
Richard Mudgett [Thu, 3 Jul 2014 22:22:36 +0000 (22:22 +0000)]
chan_dahdi: Add inband_on_setup_ack compatibility option.

The new inband_on_setup_ack option causes Asterisk to assume inband audio
may be present when a SETUP_ACKNOWLEDGE message is received.

Q.931 Section 5.1.3 says that in scenarios with overlap dialing, when a
dialtone is sent from the network side, progress indicator 8 "Inband info
now available" MAY be sent to the CPE if no digits were received with the
SETUP.  It is thus implied that the ie is mandatory if digits came with
the SETUP and dialtone is needed.  This option should be enabled, when the
network sends dialtone and you want to hear it, but the network doesn't
send the progress indicator when needed.

NOTE: For Q.SIG setups this option should be enabled when outgoing overlap
dialing is also enabled because Q.SIG does not send the progress indicator
with the SETUP ACK.

The commit -r413714 (AST-1338) which causes this issue was dealing with a
SIP-to-ISDN interoperability issue.

This commit is a merge of the two patches indicated below.

ASTERISK-23897 #close
Reported by: Pavel Troller
Patches:
      pri-4.diff (license #6302) patch uploaded by Pavel Troller
      jira_asterisk_23897_v11.patch (license #5621) patch uploaded by rmudgett

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

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

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

Merged revisions 417958 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agores_ari: Fix some off-nominal paths just dropping the HTTP connection.
Richard Mudgett [Thu, 3 Jul 2014 19:06:12 +0000 (19:06 +0000)]
res_ari: Fix some off-nominal paths just dropping the HTTP connection.

* Removed some incorrect newlines on ast_http_error() messages in
manager.c.

* Removed an incorrect newline in res_ari_channels.c.

Addendum to ASTERISK-23552
........

Merged revisions 417932 from http://svn.asterisk.org/svn/asterisk/branches/12

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

5 years agochan_dahdi: Add AMI commands for controlling PRI debugging output
Jonathan Rose [Thu, 3 Jul 2014 17:34:32 +0000 (17:34 +0000)]
chan_dahdi: Add AMI commands for controlling PRI debugging output

Adds the following AMI commands:
PRIDebugSet - Set PRI debug levels for a specific span
PRIDebugFileSet - Set the file used for PRI debug message output
PRIDebugFileUnset - Disables file output for PRI debug messages

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

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

5 years agopbx_config: Add manager actions to add/remove extensions
Jonathan Rose [Thu, 3 Jul 2014 17:20:00 +0000 (17:20 +0000)]
pbx_config: Add manager actions to add/remove extensions

Adds two new manager commands to pbx_config - DialplanExtensionAdd and
DialplanExtensionRemove which allow manager users to create and delete
extensions respectively.

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

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