Skip to content
Commits on Source (4)
13.22.0
\ No newline at end of file
13.23.1
\ No newline at end of file
......@@ -8,6 +8,24 @@
===
==============================================================================
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.22.0 to Asterisk 13.23.0 ----------
------------------------------------------------------------------------------
res_pjsip
------------------
* 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'.
res_pjsip_endpoint_identifier_ip
------------------
* Added regex support to the identify section match_header option. You
specify a regex instead of an explicit string by surrounding the header
value with slashes:
match_header = SIPHeader: /regex/
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 13.21.0 to Asterisk 13.22.0 ----------
------------------------------------------------------------------------------
......
This diff is collapsed.
......@@ -767,7 +767,7 @@ upgrade: bininstall
# (1) the configuration directory to install from
# (2) the extension to strip off
define INSTALL_CONFIGS
@for x in configs/$(1)/*$(2); do \
@for x in $(1)/*$(2); do \
dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x $(2)`"; \
if [ -f "$${dst}" ]; then \
if [ "$(OVERWRITE)" = "y" ]; then \
......@@ -803,6 +803,14 @@ define INSTALL_CONFIGS
fi
endef
install-configs:
@if test -z "$(CONFIG_SRC)" -o ! -d "$(CONFIG_SRC)"; then \
>&2 echo "CONFIG_SRC must be set to a directory."; \
exit 1; \
fi
@echo "Installing config files from $(CONFIG_SRC)/*$(CONFIG_EXTEN)"
$(call INSTALL_CONFIGS,$(CONFIG_SRC),$(CONFIG_EXTEN))
# XXX why *.adsi is installed first ?
adsi:
@echo Installing adsi config files...
......@@ -819,7 +827,7 @@ adsi:
samples: adsi
@echo Installing other config files...
$(call INSTALL_CONFIGS,samples,.sample)
$(call INSTALL_CONFIGS,configs/samples,.sample)
$(INSTALL) -d "$(DESTDIR)$(ASTSPOOLDIR)/voicemail/default/1234/INBOX"
build_tools/make_sample_voicemail "$(DESTDIR)/$(ASTDATADIR)" "$(DESTDIR)/$(ASTSPOOLDIR)"
@for x in phoneprov/*; do \
......@@ -842,7 +850,7 @@ samples: adsi
basic-pbx:
@echo Installing basic-pbx config files...
$(call INSTALL_CONFIGS,basic-pbx)
$(call INSTALL_CONFIGS,configs/basic-pbx)
webvmail:
@[ -d "$(DESTDIR)$(HTTP_DOCSDIR)/" ] || ( printf "http docs directory not found.\nUpdate assignment of variable HTTP_DOCSDIR in Makefile!\n" && exit 1 )
......@@ -1112,6 +1120,7 @@ check-alembic: makeopts
@find contrib/ast-db-manage/ -name '*.pyc' -delete
@ALEMBIC=$(ALEMBIC) build_tools/make_check_alembic config cdr voicemail >&2
.PHONY: install-configs
.PHONY: menuselect
.PHONY: main
.PHONY: sounds
......
......@@ -73,6 +73,10 @@
#include "chan_ooh323.h"
#include <math.h>
#ifndef IPTOS_MINCOST
#define IPTOS_MINCOST 0x02
#endif
#define FORMAT_STRING_SIZE 512
/* Defaults */
......
......@@ -17,6 +17,10 @@
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#ifdef SOLARIS
#include <sys/sockio.h>
#endif
#include "asterisk/io.h"
#include "asterisk/lock.h"
#include "asterisk/utils.h"
......
......@@ -8172,12 +8172,12 @@ stop:
"%d|%d|%ld", qe.pos, qe.opos,
(long) (time(NULL) - qe.start));
res = -1;
} else if (qcontinue) {
reason = QUEUE_CONTINUE;
res = 0;
} else if (reason == QUEUE_LEAVEEMPTY) {
/* Return back to dialplan, don't hang up */
res = 0;
} else if (qcontinue) {
reason = QUEUE_CONTINUE;
res = 0;
}
} else if (qe.valid_digits) {
ast_queue_log(args.queuename, ast_channel_uniqueid(chan), "NONE", "EXITWITHKEY",
......@@ -9932,7 +9932,7 @@ static char *complete_queue_add_member(const char *line, const char *word, int p
case 6: /* only one possible match, "penalty" */
return state == 0 ? ast_strdup("penalty") : NULL;
case 7:
if (state < 100) { /* 0-99 */
if (0 <= state && state < 100) { /* 0-99 */
char *num;
if ((num = ast_malloc(3))) {
sprintf(num, "%d", state);
......
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-13.23.1</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-13.23.1</h3><h3 align="center">Date: 2018-09-20</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
<li><a href="#summary">Summary</a></li>
<li><a href="#contributors">Contributors</a></li>
<li><a href="#closed_issues">Closed Issues</a></li>
<li><a href="#commits">Other Changes</a></li>
<li><a href="#diffstat">Diffstat</a></li>
</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems from these issues.</p><p>Security Advisories:</p><ul>
<li><a href="http://downloads.asterisk.org/pub/security/AST-2018-009.html">AST-2018-009</a></li>
</ul><p>The data in this summary reflects changes that have been made since the previous release, asterisk-13.23.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
<tr valign="top"><td width="33%">2 George Joseph <gjoseph@digium.com><br/>1 Sean Bright <sean.bright@gmail.com><br/></td><td width="33%"><td width="33%">1 Sean Bright <sean.bright@gmail.com><br/></td></tr>
</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Security</h3><h4>Category: Resources/res_http_websocket</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-28013">ASTERISK-28013</a>: res_http_websocket: Crash when reading HTTP Upgrade requests<br/>Reported by: Sean Bright<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e6b0c4d27e0392a7b4b4b6717a6d1e0ea049b550">[e6b0c4d27e]</a> Sean Bright -- AST-2018-009: Fix crash processing websocket HTTP Upgrade requests</li>
</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=43e816ead907bd5c0fd4acf46941bdccec7acac1">43e816ead9</a></td><td>George Joseph</td><td>CI: Fix typo in testsuite git checkout</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f777e483a950e0ae2cc1ef5c7fd34c9a99a1243">5f777e483a</a></td><td>George Joseph</td><td>CI: Use proper credentials for Security testsuite checkout</td></tr>
</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>asterisk-13.23.0-summary.html | 276 --------------
asterisk-13.23.0-summary.txt | 688 -----------------------------------
b/.version | 2
b/ChangeLog | 4
b/asterisk-13.23.0-rc1-summary.html | 285 ++++++++++++++
b/asterisk-13.23.0-rc1-summary.txt | 696 ++++++++++++++++++++++++++++++++++++
b/res/res_http_websocket.c | 22 -
7 files changed, 993 insertions(+), 980 deletions(-)</pre><br></html>
\ No newline at end of file
Release Summary
asterisk-13.23.1
Date: 2018-09-20
<asteriskteam@digium.com>
----------------------------------------------------------------------
Table of Contents
1. Summary
2. Contributors
3. Closed Issues
4. Other Changes
5. Diffstat
----------------------------------------------------------------------
Summary
[Back to Top]
This release has been made to address one or more security vulnerabilities
that have been identified. A security advisory document has been published
for each vulnerability that includes additional information. Users of
versions of Asterisk that are affected are strongly encouraged to review
the advisories and determine what action they should take to protect their
systems from these issues.
Security Advisories:
* AST-2018-009
The data in this summary reflects changes that have been made since the
previous release, asterisk-13.23.0.
----------------------------------------------------------------------
Contributors
[Back to Top]
This table lists the people who have submitted code, those that have
tested patches, as well as those that reported issues on the issue tracker
that were resolved in this release. For coders, the number is how many of
their patches (of any size) were committed into this release. For testers,
the number is the number of times their name was listed as assisting with
testing a patch. Finally, for reporters, the number is the number of
issues that they reported that were affected by commits that went into
this release.
Coders Testers Reporters
2 George Joseph 1 Sean Bright
1 Sean Bright
----------------------------------------------------------------------
Closed Issues
[Back to Top]
This is a list of all issues from the issue tracker that were closed by
changes that went into this release.
Security
Category: Resources/res_http_websocket
ASTERISK-28013: res_http_websocket: Crash when reading HTTP Upgrade
requests
Reported by: Sean Bright
* [e6b0c4d27e] Sean Bright -- AST-2018-009: Fix crash processing
websocket HTTP Upgrade requests
----------------------------------------------------------------------
Commits Not Associated with an Issue
[Back to Top]
This is a list of all changes that went into this release that did not
reference a JIRA issue.
+------------------------------------------------------------------------+
| Revision | Author | Summary |
|------------+---------------+-------------------------------------------|
| 43e816ead9 | George Joseph | CI: Fix typo in testsuite git checkout |
|------------+---------------+-------------------------------------------|
| 5f777e483a | George Joseph | CI: Use proper credentials for Security |
| | | testsuite checkout |
+------------------------------------------------------------------------+
----------------------------------------------------------------------
Diffstat Results
[Back to Top]
This is a summary of the changes to the source code that went into this
release that was generated using the diffstat utility.
asterisk-13.23.0-summary.html | 276 --------------
asterisk-13.23.0-summary.txt | 688 -----------------------------------
b/.version | 2
b/ChangeLog | 4
b/asterisk-13.23.0-rc1-summary.html | 285 ++++++++++++++
b/asterisk-13.23.0-rc1-summary.txt | 696 ++++++++++++++++++++++++++++++++++++
b/res/res_http_websocket.c | 22 -
7 files changed, 993 insertions(+), 980 deletions(-)
......@@ -80,7 +80,7 @@ AC_DEFUN([AST_LIBCURL_CHECK_CONFIG],
AH_TEMPLATE([LIBCURL_PROTOCOL_POP3],[Defined if libcurl supports POP3])
AH_TEMPLATE([LIBCURL_PROTOCOL_IMAP],[Defined if libcurl supports IMAP])
AH_TEMPLATE([LIBCURL_PROTOCOL_SMTP],[Defined if libcurl supports SMTP])
AC_SUBST(PBX_CURL)
AC_SUBST(PBX_CURL, 0)
AC_ARG_WITH(libcurl,
AS_HELP_STRING([--with-libcurl=PREFIX],[look for the curl library in PREFIX/lib and headers in PREFIX/include]),
......@@ -248,7 +248,6 @@ if (x) {;}
else
unset CURL_LIB
unset CURL_INCLUDE
PBX_CURL=0
fi
fi
......
......@@ -3,7 +3,6 @@
AWK=${AWK:-awk}
GIT=${GIT:-git}
GREP=${GREP:-grep}
MAINLINE_BRANCH=13
if [ -f ${1}/.version ]; then
cat ${1}/.version
......@@ -101,6 +100,7 @@ elif [ -d ${1}/.git ]; then
MODIFIED=""
SVN_REV=`${GIT} log --pretty=full -1 | ${GREP} -F "git-svn-id:" | sed -e "s/.*\@\([^\s]*\)\s.*/\1/g"`
if [ -z "$SVN_REV" ]; then
MAINLINE_BRANCH=$(git config -f .gitreview --get gerrit.defaultbranch)
VERSION=`${GIT} describe --long --always --tags --dirty=M 2> /dev/null`
if [ $? -ne 0 ]; then
if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
......
......@@ -18676,7 +18676,6 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
S_OR(transferer->context, NULL));
pbx_builtin_setvar_helper(peer, "__SIPREFERREDBYHDR",
S_OR(p_referred_by, NULL));
ast_channel_unlock(peer);
}
 
owner_relock = sip_pvt_lock_full(transferer);
......@@ -34158,17 +34157,14 @@ static int peer_iphash_cb(const void *obj, const int flags)
* This function has two modes.
* - If the peer arg does not have INSECURE_PORT set, then we will only return
* a match for a peer that matches both the IP and port.
* - If the peer arg does have the INSECURE_PORT flag set, then we will only
* return a match for a peer that matches the IP and has insecure=port
* in its configuration.
* - If the peer arg does have the INSECURE_PORT flag set, then we will return
* a match for UDP peers with insecure=port set, or a peer that does NOT have
* host=dynamic for other protocols (or have a valid Contact: header in REGISTER).
* This callback will be used twice when doing peer matching, as per the two modes
* described above.
*
* This callback will be used twice when doing peer matching. There is a first
* pass for full IP+port matching, and a second pass in case there is a match
* that meets the insecure=port criteria.
*
* \note Connections coming in over TCP or TLS should never be matched by port.
*
* \note the peer's addr struct provides to fields combined to make a key: the sin_addr.s_addr and sin_port fields.
* \note the peer's addr struct provides to fields combined to make a key: the
* sin_addr.s_addr and sin_port fields (transport is compared separately).
*/
static int peer_ipcmp_cb_full(void *obj, void *arg, void *data, int flags)
{
......@@ -34187,24 +34183,50 @@ static int peer_ipcmp_cb_full(void *obj, void *arg, void *data, int flags)
return 0;
}
 
/* We matched the IP, check to see if we need to match by port as well. */
if (((peer->transports & peer2->transports) &
(AST_TRANSPORT_UDP | AST_TRANSPORT_WS | AST_TRANSPORT_WSS)) &&
ast_test_flag(&peer2->flags[0], SIP_INSECURE_PORT)) {
if ((peer->transports & peer2->transports) == 0) {
/* transport setting doesn't match */
return 0;
}
if (!ast_test_flag(&peer2->flags[0], SIP_INSECURE_PORT)) {
/* On the first pass only match if ports match. */
return ast_sockaddr_port(&peer->addr) == ast_sockaddr_port(&peer2->addr) ?
(CMP_MATCH | CMP_STOP) : 0;
}
/* We can reach here only if peer2 is for SIP_INSECURE_PORT, in
* other words, the second pass where we only try to match against IP.
*
* Some special handling for UDP vs non-UDP (TCP, TLS, WS and WSS), since
* for non-UDP the source port won't typically be controlled, we only want
* to check the source IP, but only if the host isn't dynamic. This isn't
* done in the first pass so that if a peer registers from the same IP as
* a static IP peer that registration (port match) will take prescedence).
*/
if (peer2->transports == AST_TRANSPORT_UDP) {
/* We are allowing match without port for peers configured that
* way in this pass through the peers. */
return ast_test_flag(&peer->flags[0], SIP_INSECURE_PORT) ?
(CMP_MATCH | CMP_STOP) : 0;
}
 
/* Now only return a match if the port matches, as well. */
return ast_sockaddr_port(&peer->addr) == ast_sockaddr_port(&peer2->addr) ?
(CMP_MATCH | CMP_STOP) : 0;
}
if (!peer->host_dynamic) {
return CMP_MATCH | CMP_STOP;
}
 
static int peer_ipcmp_cb(void *obj, void *arg, int flags)
{
return peer_ipcmp_cb_full(obj, arg, NULL, flags);
/* Conditions taken from parse_register_contact() */
if (peer2->transports & (AST_TRANSPORT_WS | AST_TRANSPORT_WSS)) {
/* The contact address of websockets is always the transport source address and port */
return 0;
}
if (ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT)) {
/* The contact address of NATed peers is always the transport source address and port */
return 0;
}
/* Have to assume that we used the registered contact header (non-NAT) */
return CMP_MATCH | CMP_STOP;
}
 
static int threadt_hash_cb(const void *obj, const int flags)
......@@ -35326,7 +35348,7 @@ static int load_module(void)
/* the fact that ao2_containers can't resize automatically is a major worry! */
/* if the number of objects gets above MAX_XXX_BUCKETS, things will slow down */
peers = ao2_t_container_alloc(HASH_PEER_SIZE, peer_hash_cb, peer_cmp_cb, "allocate peers");
peers_by_ip = ao2_t_container_alloc(HASH_PEER_SIZE, peer_iphash_cb, peer_ipcmp_cb, "allocate peers_by_ip");
peers_by_ip = ao2_t_container_alloc(HASH_PEER_SIZE, peer_iphash_cb, NULL, "allocate peers_by_ip");
dialogs = ao2_t_container_alloc(HASH_DIALOG_SIZE, dialog_hash_cb, dialog_cmp_cb, "allocate dialogs");
dialogs_needdestroy = ao2_t_container_alloc(1, NULL, NULL, "allocate dialogs_needdestroy");
dialogs_rtpcheck = ao2_t_container_alloc(HASH_DIALOG_SIZE, dialog_hash_cb, dialog_cmp_cb, "allocate dialogs for rtpchecks");
......@@ -530,7 +530,13 @@ static int channel_read_rtp(struct ast_channel *chan, const char *type, const ch
} else if (!strcmp(type, "direct")) {
ast_copy_string(buf, ast_sockaddr_stringify(&media->direct_media_addr), buflen);
} else if (!strcmp(type, "secure")) {
snprintf(buf, buflen, "%d", media->srtp ? 1 : 0);
if (media->srtp) {
struct ast_sdp_srtp *srtp = media->srtp;
int flag = ast_test_flag(srtp, AST_SRTP_CRYPTO_OFFER_OK);
snprintf(buf, buflen, "%d", flag ? 1 : 0);
} else {
snprintf(buf, buflen, "%d", 0);
}
} else if (!strcmp(type, "hold")) {
snprintf(buf, buflen, "%d", media->held ? 1 : 0);
} else {
......
......@@ -109,3 +109,9 @@ load = res_sorcery_config.so
load = res_sorcery_memory.so
load = res_sorcery_realtime.so
load = res_timing_timerfd.so
; Don't load res_hep.so and kin unless you are using hep monitoring in your network
noload = res_hep.so
noload = res_hep_pjsip.so
noload = res_hep_rtcp.so
......@@ -30,27 +30,27 @@
; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of the tos parameter.
;tos=ef
;
; Our entity identifier (Should generally be the MAC address of the
; Our entity identifier. (It should generally be the MAC address of the
; machine it's running on. Defaults to the first eth address, but you
; can override it here, as long as you set it to the MAC of *something*
; you own!) The EID can be overridden by a setting in asterisk.conf,
; you own!) The EID can be overridden by a setting in asterisk.conf
; or by setting this option.
;
;entityid=00:07:E9:3B:76:60
;
; Peers shall cache our query responses for the specified time,
; given in seconds. Default is 3600.
; Peers shall cache our query responses for the specified time
; in seconds. Default is 3600.
;
;cachetime=3600
;
; This defines the max depth in which to search the DUNDi system.
; This defines the max depth (hops) in which to search the DUNDi system.
; Note that the maximum time that we will wait for a response is
; (2000 + 200 * ttl) ms.
;
ttl=32
;
; If we don't get ACK to our DPDISCOVER within 2000ms, and autokill is set
; to yes, then we cancel the whole thing (that's enough time for one
; If we don't get ACK to our DPDISCOVER within 2000ms and autokill is set
; to yes then we cancel the whole thing (that's enough time for one
; retransmission only). This is used to keep things from stalling for a long
; time for a host that is not available, but would be ill advised for bad
; connections. In addition to 'yes' or 'no' you can also specify a number
......@@ -66,7 +66,7 @@ autokill=yes
;secretpath=dundi
;
; The 'storehistory' option (also changeable at runtime with
; 'dundi store history' and 'dundi no store history') will
; 'dundi store history on' and 'dundi store history off') will
; cause the DUNDi engine to keep track of the last several
; queries and the amount of time each query took to execute
; for the purpose of tracking slow nodes. This option is
......@@ -83,7 +83,7 @@ autokill=yes
; Agreement (GPA) if you are a member of the DUNDi E.164
; Peering System.
;
; dundi_context => local_context,weight,tech,dest[,options]]
; dundi_context => [local_context,weight,tech,dest{,options}]
;
; 'dundi_context' is the name of the context being requested
; within the DUNDi request
......@@ -97,14 +97,14 @@ autokill=yes
; with a lower weight are tried first. Note that the weight has a
; special meaning in the e164 context - see the GPA for more details.
;
; 'tech' is the technology to use (IAX, SIP, H323)
; 'tech' is the technology to use (IAX2, SIP, H323)
;
; 'dest' is the destination to supply for reaching that number. The
; following variables can be used in the destination string and will
; be automatically substituted:
; 'dest' is the Dial application's channel technology resource destination
; to supply for reaching that number. The following variables can be used
; in the destination string and will be automatically substituted:
; ${NUMBER}: The number being requested
; ${IPADDR}: The IP address to connect to
; ${SECRET}: The current rotating secret key to be used
; ${SECRET}: The current IAX2 rotating secret key to be used
;
; Further options may include:
;
......@@ -122,12 +122,13 @@ autokill=yes
; There *must* exist an entry in mappings for DUNDi to respond
; to any request, although it may be empty.
;
;empty_context =>
;
;e164 => dundi-e164-canonical,0,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
;e164 => dundi-e164-customers,100,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
;e164 => dundi-e164-via-pstn,400,IAX2,dundi:${SECRET}@${IPADDR}/${NUMBER},nounsolicited,nocomunsolicit,nopartial
;
;digexten => default,0,IAX2,guest@lappy/${NUMBER}
;asdf =>
;
; Weights for mappings can be set a few different ways:
......@@ -140,35 +141,35 @@ autokill=yes
;
; 3) It can be retrieved using a dialplan function. This can be extremely
; useful if you want to let an external script decide what the weight
; in a response shouuld be.
; in a response should be.
;testmap3 => context3,${SHELL(echo 123)},IAX2,guest@peer3/${NUMBER}
;
; The built in variables ${SECRET}, ${IPADDR} and ${NUMBER} can also be
; passed to the weight. For example, you could pass the ${NUMBER} value
; to your SHELL() script and use that to dynamically return a weight.
;
; Note than when using a global variable or dialplan function to set the
; weight for a mapping, that response caching should be disabled if you
; Note when using a global variable or dialplan function to set the
; weight for a mapping that response caching should be disabled if you
; plan for these values to change frequently at all. If the results are
; cached, then any change in value will not take effect until the cache
; cached then any change in value will not take effect until the cache
; has expired.
;
;
; The remaining sections represent the peers
; that we fundamentally trust. The section name
; represents the name and optionally at a specific
; DUNDi context if you want the trust to be established
; for only a specific DUNDi context.
; The remaining sections represent the peers that we fundamentally trust.
; The section name specifies the peer's entityid. You can specify which
; DUNDi contexts with which you want the trust to be established.
;
; inkey - What key they will be authenticating to us with
;
; outkey - What key we use to authenticate to them
;
; host - What their host is
; host - What their host is (DNS name, IP address, or dynamic)
;
; port - The port where their host is listening (default: 4520)
;
; ustothem - Explicitly specify the entityid we use with this peer.
;
; order - What search order to use. May be 'primary', 'secondary',
; 'tertiary' or 'quartiary'. In large systems, it is beneficial
; to only query one up-stream host in order to maximize caching
......@@ -199,7 +200,7 @@ autokill=yes
; precache - Utilize/Permit precaching with this peer (to pre
; cache means to provide an answer when no request
; was made and is used so that machines with few
; routes can push those routes up a to a higher level).
; routes can push those routes up to a higher level).
; outgoing means we send precache routes to this peer,
; incoming means we permit this peer to send us
; precache routes. symmetric means we do both.
......@@ -208,6 +209,12 @@ autokill=yes
; precache, nor can you mix symmetric/inbound model with symmetric/outbound
; precache.
;
; qualify - Enable qualifying the peer to determine reachable status.
; Set to yes, no, or number of milliseconds for qualifying
; the peer's reachable status.
;
; register - Enable registering with the peer. This presupposes that the
; peer's host option for us is dynamic. (yes/no value)
;
; The '*' peer is special and matches an unspecified entity
;
......
......@@ -42,4 +42,8 @@ load => res_musiconhold.so
noload => chan_alsa.so
;noload => chan_oss.so
noload => chan_console.so
noload => res_hep.so
noload => res_hep_pjsip.so
noload => res_hep_rtcp.so
;
......@@ -288,8 +288,8 @@
; a transport that you'll need to uncomment from the previous examples.
;
; Uncomment one of the transport lines to choose which transport you want. If
; not specified then the default transport chosen is the first defined transport
; in the configuration file.
; not specified then the default transport chosen is the first compatible transport
; in the configuration file for the contact URL.
;
; Modify the "max_contacts=" line to change how many unique registrations to allow.
;
......@@ -668,7 +668,12 @@
;timers=yes ; Session timers for SIP packets (default: "yes")
;timers_sess_expires=1800 ; Maximum session timer expiration period
; (default: "1800")
;transport= ; Desired transport configuration (default: "")
;transport= ; Explicit transport configuration to use (default: "")
; This will force the endpoint to use the specified transport
; configuration to send SIP messages. You need to already know
; what kind of transport (UDP/TCP/IPv4/etc) the endpoint device
; will use.
;trust_id_inbound=no ; Accept identification information received from this
; endpoint (default: "no")
;trust_id_outbound=no ; Send private identification details to the endpoint
......@@ -810,6 +815,13 @@
; This option must also be enabled in the system
; section.
; (default: no)
;suppress_q850_reason_headers =
; Suppress Q.850 Reason headers for this endpoint.
; 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.
; (default: no)
;==========================AUTH SECTION OPTIONS=========================
;[auth]
......
......@@ -12,6 +12,12 @@
; If you want to see more detail please check the documentation sources
; mentioned at the top of this file.
; ============================================================================
; NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
;
; This file does not maintain the complete option documentation.
; ============================================================================
; Documentation
;
; The official documentation is at http://wiki.asterisk.org
......@@ -99,8 +105,6 @@
; If an aor/contact or match/identify is explicitly supplied,
; remote_hosts will not be used to automatically create contacts
; or matches respectively.
; Hostnames must resolve to A, AAAA or CNAME records.
; SRV records are not currently supported.
; (default: "")
;outbound_proxy= ; Setting this is a shortcut for setting
......