Commit Graph

25390 Commits

Author SHA1 Message Date
Matthew Jordan
96534bcb03 manager: bump version to 2.0.0
AMI has received substantial updates over the past year. Not only has the
syntax been vastly improved and made consistent (which entails many event
changes), but the underlying things that those events convey have changed
substantially as well.

After some conversation in #asterisk-dev, it was agreed that this is a good
time to jump to 2.

At the same time, since ARI will most likely use semantic versioning, we
might as well use that for AMI as well. That also affords us greater meaning
for the AMI version.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404421 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-20 19:17:05 +00:00
Richard Mudgett
818beab605 Whitespace fixes.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404419 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-20 19:06:12 +00:00
Rusty Newton
a39d63f4fa Documentation: Updates for info about NAT-related settings and fixes for pjsip.conf.sample
Added another NAT example to pjsip.conf.sample. We had a few mentions of NAT configuration throughout the sample, but I added another for a little bit more clarity.

Additionally many pjsip options were affected by the change to snake case, so I fixed any instances of those options in pjsip.conf.

I regenerated the config option list (at the bottom of the file) from a new xml config doc dump, so all the snake case changes should be reflected there, as well as any other changes to those options.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404405 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-20 17:21:33 +00:00
Richard Mudgett
1d8f5a2a39 Put notice in CHANGES as well as UPGRADE.txt.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 18:15:53 +00:00
Joshua Colp
28a7707095 res_pjsip: Ignore 401/407 responses for transactions and dialogs we don't know about.
Under normal conditions it is unlikely we will ever receive a response for a transaction
or dialog we don't know about but if any are received ignore them.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 17:58:46 +00:00
Joshua Colp
2f310cee51 res_pjsip_session: Fix SDP negotiation when resending an INVITE with authentication.
The process for resending an INVITE with authentication involves restarting the UAC
session. We were incorrectly passing in that a new offer is being sent, causing the
SDP negotiation to get into a (technically speaking) funky state.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404369 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 17:47:30 +00:00
Mark Michelson
911488a16f Fix a deadlock that occurred due to a conflict of masquerades.
For the explanation, here is a copy-paste of the review board explanation:

Initially, it was discovered that performing an attended transfer of a
multiparty bridge with a PJSIP channel would cause a deadlock. A PBX thread
started a masquerade and reached the point where it was calling the fixup()
callback on the "original" channel. For chan_pjsip, this involves pushing a
synchronous task to the session's serializer. The problem was that a task ahead
of the fixup task was also attempting to perform a channel masquerade. However,
since masquerades are designed in a way to only allow for one to occur at a
time, the task ahead of the fixup could not continue until the masquerade
already in progress had completed. And of course, the masquerade in progress
could not complete until the task ahead of the fixup task had completed.
Deadlock.

The initial fix was to change the fixup task to be asynchronous. While this
prevented the deadlock from occurring, it had the frightful side effect of
potentially allowing for tasks in the session's serializer to operate on a
zombie channel.

Taking a step back from this particular deadlock, it became clear that the
problem was not really this one particular issue but that masquerades
themselves needed to be addressed. A PJSIP attended transfer operation calls
ast_channel_move(), which attempts to both set up and execute a masquerade. The
problem was that after it had set up the masquerade, the PBX thread had swooped
in and tried to actually perform the masquerade. Looking at changes that had
been made to Asterisk 12, it became clear that there never is any time now that
anyone ever wants to set up a masquerade and allow for the channel thread to
actually perform the masquerade. Everyone always is calling ast_channel_move(),
performs the masquerade itself before returning.

In this patch, I have removed all blocks of code from channel.c that will
attempt to perform a masquerade if ast_channel_masq() returns true. Now, there
is no distinction between setting up a masquerade and performing the
masquerade. It is one operation. The only remaining checks for
ast_channel_masq() and ast_channel_masqr() are in ast_hangup() since we do not
want to interrupt a masquerade by hanging up the channel. Instead, now
ast_hangup() will wait for a masquerade to complete before moving forward with
its operation.

The ast_channel_move() function has been modified to basically in-line the
logic that used to be in ast_channel_masquerade(). ast_channel_masquerade() has
been killed off for real. ast_channel_move() now has a lock associated with it
that is used to prevent any simultaneous moves from occurring at once. This
means there is no need to make sure that ast_channel_masq() or
ast_channel_masqr() are already set on a channel when ast_channel_move() is
called. It also means the channel container lock is not pulling double duty by
both keeping the container locked and preventing multiple masquerades from
occurring simultaneously.

The ast_do_masquerade() function has been renamed to do_channel_masquerade()
and is now internal to channel.c. The function now takes explicit arguments of
which channels are involved in the masquerade instead of a single channel.
While it probably is possible to do some further refactoring of this method, I
feel that I would be treading dangerously. Instead, all I did was change some
comments that no longer are true after this changeset.

The other more minor change introduced in this patch is to res_pjsip.c to make
ast_sip_push_task_synchronous() run the task in-place if we are already a SIP
servant thread. This is related to this patch because even when we isolate the
channel masquerade to only running in the SIP servant thread, we would still
deadlock when the fixup() callback is reached since we would essentially be
waiting forever for ourselves to finish before actually running the fixup. This
makes it so the fixup is run without having to push a task into a serializer at
all.

(closes issue ASTERISK-22936)
Reported by Jonathan Rose

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404356 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 17:15:03 +00:00
Richard Mudgett
c8b02bc487 udptl: Dead code elimination. ast_udptl_bridge was not used.
Removing dead code starting with ast_udptl_bridge() eliminated the code in
this change.

Note: This code has actually been dead since Asterisk v1.4 when it was
first put in.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 17:03:55 +00:00
Scott Griepentrog
2a1275abf9 res_fax.c: crash on framehook with no dsp in fax detect
In fax_detect_framehook() a null pointer reference can occur where a
voice frame is processed but no dsp is attached to the fax detection
structure.  The code block that rejects frames that detection cannot
be processed on is checking for dsp but falls through when it should
instead return, as this change implements.

(closes issue ASTERISK-22942)
Reported by: adomjan
Review: https://reviewboard.asterisk.org/r/3076/
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 17:02:16 +00:00
Richard Mudgett
a624ee8afe Voicemail: Remove mailbox identifier format (box@context) assumptions in the system.
This change is in preparation for external MWI support.

Removed code from the system for normal mailbox handling that appends
@default to the mailbox identifier if it does not have a context.  The
only exception is the legacy hasvoicemail users.conf option.  The legacy
option will only work for app_voicemail mailboxes.  The system cannot make
any assumptions about the format of the mailbox identifer used by
app_voicemail.

chan_sip and chan_dahdi/sig_pri had the most changes because they both
tried to interpret the mailbox identifier.  chan_sip just stored and
compared the two components.  chan_dahdi actually used the box
information.

The ISDN MWI support configuration options had to be reworked because
chan_dahdi was parsing the box@context format to get the box number.  As a
result the mwi_vm_boxes chan_dahdi.conf option was added and is documented
in the chan_dahdi.conf.sample file.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404348 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 16:37:56 +00:00
Scott Griepentrog
294b65e9e4 astdb: crash in sqlite3 during shutdown
When Asterisk is shut down, the astdb_atexit() function releases
(finalize) the previously initiated (prepared) SQL statements in
sqlite3.  Another thread making a subsequent request can cause a
crash in sqlite3.  This patch eliminates that issue by resetting
the statement pointer after it is released/cleared.  The sqlite3
code detects the null pointer, and aborts the operation cleanly.

(closes issue AST-1265)
Reported by: Alexander Hömig
(closes issue ASTERISK-22350)
Reported by: Birger "WIMPy" Harzenetter
Review: https://reviewboard.asterisk.org/r/3078/
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404345 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 16:31:57 +00:00
Joshua Colp
be58afd8df channel: Add a missing ast_channel_unlock when allocating a Surrogate channel.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404332 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 12:17:52 +00:00
Alexandr Anikin
e05dde88e7 Handle temporary failures on gk registration
Introduce new 'stopped' state for gk client and restart gk client
on failures
Remove ooh323 stack command lock as it is not need now.
(closes issue ASTERISK-21960)
Reported by: Dmitry Melekhov
Patches:
	ASTERISK-21960.patch
	ASTERISK-21960-stacklockup-2.patch
Tested by: Dmitry Melekhov
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404320 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 08:19:46 +00:00
Damien Wedhorn
a284c23e6f Fixup some skinny bugs causing Fracks and ao2 cleanup issues.
Moved channel locking into setsubstate so that a process can complete
working on a sub before another starts changing it. The existing code
was causing some Fracks with schedule deletion.

Removed multiple rtp cleanup. Now only cleansup up once, fixing ao2 
object cleanup issues.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404306 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 02:53:33 +00:00
Matthew Jordan
655decc57e app_cdr,app_forkcdr,func_cdr: Synchronize with engine when manipulating state
When doing the rework of the CDR engine that pushed all of the logic into cdr.c
and made it respond to changes in channel state over Stasis, we knew that
accessing the CDR engine from the dialplan would be "slightly"
non-deterministic. Dialplan threads would be accessing CDRs while Stasis
threads would be updating the state of said CDRs - whereas in the past,
everything happened on the dialplan threads. Tests have shown that "slightly"
is in reality "very".

This patch synchronizes things by making the dialplan applications/functions
that manipulate CDRs do so over Stasis. ForkCDR, NoCDR, ResetCDR, CDR, and
CDR_PROP now all use Stasis to send their requests over to the CDR engine,
and synchronize on the channel Stasis topic via a subscription so that they
return their values/control to the dialplan at the appropriate time.

While going through this, the following changes were also made:
 * DISA, which can reset the CDR when a user successfully authenticates, now
   just uses the ResetCDR app to do this. This prevents having to duplicate
   the same Stasis synchronization logic in that application.
 * Answer no longer disables CDRs. It actually didn't work anyway - calling
   DISABLE on the channel's CDR doesn't stop the CDR from getting the Answer
   time - it just kills all CDRs on that channel, which isn't what the caller
   would intend.

(closes issue ASTERISK-22884)
(closes issue ASTERISK-22886)

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 00:47:01 +00:00
Damien Wedhorn
bf64cbe440 Fixup skinny registration following network issues.
On session registration, if device is already reporting that it is
connected to a device, an innocuous packet (update time) is sent to
the already connected device. If the tcp connection is down, the
device will be unregistered and the new connection allowed.

Without this patch, network issues can see a situation where a device
can not reregister until after 3*timeout.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404292 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 00:29:09 +00:00
Jason Parker
812959d595 Add AMI event for presence state.
Review: https://reviewboard.asterisk.org/r/3039/
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 22:50:47 +00:00
Richard Mudgett
15894896aa ooh323c: Fix gcc 4.6.3 compiler warnings.
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404263 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 20:57:50 +00:00
Kevin Harwell
61adf6ba38 chan_oss.c: channel being locked twice and unlocked once
Removed channel lock as it is now being down in ast_channel_alloc



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 20:46:08 +00:00
Kevin Harwell
d1b70b8e43 channel locking: Add locking for channel snapshot creation
Original commit message by mmichelson (asterisk 12 r403311):

"This adds channel locks around calls to create channel snapshots as well
as other functions which operate on a channel and then end up
creating a channel snapshot. Functions that expect the channel to be
locked prior to being called have had their documentation updated to
indicate such."

The above was initially committed and then reverted at r403398.  The problem
was found to be in core_local.c in the publish_local_bridge_message function.
The ast_unreal_lock_all function locks and adds a reference to the returned
channels and while they were being unlocked they were not being unreffed when
no longer needed.  Fixed by unreffing the channels.

Also in bridge.c a lock was obtained on "other->chan", but then an attempt was
made to unlock "other" and not the previously locked channel.  Fixed by
unlocking "other->chan"

(closes issue ASTERISK-22709)
Reported by: John Bigelow






git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 20:25:39 +00:00
Joshua Colp
f4d662add6 channels: Return allocated channels locked.
This change makes ast_channel_alloc return allocated channels
locked. By doing so no other thread can acquire, lock, and manipulate
the channel before it is completely set up.

(closes issue AST-1256)

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404204 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 19:20:02 +00:00
Matthew Jordan
8385e4ba61 ari: Bump the version of ARI to 1.0.0
(closes issue ASTERISK-23007)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 12:36:40 +00:00
Joshua Colp
9c0738b3a7 res_calendar: Protect channel when adding datastore.
This change adds a missing channel lock when adding a datastore
to a channel.
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404137 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 12:00:51 +00:00
Rusty Newton
d4e37e824a func_strings: Documentation fix for QUOTE()
Example output was inaccurate.

(issue ASTERISK-22970)
(closes issue ASTERISK-22970)
Reported by: Gareth Palmer
Patches:
   func_strings.patch uploaded by Gareth Palmer (license 5169)
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404099 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 00:35:40 +00:00
Matthew Jordan
68e9c3baaf LICENSE: Update language to include ARI
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404050 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-18 00:16:30 +00:00
Jonathan Rose
4316d3ec27 tests: fix ast_bridge_base_new calls not using the additional arguments
r404042 gave ast_bridge_base_new two new arguments for setting a bridge creator
and name. Unfortunately since a couple test modules aren't compiled by default,
I missed the fact that this change impacted those tests and caused compilation
failures against them.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404048 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 23:50:38 +00:00
Rusty Newton
1703d1e1fd Several components: fixing Typos in comments and code, "avaliable" instead of "available"
(issue ASTERISK-23021)
(closes issue ASTERISK-23021)
Reported by: Jeremy Lainé
Tested by: Rusty Newton
Patches:
   available.patch uploaded by Jeremy Lainé (license 6561)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 23:36:56 +00:00
Jonathan Rose
93a096fe9f bridging: Give bridges a name and a known creator
Bridges have two new optional properties, a creator and a name.
Certain consumers of bridges will automatically provide bridges that
they create with these properties. Examples include app_bridgewait,
res_parking, app_confbridge, and app_agent_pool. In addition, a name
may now be provided as an argument to the POST function for creating
new bridges via ARI.

(closes issue AFS-47)
Review: https://reviewboard.asterisk.org/r/3070/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 23:17:32 +00:00
Joshua Colp
9c6dafcdbd res_sorcery_config: Output an error message when an object can't be created.
If object creation fails an error message will now be output with the id, type,
and configuration file.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 18:34:16 +00:00
Joshua Colp
73600222b3 framehooks: Re-iterate if framehook provides different frame.
Framehooks can be used in a reactive manner to execute specific logic
when a frame is received with a certain type and payload. Since it is
possible for framehooks to provide frames it was possible for this
reactive framehook to be unaware of frames it is looking for.

This change makes it so that when framehooks return a modified frame
the code will now re-iterate (from the beginning) and call any
previous framehooks that have not provided a modified frame themselves.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404027 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 18:25:26 +00:00
David M. Lee
ffaf8857f1 Changed the default for live_dangerously to no
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404006 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 14:33:35 +00:00
Matthew Jordan
66853660ec ari/resource_channels: When creating a channel, specify a default format (SLIN)
When creating channels via ARI, the current code fails to provide any default
format capabilities. For non-virtual channels this isn't really a problem -
the channels typically receive their capabilities as a result of the
underlying channel driver configuration. For virtual channels (such as Local
channels), the lack of any format capabilities causes the Asterisk core to
make some 'odd' choices with respect to the translation paths. The issue
reporter had some paths that had 3 hops on each channel leg, causing multiple
transcodings and some really crappy audio/performance.

By specifying a baseline of SLIN, we prevent that from occurring. Note that
this is what AMI does when it performs an Originate, as does res_clioriginate.

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

(issue ASTERISK-22962)
Reported by: Matt DiMeo


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403993 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-17 12:51:51 +00:00
David M. Lee
66ee458f07 security: Inhibit execution of privilege escalating functions
This patch allows individual dialplan functions to be marked as
'dangerous', to inhibit their execution from external sources.

A 'dangerous' function is one which results in a privilege escalation.
For example, if one were to read the channel variable SHELL(rm -rf /)
Bad Things(TM) could happen; even if the external source has only read
permissions.

Execution from external sources may be enabled by setting
'live_dangerously' to 'yes' in the [options] section of asterisk.conf.
Although doing so is not recommended.

Also, the ABI was changed to something more reasonable, since Asterisk
12 does not yet have a public release.

(closes issue ASTERISK-22905)
Review: http://reviewboard.digium.internal/r/432/
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403959 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-16 18:31:27 +00:00
Jonathan Rose
3a3c7d088b transfers: Fix bug setting both BLINDTRANSFER and ATTENDEDTRANSFER
The ast_bridge_set_transfer_variables function is supposed to wipe whichever
variable isn't being set. Instead it was setting both to the new value.  Oops.

(issue AFS-24)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403957 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-16 18:22:14 +00:00
Scott Griepentrog
6663e142ef pbx.c: put copy of ast_exten.data on stack to prevent memory corruption
During dialplan execution in pbx_extension_helper(), the contexts global
read lock prevents link list corruption, but was released with a pointer
to the ast_exten and data later used in variable substitution.  Instead,
this patch removes pbx_substitute_variables() and locates a copy of the
ast_exten data on the stack before releasing the lock, where ast_exten
could get free'd by another thread performing a module reload.

(issue AST-1179)
Reported by: Thomas Arimont
(issue AST-1246)
Reported by: Alexander Hömig
Review: https://reviewboard.asterisk.org/r/3055/
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-16 16:11:38 +00:00
Scott Griepentrog
dc188ae39d app_sms: BufferOverflow when receiving odd length 16 bit message
This patch prevents an infinite loop overwriting memory when
a message is received into the unpacksms16() function, where
the length of the message is an odd number of bytes.

(closes issue ASTERISK-22590)
Reported by: Jan Juergens
Tested by: Jan Juergens


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-16 15:29:30 +00:00
Matthew Jordan
2ebb01a3e6 pjsip/dialplan_functions: Use the right buffer length when printing URIs
While entertaining, sizeof(buflen) is not the same as buflen. Doh.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403823 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-15 01:38:16 +00:00
Joshua Colp
db930057fd res_pjsip: Apply outbound proxy to all SIP requests.
Objects which are involved in SIP request creation and sending
now allow an outbound proxy to be specified. For cases where
an endpoint is used the outbound proxy specified there will
be applied.

(closes issue ASTERISK-22673)
Reported by: Antti Yrjola

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403811 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-14 17:25:51 +00:00
Joshua Colp
6e7d64c79d res_stasis: Expose event for call forwarding and follow forwarded channel.
This change adds an event for when an originated call is redirected to
another target. This event contains the original channel and the newly
created channel. If a stasis subscription exists on the original originated
channel for a stasis application then a new subscription will also be
created on the stasis application to the redirected channel. This allows
the application to follow the call path completely.

(closes issue ASTERISK-22719)
Reported by: Joshua Colp

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-14 17:15:54 +00:00
Jonathan Rose
b602348140 documentation: Add PJSIP technology to messaging documentation
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403796 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 21:24:31 +00:00
Richard Mudgett
6ee1da4b52 test.c: Fix too sticky unit test failed status.
Rerunning a failed unit test after loading any required modules should
allow the test to report a pass status if it now passes.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403782 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 20:06:53 +00:00
Jonathan Rose
95795aa36b Transfers: Make Asterisk set ATTENDEDTRANSFER/BLINDTRANSFER more reliably
There were still a few cases in which ATTENDEDTRANSFER and BLINDTRANSFER
wouldn't be set on channels involved with blind and attended transfers.
This would happen with features that were initialized by channel driver
specific mechanisms in multiparty calls. This patch resolves those cases
while attempted to keep the behavior for setting those variables as
consistent as possible.

(closes issue AFS-24)
Review: https://reviewboard.asterisk.org/r/3040/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403781 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 20:04:41 +00:00
Richard Mudgett
f22ac347fc test_voicemail_api: Add check for a registered voicemail provider before tests.
It is much nicer diagnosing a test failure if app_voicemail is actually
loaded.
........

Merged revisions 403726 from http://svn.asterisk.org/svn/asterisk/trunk


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 19:55:31 +00:00
Richard Mudgett
5f0d590b2e app_voicemail: Voicemail callback registration/unregistration function improvements.
* The voicemail registration/unregistration functions now take a struct of
callbacks instead of a lengthy parameter list of callbacks.

* The voicemail registration/unregistration functions now prevent a
competing module from interfering with an already registered callback
supplying module.
........

Merged revisions 403643 from http://svn.asterisk.org/svn/asterisk/trunk


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403779 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 19:48:05 +00:00
Kevin Harwell
9aea346918 bridge_native_rtp: Deadlock during 4-way conference creation
The change contains a slightly adjusted patch that was on the issue
(submitted by kmoore).  A fix was made by adding in a bridge lock
while calling bridge_start/stop from the framehook callback.  Since
the framehook callback is not called from the bridging core the bridge
is not locked, but needs to be before calling bridge_start.

(closes issue ASTERISK-22749)
Reported by: Kinsey Moore
Review: https://reviewboard.asterisk.org/r/3066/
Patches:
     lock_inversion.diff uploaded by kmoore (license 6273)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403767 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 18:24:47 +00:00
Kevin Harwell
0948170edb ARI: Allow specifying channel variables during a POST /channels
Added the ability to specify channel variables when creating/originating a
channel in ARI.  The variables are sent in the body of the request and should
be formatted as a single level JSON object.  No nested objects allowed.
For example: {"variable1": "foo", "variable2": "bar"}.

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403752 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 17:17:48 +00:00
Kevin Harwell
010983be91 ARI: Adding a channel to a bridge while a live recording is active blocks
Added the ability to have rules that are checked when adding and/or removing
channels to/from a bridge.  In this case, if a channel is currently recording
and someone attempts to add it to a bridge an "is recording" rule is checked,
fails, and a 409 conflict is returned.

Also command functions now return an integer value that can be descriptive of
what kind of problems, if any, occurred before or during execution.

(closes issue ASTERISK-22624)
Reported by: Joshua Colp
Review: https://reviewboard.asterisk.org/r/2947/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403749 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 16:32:53 +00:00
David M. Lee
6fc1e9b81e Setting svn:ignore
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403748 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 16:27:30 +00:00
Matthew Jordan
d5820a01e6 channels/Makefile: clean pjsip directory
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403736 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-13 05:00:05 +00:00
Scott Griepentrog
3cd07b4989 realtime: Create extensions in alembic ast-db-manage contribution
When the alembic scripts were written for creating Asterisk
realtime databases the extensions table for dialplan wasn't
included.  This update creates the extensions table.

(closes issue ASTERISK-22815)
Reported by: Zone Conkle
Review: https://reviewboard.asterisk.org/r/3064/



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@403713 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-12 19:44:23 +00:00