]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
6 years agoUpdate for 16.5.0 16.5.0
Asterisk Development Team [Thu, 25 Jul 2019 09:38:14 +0000 (04:38 -0500)] 
Update for 16.5.0

6 years agoUpdate for 16.5.0-rc1 16.5.0-rc1
Asterisk Development Team [Thu, 18 Jul 2019 11:14:40 +0000 (06:14 -0500)] 
Update for 16.5.0-rc1

6 years agoUpdate CHANGES and UPGRADE.txt for 16.5.0
Asterisk Development Team [Thu, 18 Jul 2019 11:07:20 +0000 (06:07 -0500)] 
Update CHANGES and UPGRADE.txt for 16.5.0

6 years agores_rtp_asterisk: Move where DTLS MTU variable is defined.
Joshua Colp [Sun, 14 Jul 2019 18:26:41 +0000 (15:26 -0300)] 
res_rtp_asterisk: Move where DTLS MTU variable is defined.

The DTLS MTU variable is not dependent on pjproject and should
not exist in its block.

Change-Id: I7e97d64dc192f2ac81bfe2b72b8229d321c7d026

6 years agoMerge "chan_sip: Handle invalid SDP answer to T.38 re-invite" into 16
Friendly Automation [Thu, 11 Jul 2019 20:15:49 +0000 (15:15 -0500)] 
Merge "chan_sip: Handle invalid SDP answer to T.38 re-invite" into 16

6 years agores_pjsip_messaging: Check for body in in-dialog message
George Joseph [Wed, 12 Jun 2019 18:03:04 +0000 (12:03 -0600)] 
res_pjsip_messaging:  Check for body in in-dialog message

We now check that a body exists and it has a length > 0 before
attempting to process it.

ASTERISK-28447
Reported-by: Gil Richard
Change-Id: Ic469544b22ab848734636588d4c93426cc6f4b1f

6 years agochan_sip: Handle invalid SDP answer to T.38 re-invite
Francesco Castellano [Fri, 28 Jun 2019 16:15:31 +0000 (18:15 +0200)] 
chan_sip: Handle invalid SDP answer to T.38 re-invite

The chan_sip module performs a T.38 re-invite using a single media
stream of udptl, and expects the SDP answer to be the same.

If an SDP answer is received instead that contains an additional
media stream with no joint codec a crash will occur as the code
assumes that at least one joint codec will exist in this
scenario.

This change removes this assumption.

ASTERISK-28465

Change-Id: I8b02845b53344c6babe867a3f0a5231045c7ac87

6 years agoMerge "chan_dahdi.c: crash in chan_dahdi" into 16
Joshua Colp [Tue, 2 Jul 2019 13:26:40 +0000 (08:26 -0500)] 
Merge "chan_dahdi.c: crash in chan_dahdi" into 16

6 years agochan_dahdi.c: crash in chan_dahdi
Chris-Savinovich [Mon, 1 Jul 2019 21:57:25 +0000 (16:57 -0500)] 
chan_dahdi.c: crash in chan_dahdi

Fixes a crash in chan_dahdi occurring on 32-bit systems. A previous
patch introduced a variable of type unassigned long long which is 64-bits.
Casting it as 'ast_json_int_t' along with JSON type 'I' makes it work
with 32-bit systems.

ASTERISK-28457

Change-Id: I9cef6b5f2d826fc5c93f2f6a1c997c4e3e6c93fe

6 years agores_pjsip_sdp_rtp: Remove unused variable
Kevin Harwell [Mon, 1 Jul 2019 15:49:56 +0000 (10:49 -0500)] 
res_pjsip_sdp_rtp: Remove unused variable

The variable 'endpoint_caps' in function 'set_caps' is not used, so remove.

ASTERISK-28458

Change-Id: Ia8766d05a0738aecb29dd018302c2dafca5cab34

6 years agoMerge "tcptls.c: Add peer hostname and port to some error messages" into 16
George Joseph [Mon, 1 Jul 2019 15:19:50 +0000 (10:19 -0500)] 
Merge "tcptls.c:  Add peer hostname and port to some error messages" into 16

6 years agoMerge "pjproject_bundled: Add peer information to most SSL/TLS errors" into 16
George Joseph [Mon, 1 Jul 2019 15:18:52 +0000 (10:18 -0500)] 
Merge "pjproject_bundled:  Add peer information to most SSL/TLS errors" into 16

6 years agoMerge "pjproject: Update to 2.9 release" into 16
Kevin Harwell [Thu, 27 Jun 2019 21:52:50 +0000 (16:52 -0500)] 
Merge "pjproject: Update to 2.9 release" into 16

6 years agotcptls.c: Add peer hostname and port to some error messages
George Joseph [Thu, 27 Jun 2019 20:04:27 +0000 (14:04 -0600)] 
tcptls.c:  Add peer hostname and port to some error messages

Where possble, hostname and port has been added to error
messages, mostly on the server side.

ASTERISK-26006
Reported by: Oleksandr Natalenko

Change-Id: Iff4f897277bc36ce8c5b493b71d0a4a7b74e62f0

6 years agopjproject_bundled: Add peer information to most SSL/TLS errors
George Joseph [Thu, 27 Jun 2019 17:46:44 +0000 (11:46 -0600)] 
pjproject_bundled:  Add peer information to most SSL/TLS errors

Most SSL/TLS error messages coming from pjproject now have either
the peer address:port or peer hostname, depending on what was
available at the time and code location where the error was
generated.

ASTERISK-28444
Reported by: Bernhard Schmidt

Change-Id: I41770e8a1ea5e96f6e16b236692c4269ce1ba91e

6 years agoMerge "app_amd: issue with silence suppression fixed" into 16
Kevin Harwell [Thu, 27 Jun 2019 16:33:51 +0000 (11:33 -0500)] 
Merge "app_amd: issue with silence suppression fixed" into 16

6 years agoMerge "sig_pri: Address gcc9 issues" into 16
George Joseph [Tue, 25 Jun 2019 14:08:09 +0000 (09:08 -0500)] 
Merge "sig_pri:  Address gcc9 issues" into 16

6 years agoMerge "CI: New way to determnine libdir" into 16
George Joseph [Tue, 25 Jun 2019 14:06:45 +0000 (09:06 -0500)] 
Merge "CI:  New way to determnine libdir" into 16

6 years agoMerge "res_fax: gateway sends T.38 request to both endpoints if V.21 detected" into 16
Friendly Automation [Mon, 24 Jun 2019 19:11:14 +0000 (14:11 -0500)] 
Merge "res_fax: gateway sends T.38 request to both endpoints if V.21 detected" into 16

6 years agosig_pri: Address gcc9 issues
George Joseph [Mon, 24 Jun 2019 13:30:19 +0000 (07:30 -0600)] 
sig_pri:  Address gcc9 issues

A few more format truncation issues addressed.

Change-Id: I047f373169caaca0eec4889d3c0e5e10f130017a

6 years agoMerge "app_confbridge: Attended transfer event fixup" into 16
Friendly Automation [Fri, 21 Jun 2019 16:24:11 +0000 (11:24 -0500)] 
Merge "app_confbridge:  Attended transfer event fixup" into 16

6 years agoMerge "translate.c do not log WARNING on empty audio frame" into 16
Friendly Automation [Fri, 21 Jun 2019 15:37:49 +0000 (10:37 -0500)] 
Merge "translate.c do not log WARNING on empty audio frame" into 16

6 years agoapp_amd: issue with silence suppression fixed
Nasir Iqbal [Tue, 21 May 2019 06:38:24 +0000 (11:38 +0500)] 
app_amd: issue with silence suppression fixed

Now AMD algorithm will not ignore AST_FRAME_NULL, As I think using manual
wait time instead of `framelength` is enough to fix timeout / TOOLONG issue.

ASTERISK-28419 #close

Change-Id: I16ea2d6295bc99b975e8c092e5f9fbd9214debdb

6 years agoCI: New way to determnine libdir
George Joseph [Wed, 19 Jun 2019 16:58:39 +0000 (10:58 -0600)] 
CI:  New way to determnine libdir

We were using the presence of /usr/lib64 to determine where
shared libraries should be installed.  This only existed on
Redhat based systems and was safe.  If it existed, use it,
otherwise use /usr/lib.

Unfortunately, Ubuntu 19 decided to create a /usr/lib64 BUT
NOT INCLUDE IT IN THE DEFAULT ld.so.conf.  So if anything is
installed there, it won't work.

The new method, just looks for $ID in /etc/os-release and if it's
centos or fedora, uses /usr/lib64 and if ubuntu, uses /usr/lib.

NOTE:  This applies only to the CI scripts.  Normal asterisk
build and install is not affected.

Change-Id: Iad66374b550fd89349bedbbf2b93f8edd195a7c3

6 years agochan_dahdi: Address gcc9 issues
George Joseph [Mon, 17 Jun 2019 17:11:49 +0000 (11:11 -0600)] 
chan_dahdi:  Address gcc9 issues

Fixed format-truncation issues in chan_dahdi.c and
sig_analog.c.  Since they're related to fields provided
by dahdi-tools we can't change the buffer sizes so we're just
checking the return from snprintf and printing an errior if we
overflow.

Change-Id: Idc1f3c1565b88a7d145332a0196074b5832864e5

6 years agotranslate.c do not log WARNING on empty audio frame
Alexei Gradinari [Fri, 14 Jun 2019 20:45:39 +0000 (16:45 -0400)] 
translate.c do not log WARNING on empty audio frame

There is WARNING "no samples for ..." on each Playtones.
The function ast_playtones_start calls ast_activate_generator,
which calls ast_prod.
The function ast_prod calls ast_write with empty audio frame.
In this case it's spam log.

Change-Id: Id4ac309489d9ff281bad02abdef341cecdede660

6 years agoapp_confbridge: Attended transfer event fixup
George Joseph [Mon, 10 Jun 2019 21:58:59 +0000 (15:58 -0600)] 
app_confbridge:  Attended transfer event fixup

When a channel already in a conference bridge is attended transfered
to another extension, or when an existing call is attended
transferred into a conference bridge, we now generate ConfbridgeJoin
and ConfbridgeLeave events for the entering and departing channels.

Change-Id: Id7709cfbceb26fbcb828b2d0d2a6b2fbeaf028e1

6 years agopjproject: Update to 2.9 release
Sean Bright [Thu, 13 Jun 2019 15:11:48 +0000 (11:11 -0400)] 
pjproject: Update to 2.9 release

Relies on https://github.com/asterisk/third-party/pull/4

Change-Id: Iec9cad42cb4ae109a86a3d4dae61e8bce4424ce3

6 years agores_rtp_asterisk: Add support for DTLS packet fragmentation.
Joshua Colp [Tue, 11 Jun 2019 12:26:42 +0000 (09:26 -0300)] 
res_rtp_asterisk: Add support for DTLS packet fragmentation.

This change adds support for larger TLS certificates by allowing
OpenSSL to fragment the DTLS packets according to the configured
MTU. By default this is set to 1200.

This is accomplished by implementing our own BIO method that
supports MTU querying. The configured MTU is returned to OpenSSL
which fragments the packet accordingly. When a packet is to be
sent it is done directly out the RTP instance.

ASTERISK-28018

Change-Id: If2d5032019a28ffd48f43e9e93ed71dbdbf39c06

6 years agoMerge "app_attended_transfer: new application AttendedTransfer" into 16
George Joseph [Wed, 12 Jun 2019 15:43:46 +0000 (10:43 -0500)] 
Merge "app_attended_transfer: new application AttendedTransfer" into 16

6 years agoMerge "app_blind_transfer: new application BlindTransfer" into 16
George Joseph [Wed, 12 Jun 2019 15:43:17 +0000 (10:43 -0500)] 
Merge "app_blind_transfer: new application BlindTransfer" into 16

6 years agoMerge "chan_pjsip.c: Check for channel and session to not be NULL in hangup" into 16
George Joseph [Wed, 12 Jun 2019 13:50:14 +0000 (08:50 -0500)] 
Merge "chan_pjsip.c: Check for channel and session to not be NULL in hangup" into 16

6 years agoMerge "cdr_pgsql: fix error in connection string" into 16
Joshua Colp [Tue, 11 Jun 2019 13:03:23 +0000 (08:03 -0500)] 
Merge "cdr_pgsql: fix error in connection string" into 16

6 years agoMerge "pbx_dundi: added IPv4/IPv6 dual bind support to DUNDi" into 16
George Joseph [Mon, 10 Jun 2019 12:37:23 +0000 (07:37 -0500)] 
Merge "pbx_dundi: added IPv4/IPv6 dual bind support to DUNDi" into 16

6 years agochan_pjsip.c: Check for channel and session to not be NULL in hangup
agupta [Thu, 6 Jun 2019 12:48:18 +0000 (18:18 +0530)] 
chan_pjsip.c: Check for channel and session to not be NULL in hangup

We have seen some rare case of segmentation fault in hangup function
and we could notice that channel pointer was NULL.  Debug log shows
that there is a 200 OK answer and SIP timeout at the same time.  It
looks that while the SIP session was being destroyed due to timeout
call hangup due to answer event lead to race condition and channel
is being destroyed from two different places.  The check ensures we
check it not to be NULL before freeing it.

ASTERISK-25371

Change-Id: I19f6566830640625e08f7b87bfe15758ad33a778

6 years agopbx_dundi: added IPv4/IPv6 dual bind support to DUNDi
Kirsty Tyerman [Tue, 8 Jan 2019 06:14:07 +0000 (16:14 +1000)] 
pbx_dundi: added IPv4/IPv6 dual bind support to DUNDi

ASTERISK-28234
Reported-by: Kirsty Tyerman
Change-Id: I5d6e6b52dbe51415046bb3953fd16f5b421bc2e1

6 years agocdr_pgsql: fix error in connection string
Chris-Savinovich [Tue, 4 Jun 2019 17:41:33 +0000 (12:41 -0500)] 
cdr_pgsql: fix error in connection string

Fixes an error occurring in function pgsql_reconnect() caused when value of
hostname is blank. Which in turn will cause the connection string to look
like this: "host= port=xx", which creates a sintax error. This fix now checks
if the corresponding values for host, port, dbname, and user are blank. Note
that since this is a reconnect function the database library will replace any
missing value pairs with default ones.

ASTERISK-28435

Change-Id: I0a921f99bbd265768be08cd492f04b30855b8423

6 years agoapp_attended_transfer: new application AttendedTransfer
Alexei Gradinari [Tue, 21 May 2019 19:12:55 +0000 (15:12 -0400)] 
app_attended_transfer: new application AttendedTransfer

AttendedTransfer queues up attended transfer to the given extension.

This application can be useful with Custom Dynamic Features.
For example to make attended transfer to a predefined number.

features.conf
;;;
[applicationmap]
my_atxfer => *7,self,GoSub,"my_atxfer,s,1",default
;;;

extensions.conf
;;;
[globals]
DYNAMIC_FEATURES=my_atxfer
TRANSFER_CONTEXT=my_transfer

[my_atxfer]
exten => s,1,AttendedTransfer(1234567890)
   same => n,Return()

[my_transfer]
include => default
;;;

This application also can be used to completly redefine Attended transfer
feature using dialplan. For example:

features.conf
;;;
[featuremap]
atxfer => *7

[applicationmap]
custom_atxfer => *2,self,GoSub,"custom_atxfer,s,1",default
;;;

extensions.conf
;;;
[globals]
DYNAMIC_FEATURES=custom_atxfer
TRANSFER_CONTEXT=my_transfer

[custom_atxfer]
exten => s,1,
   same => n,Playback(pbx-transfer)
   same => n,Read(dest,dial,10,i,3,3)
   same => n,AttendedTransfer(${dest})
   same => n,Return()

[my_transfer]
include => default
;;;

Change-Id: Ie5cfa455d0813cffd5c85a6fb117f07d8f0b903b

6 years agores_fax: gateway sends T.38 request to both endpoints if V.21 detected
Alexei Gradinari [Wed, 29 May 2019 22:54:16 +0000 (18:54 -0400)] 
res_fax: gateway sends T.38 request to both endpoints if V.21 detected

According T.38 Gateway 'Use case 3'
https://wiki.asterisk.org/wiki/display/AST/T.38+Gateway
T.38 Gateway should send T.38 negotiation request to called endpoint
if FAX preamble (using V.21 detector) generated by called endpoint.
But it does not, because fax_gateway_detect_v21 constructs T.38
negotiation request, but forwards it only to other channel,
not to the channel on which FAX preamble is detected.

Some SIP endpoints could be improperly configured to rely on the other side
to initiate T.38 re-INVITEs.

With this patch the T.38 Gateway tries to negotiate with both sides
by sending T.38 negotiation request to both endpoints supported T.38.

Change-Id: I73bb24799bfe1a48adae9c034a2edbae54cc2a39

6 years agoMerge "res_fax: fix segfault on inactive "reserved" fax session" into 16
Joshua Colp [Tue, 4 Jun 2019 10:29:39 +0000 (05:29 -0500)] 
Merge "res_fax: fix segfault on inactive "reserved" fax session" into 16

6 years agoMerge "app_readexten: new option 'p' to stop reading on '#' key" into 16
Friendly Automation [Mon, 3 Jun 2019 14:41:19 +0000 (09:41 -0500)] 
Merge "app_readexten: new option 'p' to stop reading on '#' key" into 16

6 years agoMerge "res_fax: add channel name to CLI 'fax show session'" into 16
Friendly Automation [Mon, 3 Jun 2019 14:33:32 +0000 (09:33 -0500)] 
Merge "res_fax: add channel name to CLI 'fax show session'" into 16

6 years agoMerge "pjsip: replace 180 by 183 if SDP negotiation has completed" into 16
Friendly Automation [Mon, 3 Jun 2019 13:56:48 +0000 (08:56 -0500)] 
Merge "pjsip: replace 180 by 183 if SDP negotiation has completed" into 16

6 years agoUpdate CHANGES and UPGRADE.txt for 16.4.0
Asterisk Development Team [Thu, 30 May 2019 17:08:23 +0000 (12:08 -0500)] 
Update CHANGES and UPGRADE.txt for 16.4.0

6 years agoMerge "build: Fix file format in CHANGES-staging." into 16
Friendly Automation [Thu, 30 May 2019 10:22:33 +0000 (05:22 -0500)] 
Merge "build: Fix file format in CHANGES-staging." into 16

6 years agores_fax: add channel name to CLI 'fax show session'
Alexei Gradinari [Tue, 28 May 2019 22:15:40 +0000 (18:15 -0400)] 
res_fax: add channel name to CLI 'fax show session'

This patch adds a channel name to output of CLI 'fax show session'
and also expands the channel name field up to 30 characters on
CLI 'fax show sessions'

Change-Id: Id059c43ff41811f5e76712b83fb63b8f246da953

6 years agores_fax: fix segfault on inactive "reserved" fax session
Alexei Gradinari [Tue, 28 May 2019 20:35:17 +0000 (16:35 -0400)] 
res_fax: fix segfault on inactive "reserved" fax session

The change #10017 "Handle fax gateway being started more than once"
introdiced a bug which leads to segfault in res_fax_spandsp.

The res_fax_spandsp module does not support reserving sessions, so
fax_session_reserve returns a fax session with state AST_FAX_STATE_INACTIVE.

The fax_gateway_start does not create a real fax session if the fax session
is already present and the state is not AST_FAX_STATE_RESERVED.
But the "reserved" session created for res_fax_spandsp has state
AST_FAX_STATE_INACTIVE, so fax_gateway_start not starting.

Then when fax_gateway_framehook is called and gateway T.38 state is
NEGOTIATED the call of gateway->s->tech->write(gateway->s, f) leads to
segfault, because session tech_pvt is not set, i.e. the tech session
was not initialized/started.

This patch adds check also on AST_FAX_STATE_INACTIVE to the "reserved"
session created for res_fax_spandsp will start.

This patch also adds extra check and log ERROR if tech_pvt is not set
before call tech->write.

ASTERISK-27981 #close

Change-Id: Ife3e65e5f18c902db2ff0538fccf7d28f88fa803

6 years agobuild: Fix file format in CHANGES-staging.
Ben Ford [Fri, 24 May 2019 14:01:14 +0000 (09:01 -0500)] 
build: Fix file format in CHANGES-staging.

One of the change files doesn't conform to the format that the release
scripts need in order to parse it.

Change-Id: Ie0b634cf27e4cbc671b9fe92993b6f2ecf60254c

6 years agochan_dahdi: add missing include.
Guido Falsi [Thu, 23 May 2019 14:44:07 +0000 (16:44 +0200)] 
chan_dahdi: add missing include.

After some definitions have been moved to asterisk/mwi.h the files
channels/chan_dahdi.h channels/sig_pri.c are missing this new
include.

ASTERISK-28427 #close

Change-Id: Ia8cc595eeda653324643f40dcd9799d4c3f0ac91

6 years agoMerge "res_rtp_asterisk: timestamp should be unsigned instead of signed int" into 16
Friendly Automation [Thu, 23 May 2019 14:06:17 +0000 (09:06 -0500)] 
Merge "res_rtp_asterisk: timestamp should be unsigned instead of signed int" into 16

6 years agoMerge "res_rtp_asterisk: Add ability to propose local address in ICE" into 16
George Joseph [Wed, 22 May 2019 17:47:17 +0000 (12:47 -0500)] 
Merge "res_rtp_asterisk:  Add ability to propose local address in ICE" into 16

6 years agores_rtp_asterisk: timestamp should be unsigned instead of signed int
Morten Tryfoss [Tue, 21 May 2019 16:29:05 +0000 (18:29 +0200)] 
res_rtp_asterisk: timestamp should be unsigned instead of signed int

Using timestamp with signed int will cause timestamps exceeding max value
to be negative.
This causes the jitterbuffer to do passthrough of the packet.

ASTERISK-28421

Change-Id: I9dabd0718180f2978856c50f43aac4e52dc3cde9

6 years agoapp_blind_transfer: new application BlindTransfer
Alexei Gradinari [Tue, 21 May 2019 19:53:47 +0000 (15:53 -0400)] 
app_blind_transfer: new application BlindTransfer

BlindTransfer redirects all channels currently bridged to the
caller channel to the specified destination.

This application can be useful with Custom Dynamic Features.
For example to make blind transfer to a predefined number.

features.conf
;;;
[applicationmap]
my_blindxfer => *6,self,GoSub,"my_blindxfer,s,1",default
;;;

extensions.conf
;;;
[globals]
DYNAMIC_FEATURES=my_blindxfer

[my_blindxfer]
exten => s,1,BlindTransfer(1234567890,default)
   same => n,Return()
;;;

This application also can be used to completly redefine Blind transfer
feature using dialplan. For example:

features.conf
;;;
[featuremap]
blindxfer =>

[applicationmap]
custom_blindxfer => ##,self,GoSub,"custom_blindxfer,s,1",default
;;;

extensions.conf
;;;
[globals]
DYNAMIC_FEATURES=custom_blindxfer

[custom_blindxfer]
exten => s,1,
   same => n,Playback(pbx-transfer)
   same => n,Read(dest,dial,10,i,3,3)
   same => n,BlindTransfer(${dest},default)
   same => n,Return()
;;;

Change-Id: I9d55e7f69ccfd4472dec00d62771d6de8803215a

6 years agoapp_readexten: new option 'p' to stop reading on '#' key
Alexei Gradinari [Fri, 17 May 2019 22:45:25 +0000 (18:45 -0400)] 
app_readexten: new option 'p' to stop reading on '#' key

This patch adds the 'p' option.
The extension entered will be considered complete when a # is entered.

Change-Id: If77c40c9c8b525885730821e768f5dea71cf04c1

6 years agopjproject-bundled: Add upstream timer fixes
Joshua Colp [Mon, 20 May 2019 17:45:57 +0000 (14:45 -0300)] 
pjproject-bundled:  Add upstream timer fixes

Fixed #2191:
  - Stricter double timer entry scheduling prevention.
  - Integrate group lock in SIP transport, e.g: for add/dec ref,
    for timer scheduling.

ASTERISK-28161
Reported-by: Ross Beer
Change-Id: I2e09aa66de0dda9414d8a8259a649c4d2d96a9f5

6 years agores_rtp_asterisk: Add ability to propose local address in ICE
George Joseph [Fri, 17 May 2019 23:44:37 +0000 (17:44 -0600)] 
res_rtp_asterisk:  Add ability to propose local address in ICE

You can now add the "include_local_address" flag to an entry in
rtp.conf "[ice_host_candidates]" to include both the advertized
address and the local address in ICE negotiation:

[ice_host_candidates]
192.168.1.1 = 1.2.3.4,include_local_address

This causes both 192.168.1.1 and 1.2.3.4 to be advertized.

Change-Id: Ide492cd45ce84546175ca7d557de80d9770513db

6 years agoMerge "res_rtp_asterisk: Fix sequence number cycling and packet loss count." into 16
Joshua Colp [Wed, 15 May 2019 22:48:51 +0000 (17:48 -0500)] 
Merge "res_rtp_asterisk: Fix sequence number cycling and packet loss count." into 16

6 years agoMerge "conversions.c: Add conversions for largest max sized integer" into 16
Friendly Automation [Wed, 15 May 2019 12:01:43 +0000 (07:01 -0500)] 
Merge "conversions.c: Add conversions for largest max sized integer" into 16

6 years agoMerge "Fixes for GCC 9" into 16
Friendly Automation [Wed, 15 May 2019 11:27:01 +0000 (06:27 -0500)] 
Merge "Fixes for GCC 9" into 16

6 years agoMerge "build: Pass --fno-partial-inlining to third-party when appropriate" into 16
Friendly Automation [Wed, 15 May 2019 10:47:32 +0000 (05:47 -0500)] 
Merge "build: Pass --fno-partial-inlining to third-party when appropriate" into 16

6 years agopjsip: replace 180 by 183 if SDP negotiation has completed
Alexei Gradinari [Mon, 13 May 2019 20:37:50 +0000 (16:37 -0400)] 
pjsip: replace 180 by 183 if SDP negotiation has completed

The caller endpoint hears dead silence if a callee replies 180 (without SDP)
and the caller already received 183 (with SDP).
It happens because Asterisk sends 180 (WITH SDP) to the caller,
there are not incoming RTP packets from the callee
and Asterisk does not generate inband ringing,
so there are not any outgoing RTP packets to the caller.

This patch replaces 180 by 183 if SDP negotiation has completed,
as if the caller endpoint is configured with "inband_progress=yes".

In this case Asterisk will generate inband ringing untill Asterisk receive
incoming RTP packets from the callee.

ASTERISK-27994 #close

Change-Id: I7450b751083ec30d68d6abffe922215a15ae5a73

6 years agoMerge "pjsip_options.c: Allow immediate qualifies for new contacts." into 16
Joshua Colp [Mon, 13 May 2019 19:14:45 +0000 (14:14 -0500)] 
Merge "pjsip_options.c: Allow immediate qualifies for new contacts." into 16

6 years agoFixes for GCC 9
George Joseph [Fri, 10 May 2019 15:48:28 +0000 (09:48 -0600)] 
Fixes for GCC 9

Various fixes for issues caught by gcc 9.  Mostly snprintf
trying to copy to a buffer potentially too small.

ASTERISK-28412

Change-Id: I9e85a60f3c81d46df16cfdd1c329ce63432cf32e

6 years agores_rtp_asterisk: Fix sequence number cycling and packet loss count.
Joshua Colp [Wed, 8 May 2019 15:41:43 +0000 (15:41 +0000)] 
res_rtp_asterisk: Fix sequence number cycling and packet loss count.

This change fixes two bugs which both resulted in the packet loss
count exceeding 65,000.

The first issue is that the sequence number check to determine if
cycling had occurred was using the wrong variable resulting in the
check never seeing that cycling has occurred, throwing off the
packet loss calculation. It now uses the correct variable.

The second issue is that the packet loss calculation assumed that
the received number of packets in an interval could never exceed
the expected number. In practice this isn't true due to delayed
or retransmitted packets. The expected will now be updated to
the received number if the received exceeds it.

ASTERISK-28379

Change-Id: If888ebc194ab69ac3194113a808c414b014ce0f6

6 years agopjsip_options.c: Allow immediate qualifies for new contacts.
Ben Ford [Tue, 7 May 2019 16:08:33 +0000 (11:08 -0500)] 
pjsip_options.c: Allow immediate qualifies for new contacts.

When multiple endpoints try to register close together using the same
AOR with qualify_frequency set, one contact would qualify immediately
while the other contacts would have to wait out the duration of the
timer before being able to qualify. Changing the conditional to check
the contact container count for a non-zero value allows all contacts to
qualify immediately.

Change-Id: I79478118ee7e0d6e76af7c354d66684220db9415

6 years agoconversions.c: Add conversions for largest max sized integer
Kevin Harwell [Mon, 6 May 2019 21:26:46 +0000 (16:26 -0500)] 
conversions.c: Add conversions for largest max sized integer

Added a conversion for umax (largest maximum sized integer allowed). Adjusted
the other current conversion functions (uint and ulong) to be derivatives of
the umax conversion since they are simply subsets of umax.

Also made the negative check move the pointer on spaces since strtoumax does it
anyways.

Change-Id: I56c2ef2629d49b524c8df58af12951c181f81f08

6 years agostasis: Hangup channel for Local channel No such extension error
agupta [Fri, 3 May 2019 15:49:31 +0000 (21:19 +0530)] 
stasis: Hangup channel for Local channel No such extension error

When we use early bridge with create and dial from stasis using Local channel
and the dialplan does not any entry the it is returned from core_local.c with
No such extension .

In such case asterisk locks up till the channel is not hangup with the error
Exceptionally long voice queue length

* Found that in such case app_control_dial fails on ast_call method and
  return -1
* Since it is called from stasis_app_send_command_async and return -1 does
  not cause resources to be freed and since no PBX exist it is not able to
  read from channel causing exceptionally long queue
* After putting this code found that the channel was releasing immediately
  and resources were freed.

ASTERISK-28399
Reported by: Abhay Gupta
Tested by: Abhay Gupta

Change-Id: I0a55c923fc6995559f808d63b9488762b4489318

6 years agobuild: Pass --fno-partial-inlining to third-party when appropriate
George Joseph [Fri, 3 May 2019 18:31:06 +0000 (12:31 -0600)] 
build: Pass --fno-partial-inlining to third-party when appropriate

When the gcc version is >= 8.2.1, we were already setting the
--fno-partial-inlining flag for Asterisk source files to get around
a gcc bug but we weren't passing the flag down to the bundled
builds of pjproject and jansson.

ASTERISK-28392

Change-Id: I99ede9bc35408ecd096f7d5369e8192d3dc75704

6 years agoMerge "app_confbridge: Add "all" variants of REMB behavior." into 16
Joshua Colp [Fri, 3 May 2019 15:53:21 +0000 (10:53 -0500)] 
Merge "app_confbridge: Add "all" variants of REMB behavior." into 16

6 years agoMerge "stasis: Only place stasis created and dialed channels into dial bridge." into 16
Friendly Automation [Fri, 3 May 2019 15:47:18 +0000 (10:47 -0500)] 
Merge "stasis: Only place stasis created and dialed channels into dial bridge." into 16

6 years agoMerge "stasis: Call callbacks when imparting fails" into 16
Friendly Automation [Fri, 3 May 2019 15:13:16 +0000 (10:13 -0500)] 
Merge "stasis: Call callbacks when imparting fails" into 16

6 years agoMerge "rtp: Add support for transport-cc in receiver direction." into 16
Friendly Automation [Fri, 3 May 2019 15:08:16 +0000 (10:08 -0500)] 
Merge "rtp: Add support for transport-cc in receiver direction." into 16

6 years agores_pjsip: Check return from pjsip_parse_uri calls
George Joseph [Thu, 2 May 2019 18:29:49 +0000 (12:29 -0600)] 
res_pjsip:  Check return from pjsip_parse_uri calls

Updated ast_sip_create_rdata_with_contact and registrar_find_contact
to check the return from pjsip_parse_uri before attempting to
use the uri returned.

ASTERISK-28402
Reported-by: Ross Beer
Change-Id: I9810b3b163c45ed5a56ec743586e5ce107f13ba7

6 years agostasis: Only place stasis created and dialed channels into dial bridge.
agupta [Tue, 30 Apr 2019 14:21:46 +0000 (19:51 +0530)] 
stasis: Only place stasis created and dialed channels into dial bridge.

The dial bridge is meant to hold channels which have been created
and dialed in stasis. It handles the frames coming from them and raises
the appropriate events.

It was possible for the code to mistakenly place calls which came
from the dialplan into the dial bridge if they were not in an
answered state. These channels are not outgoing channels and
should not be placed into the dial bridge.

The code now checks to ensure that only stasis created channels are
placed into the dial bridge by checking that a PBX does not exist
on the channel.

ASTERISK-27756

Change-Id: Ideee69ff06c9a0b31f7ed61165f5c055f51d21b6

6 years agostasis: Call callbacks when imparting fails
Holger Hans Peter Freyther [Wed, 10 Apr 2019 04:30:25 +0000 (05:30 +0100)] 
stasis: Call callbacks when imparting fails

After a bridge has been deleted the stasis control will depart
the channel and might attempt to re-add it to the dial bridge.

The later can fail and this can lead to a situation that the stasis
control is unlinked but the after_bridge_cb_failed cb is executed trying
to access a dangling control object.

Fix it by calling the after_cb's before bridge_channel_impart_signal.

ASTERISK-26718

Change-Id: Ib4e8f70d7a21bd54afe3cb51cc6717ef7c355496

6 years agoapp_confbridge: Add "all" variants of REMB behavior.
Joshua Colp [Tue, 30 Apr 2019 11:22:44 +0000 (11:22 +0000)] 
app_confbridge: Add "all" variants of REMB behavior.

When producing a combined REMB value the normal behavior
is to have a REMB value which is unique for each sender
based on all of their receivers. This can result in one
sender having low bitrate while all the rest are high.

This change adds "all" variants which produces a bridge
level REMB value instead. All REMB reports are combined
together into a single REMB value that is the same for
each sender.

ASTERISK-28401

Change-Id: I883e6cc26003b497c8180b346111c79a131ba88c

6 years agortp: Add support for transport-cc in receiver direction.
Joshua Colp [Tue, 23 Apr 2019 10:00:43 +0000 (10:00 +0000)] 
rtp: Add support for transport-cc in receiver direction.

The transport-cc draft is a mechanism by which additional information
about packet reception can be provided to the sender of packets so
they can do sender side bandwidth estimation. This is accomplished
by having a transport specific sequence number and an RTCP feedback
message. This change implements this in the receiver direction.

For each received RTP packet where transport-cc is negotiated we store
the time at which the RTP packet was received and its sequence number.
At a 1 second interval we go through all packets in that period of time
and use the stored time of each in comparison to its preceding packet to
calculate its delta. This delta information is placed in the RTCP
feedback message, along with indicators for any packets which were not
received.

The browser then uses this information to better estimate available
bandwidth and adjust accordingly. This may result in it lowering the
available send bandwidth or adjusting how "bursty" it can be.

ASTERISK-28400

Change-Id: I654a2cff5bd5554ab94457a14f70adb71f574afc

6 years agoMerge "mwi core: Move core MWI functionality into its own files" into 16
Friendly Automation [Tue, 30 Apr 2019 15:12:23 +0000 (10:12 -0500)] 
Merge "mwi core: Move core MWI functionality into its own files" into 16

6 years agoMerge "app_amd: Fix infinite loop on silent calls" into 16
Friendly Automation [Tue, 30 Apr 2019 15:03:59 +0000 (10:03 -0500)] 
Merge "app_amd: Fix infinite loop on silent calls" into 16

6 years agoMerge "stasis: Fix crash at shutdown." into 16
Friendly Automation [Tue, 30 Apr 2019 10:50:18 +0000 (05:50 -0500)] 
Merge "stasis: Fix crash at shutdown." into 16

6 years agoapp_amd: Fix infinite loop on silent calls
agupta [Tue, 4 Dec 2018 08:10:15 +0000 (13:40 +0530)] 
app_amd: Fix infinite loop on silent calls

The total time logic will now be executed on calls which
do not pass any media.

ASTERISK-28143

Change-Id: I24726bd29d7e467fc721ca265363417234b22855

6 years agostasis: Fix crash at shutdown.
Ben Ford [Tue, 23 Apr 2019 14:47:45 +0000 (09:47 -0500)] 
stasis: Fix crash at shutdown.

When compiling in dev mode, stasis statistics are enabled and can cause
a crash at shutdown due to the following:
- Containers are freed
- Topics and subscriptions remain
- When those topics and subscriptions are deallocated, they go to do
  things with the container

This changes the containers to global ao2 objects, and whenever needed
in the code, a reference must be obtained and checked before any
operations can be done.

ASTERISK-28353 #close

Change-Id: Ie7d5e907fcfcb4d65bd36d5e4eb923126fde8d33

6 years agoapp_dial.c: RINGTIME, PROGRESSTIME and ms resolution dial timings
Antoni Goldstein [Fri, 29 Mar 2019 14:04:46 +0000 (14:04 +0000)] 
app_dial.c: RINGTIME, PROGRESSTIME and ms resolution dial timings

Added RINGTIME, RINGTIME_MS, PROGRESSTIME, PROGRESSTIME_MS variables filled
at the earliest received PROGRESS or RINGING.
Added millisecond versions of DIALEDTIME and ANSWEREDTIME.

Added millisecond versions of ast_channel_get_up_time and
ast_channel_get_duration in channel.c.

ASTERISK-28363

Change-Id: If95f1a7d8c4acbac740037de0c6e3109ff6620b1

6 years agomwi core: Move core MWI functionality into its own files
Kevin Harwell [Tue, 9 Apr 2019 18:48:49 +0000 (13:48 -0500)] 
mwi core: Move core MWI functionality into its own files

There is enough MWI functionality to warrant it having its own 'c' and header
files. This patch moves all current core MWI data structures, and functions
into the following files:

main/mwi.h
main/mwi.c

Note, code was simply moved, and not modified. However, this patch is also in
preparation for core MWI changes, and additions to come.

Change-Id: I9dde8bfae1e7ec254fa63166e090f77e4d3097e0

6 years agoMerge "ARI: Bump non-breaking version number to 4.0.2" into 16
Friendly Automation [Tue, 23 Apr 2019 21:42:44 +0000 (16:42 -0500)] 
Merge "ARI: Bump non-breaking version number to 4.0.2" into 16

6 years agoMerge "core/buildsystem: check the actual compiler being version" into 16
Friendly Automation [Tue, 23 Apr 2019 20:26:12 +0000 (15:26 -0500)] 
Merge "core/buildsystem: check the actual compiler being version" into 16

6 years agoARI: Bump non-breaking version number to 4.0.2
George Joseph [Mon, 22 Apr 2019 16:12:33 +0000 (10:12 -0600)] 
ARI: Bump non-breaking version number to 4.0.2

main/json.c: Added app_name, app_data to channel type
res/res_ari: Added ARI resource /ari/channels/{channelId}/rtp_statistics
res/res_ari: Added timestamp as a requirement for all ARI events

Change-Id: I6363f2a3e757cfd59b2ee5d056388ec47659a0c9

6 years agocore/buildsystem: check the actual compiler being version
Guido Falsi [Sun, 7 Apr 2019 16:36:55 +0000 (18:36 +0200)] 
core/buildsystem: check the actual compiler being version

Make compiler check use the output of the actual compiler being
used as reported by the CC variable, instead of unconditionally
running the "gcc" binary.  Also only run the check if the compiler
is gcc or a cross-compile gcc.

ASTERISK-28374

Change-Id: Icaacf6d93686ad21076878aa1504a23b4fc9d0f4

6 years agores_indications: Fix indications remove command autocomplete
Lucas Mendes [Fri, 19 Apr 2019 14:33:49 +0000 (16:33 +0200)] 
res_indications: Fix indications remove command autocomplete

We changed the validation of autocomplete parameter in the "indications
remove" command to avoid continue the execution of the command after
asking for autocomplete out of range parameters.

ASTERISK-28391
Reported by: lmendes86

Change-Id: I92b24131fd02f2e3c7fec966eea6f7a663310d40

6 years agoMerge "loader: support for permanent dlopen()" into 16
Friendly Automation [Fri, 19 Apr 2019 13:32:13 +0000 (08:32 -0500)] 
Merge "loader: support for permanent dlopen()" into 16

6 years agoMerge "res_pjsip: Added a norefersub configuration setting" into 16
Friendly Automation [Fri, 19 Apr 2019 13:27:53 +0000 (08:27 -0500)] 
Merge "res_pjsip:  Added a norefersub configuration setting" into 16

6 years agoMerge "res_remb_modifier: Propertly initialize bitrate to 0.0" into 16
Friendly Automation [Thu, 18 Apr 2019 16:44:23 +0000 (11:44 -0500)] 
Merge "res_remb_modifier:  Propertly initialize bitrate to 0.0" into 16

6 years agores_remb_modifier: Propertly initialize bitrate to 0.0
George Joseph [Wed, 17 Apr 2019 19:45:26 +0000 (13:45 -0600)] 
res_remb_modifier:  Propertly initialize bitrate to 0.0

...and return the frame unaltered if bitrate can't be determined.

Change-Id: Ib2175ab84f85a3d7060d31625f5a2c7fbcc2ba4c

6 years agoMerge "res_mwi_devstate: Specify AST_MODFLAG_LOAD_ORDER to enable load priority"...
Friendly Automation [Thu, 18 Apr 2019 10:46:02 +0000 (05:46 -0500)] 
Merge "res_mwi_devstate: Specify AST_MODFLAG_LOAD_ORDER to enable load priority" into 16

6 years agores_pjsip: Added a norefersub configuration setting
Dan Cropp [Mon, 8 Apr 2019 22:04:48 +0000 (17:04 -0500)] 
res_pjsip:  Added a norefersub configuration setting

Added a new PJSIP global setting called norefersub.
Default is true to keep support working as before.

res_pjsip_refer:  Configures PJSIP norefersub capability accordingly.

Checks the PJSIP global setting value.
If it is true (default) it adds the norefersub capability to PJSIP.
If it is false (disabled) it does not add the norefersub capability
to PJSIP.

This is useful for Cisco switches that do not follow RFC4488.

ASTERISK-28375 #close
Reported-by: Dan Cropp
Change-Id: I0b1c28ebc905d881f4a16e752715487a688b30e9

6 years agoMerge "pbx.c: Ignore dashes in extensions when using extenpatternmatchnew" into 16
Friendly Automation [Tue, 16 Apr 2019 17:16:28 +0000 (12:16 -0500)] 
Merge "pbx.c: Ignore dashes in extensions when using extenpatternmatchnew" into 16

6 years agoMerge "app_voicemail: Don't split mailbox options on comma" into 16
Friendly Automation [Tue, 16 Apr 2019 16:36:27 +0000 (11:36 -0500)] 
Merge "app_voicemail: Don't split mailbox options on comma" into 16

6 years agores_mwi_devstate: Specify AST_MODFLAG_LOAD_ORDER to enable load priority
Sean Bright [Tue, 16 Apr 2019 15:58:40 +0000 (11:58 -0400)] 
res_mwi_devstate: Specify AST_MODFLAG_LOAD_ORDER to enable load priority

Suggested by abelbeck on the issue tracker.

ASTERISK~28384
Reported by: abelbeck

Change-Id: Icee0fff2b58dbfaa80f2b68270fe69dfb0463fc0

6 years agoMerge "build: Revise CHANGES and UPGRADE.txt handling." into 16
Benjamin Keith Ford [Tue, 16 Apr 2019 15:52:34 +0000 (10:52 -0500)] 
Merge "build: Revise CHANGES and UPGRADE.txt handling." into 16

6 years agoMerge "res_ael: Use Gosub in for loop expressions" into 16
Joshua Colp [Tue, 16 Apr 2019 13:11:40 +0000 (08:11 -0500)] 
Merge "res_ael: Use Gosub in for loop expressions" into 16