Commit Graph

638 Commits

Author SHA1 Message Date
Richard Mudgett
e8ac75eed0 contrib/scripts: Make astgenkey executable
Change-Id: I11641d65592536dea9cbca5aa94a24c25d24dd5f
2018-08-14 12:10:02 -05:00
George Joseph
3470409dd6 res_pjsip: Add 'suppress_q850_reason_headers' option to endpoint
A new option 'suppress_q850_reason_headers' has been added to the
endpoint object. Some devices can't accept multiple Reason headers and
get confused when both 'SIP' and 'Q.850' Reason headers are received.
This option allows the 'Q.850' Reason header to be suppressed.
The default value is 'no'.

ASTERISK-27949
Reported-by: Ross Beer

Change-Id: I54cf37a827d77de2079256bb3de7e90fa5e1deb1
2018-07-06 06:57:37 -06:00
George Joseph
06966e91fe res_pjsip_session: Add ability to accept multiple sdp answers
pjproject by default currently will follow media forked during an INVITE
on outbound calls if the To tag is different on a subsequent response as
that on an earlier response.  We handle this correctly.  There have
been reported cases where the To tag is the same but we still need to
follow the media.  The pjproject patch in this commit adds the
capability to sip_inv and also adds the capability to control it at
runtime.  The original "different tag" behavior was always controllable
at runtime but we never did anything with it and left it to default to
TRUE.

So, along with the pjproject patch, this commit adds options to both the
system and endpoint objects to control the two behaviors, and a small
logic change to session_inv_on_media_update in res_pjsip_session to
control the behavior at the endpoint level.

The default behavior for "different tags" remains the same at TRUE and
the default for "same tag" is FALSE.

Change-Id: I64d071942b79adb2f0a4e13137389b19404fe3d6
ASTERISK-27936
Reported-by: Ross Beer
2018-06-26 06:57:18 -06:00
George Joseph
acfdfcd19e ast_coredumper: Fix output directory and variable precedence
The OUTPUTDIR variable in ast_debug_tools.conf.sample is now set
to "/tmp" instead of "/some/directory".

Variables set on the command line or that are already in the
environment now take predecence over variables set in the config files.

ASTERISK-27846
Reported by: Ted G

Change-Id: Ie8baec52d531886bf5849ec1d59bb59dc87ad387
2018-05-24 13:00:06 -06:00
Alexander Traud
c6a4d34b7f sip_to_pjsip: Enable python3 compatibility.
The script remains compatible with Python 2.7 but now also works with
Python 3.3 and newer; to ease the migration from chan_sip to chan_pjsip.

ASTERISK-27811

Change-Id: I59cc6b52a1a89777eebcf25b3023bdf93babf835
2018-05-09 07:46:42 -06:00
Alexander Traud
866b884eab install_prereq: Add DragonFly BSD.
ASTERISK-27820

Change-Id: I718ddb000fe5184b1bdc7759da67a370a7520144
2018-04-20 12:23:26 +02:00
Corey Farrell
7593359787 Build System: Enable python3 compatibility.
* Consistently use spaces in rest-api-templates/asterisk_processor.py.
* Exclude third-party from docs/full-en_US.xml.
* Add docs/full-en_US.xml to .gitignore.
* Use list() to convert python3 view.
* Use python3 print function.
* Replace cmp() with equivalent equation.
* Replace reference to out of scope subtype variable with name
  parameter.
* Use unescaping triple bracket notation in mustache templates where
  needed.  This causes behavior of Python2 to be maintained when using
  Python3.
* Fix references to has_websocket / is_websocket in
  res_ari_resource.c.mustache.
* Update calculation of has_websocket to use any().
* Use unicode mode for writing output file in transform.py.
* Replace 'from swagger_model import *' with explicit import of required
  symbols.
* Add missing 'import os'
* Fix invalid reference to swagger_version from exception handler.

I have not tested voicemailpwcheck.py, only the print syntax has
been fixed.

Change-Id: If5c5b556a2800d41a3e2cfef080ac2e151178c33
2018-04-09 10:08:15 -04:00
Jenkins2
7888b6115a Merge "install_prereq: Add Slackware (somehow)." into 13 2018-04-03 06:14:25 -05:00
Alexander Traud
e8e4fc6202 install_prereq: Add Slackware (somehow).
ASTERISK-27770

Change-Id: Ib87e0483c785542238cfe34c1e884d5a31edfaab
2018-03-23 12:15:54 -06:00
Alexander Traud
96a668e60b install_prereq: Add Gentoo Linux.
ASTERISK-27769

Change-Id: Ieb13293cd67481f3a33f58f6f7c8c3ee1e338e7a
2018-03-23 15:18:56 +01:00
Alexander Traud
0f634c1446 BuildSystem: Remove unused dependency on libltdl.
Asterisk does not need the development package of libltdl, because it does not
use any symbol of -lltdl directly. Instead, it uses the runtime package via the
shared library -lodbc. On the supported platforms, that shared library declares
its dependency on -lltdl correctly, otherwise AST_EXT_LIB_CHECK would have
failed.

ASTERISK-27745

Change-Id: Icd315809b8e7978203431f3afb66240dd3a040ba
2018-03-17 04:02:17 -06:00
Alexander Traud
e04be32fc5 install_prereq: Add Arch Linux.
ASTERISK-27738

Change-Id: I7ca620e3c4dfb4b064a19382c4915aeb42a2a09f
2018-03-15 14:27:07 +01:00
Alexander Traud
b237ef7f27 install_prereq: Add SUSE.
ASTERISK-27736

Change-Id: I4cafc8973349d50a7cb7919ddf0bb1aaef4bfc3e
2018-03-14 15:01:32 +01:00
Alexander Traud
57e8754a3a install_prereq: Add NetBSD.
ASTERISK-27729

Change-Id: I7a706d51375d54cf5e36d32397bfe09a48670804
2018-03-08 19:05:22 +01:00
George Joseph
68df9e609e ast_coredumper: Minor fixes
* Fix --tarball-config so the option doesn't cause an error.

* Allow for missing /etc/os-release.

* Add a sleep between tarballing the coredump and removing the
  output directory to allow the filesystem to settle.

Change-Id: I73e03b13087978bcc7f6bc9f45753990f82d9d77
2018-02-23 13:58:54 -07:00
Alexander Traud
05fc37bbc2 install_prereq: Update FreeBSD libraries.
deleted
 autoconf gcc libsamplerate sqlite

changed
 binutils to libbfd
 freetds-devel to freetds
 gmime2 to gmime26
 mysql55-client to mysql57-client

added
 alsa-lib bison bzip2 cclient corosync doxygen libedit flex graphviz
 libhoard libical libilbc libltdl lua neon newt net-snmp
 openldap-client openssl patch pkgconf portaudio postgresql10-client
 python radcli speexdsp subversion uriparser xmlstarlet libzip

ASTERISK-27686

Change-Id: Ibe88c9b26e59c30d26cdb313a3ef01c9f37ac80d
2018-02-22 13:56:18 -05:00
Alexander Traud
c5e34f0794 install_prereq: Update OpenBSD libraries.
deleted
 jack sqlite

renamed
 freetds-0.63p1-msdblib to freetds
 mysql-client to mariadb-client

added
 bison bzip2 c-client doxygen e2fsprogs graphviz gsm libical jansson libltdl
 lua neon net-snmp libsrtp portaudio-svn postgresql-client python speexdsp
 subversion uriparser xmlstarlet

ASTERISK-27684

Change-Id: I26bdcb0a1d0e484a8dad1052da97f194aefd3370
2018-02-16 19:44:53 +01:00
Jenkins2
bbc0ba07b1 Merge "contrib/script/sip_to_pjsip: add support for realtime" into 13 2018-02-16 10:16:40 -06:00
Alexander Traud
4a5221cd43 BuildSystem: Remove chan_h323 leftovers.
ASTERISK-27670

Change-Id: I07a8ef8bbd6001e25711fa1bff152eb6c9efa729
2018-02-14 09:31:36 +01:00
Corey Farrell
6c72c22d51 json: Add conditionals to avoid locking if Jansson is thread safe.
Jansson is thread safe for all read-only functions and reference
counting starting v2.11.  This allows simplification of our code and
removal of locking around reference counting and dumping.

Change-Id: Id985cb3ffa6681f9ac765642e20fcd187bd4aeee
2018-02-12 12:27:19 -06:00
Alexander Traud
21bd7421ef install_prereq: Update Debian/Ubuntu libraries.
ASTERISK-27555

Change-Id: Idc36e91db30c0163c560d04c5a82bca5d6ce92a8
2018-02-10 06:55:53 -06:00
George Joseph
7debdd285c res_pjsip_pubsub: Prune subs with reliable transports at startup
In an earlier release, inbound registrations on a reliable transport
were pruned on Asterisk restart since the TCP connection would have
been torn down and become unusable when Asterisk stopped.  This same
process is now also applied to inbound subscriptions.

Also fixed issues in res_pjsip_registrar where it wasn't handling the
monitoring correctly when multiple registrations came in over the same
transport.

To accomplish this, the pjsip_transport_event feature needed to
be refactored to allow multiple monitors (multiple subcriptions or
registrations from the same endpoint) to exist on the same transport.
Since this changed the API, any external modules that may have used the
transport monitor feature (highly unlikey) will need to be changed.

ASTERISK-27612
Reported by: Ross Beer

Change-Id: Iee87cf4eb9b7b2b93d5739a72af52d6ca8fbbe36
2018-02-01 10:32:26 -07:00
Jenkins2
0d105398f0 Merge "install_prereq: Update RHEL/CentOS/Fedora libraries." into 13 2018-01-31 06:33:45 -06:00
Alexander Traud
8daed642c7 install_prereq: Update RHEL/CentOS/Fedora libraries.
deleted
 automake git ncurses-devel pjproject-devel sqlite2-devel libsqlite3x-devel

renamed
 radiusclient-ng-devel to radcli-devel
 gmime22-devel to gmime-dev

added
 alsa-lib-devel bash binutils-devel bison doxygen flex hoard make pkgconfig
 speexdsp-devel uriparser-devel uw-imap-devel wget xmlstarlet zlib-devel

ASTERISK-27599
Reported by: Said Masoud

Change-Id: I05bb0af98ae532b2d5f37478e38b8f0762b1c035
2018-01-29 11:10:49 +01:00
Alexander Traud
7ad6792011 install_prereq: Download latest Jansson.
ASTERISK-27603

Change-Id: I65c587534c0ae364f063d68da1bed40bb3d5e8aa
2018-01-26 06:53:18 -06:00
Jenkins2
ede9185249 Merge "install_prereq: For PJProject, point users to configure script." into 13 2018-01-25 07:38:27 -06:00
Jenkins2
24def35abc Merge "install_prereq: Support package manager DNF and yum option strict=1." into 13 2018-01-24 07:44:35 -06:00
Alexander Traud
d5a24cfdf7 install_prereq: For PJProject, point users to configure script.
The installation script and the new configure option --with-pjproject-bundled
aimed to accomplish the same. However, the installation script was out of
date. Users should go for the maintained configure option, or the Wiki.

ASTERISK-24598

Change-Id: Icbf4b562f81f7c05bd24a3805bd46c0beb4ebd44
2018-01-22 09:01:41 -06:00
Alexander Traud
f20a522d43 install_prereq: Update Debian/Ubuntu libraries.
ASTERISK-27555

Change-Id: Ieb41b0cbf968af12882b39454b819ebb48b9ea46
2018-01-19 13:19:42 +01:00
Alexander Traud
1fbca9a40d install_prereq: Support package manager DNF and yum option strict=1.
This re-enables the script ./contrib/scripts/install_prereq on Fedora 22 and
newer, and on RHEL/CentOS when the option strict=1 was set for yum install.

ASTERISK-27598
Reported by: Hunter Stevens, Said Masoud

Change-Id: I40f9517122aaa6906e8fc0962b4b8008dfddb368
2018-01-19 04:48:08 -06:00
Jenkins2
16f211c647 Merge "res_pjsip: Split type=identify to IP address and SIP header matching priorities" into 13 2018-01-17 11:32:39 -06:00
Alexander Traud
1d625a7428 install_prereq: Update Debian/Ubuntu libraries.
ASTERISK-27555

Change-Id: I0818b6e42631be1b69237e2b41d3415275693e53
2018-01-12 08:01:40 +01:00
Richard Mudgett
f35960d55b res_pjsip: Split type=identify to IP address and SIP header matching priorities
The type=identify endpoint identification method can match by IP address
and by SIP header.  However, the SIP header matching has limited
usefulness because you cannot specify the SIP header matching priority
relative to the IP address matching.  All the matching happens at the same
priority and the order of evaluating the identify sections is
indeterminate.  e.g., If you had two type=identify sections where one
matches by IP address for endpoint alice and the other matches by SIP
header for endpoint bob then you couldn't predict which endpoint is
matched when a request comes in that matches both.

* Extract the SIP header matching criteria into its own "header" endpoint
identification method so the user can specify the relative priority of the
SIP header and the IP address matching criteria in the global
endpoint_identifier_order option.  The "ip" endpoint identification method
now only matches by IP address.

ASTERISK-27491

Change-Id: I9df142a575b7e1e3471b7cda5d3ea156cef08095
2018-01-11 14:14:08 -06:00
Sean Bright
ce3d56920b Remove as much trailing whitespace as possible.
Change-Id: I873c1c6d00f447269bd841494459efccdd2c19c0
2017-12-22 09:14:07 -05:00
Sean Bright
b4ae112e3a Fix some invalid Unicode characters
configs/samples/minivm.conf.sample contains invalid UTF-8, but that
appears to be intentional.

Change-Id: I7b1e0d332f3380fd0425962a3c9c55f9b200c8cc
2017-12-21 11:18:17 -05:00
George Joseph
062a4390ac ast_coredumper: Add ability to use directory other than /tmp
The OUTPUTDIR environment variable can now be set either in the
environment itself or in ast_debug_tools.conf.  If set, it's used
for all work products instead of /tmp.

Also added the --tarball-config option that includes the contents
of /etc/asterisk when either --tarball-coredumps or --tarball-results
are used.

Change-Id: I66b2553319df61caea5b313d084f51978f730b4c
2017-11-15 08:43:31 -07:00
Torrey Searle
e7f8302d30 contrib/script/sip_to_pjsip: add support for realtime
Add a new script that can read from legacy realtime peers & generate
an sql file for populating pjsip endpoints, identify, and aor records.

ASTERISK-27348 #close

Change-Id: Idd3d7968a3c9c3ee7936d21acbdaf001b429bf65
2017-11-15 14:47:13 +01:00
Alexander Traud
5f4197735d install_prereq: Checkout of libSRTP 2.x.
Since Asterisk 13.17, libSRTP 2.x is supported. Therefore, its latest version
is installed again via the script install_prereq.

ASTERISK-27356

Change-Id: I13125839a79052356469e41edacbebff0a937d39
2017-11-04 06:08:44 -05:00
Jenkins2
ae2687494a Merge "ast_coredumper: allow setting asterisk binary explicitly" into 13 2017-10-31 07:00:50 -05:00
Jenkins2
835db751e1 Merge "ast_coredumper: Add gzipping of binaries and display of signal info" into 13 2017-10-30 10:19:55 -05:00
Tzafrir Cohen
1b535d8457 ast_coredumper: allow setting asterisk binary explicitly
Adds an extra option, --asterisk-bin=<path> to ast_coredumper. If
provided, the binary given to gdb will be the parameter, rather than
asterisk from the PATH.

ASTERISK-27380 #close

Change-Id: I25f5b91eb75059b0fb2f142e468c26b283b0a9f3
2017-10-30 09:58:48 -05:00
Joshua Colp
7385d1e017 res_pjsip: Add 'ip' as a valid option to 'identify_by' on endpoint.
When the identify_by option on an endpoint is set to ip it will
only be identified using the res_pjsip_endpoint_identifier_ip module.
This ensures that it is not mistakenly matched using the username of
the From header. To ensure behavior has not changed the default has
been changed to "username,ip" for the identify_by option.

ASTERISK-27206

Change-Id: I2170b86a7f7e221b4f00bf14aa1ef1ac5b050bbd
2017-10-25 18:13:26 +00:00
George Joseph
3f7ad66245 ast_coredumper: Add gzipping of binaries and display of signal info
The --tarball-coredump option now creates a gzipped tarball of
coredumps processed, their results txt files and copies of
/etc/os-release, /usr/sbin/asterisk, /usr/lib(64)/libasterisk* and
/usr/lib(64)/asterisk as those files are needed to properly examine
the coredump.  The file will be named
/tmp/asterisk.<timestamp>.coredumps.tar.gz or
/tmp/asterisk-<uniqueid>.coredumps.tar.gz if --tarball-uniqueid was
specified.

Added dumps of *_siginfo to the top of the txt files so you can
tell what signal was invoked.

Change-Id: Ib9ee6d83592d4b1bc90cb3419a05376a88d1ded9
2017-10-25 11:26:06 -06:00
Torrey Searle
407b78504d contrib/script/sip_to_pjsip: implement 'all' for allow/disallow
when 'all' is specified in an allow or disallow section, it should erase
all values from the inverse section in the default config. E.G.
allow=all should erase any deny values from default config &
vice-versa

ASTERISK-27333 #close

Change-Id: I99219478fb98f08751d769daaee0b7795118a5a6
2017-10-12 05:41:28 -05:00
Torrey Searle
6c30f4a2d1 contrib/thirdparty/sip_to_pjsip: add additional flag mappings
add mappings for udptl redundancy, rtptimeout, and debug flags

Change-Id: Ie73cf5c83c05dee01eb9624ede76c1a30225d73a
2017-10-04 09:26:17 -04:00
Jenkins2
df7211421e Merge "res_pjsip: Add handling for incoming unsolicited MWI NOTIFY" into 13 2017-09-14 11:53:47 -05:00
George Joseph
ed2a4ee81e res_pjsip: Add handling for incoming unsolicited MWI NOTIFY
A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to
receive unsolicited MWI NOTIFY requests and make them available to
other modules via the stasis message bus.

res_pjsip_pubsub has a new handler "pubsub_on_rx_mwi_notify_request"
that parses a simple-message-summary body and, if
endpoint->incoming_mwi_account is set, calls ast_publish_mwi_state
with the voice-message counts from the message.

Change-Id: I08bae3d16e77af48fcccc2c936acce8fc0ef0f3c
2017-09-13 08:21:36 -06:00
Jenkins2
1aef4fe9df Merge "alembic: Fix typo in add_auto_info_to_endpoint_dtmf_mode" into 13 2017-09-12 14:13:17 -05:00
George Joseph
5ff2d06aa6 alembic: Fix typo in add_auto_info_to_endpoint_dtmf_mode
The downgrade function was missing "_v2" at the end of the
alter column type.

Change-Id: Iaa9bcef48d6f3590ce07a61342d8e66f00263d8e
2017-09-11 04:52:51 -06:00
Florian Floimair
ad606844be alembic: Add support for MS-SQL
MS-SQL has no native Enum-type support and therefore
needs to work with constraints.
Since these constraints need unique names the suggested approach
referenced in the following alembic documentation has been applied:
http://bit.ly/2x9r8pb

ASTERISK-27255 #close

Change-Id: I4a399ba3eed41a33ce8cb294968ad340221580ee
2017-09-08 11:48:00 -05:00