<p>Joshua Colp has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/16320">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">chan_nbs: Remove deprecated module.<br><br>ASTERISK-29595<br><br>Change-Id: Ib5c7d43a780f2fb94cee90738e4c1af211ae4a33<br>---<br>M build_tools/menuselect-deps.in<br>D channels/chan_nbs.c<br>M configure<br>M configure.ac<br>M contrib/scripts/install_prereq<br>A doc/UPGRADE-staging/chan_nbs_removal.txt<br>M include/asterisk/autoconfig.h.in<br>M makeopts.in<br>M menuselect/configure<br>9 files changed, 41 insertions(+), 434 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/20/16320/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/build_tools/menuselect-deps.in b/build_tools/menuselect-deps.in</span><br><span>index 161c67b..f602e1a 100644</span><br><span>--- a/build_tools/menuselect-deps.in</span><br><span>+++ b/build_tools/menuselect-deps.in</span><br><span>@@ -37,7 +37,6 @@</span><br><span> LUA=@PBX_LUA@</span><br><span> MISDN=@PBX_MISDN@</span><br><span> MYSQLCLIENT=@PBX_MYSQLCLIENT@</span><br><span style="color: hsl(0, 100%, 40%);">-NBS=@PBX_NBS@</span><br><span> NETSNMP=@PBX_NETSNMP@</span><br><span> NEWT=@PBX_NEWT@</span><br><span> NEON=@PBX_NEON@</span><br><span>diff --git a/channels/chan_nbs.c b/channels/chan_nbs.c</span><br><span>deleted file mode 100644</span><br><span>index c7c842a..0000000</span><br><span>--- a/channels/chan_nbs.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,275 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-/*</span><br><span style="color: hsl(0, 100%, 40%);">- * Asterisk -- An open source telephony toolkit.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Copyright (C) 1999 - 2006, Digium, Inc.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Mark Spencer <markster@digium.com></span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * See http://www.asterisk.org for more information about</span><br><span style="color: hsl(0, 100%, 40%);">- * the Asterisk project. Please do not directly contact</span><br><span style="color: hsl(0, 100%, 40%);">- * any of the maintainers of this project for assistance;</span><br><span style="color: hsl(0, 100%, 40%);">- * the project provides a web site, mailing lists and IRC</span><br><span style="color: hsl(0, 100%, 40%);">- * channels for your use.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This program is free software, distributed under the terms of</span><br><span style="color: hsl(0, 100%, 40%);">- * the GNU General Public License Version 2. See the LICENSE file</span><br><span style="color: hsl(0, 100%, 40%);">- * at the top of the source tree.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*! \file</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \brief Network broadcast sound support channel driver</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \author Mark Spencer <markster@digium.com></span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \ingroup channel_drivers</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">- <depend>nbs</depend></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>deprecated</support_level></span><br><span style="color: hsl(0, 100%, 40%);">- <deprecated_in>16</deprecated_in></span><br><span style="color: hsl(0, 100%, 40%);">- <removed_in>19</removed_in></span><br><span style="color: hsl(0, 100%, 40%);">- ***/</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include <sys/socket.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <sys/time.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <arpa/inet.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <fcntl.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <sys/ioctl.h></span><br><span style="color: hsl(0, 100%, 40%);">-#include <nbs.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/lock.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/channel.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/config.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/module.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/pbx.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/utils.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/format_cache.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const char tdesc[] = "Network Broadcast Sound Driver";</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static char context[AST_MAX_EXTENSION] = "default";</span><br><span style="color: hsl(0, 100%, 40%);">-static const char type[] = "NBS";</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* NBS creates private structures on demand */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct nbs_pvt {</span><br><span style="color: hsl(0, 100%, 40%);">- NBS *nbs;</span><br><span style="color: hsl(0, 100%, 40%);">- struct ast_channel *owner; /* Channel we belong to, possibly NULL */</span><br><span style="color: hsl(0, 100%, 40%);">- char app[16]; /* Our app */</span><br><span style="color: hsl(0, 100%, 40%);">- char stream[80]; /* Our stream */</span><br><span style="color: hsl(0, 100%, 40%);">- struct ast_module_user *u; /*! for holding a reference to this module */</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct ast_channel *nbs_request(const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *data, int *cause);</span><br><span style="color: hsl(0, 100%, 40%);">-static int nbs_call(struct ast_channel *ast, const char *dest, int timeout);</span><br><span style="color: hsl(0, 100%, 40%);">-static int nbs_hangup(struct ast_channel *ast);</span><br><span style="color: hsl(0, 100%, 40%);">-static struct ast_frame *nbs_xread(struct ast_channel *ast);</span><br><span style="color: hsl(0, 100%, 40%);">-static int nbs_xwrite(struct ast_channel *ast, struct ast_frame *frame);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct ast_channel_tech nbs_tech = {</span><br><span style="color: hsl(0, 100%, 40%);">- .type = type,</span><br><span style="color: hsl(0, 100%, 40%);">- .description = tdesc,</span><br><span style="color: hsl(0, 100%, 40%);">- .requester = nbs_request,</span><br><span style="color: hsl(0, 100%, 40%);">- .call = nbs_call,</span><br><span style="color: hsl(0, 100%, 40%);">- .hangup = nbs_hangup,</span><br><span style="color: hsl(0, 100%, 40%);">- .read = nbs_xread,</span><br><span style="color: hsl(0, 100%, 40%);">- .write = nbs_xwrite,</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int nbs_call(struct ast_channel *ast, const char *dest, int timeout)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct nbs_pvt *p;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- p = ast_channel_tech_pvt(ast);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if ((ast_channel_state(ast) != AST_STATE_DOWN) && (ast_channel_state(ast) != AST_STATE_RESERVED)) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_WARNING, "nbs_call called on %s, neither down nor reserved\n", ast_channel_name(ast));</span><br><span style="color: hsl(0, 100%, 40%);">- return -1;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- /* When we call, it just works, really, there's no destination... Just</span><br><span style="color: hsl(0, 100%, 40%);">- ring the phone and wait for someone to answer */</span><br><span style="color: hsl(0, 100%, 40%);">- ast_debug(1, "Calling %s on %s\n", dest, ast_channel_name(ast));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* If we can't connect, return congestion */</span><br><span style="color: hsl(0, 100%, 40%);">- if (nbs_connect(p->nbs)) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_WARNING, "NBS Connection failed on %s\n", ast_channel_name(ast));</span><br><span style="color: hsl(0, 100%, 40%);">- ast_queue_control(ast, AST_CONTROL_CONGESTION);</span><br><span style="color: hsl(0, 100%, 40%);">- } else {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_setstate(ast, AST_STATE_RINGING);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_queue_control(ast, AST_CONTROL_ANSWER);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static void nbs_destroy(struct nbs_pvt *p)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- if (p->nbs)</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_delstream(p->nbs);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_module_user_remove(p->u);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_free(p);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct nbs_pvt *nbs_alloc(const char *data)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct nbs_pvt *p;</span><br><span style="color: hsl(0, 100%, 40%);">- int flags = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- char stream[256];</span><br><span style="color: hsl(0, 100%, 40%);">- char *opts;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- ast_copy_string(stream, data, sizeof(stream));</span><br><span style="color: hsl(0, 100%, 40%);">- if ((opts = strchr(stream, ':'))) {</span><br><span style="color: hsl(0, 100%, 40%);">- *opts = '\0';</span><br><span style="color: hsl(0, 100%, 40%);">- opts++;</span><br><span style="color: hsl(0, 100%, 40%);">- } else</span><br><span style="color: hsl(0, 100%, 40%);">- opts = "";</span><br><span style="color: hsl(0, 100%, 40%);">- p = ast_calloc(1, sizeof(*p));</span><br><span style="color: hsl(0, 100%, 40%);">- if (p) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (!ast_strlen_zero(opts)) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (strchr(opts, 'm'))</span><br><span style="color: hsl(0, 100%, 40%);">- flags |= NBS_FLAG_MUTE;</span><br><span style="color: hsl(0, 100%, 40%);">- if (strchr(opts, 'o'))</span><br><span style="color: hsl(0, 100%, 40%);">- flags |= NBS_FLAG_OVERSPEAK;</span><br><span style="color: hsl(0, 100%, 40%);">- if (strchr(opts, 'e'))</span><br><span style="color: hsl(0, 100%, 40%);">- flags |= NBS_FLAG_EMERGENCY;</span><br><span style="color: hsl(0, 100%, 40%);">- if (strchr(opts, 'O'))</span><br><span style="color: hsl(0, 100%, 40%);">- flags |= NBS_FLAG_OVERRIDE;</span><br><span style="color: hsl(0, 100%, 40%);">- } else</span><br><span style="color: hsl(0, 100%, 40%);">- flags = NBS_FLAG_OVERSPEAK;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- ast_copy_string(p->stream, stream, sizeof(p->stream));</span><br><span style="color: hsl(0, 100%, 40%);">- p->nbs = nbs_newstream("asterisk", stream, flags);</span><br><span style="color: hsl(0, 100%, 40%);">- if (!p->nbs) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_WARNING, "Unable to allocate new NBS stream '%s' with flags %d\n", stream, flags);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_free(p);</span><br><span style="color: hsl(0, 100%, 40%);">- p = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">- } else {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Set for 8000 hz mono, 640 samples */</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_setbitrate(p->nbs, 8000);</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_setchannels(p->nbs, 1);</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_setblocksize(p->nbs, 640);</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_setblocking(p->nbs, 0);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- return p;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int nbs_hangup(struct ast_channel *ast)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct nbs_pvt *p;</span><br><span style="color: hsl(0, 100%, 40%);">- p = ast_channel_tech_pvt(ast);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_debug(1, "nbs_hangup(%s)\n", ast_channel_name(ast));</span><br><span style="color: hsl(0, 100%, 40%);">- if (!ast_channel_tech_pvt(ast)) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_WARNING, "Asked to hangup channel not connected\n");</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_destroy(p);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_tech_pvt_set(ast, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_setstate(ast, AST_STATE_DOWN);</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct ast_frame *nbs_xread(struct ast_channel *ast)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- ast_debug(1, "Returning null frame on %s\n", ast_channel_name(ast));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- return &ast_null_frame;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int nbs_xwrite(struct ast_channel *ast, struct ast_frame *frame)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct nbs_pvt *p = ast_channel_tech_pvt(ast);</span><br><span style="color: hsl(0, 100%, 40%);">- if (ast_channel_state(ast) != AST_STATE_UP) {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Don't try tos end audio on-hook */</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- if (nbs_write(p->nbs, frame->data.ptr, frame->datalen / 2) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- return -1;</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct ast_channel *nbs_new(struct nbs_pvt *i, int state, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct ast_channel *tmp;</span><br><span style="color: hsl(0, 100%, 40%);">- tmp = ast_channel_alloc(1, state, 0, 0, "", "s", context, assignedids, requestor, 0, "NBS/%s", i->stream);</span><br><span style="color: hsl(0, 100%, 40%);">- if (tmp) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_tech_set(tmp, &nbs_tech);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_set_fd(tmp, 0, nbs_fd(i->nbs));</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_nativeformats_set(tmp, nbs_tech.capabilities);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_set_rawreadformat(tmp, ast_format_slin);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_set_rawwriteformat(tmp, ast_format_slin);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_set_writeformat(tmp, ast_format_slin);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_set_readformat(tmp, ast_format_slin);</span><br><span style="color: hsl(0, 100%, 40%);">- if (state == AST_STATE_RING)</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_rings_set(tmp, 1);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_tech_pvt_set(tmp, i);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_context_set(tmp, context);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_exten_set(tmp, "s");</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_language_set(tmp, "");</span><br><span style="color: hsl(0, 100%, 40%);">- i->owner = tmp;</span><br><span style="color: hsl(0, 100%, 40%);">- i->u = ast_module_user_add(tmp);</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_unlock(tmp);</span><br><span style="color: hsl(0, 100%, 40%);">- if (state != AST_STATE_DOWN) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (ast_pbx_start(tmp)) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_WARNING, "Unable to start PBX on %s\n", ast_channel_name(tmp));</span><br><span style="color: hsl(0, 100%, 40%);">- ast_hangup(tmp);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- } else</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_WARNING, "Unable to allocate channel structure\n");</span><br><span style="color: hsl(0, 100%, 40%);">- return tmp;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static struct ast_channel *nbs_request(const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *data, int *cause)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- struct nbs_pvt *p;</span><br><span style="color: hsl(0, 100%, 40%);">- struct ast_channel *tmp = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (ast_format_cap_iscompatible_format(cap, ast_format_slin) == AST_FORMAT_CMP_NOT_EQUAL) {</span><br><span style="color: hsl(0, 100%, 40%);">- struct ast_str *cap_buf = ast_str_alloca(AST_FORMAT_CAP_NAMES_LEN);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_NOTICE, "Asked to get a channel of unsupported format '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ast_format_cap_get_names(cap, &cap_buf));</span><br><span style="color: hsl(0, 100%, 40%);">- return NULL;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- p = nbs_alloc(data);</span><br><span style="color: hsl(0, 100%, 40%);">- if (p) {</span><br><span style="color: hsl(0, 100%, 40%);">- tmp = nbs_new(p, AST_STATE_DOWN, assignedids, requestor);</span><br><span style="color: hsl(0, 100%, 40%);">- if (!tmp)</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_destroy(p);</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- return tmp;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int unload_module(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- /* First, take us out of the channel loop */</span><br><span style="color: hsl(0, 100%, 40%);">- ast_channel_unregister(&nbs_tech);</span><br><span style="color: hsl(0, 100%, 40%);">- ao2_ref(nbs_tech.capabilities, -1);</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_tech.capabilities = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int load_module(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- if (!(nbs_tech.capabilities = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {</span><br><span style="color: hsl(0, 100%, 40%);">- return AST_MODULE_LOAD_DECLINE;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- ast_format_cap_append(nbs_tech.capabilities, ast_format_slin, 0);</span><br><span style="color: hsl(0, 100%, 40%);">- /* Make sure we can register our channel type */</span><br><span style="color: hsl(0, 100%, 40%);">- if (ast_channel_register(&nbs_tech)) {</span><br><span style="color: hsl(0, 100%, 40%);">- ast_log(LOG_ERROR, "Unable to register channel class %s\n", type);</span><br><span style="color: hsl(0, 100%, 40%);">- ao2_ref(nbs_tech.capabilities, -1);</span><br><span style="color: hsl(0, 100%, 40%);">- nbs_tech.capabilities = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">- return AST_MODULE_LOAD_DECLINE;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- return AST_MODULE_LOAD_SUCCESS;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AST_MODULE_INFO_STANDARD_DEPRECATED(ASTERISK_GPL_KEY, "Network Broadcast Sound Support");</span><br><span>diff --git a/configure b/configure</span><br><span>index 735a8e9..92eb2c5 100755</span><br><span>--- a/configure</span><br><span>+++ b/configure</span><br><span>@@ -1039,10 +1039,6 @@</span><br><span> NEON_DIR</span><br><span> NEON_INCLUDE</span><br><span> NEON_LIB</span><br><span style="color: hsl(0, 100%, 40%);">-PBX_NBS</span><br><span style="color: hsl(0, 100%, 40%);">-NBS_DIR</span><br><span style="color: hsl(0, 100%, 40%);">-NBS_INCLUDE</span><br><span style="color: hsl(0, 100%, 40%);">-NBS_LIB</span><br><span> PBX_MYSQLCLIENT</span><br><span> MYSQLCLIENT_DIR</span><br><span> MYSQLCLIENT_INCLUDE</span><br><span>@@ -1296,7 +1292,6 @@</span><br><span> BUILD_VENDOR</span><br><span> BUILD_CPU</span><br><span> BUILD_PLATFORM</span><br><span style="color: hsl(0, 100%, 40%);">-astcachedir</span><br><span> astvarrundir</span><br><span> astlogdir</span><br><span> astspooldir</span><br><span>@@ -1309,6 +1304,7 @@</span><br><span> astlibdir</span><br><span> astheaderdir</span><br><span> astetcdir</span><br><span style="color: hsl(120, 100%, 40%);">+astcachedir</span><br><span> astsbindir</span><br><span> EGREP</span><br><span> GREP</span><br><span>@@ -1349,6 +1345,7 @@</span><br><span> docdir</span><br><span> oldincludedir</span><br><span> includedir</span><br><span style="color: hsl(120, 100%, 40%);">+runstatedir</span><br><span> localstatedir</span><br><span> sharedstatedir</span><br><span> sysconfdir</span><br><span>@@ -1415,7 +1412,6 @@</span><br><span> with_lua</span><br><span> with_misdn</span><br><span> with_mysqlclient</span><br><span style="color: hsl(0, 100%, 40%);">-with_nbs</span><br><span> with_neon</span><br><span> with_neon29</span><br><span> with_netsnmp</span><br><span>@@ -1538,6 +1534,7 @@</span><br><span> sysconfdir='${prefix}/etc'</span><br><span> sharedstatedir='${prefix}/com'</span><br><span> localstatedir='${prefix}/var'</span><br><span style="color: hsl(120, 100%, 40%);">+runstatedir='${localstatedir}/run'</span><br><span> includedir='${prefix}/include'</span><br><span> oldincludedir='/usr/include'</span><br><span> docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'</span><br><span>@@ -1790,6 +1787,15 @@</span><br><span> | -silent | --silent | --silen | --sile | --sil)</span><br><span> silent=yes ;;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ -runstatedir | --runstatedir | --runstatedi | --runstated \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --runstate | --runstat | --runsta | --runst | --runs \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --run | --ru | --r)</span><br><span style="color: hsl(120, 100%, 40%);">+ ac_prev=runstatedir ;;</span><br><span style="color: hsl(120, 100%, 40%);">+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --run=* | --ru=* | --r=*)</span><br><span style="color: hsl(120, 100%, 40%);">+ runstatedir=$ac_optarg ;;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)</span><br><span> ac_prev=sbindir ;;</span><br><span> -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \</span><br><span>@@ -1927,7 +1933,7 @@</span><br><span> for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \</span><br><span> datadir sysconfdir sharedstatedir localstatedir includedir \</span><br><span> oldincludedir docdir infodir htmldir dvidir pdfdir psdir \</span><br><span style="color: hsl(0, 100%, 40%);">- libdir localedir mandir</span><br><span style="color: hsl(120, 100%, 40%);">+ libdir localedir mandir runstatedir</span><br><span> do</span><br><span> eval ac_val=\$$ac_var</span><br><span> # Remove trailing slashes.</span><br><span>@@ -2080,6 +2086,7 @@</span><br><span> --sysconfdir=DIR read-only single-machine data [PREFIX/etc]</span><br><span> --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]</span><br><span> --localstatedir=DIR modifiable single-machine data [PREFIX/var]</span><br><span style="color: hsl(120, 100%, 40%);">+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]</span><br><span> --libdir=DIR object code libraries [EPREFIX/lib]</span><br><span> --includedir=DIR C header files [PREFIX/include]</span><br><span> --oldincludedir=DIR C header files for non-gcc [/usr/include]</span><br><span>@@ -2178,7 +2185,6 @@</span><br><span> --with-lua=PATH use Lua files in PATH</span><br><span> --with-misdn=PATH use mISDN user files in PATH</span><br><span> --with-mysqlclient=PATH use MySQL client files in PATH</span><br><span style="color: hsl(0, 100%, 40%);">- --with-nbs=PATH use Network Broadcast Sound files in PATH</span><br><span> --with-neon=PATH use neon files in PATH</span><br><span> --with-neon29=PATH use neon29 files in PATH</span><br><span> --with-netsnmp=PATH use Net-SNMP files in PATH</span><br><span>@@ -10848,6 +10854,7 @@</span><br><span> </span><br><span> </span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> MISDN_DESCRIP="mISDN user"</span><br><span> MISDN_OPTION="misdn"</span><br><span> PBX_MISDN=0</span><br><span>@@ -10912,38 +10919,6 @@</span><br><span> </span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- NBS_DESCRIP="Network Broadcast Sound"</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_OPTION="nbs"</span><br><span style="color: hsl(0, 100%, 40%);">- PBX_NBS=0</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-# Check whether --with-nbs was given.</span><br><span style="color: hsl(0, 100%, 40%);">-if test "${with_nbs+set}" = set; then :</span><br><span style="color: hsl(0, 100%, 40%);">- withval=$with_nbs;</span><br><span style="color: hsl(0, 100%, 40%);">- case ${withval} in</span><br><span style="color: hsl(0, 100%, 40%);">- n|no)</span><br><span style="color: hsl(0, 100%, 40%);">- USE_NBS=no</span><br><span style="color: hsl(0, 100%, 40%);">- # -1 is a magic value used by menuselect to know that the package</span><br><span style="color: hsl(0, 100%, 40%);">- # was disabled, other than 'not found'</span><br><span style="color: hsl(0, 100%, 40%);">- PBX_NBS=-1</span><br><span style="color: hsl(0, 100%, 40%);">- ;;</span><br><span style="color: hsl(0, 100%, 40%);">- y|ye|yes)</span><br><span style="color: hsl(0, 100%, 40%);">- ac_mandatory_list="${ac_mandatory_list} NBS"</span><br><span style="color: hsl(0, 100%, 40%);">- ;;</span><br><span style="color: hsl(0, 100%, 40%);">- *)</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_DIR="${withval}"</span><br><span style="color: hsl(0, 100%, 40%);">- ac_mandatory_list="${ac_mandatory_list} NBS"</span><br><span style="color: hsl(0, 100%, 40%);">- ;;</span><br><span style="color: hsl(0, 100%, 40%);">- esac</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> NEON_DESCRIP="neon"</span><br><span> NEON_OPTION="neon"</span><br><span> PBX_NEON=0</span><br><span>@@ -14688,7 +14663,7 @@</span><br><span> We can't simply define LARGE_OFF_T to be 9223372036854775807,</span><br><span> since some C++ compilers masquerading as C compilers</span><br><span> incorrectly reject 9223372036854775807. */</span><br><span style="color: hsl(0, 100%, 40%);">-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))</span><br><span style="color: hsl(120, 100%, 40%);">+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))</span><br><span> int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721</span><br><span> && LARGE_OFF_T % 2147483647 == 1)</span><br><span> ? 1 : -1];</span><br><span>@@ -14734,7 +14709,7 @@</span><br><span> We can't simply define LARGE_OFF_T to be 9223372036854775807,</span><br><span> since some C++ compilers masquerading as C compilers</span><br><span> incorrectly reject 9223372036854775807. */</span><br><span style="color: hsl(0, 100%, 40%);">-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))</span><br><span style="color: hsl(120, 100%, 40%);">+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))</span><br><span> int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721</span><br><span> && LARGE_OFF_T % 2147483647 == 1)</span><br><span> ? 1 : -1];</span><br><span>@@ -14758,7 +14733,7 @@</span><br><span> We can't simply define LARGE_OFF_T to be 9223372036854775807,</span><br><span> since some C++ compilers masquerading as C compilers</span><br><span> incorrectly reject 9223372036854775807. */</span><br><span style="color: hsl(0, 100%, 40%);">-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))</span><br><span style="color: hsl(120, 100%, 40%);">+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))</span><br><span> int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721</span><br><span> && LARGE_OFF_T % 2147483647 == 1)</span><br><span> ? 1 : -1];</span><br><span>@@ -14803,7 +14778,7 @@</span><br><span> We can't simply define LARGE_OFF_T to be 9223372036854775807,</span><br><span> since some C++ compilers masquerading as C compilers</span><br><span> incorrectly reject 9223372036854775807. */</span><br><span style="color: hsl(0, 100%, 40%);">-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))</span><br><span style="color: hsl(120, 100%, 40%);">+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))</span><br><span> int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721</span><br><span> && LARGE_OFF_T % 2147483647 == 1)</span><br><span> ? 1 : -1];</span><br><span>@@ -14827,7 +14802,7 @@</span><br><span> We can't simply define LARGE_OFF_T to be 9223372036854775807,</span><br><span> since some C++ compilers masquerading as C compilers</span><br><span> incorrectly reject 9223372036854775807. */</span><br><span style="color: hsl(0, 100%, 40%);">-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))</span><br><span style="color: hsl(120, 100%, 40%);">+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))</span><br><span> int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721</span><br><span> && LARGE_OFF_T % 2147483647 == 1)</span><br><span> ? 1 : -1];</span><br><span>@@ -16127,6 +16102,8 @@</span><br><span> if (*(data + i) != *(data3 + i))</span><br><span> return 14;</span><br><span> close (fd);</span><br><span style="color: hsl(120, 100%, 40%);">+ free (data);</span><br><span style="color: hsl(120, 100%, 40%);">+ free (data3);</span><br><span> return 0;</span><br><span> }</span><br><span> _ACEOF</span><br><span>@@ -22876,103 +22853,6 @@</span><br><span> fi</span><br><span> </span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-if test "x${PBX_NBS}" != "x1" -a "${USE_NBS}" != "no"; then</span><br><span style="color: hsl(0, 100%, 40%);">- pbxlibdir=""</span><br><span style="color: hsl(0, 100%, 40%);">- # if --with-NBS=DIR has been specified, use it.</span><br><span style="color: hsl(0, 100%, 40%);">- if test "x${NBS_DIR}" != "x"; then</span><br><span style="color: hsl(0, 100%, 40%);">- if test -d ${NBS_DIR}/lib; then</span><br><span style="color: hsl(0, 100%, 40%);">- pbxlibdir="-L${NBS_DIR}/lib"</span><br><span style="color: hsl(0, 100%, 40%);">- else</span><br><span style="color: hsl(0, 100%, 40%);">- pbxlibdir="-L${NBS_DIR}"</span><br><span style="color: hsl(0, 100%, 40%);">- fi</span><br><span style="color: hsl(0, 100%, 40%);">- fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- ast_ext_lib_check_save_CFLAGS="${CFLAGS}"</span><br><span style="color: hsl(0, 100%, 40%);">- CFLAGS="${CFLAGS} "</span><br><span style="color: hsl(0, 100%, 40%);">- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nbs_connect in -lnbs" >&5</span><br><span style="color: hsl(0, 100%, 40%);">-$as_echo_n "checking for nbs_connect in -lnbs... " >&6; }</span><br><span style="color: hsl(0, 100%, 40%);">-if ${ac_cv_lib_nbs_nbs_connect+:} false; then :</span><br><span style="color: hsl(0, 100%, 40%);">- $as_echo_n "(cached) " >&6</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">- ac_check_lib_save_LIBS=$LIBS</span><br><span style="color: hsl(0, 100%, 40%);">-LIBS="-lnbs ${pbxlibdir} $LIBS"</span><br><span style="color: hsl(0, 100%, 40%);">-cat confdefs.h - <<_ACEOF >conftest.$ac_ext</span><br><span style="color: hsl(0, 100%, 40%);">-/* end confdefs.h. */</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Override any GCC internal prototype to avoid an error.</span><br><span style="color: hsl(0, 100%, 40%);">- Use char because int might match the return type of a GCC</span><br><span style="color: hsl(0, 100%, 40%);">- builtin and then its argument prototype would still apply. */</span><br><span style="color: hsl(0, 100%, 40%);">-#ifdef __cplusplus</span><br><span style="color: hsl(0, 100%, 40%);">-extern "C"</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-char nbs_connect ();</span><br><span style="color: hsl(0, 100%, 40%);">-int</span><br><span style="color: hsl(0, 100%, 40%);">-main ()</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-return nbs_connect ();</span><br><span style="color: hsl(0, 100%, 40%);">- ;</span><br><span style="color: hsl(0, 100%, 40%);">- return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-_ACEOF</span><br><span style="color: hsl(0, 100%, 40%);">-if ac_fn_c_try_link "$LINENO"; then :</span><br><span style="color: hsl(0, 100%, 40%);">- ac_cv_lib_nbs_nbs_connect=yes</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">- ac_cv_lib_nbs_nbs_connect=no</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(0, 100%, 40%);">-rm -f core conftest.err conftest.$ac_objext \</span><br><span style="color: hsl(0, 100%, 40%);">- conftest$ac_exeext conftest.$ac_ext</span><br><span style="color: hsl(0, 100%, 40%);">-LIBS=$ac_check_lib_save_LIBS</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(0, 100%, 40%);">-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nbs_nbs_connect" >&5</span><br><span style="color: hsl(0, 100%, 40%);">-$as_echo "$ac_cv_lib_nbs_nbs_connect" >&6; }</span><br><span style="color: hsl(0, 100%, 40%);">-if test "x$ac_cv_lib_nbs_nbs_connect" = xyes; then :</span><br><span style="color: hsl(0, 100%, 40%);">- AST_NBS_FOUND=yes</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">- AST_NBS_FOUND=no</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- CFLAGS="${ast_ext_lib_check_save_CFLAGS}"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- # now check for the header.</span><br><span style="color: hsl(0, 100%, 40%);">- if test "${AST_NBS_FOUND}" = "yes"; then</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_LIB="${pbxlibdir} -lnbs "</span><br><span style="color: hsl(0, 100%, 40%);">- # if --with-NBS=DIR has been specified, use it.</span><br><span style="color: hsl(0, 100%, 40%);">- if test "x${NBS_DIR}" != "x"; then</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_INCLUDE="-I${NBS_DIR}/include"</span><br><span style="color: hsl(0, 100%, 40%);">- fi</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_INCLUDE="${NBS_INCLUDE} "</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- # check for the header</span><br><span style="color: hsl(0, 100%, 40%);">- ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"</span><br><span style="color: hsl(0, 100%, 40%);">- CPPFLAGS="${CPPFLAGS} ${NBS_INCLUDE}"</span><br><span style="color: hsl(0, 100%, 40%);">- ac_fn_c_check_header_mongrel "$LINENO" "nbs.h" "ac_cv_header_nbs_h" "$ac_includes_default"</span><br><span style="color: hsl(0, 100%, 40%);">-if test "x$ac_cv_header_nbs_h" = xyes; then :</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_HEADER_FOUND=1</span><br><span style="color: hsl(0, 100%, 40%);">-else</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_HEADER_FOUND=0</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if test "x${NBS_HEADER_FOUND}" = "x0" ; then</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_LIB=""</span><br><span style="color: hsl(0, 100%, 40%);">- NBS_INCLUDE=""</span><br><span style="color: hsl(0, 100%, 40%);">- else</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- PBX_NBS=1</span><br><span style="color: hsl(0, 100%, 40%);">- cat >>confdefs.h <<_ACEOF</span><br><span style="color: hsl(0, 100%, 40%);">-#define HAVE_NBS 1</span><br><span style="color: hsl(0, 100%, 40%);">-_ACEOF</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- fi</span><br><span style="color: hsl(0, 100%, 40%);">- fi</span><br><span style="color: hsl(0, 100%, 40%);">-fi</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> if test "x${PBX_NEON}" != "x1" -a "${USE_NEON}" != "no"; then</span><br><span> PBX_NEON=0</span><br><span> if test -n "$ac_tool_prefix"; then</span><br><span>diff --git a/configure.ac b/configure.ac</span><br><span>index 2260fe6..f9f5ce8 100644</span><br><span>--- a/configure.ac</span><br><span>+++ b/configure.ac</span><br><span>@@ -514,7 +514,6 @@</span><br><span> AC_ARG_VAR([LUA_VERSIONS],[A space separated list of target lua versions to test.])</span><br><span> AST_EXT_LIB_SETUP([MISDN], [mISDN user], [misdn])</span><br><span> AST_EXT_LIB_SETUP([MYSQLCLIENT], [MySQL client], [mysqlclient])</span><br><span style="color: hsl(0, 100%, 40%);">-AST_EXT_LIB_SETUP([NBS], [Network Broadcast Sound], [nbs])</span><br><span> AST_EXT_LIB_SETUP([NEON], [neon], [neon])</span><br><span> AST_EXT_LIB_SETUP([NEON29], [neon29], [neon29])</span><br><span> AST_EXT_LIB_SETUP([NETSNMP], [Net-SNMP], [netsnmp])</span><br><span>@@ -2301,8 +2300,6 @@</span><br><span> )</span><br><span> fi</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-AST_EXT_LIB_CHECK([NBS], [nbs], [nbs_connect], [nbs.h])</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> AST_EXT_TOOL_CHECK([NEON], [neon-config])</span><br><span> </span><br><span> AST_EXT_TOOL_CHECK([NEON29], [neon-config], , [--libs],</span><br><span>diff --git a/contrib/scripts/install_prereq b/contrib/scripts/install_prereq</span><br><span>index 98e9350..3d9cbcc 100755</span><br><span>--- a/contrib/scripts/install_prereq</span><br><span>+++ b/contrib/scripts/install_prereq</span><br><span>@@ -331,12 +331,6 @@</span><br><span> }</span><br><span> </span><br><span> install_unpackaged() {</span><br><span style="color: hsl(0, 100%, 40%);">- echo "*** Installing NBS (Network Broadcast Sound) ***"</span><br><span style="color: hsl(0, 100%, 40%);">- svn co https://svn.digium.com/svn/nbs/trunk nbs-trunk</span><br><span style="color: hsl(0, 100%, 40%);">- cd nbs-trunk</span><br><span style="color: hsl(0, 100%, 40%);">- make all install</span><br><span style="color: hsl(0, 100%, 40%);">- cd ..</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> # Only install libresample if it wasn't installed via package</span><br><span> if ! test -f /usr/include/libresample.h; then</span><br><span> echo "*** Installing libresample ***"</span><br><span>diff --git a/doc/UPGRADE-staging/chan_nbs_removal.txt b/doc/UPGRADE-staging/chan_nbs_removal.txt</span><br><span>new file mode 100644</span><br><span>index 0000000..46ae758</span><br><span>--- /dev/null</span><br><span>+++ b/doc/UPGRADE-staging/chan_nbs_removal.txt</span><br><span>@@ -0,0 +1,6 @@</span><br><span style="color: hsl(120, 100%, 40%);">+Subject: chan_nbs</span><br><span style="color: hsl(120, 100%, 40%);">+Master-Only: True</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This module was deprecated in Asterisk 16</span><br><span style="color: hsl(120, 100%, 40%);">+and is now being removed in accordance with</span><br><span style="color: hsl(120, 100%, 40%);">+the Asterisk Module Deprecation policy.</span><br><span>diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in</span><br><span>index 2c770d1..ce7b049 100644</span><br><span>--- a/include/asterisk/autoconfig.h.in</span><br><span>+++ b/include/asterisk/autoconfig.h.in</span><br><span>@@ -543,9 +543,6 @@</span><br><span> /* Define to 1 if mysql/mysql.h has my_bool defined. */</span><br><span> #undef HAVE_MYSQLCLIENT_MY_BOOL</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Define to 1 if you have the Network Broadcast Sound library. */</span><br><span style="color: hsl(0, 100%, 40%);">-#undef HAVE_NBS</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */</span><br><span> #undef HAVE_NDIR_H</span><br><span> </span><br><span>diff --git a/makeopts.in b/makeopts.in</span><br><span>index 27a5bdc..1b15c22 100644</span><br><span>--- a/makeopts.in</span><br><span>+++ b/makeopts.in</span><br><span>@@ -201,9 +201,6 @@</span><br><span> MYSQLCLIENT_INCLUDE=@MYSQLCLIENT_INCLUDE@</span><br><span> MYSQLCLIENT_LIB=@MYSQLCLIENT_LIB@</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-NBS_INCLUDE=@NBS_INCLUDE@</span><br><span style="color: hsl(0, 100%, 40%);">-NBS_LIB=@NBS_LIB@</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> NEON_INCLUDE=@NEON_INCLUDE@</span><br><span> NEON_LIB=@NEON_LIB@</span><br><span> NEON29_INCLUDE=@NEON_INCLUDE@</span><br><span>diff --git a/menuselect/configure b/menuselect/configure</span><br><span>index 1d15c1c..9986b4f 100755</span><br><span>--- a/menuselect/configure</span><br><span>+++ b/menuselect/configure</span><br><span>@@ -696,6 +696,7 @@</span><br><span> docdir</span><br><span> oldincludedir</span><br><span> includedir</span><br><span style="color: hsl(120, 100%, 40%);">+runstatedir</span><br><span> localstatedir</span><br><span> sharedstatedir</span><br><span> sysconfdir</span><br><span>@@ -777,6 +778,7 @@</span><br><span> sysconfdir='${prefix}/etc'</span><br><span> sharedstatedir='${prefix}/com'</span><br><span> localstatedir='${prefix}/var'</span><br><span style="color: hsl(120, 100%, 40%);">+runstatedir='${localstatedir}/run'</span><br><span> includedir='${prefix}/include'</span><br><span> oldincludedir='/usr/include'</span><br><span> docdir='${datarootdir}/doc/${PACKAGE}'</span><br><span>@@ -1029,6 +1031,15 @@</span><br><span> | -silent | --silent | --silen | --sile | --sil)</span><br><span> silent=yes ;;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ -runstatedir | --runstatedir | --runstatedi | --runstated \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --runstate | --runstat | --runsta | --runst | --runs \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --run | --ru | --r)</span><br><span style="color: hsl(120, 100%, 40%);">+ ac_prev=runstatedir ;;</span><br><span style="color: hsl(120, 100%, 40%);">+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \</span><br><span style="color: hsl(120, 100%, 40%);">+ | --run=* | --ru=* | --r=*)</span><br><span style="color: hsl(120, 100%, 40%);">+ runstatedir=$ac_optarg ;;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)</span><br><span> ac_prev=sbindir ;;</span><br><span> -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \</span><br><span>@@ -1166,7 +1177,7 @@</span><br><span> for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \</span><br><span> datadir sysconfdir sharedstatedir localstatedir includedir \</span><br><span> oldincludedir docdir infodir htmldir dvidir pdfdir psdir \</span><br><span style="color: hsl(0, 100%, 40%);">- libdir localedir mandir</span><br><span style="color: hsl(120, 100%, 40%);">+ libdir localedir mandir runstatedir</span><br><span> do</span><br><span> eval ac_val=\$$ac_var</span><br><span> # Remove trailing slashes.</span><br><span>@@ -1319,6 +1330,7 @@</span><br><span> --sysconfdir=DIR read-only single-machine data [PREFIX/etc]</span><br><span> --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]</span><br><span> --localstatedir=DIR modifiable single-machine data [PREFIX/var]</span><br><span style="color: hsl(120, 100%, 40%);">+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]</span><br><span> --libdir=DIR object code libraries [EPREFIX/lib]</span><br><span> --includedir=DIR C header files [PREFIX/include]</span><br><span> --oldincludedir=DIR C header files for non-gcc [/usr/include]</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/16320">change 16320</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/16320"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib5c7d43a780f2fb94cee90738e4c1af211ae4a33 </div>
<div style="display:none"> Gerrit-Change-Number: 16320 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>