summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UPGRADE-14.txt24
-rw-r--r--UPGRADE-15.txt89
-rw-r--r--UPGRADE.txt17
-rw-r--r--main/netsock2.c16
-rw-r--r--main/stun.c4
5 files changed, 54 insertions, 96 deletions
diff --git a/UPGRADE-14.txt b/UPGRADE-14.txt
index f8fa7906b..aaf236ba2 100644
--- a/UPGRADE-14.txt
+++ b/UPGRADE-14.txt
@@ -22,6 +22,30 @@
=== UPGRADE-13.txt -- Upgrade info for 12 to 13
===========================================================
+From 14.6.0 to 14.7.0:
+
+Core:
+ - ast_app_parse_timelen now returns an error if it encounters extra characters
+ at the end of the string to be parsed.
+
+From 14.4.0 to 14.5.0:
+
+Core:
+ - Support for embedded modules has been removed. This has not worked in
+ many years. LOADABLE_MODULES menuselect option is also removed as
+ loadable module support is now always enabled.
+
+From 14.3.0 to 14.4.0:
+
+res_rtp_asterisk:
+ - The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
+ Data and Control Packets on a Single Port." For the PJSIP channel driver,
+ chan_pjsip, you can set "rtcp_mux = yes" on a PJSIP endpoint in pjsip.conf
+ to enable the feature. For chan_sip you can set "rtcp_mux = yes" either
+ globally or on a per-peer basis in sip.conf.
+
+New in 14.0.0
+
ARI:
- The policy for when to send "Dial" events has changed. Previously, "Dial"
events were sent on the calling channel's topic. However, starting in Asterisk
diff --git a/UPGRADE-15.txt b/UPGRADE-15.txt
deleted file mode 100644
index 2e5eb1c17..000000000
--- a/UPGRADE-15.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-===========================================================
-===
-=== Information for upgrading between Asterisk versions
-===
-=== These files document all the changes that MUST be taken
-=== into account when upgrading between the Asterisk
-=== versions listed below. These changes may require that
-=== you modify your configuration files, dialplan or (in
-=== some cases) source code if you have your own Asterisk
-=== modules or patches. These files also include advance
-=== notice of any functionality that has been marked as
-=== 'deprecated' and may be removed in a future release,
-=== along with the suggested replacement functionality.
-===
-=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
-=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
-=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
-=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
-=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10
-=== UPGRADE-11.txt -- Upgrade info for 10 to 11
-=== UPGRADE-12.txt -- Upgrade info for 11 to 12
-=== UPGRADE-13.txt -- Upgrade info for 12 to 13
-=== UPGRADE-14.txt -- Upgrade info for 13 to 14
-=== UPGRADE-15.txt -- Upgrade info for 14 to 15
-===========================================================
-
-New in 15.0.0:
-
-Core:
- - The 'Data Retrieval API' has been removed. This API was not actively
- maintained, was not added to new modules (such as res_pjsip), and there
- exist better alternatives to acquire the same information, such as the
- ARI. As a result, the 'DataGet' AMI action as well as the 'data get'
- CLI command have been removed.
-
-Build System:
- - '--with-pjproject-bundled' is now the default when running ./configure
- It can be disabled with '--without-pjproject-bundled'.
-
-From 14.6.0 to 14.7.0:
-
-Core:
- - ast_app_parse_timelen now returns an error if it encounters extra characters
- at the end of the string to be parsed.
-
-From 14.4.0 to 14.5.0:
-
-Core:
- - Support for embedded modules has been removed. This has not worked in
- many years. LOADABLE_MODULES menuselect option is also removed as
- loadable module support is now always enabled.
-
-From 14.3.0 to 14.4.0:
-
-res_rtp_asterisk:
- - The RTP layer of Asterisk now has support for RFC 5761: "Multiplexing RTP
- Data and Control Packets on a Single Port." For the PJSIP channel driver,
- chan_pjsip, you can set "rtcp_mux = yes" on a PJSIP endpoint in pjsip.conf
- to enable the feature. For chan_sip you can set "rtcp_mux = yes" either
- globally or on a per-peer basis in sip.conf.
-
-New in 14.0.0
-
-ARI:
- - The policy for when to send "Dial" events has changed. Previously, "Dial"
- events were sent on the calling channel's topic. However, starting in Asterisk
- 14, if there is no calling channel on which to send the event, the event is
- instead sent on the called channel's topic. Note that for the ARI channels
- resource's dial operation, this means that the "Dial" events will always be
- sent on the called channel's topic.
-
-Queue:
- - When reloading the members of a queue, the members added dynamically (i.e.
- added via the CLI command "queue add" or the AMI action "QueueAdd") now have
- their ringinuse value updated to the value of the queue. Previously, the
- ringinuse value for dynamic members was not updated on reload.
-
-Queue log:
- - New RINGCANCELED event is logged when the caller hangs up while ringing.
- The data1 field contains number of miliseconds since start of ringing.
-
-Channel Drivers:
-
-chan_dahdi:
- - Support for specifying a DAHDI channel using a path under /dev/dahdi
- ("by name") has been removed. It was never used. Instead you should
- use kernel-level channel number allocation using span assignments.
- See the documentation of dahdi-linux and dahdi-tools.
-
diff --git a/UPGRADE.txt b/UPGRADE.txt
index 87eabde2d..30dc5d04c 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -21,5 +21,20 @@
=== UPGRADE-12.txt -- Upgrade info for 11 to 12
=== UPGRADE-13.txt -- Upgrade info for 12 to 13
=== UPGRADE-14.txt -- Upgrade info for 13 to 14
-=== UPGRADE-15.txt -- Upgrade info for 14 to 15
===========================================================
+
+New in 15.0.0:
+
+Build System:
+ - '--with-pjproject-bundled' is now the default when running ./configure
+ It can be disabled with '--without-pjproject-bundled'.
+
+Core:
+ - Multi-stream support has been added so a channel can have multiple
+ streams of the same type such as audio and video.
+
+ - The 'Data Retrieval API' has been removed. This API was not actively
+ maintained, was not added to new modules (such as res_pjsip), and there
+ exist better alternatives to acquire the same information, such as the
+ ARI. As a result, the 'DataGet' AMI action as well as the 'data get'
+ CLI command have been removed.
diff --git a/main/netsock2.c b/main/netsock2.c
index 8fb9c9e56..53a43e041 100644
--- a/main/netsock2.c
+++ b/main/netsock2.c
@@ -475,8 +475,12 @@ uint32_t ast_sockaddr_ipv4(const struct ast_sockaddr *addr)
int ast_sockaddr_is_ipv4(const struct ast_sockaddr *addr)
{
- return addr->ss.ss_family == AF_INET &&
- addr->len == sizeof(struct sockaddr_in);
+ /*
+ * Test addr->len first to be tolerant of an ast_sockaddr_setnull()
+ * addr. In that case addr->len might be the only value initialized.
+ */
+ return addr->len == sizeof(struct sockaddr_in)
+ && addr->ss.ss_family == AF_INET;
}
int ast_sockaddr_is_ipv4_mapped(const struct ast_sockaddr *addr)
@@ -498,8 +502,12 @@ int ast_sockaddr_is_ipv6_link_local(const struct ast_sockaddr *addr)
int ast_sockaddr_is_ipv6(const struct ast_sockaddr *addr)
{
- return addr->ss.ss_family == AF_INET6 &&
- addr->len == sizeof(struct sockaddr_in6);
+ /*
+ * Test addr->len first to be tolerant of an ast_sockaddr_setnull()
+ * addr. In that case addr->len might be the only value initialized.
+ */
+ return addr->len == sizeof(struct sockaddr_in6)
+ && addr->ss.ss_family == AF_INET6;
}
int ast_sockaddr_is_any(const struct ast_sockaddr *addr)
diff --git a/main/stun.c b/main/stun.c
index 77ced82ae..c103ab8d8 100644
--- a/main/stun.c
+++ b/main/stun.c
@@ -343,6 +343,8 @@ int ast_stun_handle_packet(int s, struct sockaddr_in *src, unsigned char *data,
if (st.username) {
append_attr_string(&attr, STUN_USERNAME, st.username, &resplen, &respleft);
snprintf(combined, sizeof(combined), "%16s%16s", st.username + 16, st.username);
+ } else {
+ combined[0] = '\0';
}
append_attr_address(&attr, STUN_MAPPED_ADDRESS, src, &resplen, &respleft);
@@ -398,8 +400,6 @@ int ast_stun_request(int s, struct sockaddr_in *dst,
stun_req_id(req);
reqlen = 0;
reqleft = sizeof(req_buf) - sizeof(struct stun_header);
- req->msgtype = 0;
- req->msglen = 0;
attr = (struct stun_attr *) req->ies;
if (username) {
append_attr_string(&attr, STUN_USERNAME, username, &reqlen, &reqleft);