A pure blacklist is not good enough, we need a whitelist mechanism as
well, and the simplest way to do that is to re-use existing ACL
infrastructure.
This makes it simpler to blacklist say an entire block (/24) except a
smaller block (eg, a /29 or even a /32). Normally you'd need to
recursively split the block, so if you want to blacklist a /24 except
for a /29 you'd end up with a blacklit for a /25, /26, /27 and /28. I
feel that having an ACL instead of a blacklist only is clearer.
Change-Id: Id57a8df51fcfd3bd85ea67c489c85c6c3ecd7b30
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
This change introduce a CLI command for the RTP to display the general
configuration.
In the first step add the follow fields of the configurations:
- rtpstart
- rtpend
- dtmftimeout
- rtpchecksum
- strictrtp
- learning_min_sequential
- icesupport
Change-Id: Ibe5450898e2c3e1ed68c10993aa1ac6bf09b821f
When a text message was received any associated variable was not written to
the ARI TextMessageReceived event. This occurred because Asterisk only wrote
out "send" variables. However, even those "send" variables would fail ARI
validation due to a TextMessageVariable formatting bug.
Since it seems the TextMessageReceived event has never been able to include
actual variables it was decided to remove the TextMessageVariable object type
from ARI, and simply return a JSON object of key/value pairs for variables.
This aligns more with how the ARI sendMessage handles variables, and other
places in ARI.
That being the case, and since this is technically an API breaking change (no
one should really be affected since things never really worked) the ARI version
was updated to reflect that.
ASTERISK-28755 #close
Change-Id: Ia6051c01a53b30cf7edef84c27df4ed4479b8b6f
When opening a file for writing, Asterisk silently converts filenames
ending with 'wav49' to 'WAV.' We aren't taking that in to account when
setting the MIXMONITOR_FILENAME variable in MixMonitor.
* If the user wants to write to a wav49 file, make sure that it is
reflected properly in MIXMONITOR_FILENAME.
* Add a note to the documentation describing this behavior.
* Add a note in main/file.c indicating that app_mixmonitor needs to be
changed if the logic in build_filename was changed.
ASTERISK-24798 #close
Reported by: xrobau
Change-Id: I384691ce624eb55c80a125b9ca206d2d691c574c
Although the wiki page for the new CHANGES and UPGRADE scheme
states that the files must have the ".txt" suffix, the READMEs
didn't.
Change-Id: I490306aa2cc24d6f014738e9ebbc78592efe0f05
(cherry picked from commit 7416703f04)
Add a new configuration option 'enable_status' which allows the
/httpstatus URI handler to be administratively disabled.
We also no longer unconditionally register the /static and /httpstatus
URI handlers, but instead do it based upon configuration.
Behavior change: If enable_static was turned off, the URI handler was
still installed but returned a 403 when it was accessed. Because we
now register/unregister the URI handlers as appropriate, if the
/static URI is disabled we will return a 404 instead.
Additionally:
* Change 'enablestatic' to 'enable_static' but keep the former for
backwards compatibility.
* Improve some internal variable names
ASTERISK-28710 #close
Change-Id: I647510f796473793b1d3ce1beb32659813be69e1
We allow for 'maxredirs' to be set, but this value is ignored when
followlocation is not enabled which, by default, it is not.
ASTERISK-17491 #close
Reported by: candrews
Change-Id: I96a4ab0142f2fb7d2e96ff976f6cf7b2982c761a
Adds source port matching support when IP matching is used:
[example]
type = identify
match = 1.2.3.4:5060/32, 1.2.3.4:6000/32, asterisk.org:4444
If the IP matches but the source port does not, we reject and search for
alternatives. SRV lookups are still performed if enabled (srv_lookups = yes),
unless the configured FQDN includes a port number in which case just a host
lookup is performed.
ASTERISK-28639 #close
Reported by: Mitch Claborn
Change-Id: I256d5bd5d478b95f526e2f80ace31b690eebba92
Dialplan has to be careful about passing an empty device list or empty
positions in the list. As a result, dialplan has to check for these
conditions before using ChanIsAvail. Simplify dialplan by making
ChanIsAvail handle these conditions gracefully.
* Made tolerate empty positions in the device list.
* Simplified the code and eliminated some unnecessary indention.
ASTERISK-28638
Change-Id: I9e4b67e2cbf26b2417c2d03485b8568e898931d3
Dialplan has to be careful about passing an empty destination list or
empty positions in the list. As a result, dialplan has to check for
these conditions before using Dial. Simplify dialplan by making Dial
handle these conditions gracefully.
* Made tolerate empty positions in the dialed device list.
* Reduced some message log levels from notice to verbose.
ASTERISK-28638
Change-Id: I6edc731aff451f8bdfaee5498078dd18c3a11ab9
Dialplan has to be careful about passing an empty destination list or
empty positions in the list. As a result, dialplan has to check for
these conditions before using Page. Simplify dialplan by making Page
handle these conditions gracefully.
* Made tolerate empty positions in the paged device list.
* Reduced some warnings associated with the 's' option to verbose
messages. The warning level for those messages really serves no purpose
as that is why the 's' option exists.
ASTERISK-28638
Change-Id: I95b64a6d6800cd1a25279c88889314ae60fc21e3
ConfBridge has the ability to move between different sample
rates for mixing the conference bridge. Up until now there has
only been the ability to set the conference bridge to mix at
a specific sample rate, or to let it move between sample rates
as necessary. This change adds the ability to configure a
conference bridge with a maximum sample rate so it can move
between sample rates but only up to the configured maximum.
ASTERISK-28658
Change-Id: Idff80896ccfb8a58a816e4ce9ac4ebde785963ee
A previous patch:
Gerrit Change-Id: I73bb24799bfe1a48adae9c034a2edbae54cc2a39
made it so a T.38 Gateway tries to negotiate with both sides by sending T.38
negotiation request to both endpoints supported T.38 versus the previous
behavior of forwarding negotiation to the "other" channel once a preamble
was detected.
This had the unfortunate side effect of breaking some setups. Specifically
ones that set the max datagram option on an endpoint configuration (configured
max datagram was not propagated since Asterisk now initiates negotiations).
This patch adds a configuration option, "negotiate_both", that when enabled
makes it so Asterisk initiates the negotiation requests to both endpoints vs.
the previous behavior of waiting, and forwarding the request.
The default is disabled keeping with the old behavior.
ASTERISK-28660
Change-Id: I5deb875f3485e20bc75119ec743090655d864a1a
add missing argument "rtt" and "status" to the documentation
The change to the dtd file allow an enumlist to contain one or many
configOptionToEnum or enum.
This is different from the previous patch I submitted when you could have a
configOptionToEnum or (a configOptionToEnum followed by one or manu enums) or
(one or many enums)
ASTERISK-28626
Change-Id: Ia71743ee7ec813f40297b0ddefeee7909db63b6d
This reverts commit 3778e1abcd.
Reason for revert: Regression in XML validation.
validity error : Content model of enumlist is not determinist:
(configOptionToEnum | (configOptionToEnum , enum+) | enum+)
As we are preparing to do releases and this is not critical
I am reverting this for now until resolved.
Change-Id: I07b539d0406e8af08934a91223e850444bde1b75
If an AMI user without the "system" authorization calls the
Originate AMI command with the Originate application,
the second Originate could run the "System" command.
Action: Originate
Channel: Local/1111
Application: Originate
Data: Local/2222,app,System,touch /tmp/owned
If the "system" authorization isn't set, we now block the
Originate app as well as the System, Exec, etc. apps.
ASTERISK-28580
Reported by: Eliel Sardañons
Change-Id: Ic4c9dedc34c426f03c8c14fce334a71386d8a5fa
When user wants to send json data, the default Content-Type header
is incorect (application/x-www-form-urlencoded). This patch allows
to set any custom headers so the Content-Type header can be
overriden. User can set multiple headers by multiple calls of
curlopt(). This approach is not consistent with other parameters,
but is more readable in dialplan than one call with multiple
headers.
ASTERISK-28613
Change-Id: I4dd68c3f4e25362ef941d73a3861f58348dcfbf9
This reverts commit fd2e8d0da7.
Reason for revert: Problematic for users who store their voicemail
on network storage devices, or share voicemail storage between
multiple Asterisk instances.
ASTERISK-28567 #close
Change-Id: I3ff4ca983d8e753fe2971f3439bd154705693c41
Add a new dialplan function PJSIP_MOH_PASSTHROUGH that allows
the on-hold behavior to be controlled on a per-call basis
ASTERISK-28542 #close
Change-Id: Iebe905b2ad6dbaa87ab330267147180b05a3c3a8
Added "like" support for 'core show taskprocessors'. Now you
can specify a specific set of taskprocessors (or just one) by
adding the keyword "like" to the above command, followed by
your search criteria.
Change-Id: I021e740201e9ba487204b5451e46feb0e3222464
Added two new CLI commands to reset stats for taskprocessors. You can
reset stats for a single, specific taskprocessor ('core reset
taskprocessor <taskprocessor>'), or you can reset all taskprocessors
('core reset taskprocessors'). These commands will reset the counter for
the number of tasks processed as well as the max queue size.
Change-Id: Iaf17fc4ae29396ab0c6ac92408fc7bdc2f12362d
This fix allows a realtime moh class to be unregistered from the command
line. This is useful when the contents of a directory referenced by a
realtime moh class have changed.
The realtime moh class is then reloaded on the next request and uses the
new directory contents.
ASTERISK-17808
Change-Id: Ibc4c6834592257c4bb90601ee299682d15befbce
There are 4 scenarios to consider when capturing audio from a channel
with an audiohook:
1. There is no rx and no tx audio, so return nothing.
2. There is rx but no tx audio, so return rx.
3. There is tx but no rx audio, so return tx.
4. There is rx and tx audio, so mix them and return.
The file passed as the primary argument to MixMonitor will be written to
in scenarios 2, 3, and 4. However, if you pass the r() and t() options
to MixMonitor, a frame will only be written to the r() file if there was
rx audio and a frame will only be written to the t() file if there was
tx audio.
If you subsequently take the r() and t() files and try to mix them, the
sides of the conversation will 'drift' and be non-representative of the
user experience.
This patch adds a new 'S' option to MixMonitor that injects a frame of
silence on either the r() side or the t() side of the channel so that
when later mixed, there is no such drift.
Change-Id: Ibf5ed73a811087727bd561a89a59f4447b4ee20e
Two new Makefile targets have been added... "install-headers" and
"uninstall-headers" to separately control header installation.
The existing behavior has not changed so "make install" and
"make uninstall" will continue to also install/uninstall the headers.
The new targets were added for forward compatibility with Asterisk 17
in which the headers are no longer installed/uninstalled with the
"install" and "uninstall" targets.
Also corrects an issue where /usr/include/asterisk.h was never
being removed at all.
Change-Id: Ia7399f3a0203a4825fc4a9f43b9034dae9a2b643
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
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
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
One of the change files doesn't conform to the format that the release
scripts need in order to parse it.
Change-Id: Ie0b634cf27e4cbc671b9fe92993b6f2ecf60254c