Commit Graph

36 Commits

Author SHA1 Message Date
Yann E. MORIN
9c5f17a928 package/asterisk: use package's DL_DIR
Since we reworked the download infra, the location for packages to look
for their files has moved to a per-package directory.

For systems where a download of the asterisk sound files was already
done in a version prior to the rework, all was working fine so far,
because the files were indeed in the main DL directory.

But for systems where the download is first attempted after the rework,
the files are not found (even though they are properly downloaded).

Fix the location where asterisk looks for its extra files.

Reported-by: ***** ***** <zyama.abel@mail.ru>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: ***** ***** <zyama.abel@mail.ru>
Cc: Carlos Santos <casantos@datacom.ind.br>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-05-11 21:58:54 +02:00
Thomas De Schampheleire
9e345d21a7 asterisk: replace $(HOST_DIR)/usr/bin with $(HOST_DIR)/bin
Commit 0f9c0bf3d5 did a global replace of $(HOST_DIR)/usr/bin to
$(HOST_DIR)/bin. But later, a new occurrence of $(HOST_DIR)/usr/bin snuck
into the sources via commit 05e306d8d3 which added asterisk.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2018-02-27 20:38:18 +01:00
Peter Korsgaard
0b1583972d asterisk: security bump to version 14.7.6
Fixes the following security issues:

AST-2018-002: Crash when given an invalid SDP media format description

By crafting an SDP message with an invalid media format description Asterisk
crashes when using the pjsip channel driver because pjproject's sdp parsing
algorithm fails to catch the invalid media format description.

AST-2018-003: Crash with an invalid SDP fmtp attribute

By crafting an SDP message body with an invalid fmtp attribute Asterisk
crashes when using the pjsip channel driver because pjproject's fmtp
retrieval function fails to check if fmtp value is empty (set empty if
previously parsed as invalid).

AST-2018-004: Crash when receiving SUBSCRIBE request

When processing a SUBSCRIBE request the res_pjsip_pubsub  module stores the
accepted formats present in the Accept headers of the request.  This code
did not limit the number of headers it processed despite having a fixed
limit of 32.  If more than 32 Accept headers were present the code would
write outside of its memory and cause a crash.

AST-2018-005: Crash when large numbers of TCP connections are closed suddenly

A crash occurs when a number of authenticated INVITE messages are sent over
TCP or TLS and then the connection is suddenly closed.  This issue leads to
a segmentation fault.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-02-25 22:19:01 +01:00
Peter Korsgaard
4f13dc362d asterisk: security bump to version 14.7.5
Fixes the following security issues:

* AST-2017-014: Crash in PJSIP resource when missing a contact header A
  select set of SIP messages create a dialog in Asterisk.  Those SIP
  messages must contain a contact header.  For those messages, if the header
  was not present and using the PJSIP channel driver, it would cause
  Asterisk to crash.  The severity of this vulnerability is somewhat
  mitigated if authentication is enabled.  If authentication is enabled a
  user would have to first be authorized before reaching the crash point.

For more details, see the announcement:
https://www.asterisk.org/downloads/asterisk-news/asterisk-13185-1475-1515-and-1318-cert2-now-available-security

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2018-01-08 20:56:46 +01:00
Peter Korsgaard
3f1d2c6c74 asterisk: security bump to version 14.6.2
Fixes the following security issues:

14.6.1:

* AST-2017-005 (applied to all released versions): The "strictrtp" option in
  rtp.conf enables a feature of the RTP stack that learns the source address
  of media for a session and drops any packets that do not originate from
  the expected address.  This option is enabled by default in Asterisk 11
  and above.  The "nat" and "rtp_symmetric" options for chan_sip and
  chan_pjsip respectively enable symmetric RTP support in the RTP stack.
  This uses the source address of incoming media as the target address of
  any sent media.  This option is not enabled by default but is commonly
  enabled to handle devices behind NAT.

  A change was made to the strict RTP support in the RTP stack to better
  tolerate late media when a reinvite occurs.  When combined with the
  symmetric RTP support this introduced an avenue where media could be
  hijacked.  Instead of only learning a new address when expected the new
  code allowed a new source address to be learned at all times.

  If a flood of RTP traffic was received the strict RTPsupport would allow
  the new address to provide media and with symmetric RTP enabled outgoing
  traffic would be sent to this new address, allowing the media to be
  hijacked.  Provided the attacker continued to send traffic they would
  continue to receive traffic as well.

* AST-2017-006 (applied to all released versions): The app_minivm module has
  an “externnotify” program configuration option that is executed by the
  MinivmNotify dialplan application.  The application uses the caller-id
  name and number as part of a built string passed to the OS shell for
  interpretation and execution.  Since the caller-id name and number can
  come from an untrusted source, a crafted caller-id name or number allows
  an arbitrary shell command injection.

* AST-2017-007 (applied only to 13.17.1 and 14.6.1): A carefully crafted URI
  in a From, To or Contact header could cause Asterisk to crash

For more details, see the announcement:
https://www.asterisk.org/downloads/asterisk-news/asterisk-11252-13171-1461-116-cert17-1313-cert5-now-available-security

14.6.2:

* AST-2017-008: Insufficient RTCP packet validation could allow reading
  stale buffer contents and when combined with the “nat” and “symmetric_rtp”
  options allow redirecting where Asterisk sends the next RTCP report.

  The RTP stream qualification to learn the source address of media always
  accepted the first RTP packet as the new source and allowed what
  AST-2017-005 was mitigating.  The intent was to qualify a series of
  packets before accepting the new source address.

For more details, see the announcement:
https://www.asterisk.org/downloads/asterisk-news/asterisk-11253-13172-1462-116-cert18-1313-cert6-now-available-security

Drop 0004-configure-in-cross-complation-assimne-eventfd-are-av.patch as this
is now handled differently upstream (by disabling eventfd for cross
compilation, see commit 2e927990b3d2 (eventfd: Disable during cross
compilation)).  If eventfd support is needed then this should be submitted
upstream.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2018-01-07 23:47:44 +01:00
Yann E. MORIN
52dfe8bf2a package/asterisk: fix host build
The host menuselect tool is linked to our host libxml2 library, but it
is missing an RPATH to the host directory.

This is because menuselect does not use automake, so does not inherit
the LDFLAGS from the configure run.

We fix that by simply passing $(HOST_CONFIGURE_OPTS) in the make
environment.

At the same time, we also install the tool in the host directory, even
if not used from there, so that the sanity checks we run are properly
passed.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-27 00:14:49 +02:00
Yann E. MORIN
4d597d70ec package/asterisk: add optional netsnmp dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
bef84afa8d package/asterisk: add support for PRI signalling
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
66e632f77c package/asterisk: add support for SS7
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
e1fba2c4ad package/asterisk: add support for dahdi
DAHDI is the 'framework' to drive actual telehony cards. Using telephony
cards without signalling is pretty much meaningless, so signalling will
be added in later commits.

libtonezone is provided by dhadi-tools, while the dahdi headers are
provided by dahdi-linux. Go figure.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
7ebab72bbf package/asterisk: add optional libsrtp dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
5a532b0291 package/asterisk: add optional freeradius-client dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
04d86a5991 package/asterisk: add optional openldap dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Arnout: --with-ldap, suggested by Bernd]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
a1e2cd6325 package/asterisk: add optional libical dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
9b12a77ff8 package/asterisk: add optional portaudio dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
c5a4355c73 package/asterisk: add optional libvorbis dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
4f1c340311 package/asterisk: add optional speex dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
da2539d5ef package/asterisk: add optional opus dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
94ae9f1500 package/asterisk: add optional bluez_utils dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
637800de21 package/asterisk: add optional libogg dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
1cf7b3c78b package/asterisk: add optional neon dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
bb50a1ffd5 package/asterisk: add optional alsa-lib dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
5bc671c32d package/asterisk: add optional support for openssl
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
13fcc16db7 package/asterisk: add optional zlib dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
d068ccfd08 package/asterisk: add optional libgsm dependency
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
19b1c16e8c package/asterisk: enable backtrace when available
asterisk uses backtrace() from execinfo.h to print beuatiful backtraces
when it fails. But execinfo is only reliably available with glibc, while
it is optionbal in uClibc and completely missing in musl.

So, only enable backtrace support for glibc toolchains.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2017-09-23 19:20:18 +02:00
Yann E. MORIN
05e306d8d3 package/asterisk: new package
Asterisk: the flagship of telephony on Linux. These are the lines of
code whose continuous mission is to power small and large enterprises
telephony systems, to boldly provide IP PBX where no one has done so
before.

But it is a hell to get compiled... :-(

For starters, it needs a host tool, menuselect, to prepare its build
configuration. Unfortunately, the way it handles menuselect does not
apply very well for cross-compilation: the main ./configure calls out to
menuselect's own ./configure, and of course that runs with the same
environement, which is wrong for cross-compilation (because of variables
like CC, CFLAGS and the likes).

Furthermore, the paths to menuselect are imbricated about everywhere in
the main Makefile, so making it find menuselect in PATH is a lost cause.

Instead, we just patch-out the handling of menuselect, build it as the
host variant and copy it in place.

Now, asterisk wants to install a default set of sound files (for
answering machine stuff, I guess). They come come pre-bundled in the
official archive [0], but the buildsystem will want to download (at
install time) the sha1 files for each sound archive, to validate that
said archive is correct. However, the download is done via plain http,
so it still risks an MITM attack. And for Buildroot, it is not always
possible to download at install time, so we patch-out the sha1 check.

[0] http://downloads.asterisk.org/pub/telephony/asterisk/releases/

The official archive contains the sound archives plus a full set of
documentation. This makes it very big. Unfortunately, the hosting site
is rather slow, topping at about ~204kbps. So we get the archive from
the official mirror on Github. But that archive is missing the sound
archives, so we download them separately.

Some tests, like the crypt() one, are broken and could not have ever
possibly worked at all. Worse, the FFmpeg test is looking for headers
that FFmpeg removed more than 10 years ago and are virtually no longer
available in any distro. So, FFmpeg support is definitely not tested
by upstream and can't possibly work at all. Finally, trying to run
test-code does not work in cross-compilation.

As a final stroke of genius, asterisk checks for the re-entrant variant
of res_ninit(), and concludes that all such functions are available,
including res_nsearch(). Uclibc-ng has the former but not the latter, so
the build fails. Since there is no cache variable for that check, we
can't pre-feed that result to configure, and fixing it is a bigger
endeavour.  So we make asterisk depend on glibc for now, until someone
is brave enough to fix it.

Almost all features are disabled for now. Support for additional
features will be added in subsequent patches now that we have a working
base.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Romain Naour <romain.naour@openwide.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Arnout:
 - make libilbc a mandatory dependency instead of using the bundled one;
 - add license, license files, and license file hashes;
 - minor spelling corrections;
 - remove redundant trailing backslash reported by check-package;
 - rewrap help text to 72 columns instead of 68]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

fixup
2017-09-23 19:20:18 +02:00
Daniel Laird
76235a15b3 audio: Move all audio packages into audio subdir
Moved all audio packages into a subdir called audio.
I then created a Config.in and made sure that a audio.mk 
existed.

Daniel Laird
2008-09-05 12:06:50 +00:00
Hamish Moffatt
af510f4e19 Applied patch from Nathanael D. Noblet <nathanael@gnat.ca> to fix
broken GNU download paths. Also fix gnuchess, xboard and classpath
packages to use $(BR2_GNU_MIRROR) rather than hardcoded urls.
2008-03-26 03:28:09 +00:00
Bernhard Reutner-Fischer
14a71561a3 - just use the strip binary to avoid confusing libtool (quotes)
- use $(STRIPCMD) in packages to avoid clashes with $(STRIP)
2007-10-01 16:15:31 +00:00
Bernhard Reutner-Fischer
e4c6340a94 - cleanup and fixes (Cristian Ionescu-Idbohrn) 2007-09-17 12:30:31 +00:00
Ulf Samuelsson
e4ead9c13c Remove switches if sstrip is run 2007-08-21 01:53:57 +00:00
Ulf Samuelsson
a2e5113512 Use STAGING_DIR/usr/lib instead of STAGING_DIR/lib 2007-08-11 22:26:56 +00:00
Bernhard Reutner-Fischer
8f7cb84b61 - update path. Closes #896. 2006-12-14 15:25:47 +00:00
Bernhard Reutner-Fischer
6342c83201 - use $(ZCAT) as configured by the user instead of hardcoded 'zcat' that may not exist; Closes #971
Silly, unchecked sed -i -e "/[^b]zcat/s/zcat/\$\(ZCAT\)/g" $(svngrep "[^b]zcat" * -rl | grep -v Config.in)
2006-10-01 15:17:52 +00:00
David Anders
63c97755b4 add asterisk package per case 0000456 2006-01-24 21:30:10 +00:00