Commit Graph

25233 Commits

Author SHA1 Message Date
Richard Mudgett
723b89510d chan_iax2: Block unnecessary control frames to/from the wire.
Establishing an IAX2 call between Asterisk v1.4 and v1.8 (or later)
results in an unexpected call disconnect.  The problem happens because
newer values in the enum ast_control_frame_type are not consistent between
the branch versions of Asterisk.

For example:
1) v1.4 calls v1.8 (or later) using IAX2

2) v1.8 answers and sends a connected line update control frame.  (on v1.8
AST_CONTROL_CONNECTED_LINE = 22)

3) v1.4 receives the control frame as an end-of-q (on v1.4
AST_CONTROL_END_OF_Q = 22)

4) v1.4 disconnects the call once the receive queue becomes empty.

Several things are done by this patch to fix the problem and attempt to
prevent it from happening again in the future:

* Added a warning at the definition of enum ast_control_frame_type about
how to add new control frame values.

* Made block sending and receiving control frames that have no reason to
go over the wire.

* Extended the connectedline iax.conf parameter to also include the
redirecting information updates.

* Updated the connectedline iax.conf parameter documentation to include a
notice that the parameter must be "no" when the peer is an Asterisk v1.4
instance.

(closes issue AST-1302)

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

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407729 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-07 18:18:26 +00:00
Matthew Jordan
660bce4d6a security_events: Fix error caused by DTD validation error
The appdocsxml.dtd specifies that a "required" attribute in a parameter may
have a value of yes, no, true, or false. On some systems, specifying "False"
instead of "false" would cause a validation error. This patch fixes the casing
to explicitly match the DTD.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407676 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-07 16:46:14 +00:00
Tzafrir Cohen
3174b2cd3c indications.conf: add stutter tone; end properly
* If the "stutter" (voicemail indication) tone is indeed a stutter tone,
  and it ends with a constant tone, make sure that it is the dial tone.
  This was done for India (in), Mexico (mx) and the Philippines (ph).
* If no "stutter" tone exists for a country, provide one. This was done for
  Spain (es), Malaysia (my) and Venezuela (ve).

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

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407624 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-07 13:13:39 +00:00
Matthew Jordan
58acb5e4d4 security_events: Add AMI documentation; output optional fields
This patch adds documentation for the Security Events that are emited over
AMI. It also notes these events in the UPGRADE/CHANGES file.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407589 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-06 20:06:57 +00:00
Rusty Newton
7c6fb702c9 configs/pjsip.conf.sample: Configuration section naming in pjsip.conf.sample needs a little clarification
There is a bit of nuance to how you name things in pjsip.conf. This is a documentation patch to at least clear it up a little for users.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407587 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-06 19:57:51 +00:00
Kevin Harwell
54102cd479 pjsip realtime: already created enum failure for postgresql
If an enum had been previously created the alembic script would attempt to
re-create it and an error would be generated while running migrations for a
postgresql server.  The work around for this is to use the ENUM object type
for postgres as opposed to the generic enum type used by sqlalchemy. Using
this type in the script seems to work properly for both postgres and mysql.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407572 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-06 17:54:42 +00:00
Richard Mudgett
a4e2316310 res_pjsip: Updates and adds more PJSIP CLI commands.
* Adds identify, transport, and registration support to the PJSIP CLI.

* Creates three additional callbacks, one for an iterator, one for a
comparator, and one for a container.  This eliminates the link dependency
from higher level modules to lower level ones.

* Eliminates duplicate sorting in PJSIP CLI commands.

* Cleans up PJSIP CLI output formatting.

* Pushes CLI command registration down to the implementing source file.

* Adds several ast_sip_destroy_sorcery functions to complement existing
ast_sip_sorcery_initialize functions.  The destroy functions unregister
PJSIP CLI commands and PJSIP CLI formatters.

Reported by: George Joseph

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-06 17:06:47 +00:00
Mark Michelson
2b0693a7d5 Fix alembic script to work properly in offline mode.
When run in offline mode, this would attempt to check the database for
the presence of a type it was going to try to create. I now check the
context to see if we're running in offline mode and change a parameter
accordingly.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407567 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-06 16:53:24 +00:00
Rusty Newton
fac7b3e14e formats/format_wav: enhancing log message "Not a wav file" to be clear on what is supported
Modifying the log message to be more specific as to what is supported. Specifically it seems format_wav supports only PCM encoded versions with a lower-case '.wav' extension.

(closes issues ASTERISK-22310)
Reported by: Jim Credland
Review: https://reviewboard.asterisk.org/r/3188/
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407513 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 23:03:01 +00:00
Jonathan Rose
0fb5506932 CHANGES: Improved description of Name/Creator changes to bridge ARI, adds AMI
The changes log was written with language that was a little too internal
Asterisk specific, so it's been changed to be more in the frame of reference
of an ARI user. Also, previously the AMI event changes were omitted from the
change log as well as the ability to include a bridge name in the ARI post
bridges command.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 20:55:43 +00:00
Jonathan Rose
12668f71f9 Blocked revisions 407457
........
chan_local: Fix reversed LocalOptimization field in LocalBridge event

(closes issue ASTERISK-23232)
Reported by: Leon Roy


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407460 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 20:47:46 +00:00
Kinsey Moore
fb4e17c0d6 Logger: Fix handling of absolute paths
This fixes path handling for log files so that an extra / is not
appended to the file path when the path is absolute (begins with /).
This would previously result in different but functionally equivalent
paths in the output of 'logger show channels'.
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407458 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 20:43:07 +00:00
Kevin Harwell
faec988a5c res_pjsip: When no global type the debug option defaults to "yes"
If the global section was not specified in pjsip.conf then the configuration
object does not exist in sorcery so when retrieving "debug" option it would
return NULL.  Then the NULL result was passed to ast_false utils function
which would return false because it wasn't set to some representation of
false, thus enabling sip debug logging.  Made it so if the global config object
does not exist then it will return a default of "no" for sip debugging.

(issue ASTERISK-23038)
Reported by: Rusty Newton



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407442 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 19:41:48 +00:00
Kinsey Moore
88de17bba6 UPGRADE: Note change in behavior for device state subscriptions
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407423 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 17:27:27 +00:00
Jonathan Rose
a9b8d3e669 CHANGES: Update changes log to include new bridge fields added in r404042
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407419 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 17:12:52 +00:00
Matthew Jordan
0365b85a35 ARI/AMI: Update versions; update UPGRADE/CHANGES notes for 12.1.0 changes
Due to backwards compatible changes made to AMI/ARI, the version needs to
be bumped to 1.1.0/2.1.0, respectively.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407402 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 14:22:16 +00:00
Matthew Jordan
e970ea2dc4 api.wiki.mustache: Update wiki template to support body parameters
This patch updates the api.wiki.mustache template and the swagger_model python
script to understand if an operation has a body parameter. If an operation
does have a body parameter, it will now be displayed in the corresponding
wiki entry.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407389 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-05 00:08:50 +00:00
Richard Mudgett
5b83882bee devicestate: Make ast_devstate_changed_literal() return value and doxygen consistent.
Nothing actually cares about the value anyway.

(closes issue ASTERISK-23178)
Reported by: Jonathan Rose
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-04 20:08:35 +00:00
Richard Mudgett
0cef24086d res_pjsip: Fix assertion for pjsip.conf authorization list options.
(closes issue ASTERISK-23168)
Reported by: George Joseph

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407324 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-04 18:35:47 +00:00
Richard Mudgett
c45f8fa658 tcptls.c: Made TLS handle a certificate chain file.
Thanks to Guillaume Martres for doing the necessary research to validate
the change.

(closes issue ASTERISK-17727)
Reported by: LN
Patches:
      use_certificate_chain.patch (license #5864) patch uploaded by st
      documente_certificate_chain.patch (license #6576) patch uploaded by Guillaume Martres
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-04 18:06:44 +00:00
Matthew Jordan
374c2f3f0c funcs/func_cdr: Fix non-epoch timestamps broken by improper char array deref
Thanks to snuffy for pointing this issue out and fixing it.

(closes issue ASTERISK-23250)
Reported by: snuffy
patches:
  func_cdr-fix.diff uploaded by snuffy (License 5024)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-04 16:54:21 +00:00
Joshua Colp
cf8699f3bb res_clialiases: Fix crash when reloading and re-aliasing an alias that is in use.
The code assumed that unregistering the alias would always succeed while in
practice this is not actually true. A common case is the "reload" command itself.
If the cli_aliases.conf configuration file was changed and reload executed the
command would fail to unregister and ultimately point to freed memory.

The reload process now checks whether unregistering succeeded or not and if not
the old CLI alias is retained.

(closes issue ASTERISK-19773)
Reported by: Joel Vandal

(closes issue ASTERISK-22757)
Reported by: Gareth Blades
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407213 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-04 02:21:31 +00:00
Damien Wedhorn
7eae4aaafe Skinny - Fix deadlock when pickup of no call.
Locking issues in skinny when picking up a call that doesn't exist. Cleaned 
up sub locking by fully removing and using the chan lock instead. Also
changed ast_call_pickup to check whether chan was masq'd.

(closes issue ASTERISK-23249)
Reported by: wedhorn
Tested by: snuffy, myself
Patches: 
    skinny-locking01.diff uploaded by wedhorn (license 5019)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407197 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-04 02:04:18 +00:00
Matthew Jordan
ccfeee3513 cdrs: Check for applications to lock onto during dial begin handling
This patch brings CDR processing further in line with r407085. During some dial
operations, the application would not be locked to the Dial application and
would instead continue to show the previously known application. In particular,
this would occur when a Parked call would time out. This was due to a previous
snapshot already locking the application to Park - processing this in a Dial
Begin allows the Dial application to reassert its rightful place.

(CDRs. Ugh.)

But hooray for the Parked Call tests for catching this in the Asterisk Test
Suite.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-03 01:14:27 +00:00
Joshua Colp
f0fb4acc75 res_stasis: Enable transfers and provide events when they occur.
This change enables transfers within ARI created bridges and adds events
for when they occur. Unlike other events these will be received if *any*
subscribed object is involved in the transfer.

(closes issue ASTERISK-22984)
Reported by: David M. Lee

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-01 16:23:56 +00:00
Corey Farrell
9d66792866 app_stack: protect against missing parameters to STACK_PEEK and LOCAL_PEEK
STACK_PEEK requires 2 parameters and LOCAL_PEEK requires 1 parameter.  This
protects against situations where those parameters are blank or missing by
logging an error and returning.

(closes issue ASTERISK-23220)
Reported by: James Sharp
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407104 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-02-01 00:24:55 +00:00
Matthew Jordan
3de88f99ba CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
    overall state of the Dial operation after the called party answers. This
    means that publishing the DialEnd event when the called party is premature;
    we have to wait for the execution of these subroutines to complete before
    we can signal the overall status of the DialEnd. This patch moves that
    publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
    datastore is detected. This flag was preventing CDRs from being recorded
    for all outbound channels that had a 'continue' option enabled on them by
    the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
    application if it detects that the current CDR has entered that app. This
    is similar to the logic that is done for Parking. In general, if we entered
    into Dial, then we want that CDR to record the application as such - this
    prevents pre-dial handlers, mid-call handlers, and other shenaniganry
    from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
    to determine if the channel is in hangup logic or dead. In either case, we
    don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
    general, you don't want to see CDRs in the 'h' exten or in hangup logic.
    Since the semantics of that option changed in 12, it made sense to update
    the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
    published to the CDR topic, on shutdown the CDR engine will now synchronize
    to the messages currently in flight. This helps to ensure that all
    in-flight CDRs are written before shutting down.

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
Matthew Jordan
127523631f app_dial: Allow macro/gosub pre-bridge execution to occur on priorities
The parsing for the destination of the macro/gosub uses the '^' character to
separate out context, extension, and priority. However, the logic for the
macro/gosub execution was written such that it would only do the actual
macro/gosub jump if a '^' character existed. This doesn't apply when the
macro/gosub jump occurs in a priority/priority label. This patch changes
the logic so that the parsing still occurs, but the jump will occur even
for priorities/priority labels.

(issue ASTERISK-23164)

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

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:34:00 +00:00
Kevin Harwell
15342d6733 res_pjsip: Config option to enable PJSIP logger at load time.
Added a "debug" configuration option for res_pjsip that when set to "yes"
enables SIP messages to be logged.  It is specified under the "system" type.
Also added an alembic script to add the option to realtime.

(closes issue ASTERISK-23038)
Reported by: Rusty Newton
Review: https://reviewboard.asterisk.org/r/3148/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407036 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:14:19 +00:00
Kevin Harwell
508b2d4672 res_pjsip_exten_state: Exporting global symbols caused load order issues
Removed the exportation of global symbols from the module as it is no longer
needed and it could potentially cause load problems as on some systems it
would try to load before res_pjsip_pubsub


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:12:20 +00:00
Mark Michelson
2e2d1f5150 Add file that apparently got missed in the merge.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407031 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 22:38:00 +00:00
Kevin Harwell
944a13a427 alembic: script modifications due to errors
A couple of the scripts had errors that would not allow a full migration to
take place.  The extensions table needed to make its 'id' column a primary
key in order to work with mysql.  The other script ...add_endpoints... was
missing tables that it was trying to add columns to.

Added the primary key on id for extensions and added the tables in for the
missing pjsip configuration options.  While it is not ideal to modify already
released scripts this was a case where it had to be done due to errors in
the script and lacking a better alternative.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 22:17:50 +00:00
Mark Michelson
a27abd02e6 Decouple subscription handling from NOTIFY/PUBLISH body generation.
When the PJSIP pubsub framework was created, subscription handlers were required
to state what event they handled along with what body types they knew how to
generate. While this serves well when implementing a base RFC, it has problems
when trying to extend the body to support non-standard or proprietary body
elements. The code also was NOTIFY-specific, meaning that when the time comes
that we start writing code to send out PUBLISH requests with MWI or presence
bodies, we would likely find ourselves duplicating code that had previously been
written.

This changeset introduces the concept of body generators and body supplements. A
body generator is responsible for allocating a native structure for a given body
type, providing the primary body content, converting the native structure to a
string, and deallocating resources. A body supplement takes the primary body
content (the native structure, not a string) generated by the body generator and
adds nonstandard elements to the body. With these elements living in their own
module, it becomes easy to extend our support for body types and to re-use
resources when sending a PUBLISH request.

Body generators and body supplements register themselves with the pubsub core,
similar to how subscription and publish handlers had done. Now, subscription
handlers do not need to know what type of body content they generate, but they
still need to inform the pubsub core about what the default body type for a
given event package is. The pubsub core keeps track of what body generators and
body supplements have been registered. When a SUBSCRIBE arrives, the pubsub core
will check that there is a subscription handler for the event in the SUBSCRIBE,
then it will check that there is a body generator that can provide the content
specified in the Accept header(s).

Because of the nature of body generators and supplements, it means
res_pjsip_exten_state and res_pjsip_mwi have been completely gutted. They no
longer worry about body types, instead calling
ast_sip_pubsub_generate_body_content() when they need to generate a NOTIFY body.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407016 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 22:11:18 +00:00
Kevin Harwell
5eae91d73d res_pjsip_mwi: Subscribe fails when missing aor name
When subscribing to MWI (res_pjsip_mwi) and the sip uri did not contain a name
(ex: sip:<ip address>) then the subscription would fail since it would be unable
to locate an associated aor.  This patch makes it so that when a subscribe comes
with no aor name then it will subscribe to all aors on the located endpoint.

(closes issue ASTERISK-23072)
Reported by: Bob M
Review: https://reviewboard.asterisk.org/r/3164/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407014 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 22:05:32 +00:00
Kinsey Moore
6ae6a70f93 PJSIP: Fix address for ACK in NAT situations
In NAT scenarios where a call is placed to a Grandstream phone,
res_pjsip will sometimes send the ACK to a 200 OK to the private
address of the device behind the NAT instead of the address of the NAT
device. This corrects that behavior by rewriting the address in the
Contact header in the incoming 200 OK and the dialog's target address
if necessary (since it has already been rewritten to the incorrect
private address).

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407000 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 15:01:08 +00:00
Damien Wedhorn
894964d426 Skinny: fix up possible double unlock of chan.
Return before chan is possibly unlocked a second time when hanging up
a channel in SUBSTATE_OFFHOOK.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406987 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 05:28:14 +00:00
Corey Farrell
58fd3c2339 res_rtp_asterisk & udptl: fix port selection to work with SELinux restrictions
ast_bind to a port reserved for another program by SELinux causes
errno == EACCES.  This caused random failures when binding rtp or
udptl sockets.  Treat EACCES as a non-fatal error, try next port.

(closes issue ASTERISK-23134)
Reported by: Corey Farrell
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-30 20:34:43 +00:00
Sean Bright
4fa0345f41 Make a NOTICE about an invalid channel name more useful.
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406919 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-30 17:33:58 +00:00
Russell Bryant
f7de120782 queues.conf.sample Fix documented default for persistentmembers
Closes issue ASTERISK-22662
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406862 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-29 00:42:06 +00:00
Kevin Harwell
69f88f9221 res_pjsip_pubsub: potential crash on timeout
What seems to be happening is if a subscription has been terminated and the
subscription timeout/expires is less than the time it takes for all pending
transactions (currently on the subscription) to end then the subscription
timer will not have been canceled yet and sub will be null.  Since the
subscription has already been canceled nothing needs to be done so a null
check in the asterisk code is sufficient in working around this problem.

(closes issue ASTERISK-23129)
Reported by: Dan Jenkins


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406847 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-28 23:35:17 +00:00
Kevin Harwell
6a59e0817e cdr_radius, cel_radius: build agains libfreeradius-client
Asterisk's RADIUS module currently build against libradiusclient-ng, but this
project has been superseeded by libfreeradius-client. The API is 99% compatible
except that the header name has changed, the library name has changed, and
the configuration file location has changed.

(closes issue ASTERISK-22980)
Reported by: Jeremy Lainé
Patches:
     freeradius-client.patch uploaded by sharky (license 6561)
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-28 23:17:12 +00:00
Kevin Harwell
2bd39b7913 res_pjsip,compat: INFINITY and NAN undefined
On some systems the values for INFINITY and NAN are not defined thus causing
a build error on those systems.  Added definitions for those if they had
not previously been defined.

(closes issue ASTERISK-23056)
Reported by: capouch
Patches:
     inf-nan-patch.txt uploaded by capouch (license 6564)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406788 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-28 20:42:41 +00:00
Kinsey Moore
cfea265903 ARI: Make double subscribe respond with success
Currently, attempting to subscribe an application to a device state
that it has already subscribed to will generate a 500 error response.
This will now be treated as a subscription refresh even though ARI
subscriptions don't currently support lifetimes and will respond with
the normal response for a successful subscription (200 OK).

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406775 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-28 19:13:30 +00:00
Scott Griepentrog
8e1dd2e740 rtp_engine: improved handling of get_rtp_info failure
In ast_rtp_instance_make_compatible(), after a failure of
channel tech call get_rtp_info() to return peer_instance,
the null pointer would be passed to ao2_ref, producing an
error that looked like a refernce counting problem but is
not.  This patch corrects that and adds helpful LOG_ERROR
messages to indicate which failure path occurred.

(issue AST-1276)
Review: https://reviewboard.asterisk.org/r/3156/
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406723 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-28 16:41:43 +00:00
Richard Mudgett
fa0cef4a48 test_cdr.c, test_cel.c: Correctly destroy created bridges.
* Fixed the test_cel_attended_transfer_bridges_link unit test to also
account for the local channel link being destroyed now that the bridges
are actually destroyed.

* Made CDR unit test use its own version of do_sleep() from the CEL unit
tests.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406707 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-28 00:11:16 +00:00
Russell Bryant
d7e20c5cc2 Allow nested #includes in extconfig.conf
extconfig.conf was hard-coded to not allow nested includes for some reason.
The code has been this way since a patch was merged for ASTERISK-3333 (revision
4889), which was a significant update to this code ("Merge config updates").

I can't figure out any good reason why this should be limited.  This patch just
removes the limit and uses the default nesting depth limit.

Closes issue ASTERISK-17837

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

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406645 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-27 20:36:37 +00:00
Russell Bryant
396fb1749c Protect ast_filestream object when on a channel
The ast_filestream object gets tacked on to a channel via
chan->timingdata.  It's a reference counted object, but the reference
count isn't used when putting it on a channel.  It's theoretically
possible for another thread to interfere with the channel while it's
unlocked and cause the filestream to get destroyed.

Use the astobj2 reference count to make sure that as long as this code
path is holding on the ast_filestream and passing it into the file.c
playback code, that it knows it's valid.

Bug reported by Leif Madsen.

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

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-27 01:19:18 +00:00
Richard Mudgett
dc21fbc644 tcptls.c: Add missing cleanup on off nominal path.
........

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406516 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-26 23:03:05 +00:00
Joshua Colp
c573b00ea1 res_pjsip_session: Be less strict with core requested outgoing capabilities.
The core may (depending on circumstances) request a single codec on outgoing
calls. Many channel drivers ignore or treat this as a suggestion while still
including configured codecs. The res_pjsip_session logic treated this as
an explicit request, leaving out other configured codecs.

This change makes res_pjsip_session behave like other channel driver and simply
adds the requested codec to the list.

(closes issue ASTERISK-23082)
Reported by: xrobau

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-26 02:10:22 +00:00
Richard Mudgett
3037924c69 CEL: Protect data structures during reload and shutdown.
The CEL data structures need to be protected during a configuration reload
and shutdown.  Asterisk crashed during a shutdown because CEL events were
still in flight and the CEL data structures were already destroyed.

* Protected the cel_backends, cel_dialstatus_store, and cel_linkedids ao2
containers with a global ao2 object wrapper.

* Added NULL checks before use of the cel_backends, cel_dialstatus_store,
and cel_linkedids ao2 containers in case the CEL module is already
shutdown.

* Fixed overloading of the cel_linkedids held objects reference count.
During shutdown any held objects would be leaked.

* Fixed memory leak of cel_linkedids held objects if the LINKEDID_END is
not being tracked.  The objects in the cel_linkedids container were not
removed if the LINKEDID_END event is not used.

* Added access protection to the cel_backends container during the CLI
"cel show status" command.

* Made cel_backends, cel_dialstatus_store, and cel_linkedids use the
standard ao2 callback templates for the hash and cmp functions.

* Eliminated unnecessary uses of RAII_VAR().

* Made ast_cel_engine_init() cleanup alocated resources on failure.

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

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

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

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@406465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-24 23:29:57 +00:00