Commit Graph

30980 Commits

Author SHA1 Message Date
George Joseph
d0f01af913 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
2019-06-17 12:51:55 -06:00
Joshua Colp
d5fed38ab5 Merge "res_rtp_asterisk: Add support for DTLS packet fragmentation." into 13 2019-06-17 08:39:11 -05:00
Joshua Colp
1ea9bad34d 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
2019-06-13 13:49:07 +00:00
George Joseph
83c353c650 Merge "app_attended_transfer: new application AttendedTransfer" into 13 2019-06-12 10:44:36 -05:00
George Joseph
dd4f0c94e8 Merge "app_blind_transfer: new application BlindTransfer" into 13 2019-06-12 10:42:57 -05:00
George Joseph
0e30d17293 Merge "chan_pjsip.c: Check for channel and session to not be NULL in hangup" into 13 2019-06-12 08:49:51 -05:00
Alexei Gradinari
45a9ee4c53 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
2019-06-11 08:16:52 -06:00
agupta
67841b8f55 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
2019-06-10 06:47:24 -06:00
Alexei Gradinari
dd12e1cbd3 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
2019-06-07 08:26:21 -06:00
Chris-Savinovich
45c1159c62 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
2019-06-04 12:38:19 -06:00
Joshua Colp
1c665ae39b Merge "res_fax: fix segfault on inactive "reserved" fax session" into 13 2019-06-04 05:29:07 -05:00
Friendly Automation
6df25921ca Merge "app_readexten: new option 'p' to stop reading on '#' key" into 13 2019-06-03 09:54:45 -05:00
Friendly Automation
066ff4d3a8 Merge "res_fax: add channel name to CLI 'fax show session'" into 13 2019-06-03 09:34:59 -05:00
Friendly Automation
e4d91ab4b2 Merge "pjsip: replace 180 by 183 if SDP negotiation has completed" into 13 2019-06-03 08:52:49 -05:00
Alexei Gradinari
e306c62ff1 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
2019-06-03 07:30:07 -06:00
Asterisk Development Team
fba341af8b Update CHANGES and UPGRADE.txt for 13.27.0 2019-05-30 11:59:20 -05:00
Friendly Automation
7dd93bfe9a Merge "build: Fix file format in CHANGES-staging." into 13 2019-05-30 05:17:46 -05:00
Alexei Gradinari
dfa513c565 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
2019-05-29 11:13:33 -06:00
Ben Ford
6aeab9d5e7 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
2019-05-24 09:01:14 -05:00
Guido Falsi
ac4921c373 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
2019-05-23 16:44:07 +02:00
Alexei Gradinari
6ded762dbf 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
2019-05-23 08:37:18 -06:00
George Joseph
d6fb8abd84 Merge "res_rtp_asterisk: Add ability to propose local address in ICE" into 13 2019-05-22 12:46:41 -05:00
Joshua Colp
fc49632bbc 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
2019-05-20 12:36:56 -06:00
George Joseph
90fe830a77 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
2019-05-17 17:49:51 -06:00
Alexei Gradinari
595d60846a 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
2019-05-16 08:47:28 -06:00
Friendly Automation
fa98e8cacb Merge "Fixes for GCC 9" into 13 2019-05-15 06:21:57 -05:00
Friendly Automation
7067177be4 Merge "build: Pass --fno-partial-inlining to third-party when appropriate" into 13 2019-05-15 05:47:36 -05:00
Joshua Colp
e6cedc77a4 Merge "pjsip_options.c: Allow immediate qualifies for new contacts." into 13 2019-05-13 14:11:32 -05:00
George Joseph
4337895aee 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
2019-05-10 10:19:50 -06:00
Friendly Automation
92832bf176 Merge "Revert "pjproject-bundled: Add upstream timer fixes"" into 13 2019-05-08 12:22:12 -05:00
George Joseph
c41e3184e3 Revert "pjproject-bundled: Add upstream timer fixes"
This reverts commit cfeb8a59eb.

The fixes in question cause assert failures when pjproject
asserts are enabled.  Reverting in 13 until a solution is
found for all branches.

Change-Id: Iae5bd340e0543613185fecb63f9c86fa985fe664
2019-05-07 14:24:15 -05:00
Ben Ford
f71a0e3f60 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
2019-05-07 11:25:55 -05:00
Friendly Automation
8b0029692f Merge "pjproject-bundled: Add upstream timer fixes" into 13 2019-05-06 05:43:28 -05:00
George Joseph
7646e2257f 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
2019-05-03 12:31:06 -06:00
George Joseph
cfeb8a59eb 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: I02a791fd1570a1e594a132b36c4ff72441108c17
2019-05-03 07:52:09 -06:00
George Joseph
9d8a093a94 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
2019-05-02 12:29:49 -06:00
George Joseph
6edef49525 Merge "mwi core: Move core MWI functionality into its own files" into 13 2019-04-30 10:42:13 -05:00
Friendly Automation
66aa081bb3 Merge "app_amd: Fix infinite loop on silent calls" into 13 2019-04-30 10:03:43 -05:00
Friendly Automation
57a9935ae0 Merge "stasis: Fix crash at shutdown." into 13 2019-04-30 05:45:13 -05:00
agupta
188b1d3e68 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
2019-04-30 04:15:26 -06:00
Friendly Automation
10b46eea9e Merge "app_dial.c: RINGTIME, PROGRESSTIME and ms resolution dial timings" into 13 2019-04-25 14:06:05 -05:00
Ben Ford
4589260961 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
2019-04-24 08:47:35 -05:00
Antoni Goldstein
001e7762e4 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
2019-04-24 08:27:28 -04:00
Kevin Harwell
4ea20c9c85 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
2019-04-23 17:39:40 -05:00
Friendly Automation
e1e9274c57 Merge "ARI: Bump non-breaking version number to 1.10.2" into 13 2019-04-23 16:42:00 -05:00
Friendly Automation
72170f73e4 Merge "core/buildsystem: check the actual compiler being version" into 13 2019-04-23 15:23:41 -05:00
George Joseph
6d4023e3a6 ARI: Bump non-breaking version number to 1.10.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: Ie0da5b0cf0623b0d0fddbb864f73cb676c2b55cd
2019-04-22 14:45:01 -06:00
Friendly Automation
dcd26ce6ac Merge "res_indications: Fix indications remove command autocomplete" into 13 2019-04-22 08:48:50 -05:00
Guido Falsi
8ee69fbdd0 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
2019-04-22 07:04:40 -06:00
Lucas Mendes
aaee0fa6f5 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
2019-04-19 16:33:49 +02:00