Commit Graph

5653 Commits

Author SHA1 Message Date
zuul
050b90769a Merge "core: Entity ID is not set or invalid" into 13 2016-08-16 06:43:54 -05:00
zuul
6c4c31456f Merge "pbx.c: Additional fixes to ast_context_remove_extension_callerid2." into 13 2016-08-16 04:51:32 -05:00
Corey Farrell
f4e28b3a09 Refactor usage pattern of xmldoc info tag.
This updates func_channel.c and main/message.c to use a generic xpointer
include instead of including info from each channel driver.  Now the
name attribute of info is CHANNEL or CHANNEL_EXAMPLES to be included in
documentation for func_channel.  Setting the name attribute of info to
MessageToInfo or MessageFromInfo causes it to be included in the
MessageSend application and AMI action.

Change-Id: I89fd8276a3250824241a618009714267d3a8d1ea
2016-08-15 19:02:04 -04:00
Joshua Colp
10fa55576d Merge "manager: Add <see-also> tags to relate interrelated events/actions together" into 13 2016-08-15 16:39:11 -05:00
Joshua Colp
952edd30d1 Merge "manager: Add <see-also> tags to relate Bridge related events,actions, and apps" into 13 2016-08-15 16:39:06 -05:00
Joshua Colp
b4828cb125 Merge "manager: Add <see-also> tags to relate AoC events and actions" into 13 2016-08-15 16:38:59 -05:00
Joshua Colp
274794eb1e Merge "manager: Add <see-also> tags to relate UserEvent actions/apps/events" into 13 2016-08-15 16:38:53 -05:00
zuul
ebdc880eb3 Merge "manager: Add <see-also> links between related events" into 13 2016-08-15 15:46:05 -05:00
Richard Mudgett
74a91b9ee5 sorcery.c: Minor optimizations.
* Remove some unused parameters from internal functions:
sorcery_wizard_create()
sorcery_wizard_update()
sorcery_wizard_delete()

* Created the struct sorcery_observer_invocation ao2 object without a lock
since it is not needed in sorcery_observer_invocation_alloc().

* Cleanup generic ao2 container sorcery object id hash, sort, and cmp
functions.

Change-Id: Iff71d75f52bc1b8cee955456838c149faaa4f92e
2016-08-15 13:09:30 -05:00
Richard Mudgett
29beb2890c sorcery.c: Tweak some container declaration formatting.
* Tweak sorcery_object_type_alloc() formatting.
* Tweak ast_sorcery_init() formatting.

Change-Id: Ib02430023f15268cd7a2ea53f2c331213e4d3944
2016-08-15 13:02:48 -05:00
Corey Farrell
9b822293bd pbx.c: Additional fixes to ast_context_remove_extension_callerid2.
Do not check registrar of the first extension head.  We should only check
the registrar when we match the priority.

Additionally fix a couple calls to strcmp which used the input callerid
instead of the clean version ex.cidmatch.

ASTERISK-26233

Change-Id: I17ea6881a18f40840ae9c1f5394aab1fbb3769f1
2016-08-15 11:12:31 -05:00
Alexei Gradinari
403c794684 core: Entity ID is not set or invalid
The Exchanging Device and Mailbox States could not working
if the Entity ID (EID) is not set manually and can't be obtained
from ethernet interface.

This patch replaces debug message to warning
and addes missing description about option 'entityid' to
asterisk.conf.sample.

With this patch the asterisk also:
(1) decline loading the modules which won't work without EID:
    res_corosync and res_pjsip_publish_asterisk.
(2) warn if EID is empty on loading next modules:
    pbx_dundi, res_xmpp

Starting with v197 systemd/udev will automatically assign "predictable"
names for all local Ethernet interfaces.
This patch also addes some new ethernet prefixes "eno" and "ens".

ASTERISK-26164 #close

Change-Id: I72d712f1ad5b6f64571bb179c5cb12461e7c58c6
2016-08-15 10:08:43 -04:00
Matt Jordan
4facaac408 manager: Add <see-also> tags to relate interrelated events/actions together
Change-Id: Idbac539205aa732bf786c4f765577d8e9ff28ba4
2016-08-13 22:03:56 -05:00
Matt Jordan
232d4fe24f manager: Add <see-also> tags to relate Bridge related events,actions, and apps
Change-Id: I67e6b79fa3102e494b5fe6cc7510472249080e85
2016-08-13 22:03:56 -05:00
Matt Jordan
63c0b2f7c9 manager: Add <see-also> tags to relate AoC events and actions
Change-Id: Iea89a36222712148c1775c05ed0ad1049d67a70e
2016-08-13 20:26:50 -05:00
Matt Jordan
0422667d6c manager: Add <see-also> tags to relate UserEvent actions/apps/events
Change-Id: I80f8a981f62f50e74609c69c49edcaca6c95efa4
2016-08-13 20:26:50 -05:00
Matt Jordan
781bb410d0 manager: Add <see-also> links between related events
This patch adds some see-also references between related AMI events. It
focuses primarily on those events that are guaranteed to come in pairs,
such as DTMFBegin/DTMFEnd, as well as those that occur during the life
cycle of an Asterisk channel, such as Newchannel/Hangup.

Change-Id: Iaab600477052018d0f8c03d0c624c0856e9ff1f3
2016-08-13 20:26:38 -05:00
zuul
03b7d04298 Merge "Run mandatory cleanup when startup fails." into 13 2016-08-12 13:59:46 -05:00
zuul
4a05856f40 Merge "res_pjsip: Make aor named lock a mutex." into 13 2016-08-11 23:14:38 -05:00
Corey Farrell
cb043249b6 Run mandatory cleanup when startup fails.
Errors during startup result in an exit.  These error branches should be
calling ast_run_atexit(0) to ensure mandatory cleanup is run.

ASTERISK-26267 #close

Change-Id: If226f2326ae2df7add20040696132214cf2bb680
2016-08-11 23:11:33 -04:00
Richard Mudgett
9d4bd3d763 taskprocessor.c: Tweak high water checks.
* The high water check in ast_taskprocessor_alert_set_levels() would
trigger immediately if the new high water level is zero and the queue was
empty.

* The high water check in taskprocessor_push() was off by one.

Change-Id: I687729fb4efa6a0ba38ec9c1c133c4d407bc3d5d
2016-08-11 11:59:08 -05:00
Richard Mudgett
e1248c3075 res_pjsip: Make aor named lock a mutex.
The named aor lock was always being locked for writes so a rwlock adds no
benefit and may be slower because rwlocks are biased toward read locking.

Change-Id: I8c5c2c780eb30ce5441832257beeb3506fd12b28
2016-08-11 11:57:51 -05:00
Alexei Gradinari
1589452fdc pjsip: Fix deadlock with suspend taskprocessor on masquerade
If both channels which should be masqueraded
are in the same serializer:
1st channel will be locked waiting condition 'complete'
2nd channel will be locked waiting condition 'suspended'

On heavy load system a chance that both channels will be in
the same serializer 'pjsip/distibutor' is very high.

To reproduce compile res_pjsip/pjsip_distributor.c with
DISTRIBUTOR_POOL_SIZE=1

Steps to reproduce:
1. Party A calls Party B (bridged call 'AB')
2. Party B places Party A on hold
3. Party B calls Voicemail app (non-bridged call 'BV')
4. Party B attended transfers Party A to voicemail using REFER.
5. When asterisk masquerades calls 'AB' and 'BV',
   a deadlock is happened.

This patch adds a suspension indicator to the taskprocessor.
When a session suspends/unsuspends the serializer
it sets the indicator to the appropriate state.
The session checks the suspension indicator before
suspend the serializer.

ASTERISK-26145 #close

Change-Id: Iaaebee60013a58c942ba47b1b4930a63e686663b
2016-08-10 16:01:23 -04:00
Corey Farrell
805f105f88 Add missing checks during startup.
This ensures startup is canceled due to allocation failures from the
following initializations.
* channel.c: ast_channels_init
* config_options.c: aco_init

ASTERISK-26265 #close

Change-Id: I911ed08fa2a3be35de55903e0225957bcdbe9611
2016-08-03 16:39:46 -04:00
zuul
9db6cdba1a Merge "asterisk.c: Add auto generation and persistence of UUID" into 13 2016-08-02 19:05:42 -05:00
George Joseph
ad3e65433c asterisk.c: Add auto generation and persistence of UUID
Upcoming features will require the generation and persistence
of a UUID.

Change-Id: I3ec0062427e133217db6ef496a4216f427c3b92d
2016-08-02 14:20:10 -06:00
Mark Michelson
f6821fbaec Remove SILK payload mappings from Asterisk core.
SILK is a bit of a hog when it comes to using up our limited number of
dynamic payload types in the RTP engine. By freeing up four slots, it
allows for other codecs to potentially take the place.

Now, codec_silk.so will dynamically use the payload slots in the RTP
engine when it loads.

A better fix would be make RTP dynamic payload types actually
dynamic. However, at this stage of Asterisk 14 development, this is a
risky move that would be imprudent.

Change-Id: I5774e09408f9a203db189529eabdc0d3f4c1e612
(cherry picked from commit d50895c7b0)
2016-08-02 10:50:34 -05:00
zuul
948a9b615f Merge "pbx.c: Fix handling of '-' in extension name and callerid" into 13 2016-08-01 10:25:19 -05:00
zuul
c2aed1c6e0 Merge "pbx.c: Allow dangerous functions when adding a hint to dialplan." into 13 2016-07-29 06:27:20 -05:00
Joshua Colp
cc5660406c Merge "dsp.c: Add fax and DTMF detection unit tests." into 13 2016-07-28 19:40:42 -05:00
Joshua Colp
cc825e54b0 Merge "dsp.c: Added descriptive comments to Goertzel calculations." into 13 2016-07-28 19:40:37 -05:00
Joshua Colp
323042d99d Merge "dsp.c: Fix incorrect format reference typo." into 13 2016-07-28 19:40:33 -05:00
Corey Farrell
57e9c66819 pbx.c: Fix handling of '-' in extension name and callerid
This adds a two strings to ast_exten.  name to go with exten and
cidmatch_display to go with cidmatch.  The new fields contain input used
to add the extension in the first place.  The existing fields now
contain stripped input that excludes insignificant spaces and dashes.
These stripped fields should always be used for comparisons.  The
unstripped fields should normally be used for display, but displaying
stripped values will not cause runtime errors.

Note the actual string is only stored twice if it contains dashes.  If
no dashes are found then both 'char *' fields point to the same memory.
So this change has a minimum effect on memory usage.

The existing functions ast_get_extension_name and
ast_get_extension_cidmatch return unstripped values as they did before
this change.  Other similar bugs likely still exist where unstripped
extensions are saved outside pbx.c then passed back in.

ASTERISK-26233 #close

Change-Id: I6cd61ce57acc1570ca6cc14960c4c3b0a9eb837f
2016-07-28 20:00:23 -04:00
Richard Mudgett
873fc0fda5 pbx.c: Allow dangerous functions when adding a hint to dialplan.
We can allow dangerous functions when adding a hint since altering
dialplan is itself a privileged activity.  Otherwise, we could never
execute dangerous functions.

ASTERISK-25996 #close
Reported by: Andrew Nagy

Change-Id: I4929ff100ad1200a0198262d069a34f2296e77ba
2016-07-28 15:10:18 -05:00
Kevin Harwell
852e763571 rtp_engine: Failed assertion and wrong name given for codec
Fixed an assert check that would trigger when the passed in value was negative.
The negative value was being cast to an unsigned value. This resulted in the
check failing.

Also fixed another problem when loading formats in the engine. When setting the
mime type the format's name was being passed in instead of the codec's name.

Change-Id: I1a201cd419ba4d8e9a40d337e36b6fbe1737192c
2016-07-27 12:45:30 -05:00
Richard Mudgett
e8c34680ca dsp.c: Add fax and DTMF detection unit tests.
* Add fax amplitude and frequency sweep tests.
* Add DTMF amplitude and twist unit tests.

Change-Id: I8d77c9a1eec89e440d715f998c928687e870c3f7
2016-07-26 17:51:06 -05:00
Richard Mudgett
c1f240b818 dsp.c: Added descriptive comments to Goertzel calculations.
* Added doxygen to describe some struct members and what is going on in
the code.

Change-Id: I2ec706a33b52aee42b16dcc356c2bd916a45190d
2016-07-26 17:51:05 -05:00
Richard Mudgett
003a52fd62 dsp.c: Fix incorrect format reference typo.
Change-Id: Ia131da3ec29acf385cb43a586a29ecc975eb3896
2016-07-26 17:51:05 -05:00
Richard Mudgett
159e437e5a dsp.c: Fix erroneous fax tone detection.
The Goertzel calculations get less accurate the lower the signal level
being worked with becomes because there is less resolution remaining.
If it is too low we can erroneously detect a tone where none really
exists.  The searched for fax frequencies not only need to be so much
stronger than the background noise they must also be a minimum strength.

* Add needed minimum threshold test to tone_detect().

* Set TONE_THRESHOLD to allow low volume frequency spread detection.

ASTERISK-26237 #close
Reported by: Richard Mudgett

Change-Id: I84dbba7f7628fa13720add6a88eae3b129e066fc
2016-07-25 23:20:41 -05:00
Joshua Colp
efebb1b9e0 Merge "res_pjsip: Add fax_detect_timeout endpoint option." into 13 2016-07-21 16:54:32 -05:00
Corey Farrell
7fdf7c3d4c Add conditional support for noreturn functions.
This adds support for tagging functions with the noreturn attribute.
If DO_CRASH is enabled then ast_do_crash never returns.  If AST_DEVMODE
and DO_CRASH are enabled then failed assertions never return.  This can
resolve a large number of false positives with static analyzers.

ASTERISK-26220 #close

Change-Id: Icfb61e5fe54574eced4c3e88b317244f467ec753
2016-07-19 23:35:41 -04:00
Richard Mudgett
851b1c3a17 res_pjsip: Add fax_detect_timeout endpoint option.
The new endpoint option allows the PJSIP channel driver's fax_detect
endpoint option to timeout on a call after the specified number of
seconds into a call.  The new feature is disabled if the timeout is set
to zero.  The option is disabled by default.

ASTERISK-26214
Reported by: Richard Mudgett

Change-Id: Id5a87375fb2c4f9dc1d4b44c78ec8735ba65453d
2016-07-19 10:32:14 -05:00
Corey Farrell
76d4983c15 features.c: Remove unneeded adsi.h include.
adsi.h is no longer used by features.c since parking was moved to a
module.

Change-Id: I2248b8a455225a17cb6ddaafd6c20c511a1eaf59
2016-07-14 22:22:55 -04:00
zuul
4b2031226d Merge "Update support for SILK format." into 13 2016-07-14 18:54:51 -05:00
Mark Michelson
28501051b4 Update support for SILK format.
This commit adds scaffolding in order to support the SILK audio format
on calls. Roughly, this is what is added:

* Cached silk formats. One for each possible sample rate.
* ast_codec structures for each possible sample rate.
* RTP payload mappings for "SILK".

In addition, this change overhauls the res_format_attr_silk file in the
following ways:

* The "samplerate" attribute is scrapped. That's native to the format.
* There are far more checks to ensure that attributes have been
  allocated before attempting to reference them.
* We do not SDP fmtp lines for attributes set to 0.

These changes make way to be able to install a codec_silk module and
have it actually work. It also should allow for passthrough silk calls
in Asterisk.

Change-Id: Ieeb39c95a9fecc9246bcfd3c45a6c9b51c59380e
2016-07-14 15:54:21 -05:00
zuul
714ceb88df Merge "translate: explicit format destination not properly set" into 13 2016-07-14 13:40:42 -05:00
Joshua Colp
8892029a03 Merge "threadpool: Fix leak in ast_threadpool_serializer_group error path." into 13 2016-07-14 12:42:17 -05:00
zuul
b4976b9038 Merge "pbx: Fix leak of timezone for time based includes." into 13 2016-07-14 12:05:21 -05:00
zuul
3c1a40eb8d Merge "stasis_endpoint.c: Fix contactstatus_to_json()." into 13 2016-07-14 08:02:29 -05:00
Corey Farrell
a17b071e36 pbx: Fix leak of timezone for time based includes.
Create include_free to run ast_destroy_timing and ast_free, use that in
all places that freed an ast_include structure.  This fixes a couple of
paths that previously did not run ast_destroy_timing.

ASTERISK-26196 #close

Change-Id: I1671bd111bef0dc113e8bf8f77f89fcfc395d838
2016-07-14 02:59:45 -05:00