Commit Graph

365 Commits

Author SHA1 Message Date
Pascal Cadotte Michaud
e494d5fd76 sip_to_pjsip.py: Fix trustrpid typo
ASTERISK-28664 #close

Change-Id: I6c28b1002fd7075ae0ed36f026f8c1855c9418a6
2019-12-17 13:10:17 -05:00
Walter Doekes
4304c6534a contrib/scripts: Make spandspflow2pcap.py Python 2.7+/3.3+ compatible
Change-Id: Ica182a891743017ff3cda16de3d95335fffd9a91
2019-07-22 17:43:48 +02:00
Sean Bright
f098d4a325 sip_to_pjsip: Make multiline comment parsing consistent with Asterisk
In Asterisk configuration, a multiline comment starts with ;-- as long as it is
not followed by another dash (i.e. ;--- is not a multiline comment).

ASTERISK-28323 #close

Change-Id: I32dc38e0fac01d3c0805d27d35d2365a7c37ca72
2019-03-04 13:40:43 -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
Pascal Cadotte Michaud
ebff81e3a0 contrib/sip_to_pjsip: add a --quiet option to avoid prints
Using the --quiet or -q option in conjonction with /dev/stdout as the output
file allow the output to be used as a valid configuration.

Given a script that generates a valid sip.conf I can pipe the output of that
script into `sip_to_pjsip.py -q /dev/stdin /dev/stdout`. This allow me to use
that piped command in my pjsip.conf using the `exec` command.

ASTERISK-28136

Change-Id: I7b0e2e90e2549f3f8e01dc96701f111b5874c88d
2018-11-01 08:50:19 -04:00
Pascal Cadotte Michaud
b0155f7e58 contrib/sip_to_pjsip: handle setvar in conversion
Given a sip.conf with the following content:

setvar FOO=1
setvar BAR=42

I want my generated pjsip.conf to containt the following set_vars

set_var FOO=1
set_var BAR=42

in the matching endpoint section.

Change-Id: I6c822401fda4133c3b44bf31e655b4eb939d4d26
2018-10-30 10:26:07 -05:00
Corey Farrell
79677ead28 refdebug: Create refstats.py script.
This allows us to process AO2 statistics for total objects, memory
usage, memory overhead and lock usage.

* Install refstats.py and reflocks.py into the Asterisk scripts folder.
* Enable support for reflocks.py without DEBUG_THREADS.

Steal a bit from the ao2 magic to flag when an object lock is used.
Remove 'lockobj' from reflocks.py since we can now record 'used' or
'unused' for those objects.

Add comments to explain thread safety of the 'struct __priv_data'
bitfields.

Change-Id: I84e9d679cc86d772cc97c888d9d856a17e0d3a4a
2018-10-15 15:35:35 -05:00
George Joseph
772d991a43 Merge "ast_coredumper: Remove .gdbinit file on exit" 2018-10-04 09:43:09 -05:00
Sean Bright
b2ed667712 ast_coredumper: Remove .gdbinit file on exit
Change-Id: I1297de78628773ca368e687c6f148bf74857cae9
2018-10-03 17:03:09 -05:00
George Joseph
a29cefe5b2 ast_coredumper: Don't use "declare -n"
Change-Id: I7ddfed4cd6549a0cd458e4d5cf9ac95d784de6cb
2018-10-03 15:30:22 -05:00
Corey Farrell
13df745278 astobj2: Record lock usage to refs log when DEBUG_THREADS is enabled.
When DEBUG_THREADS is enabled we can know if the astobj2 mutex / rwlock
was ever used, so it can be recorded in the REF_DEBUG destructor entry.

Create contrib/scripts/reflocks.py to process locking used by
allocator.  This can be used to identify places where
AO2_ALLOC_OPT_LOCK_NOLOCK should be used to reduce memory usage.

Change-Id: I2e3cd23336a97df2692b545f548fd79b14b53bf4
2018-10-01 22:27:30 -04:00
Corey Farrell
246c39e46c install_prereq: Remove unpackaged version of jansson.
This is removed in favor of ./configure --with-jansson-bundled.  The
install-unpackaged command would only install jansson once, so once
installed it would never update, where the bundled copy will be kept up
to date.

Change-Id: Ideab1f65419608d3795aa608e9da873823cc42d3
2018-09-17 13:58:10 -04:00
Richard Mudgett
58c3677581 contrib/scripts: Make astgenkey executable
Change-Id: I11641d65592536dea9cbca5aa94a24c25d24dd5f
2018-08-14 12:10:01 -05:00
George Joseph
2bf26ce5ac 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 12:59:37 -06:00
Alexander Traud
2d81709ab1 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 09:38:38 -04:00
Alexander Traud
6e9a612293 install_prereq: Add DragonFly BSD.
ASTERISK-27820

Change-Id: I718ddb000fe5184b1bdc7759da67a370a7520144
2018-04-20 12:18:06 +02:00
Corey Farrell
879e592baf 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.

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

Change-Id: If5c5b556a2800d41a3e2cfef080ac2e151178c33
2018-04-09 10:07:38 -04:00
Joshua Colp
edba638a72 Merge "install_prereq: Add Gentoo Linux." 2018-04-03 07:32:23 -05:00
Alexander Traud
07cf6b1437 install_prereq: Add Slackware (somehow).
ASTERISK-27770

Change-Id: Ib87e0483c785542238cfe34c1e884d5a31edfaab
2018-03-23 19:15:09 +01:00
Alexander Traud
307a295d00 install_prereq: Add Gentoo Linux.
ASTERISK-27769

Change-Id: Ieb13293cd67481f3a33f58f6f7c8c3ee1e338e7a
2018-03-23 15:13:44 +01:00
Alexander Traud
10a978829e 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 11:00:06 +01:00
Alexander Traud
dbf5ff6ed0 install_prereq: Add Arch Linux.
ASTERISK-27738

Change-Id: I7ca620e3c4dfb4b064a19382c4915aeb42a2a09f
2018-03-15 14:24:56 +01:00
Alexander Traud
b0fff03bb5 install_prereq: Add SUSE.
ASTERISK-27736

Change-Id: I4cafc8973349d50a7cb7919ddf0bb1aaef4bfc3e
2018-03-14 14:57:16 +01:00
Jenkins2
0a96cd082b Merge "install_prereq: Update FreeBSD libraries." 2018-03-14 07:56:10 -05:00
Alexander Traud
ea3b8bb080 install_prereq: Update FreeBSD libraries.
Because the code review system Gerrit creates merge conflicts even when one line
apart another change happened, the previous update to the FreeBSD libraries had
to be rebased via Git. Because of a break for training of the original
contributor, this rebase was done by another contributor and the variant for
Asterisk 13 was cherry-picked to all branches. By this, dependencies for new
features added in newer Asterisk version got lost. This can be seen, when not
the original path set but a previous patch set is compared.

This change here fixes this by adding those (optional) dependencies for
Asterisk 15 and newer (again).

ASTERISK-27686

Change-Id: I6638a3d0dc37ad4ff5f94be15463e3dd8a2bfe74
2018-03-12 12:40:11 +01:00
Alexander Traud
9ff95e46e3 install_prereq: Add NetBSD.
ASTERISK-27729

Change-Id: I7a706d51375d54cf5e36d32397bfe09a48670804
2018-03-08 19:02:16 +01:00
George Joseph
7e2128c8e6 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 15:01:18 -06:00
Alexander Traud
c4c5d00528 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 12:56:00 -06:00
Jenkins2
5bbd68298d Merge "install_prereq: Update OpenBSD libraries." 2018-02-19 19:19:32 -06:00
Alexander Traud
a7e7302ab6 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
 fftw3 libsndfile

ASTERISK-27684

Change-Id: I26bdcb0a1d0e484a8dad1052da97f194aefd3370
2018-02-16 19:42:01 +01:00
Torrey Searle
976afd26ab 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
2018-02-16 09:27:32 -06:00
Alexander Traud
8ac198aff3 BuildSystem: Remove chan_h323 leftovers.
ASTERISK-27670

Change-Id: I07a8ef8bbd6001e25711fa1bff152eb6c9efa729
2018-02-14 09:28:29 +01:00
Corey Farrell
04490fb1d8 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 13:27:08 -05:00
Alexander Traud
971378bbdb install_prereq: Update Debian/Ubuntu libraries.
ASTERISK-27555

Change-Id: Idc36e91db30c0163c560d04c5a82bca5d6ce92a8
2018-02-10 12:39:45 +01:00
Jenkins2
15d9fee96d Merge "install_prereq: Update RHEL/CentOS/Fedora libraries." 2018-01-31 06:42:59 -06:00
Alexander Traud
e7f8ef1935 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
 codec2-devel fftw-devel libsndfile-devel unbound-devel

ASTERISK-27599
Reported by: Said Masoud

Change-Id: I05bb0af98ae532b2d5f37478e38b8f0762b1c035
2018-01-29 11:13:53 +01:00
Alexander Traud
0afff31ed0 install_prereq: Download latest Jansson.
ASTERISK-27603

Change-Id: I65c587534c0ae364f063d68da1bed40bb3d5e8aa
2018-01-26 13:52:13 +01:00
Jenkins2
e36baaa315 Merge "install_prereq: For PJProject, point users to configure script." 2018-01-25 07:46:31 -06:00
Jenkins2
6753c08feb Merge "install_prereq: Support package manager DNF and yum option strict=1." 2018-01-24 07:48:58 -06:00
Alexander Traud
fd557ad041 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:02:08 -06:00
Alexander Traud
93471373f6 install_prereq: Update Debian/Ubuntu libraries.
ASTERISK-27555

Change-Id: Ieb41b0cbf968af12882b39454b819ebb48b9ea46
2018-01-19 13:16:36 +01:00
Alexander Traud
4c511c1a4d 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 11:46:21 +01:00
Alexander Traud
b9e2b72de6 install_prereq: Update Debian/Ubuntu libraries.
ASTERISK-27555

Change-Id: I0818b6e42631be1b69237e2b41d3415275693e53
2018-01-12 08:05:48 +01:00
Sean Bright
fd0ca1c3f9 Remove as much trailing whitespace as possible.
Change-Id: I873c1c6d00f447269bd841494459efccdd2c19c0
2017-12-22 09:23:22 -05:00
Sean Bright
a1a179c09d 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 10:26:53 -06:00
George Joseph
cf1cb3345e 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 10:43:44 -05:00
Alexander Traud
2ebea5aa03 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 12:05:36 +01:00
Joshua Colp
d05391ed55 Merge "ast_coredumper: allow setting asterisk binary explicitly" 2017-10-31 06:48:16 -05:00
Tzafrir Cohen
022de525be 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 16:20:18 +02:00
George Joseph
4aec70690d 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 12:28:21 -05:00