Commit Graph

31980 Commits

Author SHA1 Message Date
Alexander Anikin
a8f1e26d34 chan_ooh323: fix h323 log file path
Change h323 log path relative to AST_LOG_DIR instead of
/var/log/asterisk hardcoded
Add return back error message from OOH323EP initialize

ASTERISK-28348 #close

Reported by: Dmitry Shubin

Change-Id: Ib102dd36bbe6c2a7a4ce6870ae9110d9000d7e98
2019-04-10 17:12:42 -06:00
George Joseph
dd32c0239f Merge "chan_pjsip: DTMF Mode auto_info fallback lead to both inband and info" 2019-04-10 12:42:56 -05:00
Joshua Colp
a9bdbdc456 Merge "config.c: Fix a crash in extconfig parsing" 2019-04-10 06:40:54 -05:00
Friendly Automation
b169482c95 Merge "CI: Add --no-dev-mode option to buildAsterisk.sh" 2019-04-08 10:59:54 -05:00
George Joseph
1ab20c5d91 Merge "stasis.c: Added topic_all container" 2019-04-08 10:53:18 -05:00
George Joseph
2f13cdd315 Merge "res/res_ari: Added ARI resource /ari/channels/{channelId}/rtp_statistics" 2019-04-08 10:51:45 -05:00
Friendly Automation
6a83c99c36 Merge "main/json.c: Added app_name, app_data to channel type" 2019-04-08 10:32:16 -05:00
Chris-Savinovich
391112d89a config.c: Fix a crash in extconfig parsing
When extconfig.conf file is parsed, the code previously searched for
character comma without verifying if error (null or blank).  This caused
a segmentation error.

Change-Id: Id76b452d8f330d11c2742c37232761ad71472a8b
2019-04-05 15:41:40 -06:00
Salah Ahmed
5009d6d97a chan_pjsip: DTMF Mode auto_info fallback lead to both inband and info
When the dtmf_mode on an endpoint is configured as "auto_info"
Asterisk will produce an inband DTMF tone alongside an INFO
message when sending DTMF.

ASTERISK-28371

Change-Id: I1380b82f006e110a1b83fbb50c9873edd13a5d9a
2019-04-05 09:43:15 -06:00
Joshua Colp
2117153979 Merge "bridge_softmix: use a float type to store the internal REMB bitrate" 2019-04-04 08:52:47 -05:00
Joshua Colp
99648272e5 Merge "res/res_rtp_asterisk: Enable rxjitter calculation for video" 2019-04-04 08:32:07 -05:00
George Joseph
8ae9339f71 CI: Add --no-dev-mode option to buildAsterisk.sh
The new option disables dev mode, TEST_FRAMEWORK and
MALLOC_DEBUG making the build more production-like.

Change-Id: Ieb72497d4d91d5416684aaed702cc3f532099738
2019-04-03 16:56:46 -06:00
Ben Ford
dd1cc7791c build: Fix compiler warnings/errors.
The compiler complained about a couple of variables that weren't
initialized but were being used. Initializing them to NULL resolves the
warnings/errors.

ASTERISK-28362 #close

Change-Id: I6243afc5459b416edff6bbf571b0489f6b852e4b
2019-04-03 09:36:51 -06:00
Kevin Harwell
d1d0692858 bridge_softmix: use a float type to store the internal REMB bitrate
REMB's exponent is 6-bits (0..63) and has a mantissa of 18-bits. We were using
an unsigned integer to represent the bitrate. However, that type is not large
enough to hold all potential bitrate values. If the bitrate is large enough
bits were being shifted off the "front" of the mantissa, which caused the
wrong value to be sent to the browser.

This patch makes it so it now uses a float type to hold the bitrate. Using a
float allows for all bitrate values to be correctly represented.

ASTERISK-28255

Change-Id: Ice00fdd16693b16b41230664be5d9f0e465b239e
2019-04-02 10:32:59 -06:00
Friendly Automation
012706c6c5 Merge "pjproject: Add timer patch from pjproject r5934" 2019-04-02 10:15:21 -05:00
Sean Bright
e8cf3693f6 app_queue: Fix a few member pause bugs
* Always set member->lastpause when setting member->paused

* Fixed typo (using member->lastcall instead of member->lastpause) in
  'queue show' output.

* Use a constant 'now' in 'queue show' output for a better point-in-time
  view of time based stats.

ASTERISK-27541 #close
Reported by: César Benjamín García Martínez

Change-Id: Ib41ced90cfdb66f9bb1e7b263d0f6fc1ac6e18fa
2019-03-29 07:16:57 -06:00
Ben Ford
4edd24841d alembic: Fix errors during upgrade head.
When trying to upgrade using alembic, a couple different errors kept
popping up that prevented the upgrade. An additional parameter was
needed when changing the schema for mwi_subscribe_replaces_unsolicited
from an integer to an enum. When changing from a string to an enum, the
type needed to be cast for postgresql. The other issue was a parameter
being used during column creation that did not exist.

After fixing the upgrade process, it revealed errors with the downgrade
process. One was a variable not being defined in the downgrade function,
and the other was tables not existing when using MySQL. This was due to
a context check that should have encompassed MySQL, but in the end was
not doing so.

Change-Id: Ib4d70cf3ce5080023a50be496272a777b55d6c8e
2019-03-28 08:17:55 -06:00
George Joseph
12f42eaaaa Merge "pjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs" 2019-03-28 08:04:51 -05:00
George Joseph
bc146bb621 Merge "manager: Use separate lock for session event notification." 2019-03-28 08:03:37 -05:00
sungtae kim
30d568ddec stasis.c: Added topic_all container
Added topic_all container for centralizing the topic. This makes more
easier to managing the topics.

Added cli commands.
stasis show topics : It shows all registered topics.
stasis show topic <name> : It shows speicifed topic's detail info.

ASTERISK-28264

Change-Id: Ie86d125d2966f93de74ee00f47ae6fbc8c081c5f
2019-03-28 00:57:16 +01:00
Matthew Fredrickson
f78306470b res/res_rtp_asterisk: Enable rxjitter calculation for video
It looks like we're not properly calculating jitter values on received
video streams.  This patch enables the code that does jitter calculations
for those streams.

Change-Id: Iaac985808829c8f034db8c57318789c4c8c11392
2019-03-27 19:30:45 +00:00
George Joseph
3fc9428816 Merge "build: Add staging directories for future changes." 2019-03-27 14:25:25 -05:00
Friendly Automation
5917434e42 Merge "app_queue: Fix documentation for QUEUE_MEMBER function." 2019-03-27 13:40:36 -05:00
Ben Ford
d5d8448ce5 build: Add staging directories for future changes.
This is the first step in changing the release process so that changes
made to the CHANGES and UPGRADE.txt files do not result in merge
conflicts every time multiple people modify these files. The changes
made will go in these new directories: doc/CHANGES-staging and
doc/UPGRADE-staging. The README.md files explain how things will work,
but here's a little overview. When you make a change that would go in
either CHANGES or UPGRADE.txt, this should instead be documented in a
new file in the doc/CHANGES-staging or doc/UPGRADE-staging directory,
respectively. The format will look like this:

   Subject: res_pjsip

   A description that explains the changes made and why. The release
   script will handle the bulleting and section separators! The
   'Subject:' header is case-sensitive.

   You can still separate with new lines within your description.

   Subject: res_ari
   Master-Only: true

   You can have more than one subject, and they don't have to be the
   same! Also, the 'Master-Only' header should always be true and is
   also case-sensitive (but the value is not - you can have 'true' or
   'True'). This header will only ever be present in the master branch.

For more information, check out the wiki page:
https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt

This is an initial change for ASTERISK_28111. Functionally, this will
make no difference, but it will prep the directories for when the
changes from CHANGES and UPGRADE.txt are extracted.

Change-Id: I8d852f284f66ac456b26dcb899ee46babf7d15b6
2019-03-27 12:32:54 -06:00
Alexei Gradinari
f236377ce9 pjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs
The next usage of PJSIP_PARSE_URI will crash asterisk
${PJSIP_PARSE_URI(tel:+1234567890,host)}
or
${PJSIP_PARSE_URI(192.168.1.1:5060,host)}

The function pjsip_parse_uri successfully parses then, but returns
struct pjsip_other_uri *.

This patch restricts parsing only SIP/SIPS URIs.

Change-Id: I16f255c2b86a80a67e9f9604b94b129a381dd25e
2019-03-27 10:07:47 -06:00
Sean Bright
7043ed6ac9 pjproject: Add timer patch from pjproject r5934
ASTERISK-28161 #close
Reported by: Ross Beer

Change-Id: I65331d554695753005eaa66c1d5d4807fe9009c8
2019-03-27 08:10:51 -06:00
Friendly Automation
24facecdd0 Merge "chan_sip: Ensure 'qualifygap' isn't negative" 2019-03-27 06:00:11 -05:00
Sean Bright
834d022da5 app_queue: Fix documentation for QUEUE_MEMBER function.
It was a copy/paste of the QUEUE_MEMBER_COUNT function's synopsis.

ASTERISK-20986 #close
Reported by: Olivier Krief

Change-Id: If51ec481feb35824a4e78ab5600b197b819b10be
2019-03-26 15:57:11 -06:00
sungtae kim
76768ad6ce main/json.c: Added app_name, app_data to channel type
It was difficult to check the channel's current application and
parameters using ARI for current channels. Added app_name, app_data
items to show the current application information.

ASTERISK-28343

Change-Id: Ia48972b3850e5099deab0faeaaf51223a1f2f38c
2019-03-26 21:16:47 +01:00
George Joseph
7dda1f036c Merge "res_config_odbc: set empty extended field as a single whitespace" 2019-03-26 08:47:48 -05:00
Joshua Colp
d480f5eab2 manager: Use separate lock for session event notification.
When notifying a manager session that new events were available
the same lock was used that was also held when doing things within
the session (such as sending events out). If the manager session
blocked for a period of time this would cause a back up of messages
in Stasis and would also block any other sessions from receiving
events.

This change adds a separate lock to the manager session which is
strictly used for notifying it that new events are available.

ASTERISK-28350

Change-Id: Ifbcac007faca9ad0231640f5e82a6ca9228f261b
2019-03-26 07:37:38 -06:00
Friendly Automation
8ad4760d83 Merge "res/res_ari: Added timestamp as a requirement for all ARI events" 2019-03-26 08:32:28 -05:00
Sean Bright
1499640da9 chan_sip: Ensure 'qualifygap' isn't negative
Passing negative intervals to the scheduler rips a hole in the
space-time continuum.

ASTERISK-25792 #close
Reported by: Paul Sandys

Change-Id: Ie706f21cee05f76ffb6f7d89e9c867930ee7bcd7
2019-03-25 13:32:47 -06:00
Alexei Gradinari
e5d990d01d res_config_odbc: set empty extended field as a single whitespace
If Realtime @ variable value is NULL or empty or contains only whitespaces
then when we try to retrieve it using PJSIP_ENDPOINT we get WARNING
pjsip_endpoint_function_read: Unknown property @my_var for PJSIP endpoint.
And the variable is missing in the result of CLI pjsip show endpoint.

This patch keeps empty sorcery extended field.

ASTERISK-28341 #close

Change-Id: I221fccc04cbfa2be17ce971f64ae0e74e465eea0
2019-03-25 10:43:54 -06:00
Matthew Fredrickson
41a2662e16 main/taskprocessor: Increase max name length of taskprocessors
Since the new names went in, the maximum taskprocessor name is too
short.  This patch increases the name field to a length to better
handle the new names.

Change-Id: I32f32d6926f25c8ef5a91303fd2988d2c2858877
2019-03-22 19:46:34 +00:00
George Joseph
4c2a0091a6 Merge "sorcery.c: Sorcery enhancements for wizard management" 2019-03-19 10:23:37 -05:00
George Joseph
9ee02bc0c2 Merge "res/res_stasis: Fixed wrong StasisEnd timestamp" 2019-03-19 09:26:47 -05:00
George Joseph
7e77815ad1 sorcery.c: Sorcery enhancements for wizard management
Added ability to specifiy a wizard is read-only when applying
it to a specific object type.  This allows you to specify
create, update and delete callbacks for the wizard but limit
which object types can use them.

Added the ability to allow an object type to have multiple
wizards of the same type.  This is indicated when a wizard
is added to a specific object type.

Added 3 new sorcery wizard functions:

* ast_sorcery_object_type_insert_wizard which does the same thing
  as the existing ast_sorcery_insert_wizard_mapping function but
  accepts the new read-only and allot-duplicates flags and also
  returns the ast_sorcery_wizard structure used and it's internal
  data structure. This allows immediate use of the wizard's
  callbacks without having to register a "wizard mapped" observer.

* ast_sorcery_object_type_apply_wizard which does the same
  thing as the existing ast_sorcery_apply_wizard_mapping function
  but has the added capabilities of
  ast_sorcery_object_type_insert_wizard.

* ast_sorcery_object_type_remove_wizard which removes a wizard
  matching both its name and its original argument string.

* The original logic in __ast_sorcery_insert_wizard_mapping was moved
  to __ast_sorcery_object_type_insert_wizard and enhanced for the
  new capabilities, then __ast_sorcery_insert_wizard_mapping was
  refactored to just call __ast_sorcery_insert_wizard_mapping.

* Added a unit test to test_sorcery.c to test the read-only
  capability.

Change-Id: I40f35840252e4313d99e11dbd80e270a3aa10605
2019-03-18 11:39:42 -06:00
Joshua Colp
4a9e30e286 Merge "vector: Add AST_VECTOR_COMPACT() to reclaim wasted space" 2019-03-18 06:31:46 -05:00
Joshua Colp
a284587460 Merge "Revert "Test_cel: Fails when DONT_OPTIMIZE is off"" 2019-03-18 06:05:31 -05:00
Joshua Colp
3bd7725ce1 Merge "Variable ALTCONF ignored when service is used in Debian" 2019-03-18 06:00:06 -05:00
George Joseph
12c6a12521 Merge "app.c: Remove deletion of pool topic on mwi state delete" 2019-03-15 18:30:08 -05:00
sungtae kim
629962d1f7 res/res_stasis: Fixed wrong StasisEnd timestamp
Because StasisEnd's timestamp created it's own timestamp, it makes
wrong timestamp, compare to other channel event(ChannelDestroyed).
Fixed to getting a timestamp from the Channel's timestamp.

ASTERISK-28333

Change-Id: I5eb8380fc472f1100535a6bc4983c64767026116
2019-03-15 22:05:21 +01:00
Sean Bright
0fac5bcbe5 vector: Add AST_VECTOR_COMPACT() to reclaim wasted space
This might be useful in situations where you are loading an undetermined number
of items into a vector and don't want to keep (potentially) 2x the necessary
memory around indefinitely.

Change-Id: I9711daa0fe01783fc6f04c5710eba84f2676d7b9
2019-03-15 14:53:39 -06:00
Richard Mudgett
45a8892e67 taskprocessor.c: Fix printf type mismatch
A size_t is not always an unsigned long.

* Use the %zu format specifier in the ast_cli() printf format string since
AST_VECTOR_SIZE() returns a size_t value.

Change-Id: Ib102dd36bbe6c2a7a4ce6870ae9110d978dd7e98
2019-03-14 12:46:35 -06:00
George Joseph
63d90c38eb app.c: Remove deletion of pool topic on mwi state delete
As part of an earlier voicemail refactor, ast_delete_mwi_state_full
was modified to remove the pool topic for a mailbox when the state
was deleted.  This was an attempt to prevent stale topics from
accumulating when app_voicemail was reloaded and a mailbox went
away.  Unfortunately because of the fact that when app_voicemail
reloads, ALL mailboxes are deleted then only current ones recreated,
topics were being removed from the pool that still had subscribers
on them, then recreated as new topics of the same name.  So now
modules like res_pjsip_mwi are listening on a topic that will
never receive any messages because app_voicemail is publishing on
a different topic that happens to have the same name.  The solutiuon
to this is not easy and given that accumulating topics for
deleted mailboxes is less evil that not sending NOTIFYs...

* Removed the call to stasis_topic_pool_delete_topic in
  ast_delete_mwi_state_full.

Also:

* Fixed a topic reference leak in res_pjsip_mwi
  mwi_stasis_subscription_alloc.

* Added some debugging to mwi_stasis_subscription_alloc,
  stasis_topic_create, and topic_dtor.

* Fixed a topic reference leak in an error path in
  internal_stasis_subscribe.

ASTERISK-28306
Reported-by: Jared Hull

Change-Id: Id7da0990b3ac4be4b58491536b35f41291247b27
2019-03-14 08:31:32 -06:00
Joshua C. Colp
a145f83d30 Merge "stasis: Improve topic/subscription names and statistics." 2019-03-14 09:22:14 -05:00
Joshua C. Colp
783122ec87 Merge "res_musiconhold: Remove redundant option parsing" 2019-03-14 09:19:55 -05:00
sungtae kim
71c0c7f631 res/res_ari: Added ARI resource /ari/channels/{channelId}/rtp_statistics
Added ARI resource for channel statistics.
GET /ari/channels/{channelId}/rtp_statistics : It returns given
channel's rtp statistics detail.

ASTERISK-28320

Change-Id: I4343eec070438cec13f2a4f22e7fd9e574381376
2019-03-13 23:00:03 +01:00
Joshua C. Colp
b0db18432e Merge "stasis: Allow empty application arguments to move." 2019-03-13 11:46:13 -05:00