Commit Graph

31847 Commits

Author SHA1 Message Date
Joshua Colp 18e206381a res_pjsip_sdp_rtp: Only enable abs-send-time when WebRTC is enabled.
For video streams it was possible for the abs-send-time information
to be placed into RTP streams even if not negotiated. Depending on
the endpoint in use this could cause video to not flow.

We now only enable abs-send-time for negotiation if WebRTC is enabled.

ASTERISK-28230

Change-Id: I0eb682302f8da3a4ea3c42e839208d55f825ed0c
2019-01-07 10:35:18 -05:00
Diederik de Groot 7bd30905fd RAII: Change order or variables in clang version
This prevents use-after-scope issues when unwinding the stack,
which happens in reverse order. The varname variable needs to
remain alive for the destruction to be able to access it.
Issue was found using clang + address-sanitizer.

ASTERISK-28232 #close

Change-Id: I00811c34ae910836a5fb6d22304528aef92624db
2019-01-05 18:39:47 +01:00
Alexei Gradinari f662a26ea0 RTP: reset DTMF last seqno/timestamp on RTP renegotiation
The remote side may start a new stream when renegotiating RTP.
Need to reset the DTMF last sequence number and the timestamp
of the last END packet on RTP renegotiation.

If the new time stamp is lower then the timestamp of the last DTMF END packet
the asterisk drops all DTMF frames as out of order.

This bug was caught using Cisco ip-phone SPA5XX and codec g722.
On SIP session update the SPA50X resets stream and a new timestamp is twice
smaller then the previous.

ASTERISK-28162 #close

Change-Id: Ic72b4497e74d801b27a635559c1cf29c16c95254
2019-01-04 10:58:39 -05:00
Joshua C. Colp 28dbb06e8c Merge "ast_coredumper: Refactor the pid determination process" 2019-01-04 08:27:04 -06:00
Friendly Automation 95dd00af3d Merge "stasis: Fix ABI between DEVMODE and non-DEVMODE." 2019-01-03 17:39:22 -06:00
Friendly Automation 9a92d814ea Merge "stasic.c: Fix printf format type mismatches with arguments." 2019-01-03 05:38:16 -06:00
Bryan Boatright 2c48b5d9bf app_voicemail: Fix Channel variable VM_MESSAGEFILE for "urgent" voicemail
If a voicemail is marked "urgent" then the VM_MESSAGEFILE channel variable is
not updated correctly since urgent messages are in a different directory. The
fix is to update the channel variable when the path to the urgent message is
created.

ASTERISK-28225

Change-Id: I8efbace06e6122ea0793f7bdb073d4378e8274ca
2019-01-02 13:16:58 -05:00
Joshua Colp b7b080a0aa app_queue: Fix crash when using 'b' option on non-ringall queue.
When using the 'b' option to Queue with a queue that was not configured
for ring all a crash would occur as the wrong pointer would be used.

ASTERISK-28218

Change-Id: If1390f64e321047dff24fd2410c95dde74904980
2019-01-02 12:35:27 -05:00
Richard Mudgett 7c08ff51d7 stasic.c: Fix printf format type mismatches with arguments.
An int64_t is not likely the same size as a long.

* Changed the int64_t values in the statistics structs to longs so casting
is not necessary when generating the formatted CLI output.  The offending
members did not need to be int64_t anyway as they were only set by an int
type variable which was already truncating bits.

* Reordered the statistics structs to reduce potential padding bytes.

Change-Id: Ic090a070e9dc4ca650ebdb9c01ed50a581289962
2019-01-02 12:11:07 -05:00
George Joseph 192d9dd9c5 Merge "backtrace.c: Fix casting pointer to/from integral type." 2019-01-02 09:51:36 -06:00
Corey Farrell 110934706f
stasis: Fix ABI between DEVMODE and non-DEVMODE.
Eliminate differences with DEVMODE prototypes for public functions.

ASTERISK-28212 #close

Change-Id: I872c04842ab6b61e9dd6d37e4166bc619aa20626
2018-12-26 13:36:13 -05:00
George Joseph 4c084c6b1b Revert "stasis_cache: Stop caching stasis subscription change messages"
This reverts commit 5ec6d2c33e.

This commit caused issues with polling when combined with
the revert commit "Revert "app_voicemail: Remove need to subscribe to stasis"

ASTERISK-28222
Reported by: abelbeck

Change-Id: I1e83a433e4202574181bc128dce876ef24936a52
2018-12-26 10:29:35 -06:00
George Joseph 809e836265 ast_coredumper: Refactor the pid determination process
In order to get a dump of the running process, we need to find the
pid of the main asterisk process.  This can be tricky if there are
also instances of "asterisk -r" running or if an alternate location
for asterisk.conf was specified on the command line with the -C
option that also specified an alternation location for the pid file.

So now...

1. We find the asterisk executable with "which" or the --asterisk-bin
   command line option.
2. If there's only 1 process with an executable path that matches,
   we use that pid.  If not...
3. We try "<asterisk-bin> -rx 'core show settings'" and parse the
   output to find the pidfile, then read that for the pid.  If that
   didn't work...
4. We get a list of all the pids matching <asterisk-bin> and look
   in /proc/<pid>/cmdline for a -C argument and retry the "core show
   settings" using the same -C option.  We can't parse the output
   of "ps" to get the -C path because it may contain spaces.  The
   contents of /proc/<pid>/cmdline are delimited by NULLs.  For BSDs
   we may have to mount /proc first. :(

ASTERISK-28221
Reported by: Andrew Nagy

Change-Id: I8aa1f3f912f949df2b5348908803c636bde1d57c
2018-12-24 14:17:38 -05:00
Richard Mudgett 314782e874 backtrace.c: Fix casting pointer to/from integral type.
The backtrace library bfd.h include file does not get the sizes of
pointers and ints right on some platforms.  On my old test box the size
of bfd_vma is 8 while the size of a pointer is 4.  gcc on the box
complains of the integer casting to/from pointers size mismatch.

* uintptr_t to the rescue by doing an appropriate two stage cast.

Change-Id: Icb2621583f50c8728de08a3c824d95fe53cc45d0
2018-12-19 13:50:59 -05:00
Friendly Automation 31bacc2354 Merge "res/res_ari: Add additional hangup reasons" 2018-12-19 05:12:15 -06:00
Friendly Automation 673d631095 Merge "app_voicemail: Don't delete mailbox state unless mailbox is deleted" 2018-12-19 05:08:00 -06:00
George Joseph 3464093f85 Merge "res_pjsip: Patch for res_pjsip_* module load/reload crash" 2018-12-18 10:42:49 -06:00
George Joseph 2e21910ca1 Merge "res_rtp_asterisk: Remove some unused structure fields." 2018-12-18 10:42:26 -06:00
George Joseph c23c8d92d5 app_voicemail: Don't delete mailbox state unless mailbox is deleted
The free_user function was automatically deleting the stasis mailbox
state but this only makes sense when the mailbox is actually
deleted, not just the structure freed.  This was causing issues
where leave_voicemail would publish the mwi message to stasis and
delete the state before the message could be processed by
res_pjsip_mwi.

* Removed the delete of state from free_user().

* Created a new free_user_final() function that both frees the data
  structure and deletes the state.  This function is only called
  during module load/unload where it's appropriate to delete the
  state.

ASTERISK-28215

Change-Id: I305e8b3c930e9ac41d901e5dc8a58fd7904d98dd
2018-12-18 11:40:22 -05:00
Joshua C. Colp 768be60fbe Merge "res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set" 2018-12-17 09:34:47 -06:00
Sean Bright 357219dfb3 res_rtp_asterisk: Remove some unused structure fields.
All of the fields that were removed were no longer referenced except for
'lastrxts' and 'rxseqno' which were only ever written to.

Change-Id: I5a5d31eb33e97663843698f58d0d97f22a76627c
2018-12-14 12:57:06 -05:00
Joshua C. Colp 0eaa736541 Merge "bridge_builtin_features.c: Set auto(mix)mon variables on both channels" 2018-12-14 08:37:38 -06:00
Sean Bright 5b12dfa6dd res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set
The profile-iop octet (the 2nd) of profile-level-id can be zero
according to RFC 6184 Section 8.1. So we ignore its value when deciding
to include profile-level-id in the outgoing SDP.

ASTERISK-27959 #close
Reported by: David Kuehling

Change-Id: Id28cd916a3d7748058fe9609b585d07d9e243f73
2018-12-13 17:03:59 -05:00
Joshua C. Colp b701c8b8a0 Merge "confbridge: announce to the marked users when they join an empty conference" 2018-12-13 08:00:06 -06:00
Sean Bright 3db1df301e bridge_builtin_features.c: Set auto(mix)mon variables on both channels
This is how features behaved up through Asterisk 11, but was changed
when the new bridging framework was implemented in Asterisk 12.

Reported by rrittgarn in #asterisk.

Change-Id: I72cf86223947a8118c75f46e2c603dbc11e3125b
2018-12-13 08:54:10 -05:00
Joshua C. Colp e12ba0a600 Merge "utils: Don't set or clear flags that don't need setting or clearing" 2018-12-12 13:12:19 -06:00
Friendly Automation 4e8aa3b68c Merge "stasis: Add statistics gathering in developer mode." 2018-12-12 13:08:23 -06:00
Joshua C. Colp a28f0382e8 Merge "Use non-blocking socket() and pipe() wrappers" 2018-12-12 11:31:00 -06:00
Alexei Gradinari cb1a08bdcb confbridge: announce to the marked users when they join an empty conference
Currently the file sound_only_person is not played when a marked
user (with announce_only_user=yes) joins an empty conference.

This patch fixes it.

ASTERISK-28201 #close

Change-Id: I85b67687e6b220939c3af8091d83a70a7b174cf4
2018-12-12 12:15:49 -05:00
Joshua C. Colp fe07093660 stasis: Add statistics gathering in developer mode.
This change adds statistics gathering to Stasis topics,
subscriptions, and message types. These can be viewed using
CLI commands and provide insight into how Stasis is used
and how long certain operations take to execute.

These are only available when Asterisk is compiled in
developer mode and do not have any impact under normal
operation.

ASTERISK-28117

Change-Id: I94411b53767f89ee01714daaecf0c2f1666e863f
2018-12-12 12:14:53 -05:00
Friendly Automation 1f8062c6a6 Merge "stasis: Allow filtering by formatter" 2018-12-12 11:09:19 -06:00
Joshua C. Colp 3ee040e9cd Merge "build: Update config.guess and config.sub" 2018-12-12 11:05:30 -06:00
George Joseph 5a0a292843 Merge "pjproject_bundled: check whether UPDATE is supported on outgoing calls" 2018-12-12 10:51:57 -06:00
George Joseph 5d4d723844 Merge "Revert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit"" 2018-12-11 14:18:25 -06:00
Sean Bright 42ff856216 Use non-blocking socket() and pipe() wrappers
Change-Id: I050ceffe5a133d5add2dab46687209813d58f597
2018-12-11 12:29:09 -05:00
Sean Bright bedf16b041 utils: Don't set or clear flags that don't need setting or clearing
Change-Id: I0e7fb507ac09b15e45e1ff8501ecfca67afa5217
2018-12-11 10:08:07 -05:00
George Joseph 82473227be Merge "CI: Various updates to buildAsterisk.sh" 2018-12-11 09:07:59 -06:00
Joshua C. Colp 6b017a51e0 Merge "utils: Wrap socket() and pipe() to reduce syscalls" 2018-12-11 09:01:38 -06:00
Sean Bright 00b36bb045 build: Update config.guess and config.sub
Pulled from the authoritative respository at:

  https://git.savannah.gnu.org/cgit/config.git/tree/

Change-Id: I748708ce24d4d47ff1f395075d0b08d3da3355e0
2018-12-11 09:34:31 -05:00
George Joseph d1598dbc7d Revert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit"
This reverts commit 3f53041267.

Pending resolution of ASTERISK_28200

Change-Id: Iad4f3614cac95b00fdbb2b799aab8ae6285ec988
2018-12-11 09:28:48 -05:00
Sebastian Damm a24bb1c4b6 res/res_ari: Add additional hangup reasons
The ARI DELETE /channels command takes a "reason" parameter
Previously, there were only five reasons implemented
This patch adds more reasons to choose from for more
complex setups

ASTERISK-28198 #close

Change-Id: I85996f1076c9946d65c778413f040a845a90fecc
2018-12-11 11:20:44 +01:00
Joshua C. Colp fe49d04519 Merge "chan_sip: Fix leak using contact ACL" 2018-12-10 07:05:21 -06:00
Sean Bright 6d69fb3cc2 utils: Wrap socket() and pipe() to reduce syscalls
Some platforms provide an implementation of socket() and pipe2() that allow the
caller to specify that the resulting file descriptors should be non-blocking.

Using these allows us to potentially elide 3 calls into 1 by avoiding extraneous
calls to fcntl() to set the O_NONBLOCK flag afterwards.

In passing, change ast_alertpipe_init() to use pipe2() directly instead of the
wrapper if it is available.

Change-Id: I3ebe654fb549587537161506c6c950f4ab298bb0
2018-12-07 09:06:08 -05:00
George Joseph 3f3dd992a2 stasis: Allow filtering by formatter
A subscriber can now indicate that it only wants messages
that have formatters of a specific type.  For instance,
manager can indicate that it only wants messages that have a
"to_ami" formatter.  You can combine this with the existing
filter for message type to get only messages with specific
formatters or messages of specific types.

ASTERISK-28186

Change-Id: Ifdb7a222a73b6b56c6bb9e4ee93dc8a394a5494c
2018-12-07 08:59:00 -05:00
David M. Lee b899119a5d Removing registrar_expire from basic-pbx config
The module has been removed, so it shouldn't be in the default config any more.

Change-Id: Ie7e09f00f9c9a885574e29478250de4c2cefd9f1
2018-12-06 06:26:04 -05:00
Giuseppe Sucameli 0bde3751a0 chan_sip: Fix leak using contact ACL
Free old peer's contactacl before overwrite it within build_peer.

ASTERISK-28194

Change-Id: Ie580db6494e50cee0e2a44b38e568e34116ff54c
2018-12-05 17:17:57 -05:00
George Joseph 19c4e0f592 CI: Various updates to buildAsterisk.sh
* Added ---no-configure, --no-menuselect, --no-make and --no-alembic
  options that prevent those actions from being performed.  Useful
  for testing and re-running portions of the build after fixing
  earlier failures.

* Added "set -e" to abort the script on command failure.
  Not sure why this wasn't there in the first place.

* Fixed a few echos that were redirecting to stderr when they shouldn't
  have been.

* Catch more alembic failures by actually trying to generate the SQL.

Change-Id: I9f395fa4e9254be7299e7c1014f1a13db78faffb
2018-12-05 12:03:08 -05:00
George Joseph 64b0bcacb5 Merge "test_websocket_client.c: Disable websocket_client_create_and_connect test." 2018-12-05 08:18:36 -06:00
Kevin Harwell cbb7633ad3 pjsip_add_use_callerid_contact: fixed alembic script
Change-Id: I413f1583c797fb79651786cd8d0b003599f8ed10
2018-12-03 18:47:16 -05:00
Sean Bright 8f5df046f6 core: Add some documentation to the malloc_trim code
This adds documentation to handle_cli_malloc_trim() indicating how it
can be useful when debugging OOM conditions.

Change-Id: I1936185e78035bf123cd5e097b793a55eeebdc78
2018-12-03 17:47:26 -05:00