From: Asterisk Development Team The new "suppress_moh_on_sendonly" endpoint option
+ can be used to prevent playing MOH back to a caller if the remote
+ end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP. The MixMonitor application now has a new 'D' option which
+ interleaves the recorded audio in the output frames. This allows for
+ stereo recording output with one channel being the transmitted audio and
+ the other being the received audio. The 't' and 't' options are
+ compatible with this. documentation: Update Gosub, Goto, and add new documentationtype. res_pjsip: Backport pjsip uri utilities. LICENSE: Update company name, email, and address. documentation: Add information on running install_prereq script in readme app_voicemail: add NoOp alembic script to maintain sync general: Fix broken links. chan_sip.c: Fix __sip_reliable_xmit build error Author: George Joseph
+ Date: 2025-03-25 The following utilities have been backported: ast_sip_is_uri_sip_sips
+ ast_sip_is_allowed_uri
+ ast_sip_pjsip_uri_get_username
+ ast_sip_pjsip_uri_get_hostname
+ ast_sip_pjsip_uri_get_other_param They were originally included in the commit for supporting TEL uris.
+ Support for TEL uris is NOT included here however. Author: George Joseph
+ Date: 2025-03-25 There are several build fixes that never made it into certified/18.9.
+ Unfortunately the commits that contained the fixes also contained other
+ stuff that won't cherry-pick into cert so the build files had to be
+ just copied from 18. Author: Sean Bright
+ Date: 2024-10-17 Fixes #954 Author: Sean Bright
+ Date: 2022-08-19 With gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0: chan_dahdi.c:4129:18: error: â%sâ directive output may be truncated
+ writing up to 255 bytes into a region of size between 242 and 252
+ [-Werror=format-truncation=] This removes the error-prone sizeof(...) calculations in favor of just
+ doubling the size of the base buffer. Author: Sean Bright
+ Date: 2024-05-23 Two functions are deprecated as of libxml2 2.12: So we update those with supported API. Additionally, The xmlreader API has been around since libxml2 2.5.0 which was
+ released in 2003. Fixes #725 Author: Ben Ford
+ Date: 2025-03-14 Gosub and Goto were not displaying their syntax correctly on the docs
+ site. This change adds a new way to specify an optional context, an
+ optional extension, and a required priority that the xml stylesheet can
+ parse without having to know which optional parameters come in which
+ order. In Asterisk, it looks like this: The stylesheet will ignore the context and extension parameters, but for
+ priority, it will automatically inject the following: This is the correct oder for applications such as Gosub and Goto. Author: George Joseph
+ Date: 2025-03-05 Going forward, the release process will create HTML versions of the README
+ and change log and will update the link in the README to the current
+ change log for the branch... Resolves: #1131 Author: Shyju Kanaprath
+ Date: 2024-02-23 Removed outdated link http://www.quicknet.net from README.md cherry-pick-to: 18
+ cherry-pick-to: 20
+ cherry-pick-to: 21 Author: Naveen Albert
+ Date: 2023-11-09 This fixes a number of broken links throughout the
+ tree, mostly caused by wiki.asterisk.org being replaced
+ with docs.asterisk.org, which should eliminate the
+ need for sporadic fixes as in f28047db36a70e81fe373a3d19132c43adf3f74b. Resolves: #430 Author: Marcel Wagner
+ Date: 2022-03-23 Adding information in the readme about running the install_preqreq script to install components that the ./configure script might indicate as missing. ASTERISK-29976 #close Author: Joshua C. Colp
+ Date: 2025-01-21 Author: George Joseph
+ Date: 2025-01-20 Author: Sean Bright
+ Date: 2025-01-09 Also correct the spelling of 'privileges.' Author: George Joseph
+ Date: 2025-01-03 Author: George Joseph
+ Date: 2024-11-15 The suppress_moh_on_sendonly endpoint option should have been
+ defined as OPT_BOOL_T in pjsip_configuration.c and AST_BOOL_VALUES
+ in the alembic script instead of OPT_YESNO_T and YESNO_VALUES. Also updated contrib/ast-db-manage/README.md to indicate that
+ AST_BOOL_VALUES should always be used and provided an example. Resolves: #995 Author: George Joseph
+ Date: 2024-11-05 Normally, when one party in a call sends Asterisk an SDP with
+ a "sendonly" or "inactive" attribute it means "hold" and causes
+ Asterisk to start playing MOH back to the other party. This can be
+ problematic if it happens at certain times, such as in a 183
+ Progress message, because the MOH will replace any early media you
+ may be playing to the calling party. If you set this option
+ to "yes" on an endpoint and the endpoint receives an SDP
+ with "sendonly" or "inactive", Asterisk will NOT play MOH back to
+ the other party. Resolves: #979 UserNote: The new "suppress_moh_on_sendonly" endpoint option
+ can be used to prevent playing MOH back to a caller if the remote
+ end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP. Author: George Joseph
+ Date: 2024-11-06 The tenantid field was originally added to the ast_sip_endpoint
+ structure at the end of the AST_DECLARE_STRING_FIELDS block. This
+ caused everything after it in the structure to move down in memory
+ and break ABI compatibility. It's now at the end of the structure
+ as an AST_STRING_FIELD_EXTENDED. Given the number of string fields
+ in the structure now, the initial string field allocation was
+ also increased from 64 to 128 bytes. Resolves: #982 Author: Ben Ford
+ Date: 2024-10-28 Adds the 'D' option to app_mixmonitor that interleaves the input and
+ output frames of the channel being recorded in the monitor output frame.
+ This allows for two streams in the recording: the transmitted audio and
+ the received audio. The 't' and 'r' options are compatible with this. Fixes: #945 UserNote: The MixMonitor application now has a new 'D' option which
+ interleaves the recorded audio in the output frames. This allows for
+ stereo recording output with one channel being the transmitted audio and
+ the other being the received audio. The 't' and 't' options are
+ compatible with this. Author: George Joseph
+ Date: 2024-10-15 When the channel tech is multistream capable, the reference to
+ chan_topology was passed to the new channel. When the channel tech
+ isn't multistream capable, the reference to chan_topology was never
+ released. "Local" channels are multistream capable so it didn't
+ affect them but the confbridge "CBAnn" and the bridge_media
+ "Recorder" channels are not so they caused a leak every time one
+ of them was created. Also added tracing to ast_stream_topology_alloc() and
+ stream_topology_destroy() to assist with debugging. Resolves: #938 Author: George Joseph
+ Date: 2024-10-08 Resolves: #937 Author: George Joseph
+ Date: 2024-10-03 This unit test checks that dialplan apps and app data specified
+ as parameters for the Originate action are allowed with the
+ permissions the user has. Author: Sean Bright
+ Date: 2024-09-26 The Author: Mike Bradeen
+ Date: 2024-01-17 Adding a NoOp alembic script for the voicemail database to maintain
+ version sync with other branches. Fixes: #527 Author: Sean Bright
+ Date: 2024-09-23 Fixes #895 Author: George Joseph
+ Date: 2024-09-20 The app is actually named "BackGround" but several references
+ in XML documentation were spelled "Background" with the lower
+ case "g". This was causing documentation links to return
+ "not found" messages. It is imperative that you read and fully understand the contents of
the security information document before you attempt to configure and run
an Asterisk server. See Important Security Considerations for more information. See Important Security Considerations for more information. Asterisk is an Open Source PBX and telephony toolkit. It is, in a
sense, middleware between Internet and telephony channels on the bottom,
and Internet and telephony applications at the top. However, Asterisk supports
more telephony interfaces than just Internet telephony. Asterisk also has a
vast amount of support for traditional PSTN telephony, as well. For more information on the project itself, please visit the Asterisk
-home page and the official wiki. In addition you'll find lots
-of information compiled by the Asterisk community at voip-info.org. There is a book on Asterisk published by O'Reilly under the Creative Commons
-License. It is available in book stores as well as in a downloadable version on
-the asteriskdocs.org web site. For more information on the project itself, please visit the Asterisk
+Home Page and the official
+Asterisk Documentation. The Asterisk Open Source PBX is developed and tested primarily on the
@@ -27,26 +24,22 @@ GNU/Linux operating system, and is supported on every major GNU/Linux
distribution. Asterisk has also been 'ported' and reportedly runs properly on other
-operating systems as well, including Sun Solaris, Apple's Mac OS X, Cygwin,
-and the BSD variants.Change Log for Release asterisk-certified-18.9-cert15
+Links:
+
+Summary:
+
+
+User Notes:
+
+
+res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
+app_mixmonitor: Add 'D' option for dual-channel audio.
+Upgrade Notes:
+Commit Authors:
+
+
+Issue and Commit Detail:
+Closed Issues:
+
+
+Commits By Author:
+
+
+Ben Ford (2):
+George Joseph (12):
+Joshua C. Colp (1):
+Marcel Wagner (1):
+Mike Bradeen (1):
+Naveen Albert (1):
+Sean Bright (6):
+Shyju Kanaprath (1):
+Commit List:
+
+
+Commit Details:
+res_pjsip: Backport pjsip uri utilities.
+build_tools: Backport from 18
+chan_sip.c: Fix __sip_reliable_xmit build error
+chan_dahdi.c: Resolve a format-truncation build warning.
+
+
+xml.c: Update deprecated libxml2 API usage.
+
+* xmlSubstituteEntitiesDefault
+* xmlParseMemory
+
res_calendar_caldav
has been updated to use libxml2's
+ xmlreader API instead of the SAX2 API which has always felt a little
+ hacky (see deleted comment block in res_calendar_caldav.c
).documentation: Update Gosub, Goto, and add new documentationtype.
+
+parameter name="context" documentationtype="dialplan_context"
+parameter name="extension" documentationtype="dialplan_extension"
+parameter name="priority" documentationtype="dialplan_priority" required="true"
+
+[[context,]extension,]priority
+
README.md: Updates and Fixes
+
+
+
+
+README.md: Removed outdated link
+general: Fix broken links.
+documentation: Add information on running install_prereq script in readme
+LICENSE: Update company name, email, and address.
+README.md, asterisk.c: Update Copyright Dates
+manager.c: Rename restrictedFile to is_restricted_file.
+gcc14: Fix issues caught by gcc 14
+
+
+res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T
+res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
+res_pjsip: Move tenantid to end of ast_sip_endpoint
+app_mixmonitor: Add 'D' option for dual-channel audio.
+core_unreal.c: Fix memory leak in ast_unreal_new_channels()
+geolocation.sample.conf: Fix comment marker at end of file
+manager.c: Add unit test for Originate app and appdata permissions
+alembic: Drop redundant voicemail_messages index.
+voicemail_messages_dir
index is a left prefix of the table's
+ primary key and therefore unnecessary.app_voicemail: add NoOp alembic script to maintain sync
+res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery
+Fix application references to Background
+The Asterisk(R) Open Source PBX
- By Mark Spencer <markster@digium.com> and the Asterisk.org developer community.
- Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
+
By Mark Spencer <markster@digium.com> and the Asterisk.org developer community.
+Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.
SECURITY
WHAT IS ASTERISK ?
SUPPORTED OPERATING SYSTEMS
Linux
Others
First, be sure you've got supported hardware (but note that you don't need -ANY special hardware, not even a sound card) to install and run Asterisk.
+Most users are using VoIP/SIP exclusively these days but if you need to +interface to TDM or analog services or devices, be sure you've got supported +hardware.
Supported telephony hardware includes: -* All Analog and Digital Interface cards from Sangoma -* QuickNet Internet PhoneJack and LineJack (http://www.quicknet.net) -* any full duplex sound card supported by ALSA, OSS, or PortAudio -* any ISDN card supported by mISDN on Linux -* The Xorcom Astribank channel bank -* VoiceTronix OpenLine products
+* All Analog and Digital Interface cards from Sangoma +* Any full duplex sound card supported by PortAudio +* The Xorcom Astribank channel bankIf you are updating from a previous version of Asterisk, make sure you -read the UPGRADE.txt file in the source directory. There are some files -and configuration options that you will have to change, even though we -made every effort possible to maintain backwards compatibility.
-In order to discover new features to use, please check the configuration -examples in the configs directory of the source code distribution. For a -list of new features in this version of Asterisk, see the CHANGES file.
+read the Change Logs. + + + +Ensure that your system contains a compatible compiler and development
libraries. Asterisk requires either the GNU Compiler Collection (GCC) version
@@ -58,108 +51,79 @@ libraries are being looked for, see ./configure --help
, or run
make menuselect
to view the dependencies for specific modules.
On many distributions, these dependencies are installed by packages with names like 'glibc-devel', 'ncurses-devel', 'openssl-devel' and 'zlib-devel' -or similar.
-So, let's proceed: -1. Read this file.
-There are more documents than this one in the doc directory. You may also -want to check the configuration files that contain examples and reference -guides in the configs directory.
+or similar. Thecontrib/scripts/install_prereq
script can be used to install
+the dependencies for most Debian and Redhat based Linux distributions.
+The script also handles SUSE, Arch, Gentoo, FreeBSD, NetBSD and OpenBSD but
+those distributions mightnoit have complete support or they might be out of date.
+So, let's proceed:
./configure
Execute the configure script to guess values for system-dependent -variables used during compilation.
-make menuselect
[optional]This is needed if you want to select the modules that will be compiled and to +
Read the documentation.
+The Asterisk Documentation website has full
+information for building, installing, configuring and running Asterisk.
Run ./configure
+Execute the configure script to guess values for system-dependent
+variables used during compilation. If the script indicates that some required
+components are missing, you can run ./contrib/scripts/install_prereq install
+to install the necessary components. Note that this will install all dependencies
+for every functionality of Asterisk. After running the script, you will need
+to rerun ./configure
.
Run make menuselect
+This is needed if you want to select the modules that will be compiled and to
check dependencies for various optional modules.
make
Assuming the build completes successfully:
-make install
If this is your first time working with Asterisk, you may wish to install +
Run make
+Assuming the build completes successfully:
Run make install
+If this is your first time working with Asterisk, you may wish to install
the sample PBX, with demonstration extensions, etc. If so, run:
make samples
Doing so will overwrite any existing configuration files you have installed.
- # asterisk -vvvc
-
-You'll see a bunch of verbose messages fly by your screen as Asterisk +
Run make samples
+Doing so will overwrite any existing configuration files you have installed.
Finally, you can launch Asterisk in the foreground mode (not a daemon) with
+asterisk -vvvc
+You'll see a bunch of verbose messages fly by your screen as Asterisk
initializes (that's the "very very verbose" mode). When it's ready, if
you specified the "c" then you'll get a command line console, that looks
-like this:
*CLI>
-
-You can type "core show help" at any time to get help with the system. For help
-with a specific command, type "core show help
"man asterisk" at the Unix/Linux command prompt will give you detailed
+like this:
+*CLI>
+You can type core show help
at any time to get help with the system. For help
+with a specific command, type core show help <command>
.
man asterisk
at the Unix/Linux command prompt will give you detailed
information on how to start and stop Asterisk, as well as all the command
line options for starting Asterisk.
Feel free to look over the configuration files in /etc/asterisk
, where you
-will find a lot of information about what you can do with Asterisk.
All Asterisk configuration files share a common format. Comments are
-delimited by ';' (since '#' of course, being a DTMF digit, may occur in
+delimited by ;
(since #
of course, being a DTMF digit, may occur in
many places). A configuration file is divided into sections whose names
-appear in []'s. Each section typically contains two types of statements,
-those of the form 'variable = value', and those of the form 'object =>
-parameters'. Internally the use of '=' and '=>' is exactly the same, so
-they're used only to help make the configuration file easier to
-understand, and do not affect how it is actually parsed.
Entries of the form 'variable=value' set the value of some parameter in -asterisk. For example, in chan_dahdi.conf, one might specify:
- switchtype=national
-
-In order to indicate to Asterisk that the switch they are connecting to is -of the type "national". In general, the parameter will apply to -instantiations which occur below its specification. For example, if the -configuration file read:
- switchtype = national
- channel => 1-4
- channel => 10-12
- switchtype = dms100
- channel => 25-47
-
-The "national" switchtype would be applied to channels one through -four and channels 10 through 12, whereas the "dms100" switchtype would -apply to channels 25 through 47.
-The "object => parameters" instantiates an object with the given -parameters. For example, the line "channel => 25-47" creates objects for -the channels 25 through 47 of the card, obtaining the settings -from the variables specified above.
+appear in[]
's. Each section typically contains statements in the form
+variable = value
although you may see variable => value
in older samples.
Those using SIP phones should be aware that Asterisk is sensitive to large jumps in time. Manually changing the system time using date(1) (or other similar commands) may cause SIP registrations and other -internal processes to fail. If your system cannot keep accurate time -by itself use NTP to keep the system clock -synchronized to "real time". NTP is designed to keep the system clock -synchronized by speeding up or slowing down the system clock until it -is synchronized to "real time" rather than by jumping the time and -causing discontinuities. Most Linux distributions include precompiled -versions of NTP. Beware of some time synchronization methods that get -the correct real time periodically and then manually set the system -clock.
-Apparent time changes due to daylight savings time are just that, -apparent. The use of daylight savings time in a Linux system is -purely a user interface issue and does not affect the operation of the -Linux kernel or Asterisk. The system clock on Linux kernels operates -on UTC. UTC does not use daylight savings time.
-Also note that this issue is separate from the clocking of TDM -channels, and is known to at least affect SIP registrations.
+internal processes to fail. For this reason, you should always use +a time synchronization package to keep your system time accurate. +All OS/distributions make one or more of the following packages +available: +Be sure to install and configure one (and only one) of them.
Depending on the size of your system and your configuration, Asterisk can consume a large number of file descriptors. In UNIX, @@ -189,14 +153,22 @@ these changes to take effect.
above you can try adding the commandulimit -n 8192
to the script
that starts Asterisk.
See the doc directory for more documentation on various features. -Again, please read all the configuration samples that include documentation -on the configuration options.
-Finally, you may wish to visit the support site and join the mailing -list if you're interested in getting more information.
+Visit the Asterisk Documentation website +for more documentation on various features and please read all the +configuration samples that include documentation on the configuration options.
+Finally, you may wish to join the +Asterisk Community Forums
Welcome to the growing worldwide community of Asterisk users!
Mark Spencer, and the Asterisk.org development community
Asterisk is a trademark of Sangoma Technologies Corporation
+[Sangoma] +[Home Page] +[Support] +[Documentation] +[Community Forums] +[Release Notes] +[Security] +[Mailing List Archive]
diff --git a/README.md b/README.md index 063db527e9..b9ab3011de 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ If you are updating from a previous version of Asterisk, make sure you read the Change Logs. -[Change Logs](https://downloads.asterisk.org/pub/telephony/asterisk) +[Change Logs](ChangeLogs/ChangeLog-certified-18.9-cert15.html) ### NEW INSTALLATIONS diff --git a/contrib/realtime/mysql/mysql_config.sql b/contrib/realtime/mysql/mysql_config.sql index 47ae56b656..61e19b1ac3 100644 --- a/contrib/realtime/mysql/mysql_config.sql +++ b/contrib/realtime/mysql/mysql_config.sql @@ -1358,3 +1358,15 @@ ALTER TABLE ps_endpoints ADD COLUMN tenantid VARCHAR(80); UPDATE alembic_version SET version_num='655054a68ad5' WHERE alembic_version.version_num = '9f3692b1654b'; +-- Running upgrade 655054a68ad5 -> 801b9fced8b7 + +ALTER TABLE ps_subscription_persistence ADD COLUMN generator_data TEXT; + +UPDATE alembic_version SET version_num='801b9fced8b7' WHERE alembic_version.version_num = '655054a68ad5'; + +-- Running upgrade 801b9fced8b7 -> 4f91fc18c979 + +ALTER TABLE ps_endpoints ADD COLUMN suppress_moh_on_sendonly ENUM('0','1','off','on','false','true','no','yes'); + +UPDATE alembic_version SET version_num='4f91fc18c979' WHERE alembic_version.version_num = '801b9fced8b7'; + diff --git a/contrib/realtime/mysql/mysql_voicemail.sql b/contrib/realtime/mysql/mysql_voicemail.sql index b30456e41c..88233f9fa9 100644 --- a/contrib/realtime/mysql/mysql_voicemail.sql +++ b/contrib/realtime/mysql/mysql_voicemail.sql @@ -33,3 +33,13 @@ ALTER TABLE voicemail_messages MODIFY recording BLOB(4294967295) NULL; UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e'; +-- Running upgrade 39428242f7f5 -> 1c55c341360f + +UPDATE alembic_version SET version_num='1c55c341360f' WHERE alembic_version.version_num = '39428242f7f5'; + +-- Running upgrade 1c55c341360f -> 64fae6bbe7fb + +DROP INDEX voicemail_messages_dir ON voicemail_messages; + +UPDATE alembic_version SET version_num='64fae6bbe7fb' WHERE alembic_version.version_num = '1c55c341360f'; + diff --git a/contrib/realtime/postgresql/postgresql_config.sql b/contrib/realtime/postgresql/postgresql_config.sql index 15b8441d64..2357e06f61 100644 --- a/contrib/realtime/postgresql/postgresql_config.sql +++ b/contrib/realtime/postgresql/postgresql_config.sql @@ -1472,5 +1472,17 @@ ALTER TABLE ps_endpoints ADD COLUMN tenantid VARCHAR(80); UPDATE alembic_version SET version_num='655054a68ad5' WHERE alembic_version.version_num = '9f3692b1654b'; +-- Running upgrade 655054a68ad5 -> 801b9fced8b7 + +ALTER TABLE ps_subscription_persistence ADD COLUMN generator_data TEXT; + +UPDATE alembic_version SET version_num='801b9fced8b7' WHERE alembic_version.version_num = '655054a68ad5'; + +-- Running upgrade 801b9fced8b7 -> 4f91fc18c979 + +ALTER TABLE ps_endpoints ADD COLUMN suppress_moh_on_sendonly ast_bool_values; + +UPDATE alembic_version SET version_num='4f91fc18c979' WHERE alembic_version.version_num = '801b9fced8b7'; + COMMIT; diff --git a/contrib/realtime/postgresql/postgresql_voicemail.sql b/contrib/realtime/postgresql/postgresql_voicemail.sql index 75caef9ec1..ada42ee881 100644 --- a/contrib/realtime/postgresql/postgresql_voicemail.sql +++ b/contrib/realtime/postgresql/postgresql_voicemail.sql @@ -35,5 +35,15 @@ ALTER TABLE voicemail_messages ALTER COLUMN recording TYPE BYTEA; UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e'; +-- Running upgrade 39428242f7f5 -> 1c55c341360f + +UPDATE alembic_version SET version_num='1c55c341360f' WHERE alembic_version.version_num = '39428242f7f5'; + +-- Running upgrade 1c55c341360f -> 64fae6bbe7fb + +DROP INDEX voicemail_messages_dir; + +UPDATE alembic_version SET version_num='64fae6bbe7fb' WHERE alembic_version.version_num = '1c55c341360f'; + COMMIT;