<p>Joshua Colp has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/9504">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">module: Remove deprecated modules and update support levels.<br><br>I have removed the STATIC_BUILD option immediately as it has not<br>been maintained in many years and is non-functional.<br><br>ASTERISK-27965<br><br>Change-Id: I64783d017b86dba9ee3c7bcfb97e59889a3f76d7<br>---<br>M CHANGES<br>M Makefile<br>M Makefile.moddir_rules<br>M Makefile.rules<br>M apps/app_adsiprog.c<br>M apps/app_dahdiras.c<br>M apps/app_getcpeid.c<br>M apps/app_ices.c<br>M apps/app_image.c<br>M apps/app_nbscat.c<br>D apps/app_setcallerid.c<br>M apps/app_url.c<br>M build_tools/cflags.xml<br>D cdr/cdr_sqlite.c<br>M channels/chan_misdn.c<br>M channels/chan_nbs.c<br>M channels/chan_oss.c<br>M channels/chan_phone.c<br>M channels/chan_vpb.cc<br>D formats/format_jpeg.c<br>M main/Makefile<br>M menuselect/test/menuselect-tree<br>M res/res_adsi.c<br>M utils/conf2ael.c<br>M utils/muted.c<br>M utils/utils.xml<br>26 files changed, 43 insertions(+), 534 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/04/9504/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CHANGES b/CHANGES</span><br><span>index f79cd84..cb3dd7a 100644</span><br><span>--- a/CHANGES</span><br><span>+++ b/CHANGES</span><br><span>@@ -37,6 +37,11 @@</span><br><span>    built.  Users should migrate to app_stack (Gosub).  A warning is logged</span><br><span>    the first time any Macro is used.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+app_setcallerid</span><br><span style="color: hsl(120, 100%, 40%);">+------------------</span><br><span style="color: hsl(120, 100%, 40%);">+ * The app_setcallerid module has been removed. The CALLERID dialplan function</span><br><span style="color: hsl(120, 100%, 40%);">+   should be used instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> chan_sip</span><br><span> ------------------</span><br><span>  * New function SIP_HEADERS() enumerates all headers in the incoming INVITE.</span><br><span>@@ -108,10 +113,21 @@</span><br><span>  * The cdr_syslog module is now deprecated and by default it is no longer</span><br><span>    built.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+cdr_sqlite</span><br><span style="color: hsl(120, 100%, 40%);">+------------------</span><br><span style="color: hsl(120, 100%, 40%);">+ * The cdr_sqlite module has been removed. Users should move to using the</span><br><span style="color: hsl(120, 100%, 40%);">+   cdr_sqlite3_custom module instead.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+format_jpeg</span><br><span style="color: hsl(120, 100%, 40%);">+------------------</span><br><span style="color: hsl(120, 100%, 40%);">+ * The format_jpeg module has been removed.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> Core:</span><br><span> ------------------</span><br><span>  * libedit is no longer available as an embedded library and must be provided</span><br><span>    by the system.</span><br><span style="color: hsl(120, 100%, 40%);">+ * The STATIC_BUILD functionality has been removed as it has not been maintained</span><br><span style="color: hsl(120, 100%, 40%);">+   and has not worked in quite some time.</span><br><span> </span><br><span> ------------------------------------------------------------------------------</span><br><span> --- Functionality changes from Asterisk 15.5.0 to Asterisk 15.6.0 ------------</span><br><span>diff --git a/Makefile b/Makefile</span><br><span>index 1cd9665..bd0a9e8 100644</span><br><span>--- a/Makefile</span><br><span>+++ b/Makefile</span><br><span>@@ -76,9 +76,6 @@</span><br><span> export _SOLINK            # linker flags for all shared objects</span><br><span> export SOLINK             # linker flags for loadable modules</span><br><span> export DYLINK             # linker flags for shared libraries</span><br><span style="color: hsl(0, 100%, 40%);">-export STATIC_BUILD       # Additional cflags, set to -static</span><br><span style="color: hsl(0, 100%, 40%);">-                          # for static builds. Probably</span><br><span style="color: hsl(0, 100%, 40%);">-                          # should go directly to ASTLDFLAGS</span><br><span> </span><br><span> #--- paths to various commands</span><br><span> # The makeopts include below tries to set these if they're found during</span><br><span>diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules</span><br><span>index 5d82088..c9f94f9 100644</span><br><span>--- a/Makefile.moddir_rules</span><br><span>+++ b/Makefile.moddir_rules</span><br><span>@@ -18,10 +18,6 @@</span><br><span> # Also note that we can only set one variable per rule, so we have to</span><br><span> # repeat the left hand side to set multiple variables.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ifneq ($(findstring STATIC_BUILD,$(MENUSELECT_CFLAGS)),)</span><br><span style="color: hsl(0, 100%, 40%);">-  STATIC_BUILD=-static</span><br><span style="color: hsl(0, 100%, 40%);">-endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> include $(ASTTOPDIR)/Makefile.rules</span><br><span> </span><br><span> # If MODULE_PREFIX is defined, use it to run the standard functions to set</span><br><span>diff --git a/Makefile.rules b/Makefile.rules</span><br><span>index 2273644..7f917b4 100644</span><br><span>--- a/Makefile.rules</span><br><span>+++ b/Makefile.rules</span><br><span>@@ -176,17 +176,17 @@</span><br><span>  $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_version_script $* "$(LINKER_SYMBOL_PREFIX)" "$(ASTTOPDIR)"</span><br><span> endif</span><br><span>   $(ECHO_PREFIX) echo "   [LD] $^ -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-     $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+      $(CMD_PREFIX) $(CC) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span> </span><br><span> %.so: %.oo</span><br><span> ifeq ($(GNU_LD),1)</span><br><span>     $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_version_script $* "$(LINKER_SYMBOL_PREFIX)" "$(ASTTOPDIR)"</span><br><span> endif</span><br><span>   $(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-   $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(CXX_LDFLAGS_SO) $^ $(CXX_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+   $(CMD_PREFIX) $(CXX) -o $@ $(CXX_LDFLAGS_SO) $^ $(CXX_LIBS)</span><br><span> </span><br><span> %: %.o</span><br><span>    $(ECHO_PREFIX) echo "   [LD] $^ -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-     $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $^ $(CXX_LIBS) $(ASTLDFLAGS)</span><br><span style="color: hsl(120, 100%, 40%);">+      $(CMD_PREFIX) $(CXX) -o $@ $(PTHREAD_CFLAGS) $(_ASTLDFLAGS) $^ $(CXX_LIBS) $(ASTLDFLAGS)</span><br><span> </span><br><span> dist-clean:: clean</span><br><span>diff --git a/apps/app_adsiprog.c b/apps/app_adsiprog.c</span><br><span>index 688168e..b57b1d7 100644</span><br><span>--- a/apps/app_adsiprog.c</span><br><span>+++ b/apps/app_adsiprog.c</span><br><span>@@ -36,7 +36,7 @@</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span>       <depend>res_adsi</depend></span><br><span style="color: hsl(0, 100%, 40%);">-   <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/apps/app_dahdiras.c b/apps/app_dahdiras.c</span><br><span>index 03b34a2..cf1f77d 100644</span><br><span>--- a/apps/app_dahdiras.c</span><br><span>+++ b/apps/app_dahdiras.c</span><br><span>@@ -27,7 +27,7 @@</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span>    <depend>dahdi</depend></span><br><span style="color: hsl(0, 100%, 40%);">-      <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/apps/app_getcpeid.c b/apps/app_getcpeid.c</span><br><span>index 868dc97..8ef37ae 100644</span><br><span>--- a/apps/app_getcpeid.c</span><br><span>+++ b/apps/app_getcpeid.c</span><br><span>@@ -26,7 +26,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-        <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/apps/app_ices.c b/apps/app_ices.c</span><br><span>index 3be90c2..8ad9bfc 100644</span><br><span>--- a/apps/app_ices.c</span><br><span>+++ b/apps/app_ices.c</span><br><span>@@ -28,7 +28,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-        <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/apps/app_image.c b/apps/app_image.c</span><br><span>index b9087b7..9272ec2 100644</span><br><span>--- a/apps/app_image.c</span><br><span>+++ b/apps/app_image.c</span><br><span>@@ -26,7 +26,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-    <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/apps/app_nbscat.c b/apps/app_nbscat.c</span><br><span>index 692093f..b00c887 100644</span><br><span>--- a/apps/app_nbscat.c</span><br><span>+++ b/apps/app_nbscat.c</span><br><span>@@ -26,7 +26,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-        <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/apps/app_setcallerid.c b/apps/app_setcallerid.c</span><br><span>deleted file mode 100644</span><br><span>index faa2218..0000000</span><br><span>--- a/apps/app_setcallerid.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,128 +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 - 2005, 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 App to set callerid presentation</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 applications</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%);">-        <defaultenabled>no</defaultenabled></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>deprecated</support_level></span><br><span style="color: hsl(0, 100%, 40%);">-   <replacement>func_callerid</replacement></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 "asterisk/lock.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/file.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/pbx.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/translate.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/image.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/callerid.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*** DOCUMENTATION</span><br><span style="color: hsl(0, 100%, 40%);">-        <application name="SetCallerPres" language="en_US"></span><br><span style="color: hsl(0, 100%, 40%);">-           <synopsis></span><br><span style="color: hsl(0, 100%, 40%);">-                        Set CallerID Presentation.</span><br><span style="color: hsl(0, 100%, 40%);">-              </synopsis></span><br><span style="color: hsl(0, 100%, 40%);">-               <syntax></span><br><span style="color: hsl(0, 100%, 40%);">-                  <parameter name="presentation" required="true"></span><br><span style="color: hsl(0, 100%, 40%);">-                               <enumlist></span><br><span style="color: hsl(0, 100%, 40%);">-                                        <enum name="allowed_not_screened"></span><br><span style="color: hsl(0, 100%, 40%);">-                                              <para>Presentation Allowed, Not Screened.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                    </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="allowed_passed_screen"></span><br><span style="color: hsl(0, 100%, 40%);">-                                             <para>Presentation Allowed, Passed Screen.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                   </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="allowed_failed_screen"></span><br><span style="color: hsl(0, 100%, 40%);">-                                             <para>Presentation Allowed, Failed Screen.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                   </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="allowed"></span><br><span style="color: hsl(0, 100%, 40%);">-                                           <para>Presentation Allowed, Network Number.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                  </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="prohib_not_screened"></span><br><span style="color: hsl(0, 100%, 40%);">-                                               <para>Presentation Prohibited, Not Screened.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                 </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="prohib_passed_screen"></span><br><span style="color: hsl(0, 100%, 40%);">-                                              <para>Presentation Prohibited, Passed Screen.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                        </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="prohib_failed_screen"></span><br><span style="color: hsl(0, 100%, 40%);">-                                              <para>Presentation Prohibited, Failed Screen.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                        </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="prohib"></span><br><span style="color: hsl(0, 100%, 40%);">-                                            <para>Presentation Prohibited, Network Number.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                       </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                                   <enum name="unavailable"></span><br><span style="color: hsl(0, 100%, 40%);">-                                               <para>Number Unavailable.</para></span><br><span style="color: hsl(0, 100%, 40%);">-                                    </enum></span><br><span style="color: hsl(0, 100%, 40%);">-                           </enumlist></span><br><span style="color: hsl(0, 100%, 40%);">-                       </parameter></span><br><span style="color: hsl(0, 100%, 40%);">-              </syntax></span><br><span style="color: hsl(0, 100%, 40%);">-         <description></span><br><span style="color: hsl(0, 100%, 40%);">-                     <para>Set Caller*ID presentation on a call.</para></span><br><span style="color: hsl(0, 100%, 40%);">-          </description></span><br><span style="color: hsl(0, 100%, 40%);">-    </application></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 char *app2 = "SetCallerPres";</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int setcallerid_pres_exec(struct ast_channel *chan, const char *data)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    int pres = -1;</span><br><span style="color: hsl(0, 100%, 40%);">-  static int deprecated = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      if (!deprecated) {</span><br><span style="color: hsl(0, 100%, 40%);">-              deprecated = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-         ast_log(LOG_WARNING, "SetCallerPres is deprecated.  Please use Set(CALLERPRES()=%s) instead.\n", (char *)data);</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%);">-       /* For interface consistency, permit the argument to be specified as a number */</span><br><span style="color: hsl(0, 100%, 40%);">-        if (sscanf(data, "%30d", &pres) != 1 || pres < 0 || pres > 255 || (pres & 0x9c)) {</span><br><span style="color: hsl(0, 100%, 40%);">-              pres = ast_parse_caller_presentation(data);</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%);">-       if (pres < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-              ast_log(LOG_WARNING, "'%s' is not a valid presentation (see 'show application SetCallerPres')\n",</span><br><span style="color: hsl(0, 100%, 40%);">-                     (char *) data);</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%);">-       /* Set the combined caller id presentation. */</span><br><span style="color: hsl(0, 100%, 40%);">-  ast_channel_caller(chan)->id.name.presentation = pres;</span><br><span style="color: hsl(0, 100%, 40%);">-       ast_channel_caller(chan)->id.number.presentation = pres;</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 unload_module(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-       return ast_unregister_application(app2);</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%);">-  return ast_register_application_xml(app2, setcallerid_pres_exec);</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, "Set CallerID Presentation Application");</span><br><span>diff --git a/apps/app_url.c b/apps/app_url.c</span><br><span>index e143cab..caf1435 100644</span><br><span>--- a/apps/app_url.c</span><br><span>+++ b/apps/app_url.c</span><br><span>@@ -26,7 +26,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-      <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/build_tools/cflags.xml b/build_tools/cflags.xml</span><br><span>index c4f9458..6a95672 100644</span><br><span>--- a/build_tools/cflags.xml</span><br><span>+++ b/build_tools/cflags.xml</span><br><span>@@ -16,9 +16,6 @@</span><br><span>               <member name="AO2_DEBUG" displayname="Enable internal Astobj2 debugging"></span><br><span>                  <support_level>extended</support_level></span><br><span>          </member></span><br><span style="color: hsl(0, 100%, 40%);">-         <member name="STATIC_BUILD" displayname="Build static binaries"></span><br><span style="color: hsl(0, 100%, 40%);">-                      <support_level>extended</support_level></span><br><span style="color: hsl(0, 100%, 40%);">-             </member></span><br><span>              <member name="DEBUG_FD_LEAKS" displayname="Enable File Descriptor Leak Detection"></span><br><span>                         <support_level>core</support_level></span><br><span>              </member></span><br><span>diff --git a/cdr/cdr_sqlite.c b/cdr/cdr_sqlite.c</span><br><span>deleted file mode 100644</span><br><span>index aceff0f..0000000</span><br><span>--- a/cdr/cdr_sqlite.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,252 +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) 2004 - 2005, Holger Schurig</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%);">- * Ideas taken from other cdr_*.c files</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%);">-/*!</span><br><span style="color: hsl(0, 100%, 40%);">- * \file</span><br><span style="color: hsl(0, 100%, 40%);">- * \brief Store CDR records in a SQLite database.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \author Holger Schurig <hs4233@mail.mn-solutions.de></span><br><span style="color: hsl(0, 100%, 40%);">- * SQLite http://www.sqlite.org/</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * See also</span><br><span style="color: hsl(0, 100%, 40%);">- * \arg \ref Config_cdr</span><br><span style="color: hsl(0, 100%, 40%);">- * \arg http://www.sqlite.org/</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Creates the database and table on-the-fly</span><br><span style="color: hsl(0, 100%, 40%);">- * \ingroup cdr_drivers</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \note This module has been marked deprecated in favor for cdr_sqlite3_custom</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>sqlite</depend></span><br><span style="color: hsl(0, 100%, 40%);">-     <defaultenabled>no</defaultenabled></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>deprecated</support_level></span><br><span style="color: hsl(0, 100%, 40%);">-   <replacement>sqlite3_custom</replacement></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 <sqlite.h></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/channel.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/utils.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/paths.h"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#define LOG_UNIQUEID    0</span><br><span style="color: hsl(0, 100%, 40%);">-#define LOG_USERFIELD   0</span><br><span style="color: hsl(0, 100%, 40%);">-#define LOG_HRTIME      0</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* When you change the DATE_FORMAT, be sure to change the CHAR(19) below to something else */</span><br><span style="color: hsl(0, 100%, 40%);">-#define DATE_FORMAT "%Y-%m-%d %T"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static const char name[] = "sqlite";</span><br><span style="color: hsl(0, 100%, 40%);">-static sqlite* db = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AST_MUTEX_DEFINE_STATIC(sqlite_lock);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/*! \brief SQL table format */</span><br><span style="color: hsl(0, 100%, 40%);">-static const char sql_create_table[] = "CREATE TABLE cdr ("</span><br><span style="color: hsl(0, 100%, 40%);">-"       AcctId          INTEGER PRIMARY KEY,"</span><br><span style="color: hsl(0, 100%, 40%);">-"        clid            VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        src             VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        dst             VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        dcontext        VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        channel         VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        dstchannel      VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        lastapp         VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        lastdata        VARCHAR(80),"</span><br><span style="color: hsl(0, 100%, 40%);">-"        start           CHAR(19),"</span><br><span style="color: hsl(0, 100%, 40%);">-"   answer          CHAR(19),"</span><br><span style="color: hsl(0, 100%, 40%);">-"   end             CHAR(19),"</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_HRTIME</span><br><span style="color: hsl(0, 100%, 40%);">-"     duration        FLOAT,"</span><br><span style="color: hsl(0, 100%, 40%);">-"      billsec         FLOAT,"</span><br><span style="color: hsl(0, 100%, 40%);">-#else</span><br><span style="color: hsl(0, 100%, 40%);">-" duration        INTEGER,"</span><br><span style="color: hsl(0, 100%, 40%);">-"    billsec         INTEGER,"</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-"      disposition     INTEGER,"</span><br><span style="color: hsl(0, 100%, 40%);">-"    amaflags        INTEGER,"</span><br><span style="color: hsl(0, 100%, 40%);">-"    accountcode     VARCHAR(20)"</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_UNIQUEID</span><br><span style="color: hsl(0, 100%, 40%);">-" ,uniqueid       VARCHAR(32)"</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_USERFIELD</span><br><span style="color: hsl(0, 100%, 40%);">-"  ,userfield      VARCHAR(255)"</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</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 format_date(char *buffer, size_t length, struct timeval *when)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-      struct ast_tm tm;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       ast_localtime(when, &tm, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-     ast_strftime(buffer, length, DATE_FORMAT, &tm);</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 sqlite_log(struct ast_cdr *cdr)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- int res = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-    char *zErr = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- char startstr[80], answerstr[80], endstr[80];</span><br><span style="color: hsl(0, 100%, 40%);">-   int count;</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_HRTIME</span><br><span style="color: hsl(0, 100%, 40%);">-        double hrbillsec = 0.0;</span><br><span style="color: hsl(0, 100%, 40%);">- double hrduration;</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        ast_mutex_lock(&sqlite_lock);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       format_date(startstr, sizeof(startstr), &cdr->start);</span><br><span style="color: hsl(0, 100%, 40%);">-    format_date(answerstr, sizeof(answerstr), &cdr->answer);</span><br><span style="color: hsl(0, 100%, 40%);">- format_date(endstr, sizeof(endstr), &cdr->end);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_HRTIME</span><br><span style="color: hsl(0, 100%, 40%);">-    if (!ast_tvzero(cdr->answer)) {</span><br><span style="color: hsl(0, 100%, 40%);">-              hrbillsec = (double) ast_tvdiff_us(cdr->end, cdr->answer) / 1000000.0;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       hrduration = (double) ast_tvdiff_us(cdr->end, cdr->start) / 1000000.0;</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-      for(count=0; count<5; count++) {</span><br><span style="color: hsl(0, 100%, 40%);">-             res = sqlite_exec_printf(db,</span><br><span style="color: hsl(0, 100%, 40%);">-                    "INSERT INTO cdr ("</span><br><span style="color: hsl(0, 100%, 40%);">-                           "clid,src,dst,dcontext,"</span><br><span style="color: hsl(0, 100%, 40%);">-                              "channel,dstchannel,lastapp,lastdata, "</span><br><span style="color: hsl(0, 100%, 40%);">-                               "start,answer,end,"</span><br><span style="color: hsl(0, 100%, 40%);">-                           "duration,billsec,disposition,amaflags, "</span><br><span style="color: hsl(0, 100%, 40%);">-                             "accountcode"</span><br><span style="color: hsl(0, 100%, 40%);">-#                                if LOG_UNIQUEID</span><br><span style="color: hsl(0, 100%, 40%);">-                         ",uniqueid"</span><br><span style="color: hsl(0, 100%, 40%);">-#                          endif</span><br><span style="color: hsl(0, 100%, 40%);">-#                          if LOG_USERFIELD</span><br><span style="color: hsl(0, 100%, 40%);">-                                ",userfield"</span><br><span style="color: hsl(0, 100%, 40%);">-#                         endif</span><br><span style="color: hsl(0, 100%, 40%);">-                   ") VALUES ("</span><br><span style="color: hsl(0, 100%, 40%);">-                          "'%q', '%q', '%q', '%q', "</span><br><span style="color: hsl(0, 100%, 40%);">-                            "'%q', '%q', '%q', '%q', "</span><br><span style="color: hsl(0, 100%, 40%);">-                            "'%q', '%q', '%q', "</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_HRTIME</span><br><span style="color: hsl(0, 100%, 40%);">-                            "%f, %f, %d, %d, "</span><br><span style="color: hsl(0, 100%, 40%);">-#else</span><br><span style="color: hsl(0, 100%, 40%);">-                               "%d, %d, %d, %d, "</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-                              "'%q'"</span><br><span style="color: hsl(0, 100%, 40%);">-#                               if LOG_UNIQUEID</span><br><span style="color: hsl(0, 100%, 40%);">-                         ",'%q'"</span><br><span style="color: hsl(0, 100%, 40%);">-#                              endif</span><br><span style="color: hsl(0, 100%, 40%);">-#                          if LOG_USERFIELD</span><br><span style="color: hsl(0, 100%, 40%);">-                                ",'%q'"</span><br><span style="color: hsl(0, 100%, 40%);">-#                              endif</span><br><span style="color: hsl(0, 100%, 40%);">-                   ")", NULL, NULL, &zErr,</span><br><span style="color: hsl(0, 100%, 40%);">-                           cdr->clid, cdr->src, cdr->dst, cdr->dcontext,</span><br><span style="color: hsl(0, 100%, 40%);">-                               cdr->channel, cdr->dstchannel, cdr->lastapp, cdr->lastdata,</span><br><span style="color: hsl(0, 100%, 40%);">-                         startstr, answerstr, endstr,</span><br><span style="color: hsl(0, 100%, 40%);">-#if LOG_HRTIME</span><br><span style="color: hsl(0, 100%, 40%);">-                              hrduration, hrbillsec, cdr->disposition, cdr->amaflags,</span><br><span style="color: hsl(0, 100%, 40%);">-#else</span><br><span style="color: hsl(0, 100%, 40%);">-                              cdr->duration, cdr->billsec, cdr->disposition, cdr->amaflags,</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-                         cdr->accountcode</span><br><span style="color: hsl(0, 100%, 40%);">-#                            if LOG_UNIQUEID</span><br><span style="color: hsl(0, 100%, 40%);">-                         ,cdr->uniqueid</span><br><span style="color: hsl(0, 100%, 40%);">-#                              endif</span><br><span style="color: hsl(0, 100%, 40%);">-#                          if LOG_USERFIELD</span><br><span style="color: hsl(0, 100%, 40%);">-                                ,cdr->userfield</span><br><span style="color: hsl(0, 100%, 40%);">-#                             endif</span><br><span style="color: hsl(0, 100%, 40%);">-                   );</span><br><span style="color: hsl(0, 100%, 40%);">-              if (res != SQLITE_BUSY && res != SQLITE_LOCKED)</span><br><span style="color: hsl(0, 100%, 40%);">-                 break;</span><br><span style="color: hsl(0, 100%, 40%);">-          usleep(200);</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%);">-       if (zErr) {</span><br><span style="color: hsl(0, 100%, 40%);">-             ast_log(LOG_ERROR, "cdr_sqlite: %s\n", zErr);</span><br><span style="color: hsl(0, 100%, 40%);">-         ast_free(zErr);</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_mutex_unlock(&sqlite_lock);</span><br><span style="color: hsl(0, 100%, 40%);">-     return res;</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%);">-     if (ast_cdr_unregister(name)) {</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%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       if (db) {</span><br><span style="color: hsl(0, 100%, 40%);">-               sqlite_close(db);</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 int load_module(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- char *zErr;</span><br><span style="color: hsl(0, 100%, 40%);">-     char fn[PATH_MAX];</span><br><span style="color: hsl(0, 100%, 40%);">-      int res;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        ast_log(LOG_NOTICE, "This module has been marked deprecated in favor of "</span><br><span style="color: hsl(0, 100%, 40%);">-             "using cdr_sqlite3_custom.\n");</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* is the database there? */</span><br><span style="color: hsl(0, 100%, 40%);">-    snprintf(fn, sizeof(fn), "%s/cdr.db", ast_config_AST_LOG_DIR);</span><br><span style="color: hsl(0, 100%, 40%);">-        db = sqlite_open(fn, AST_FILE_MODE, &zErr);</span><br><span style="color: hsl(0, 100%, 40%);">- if (!db) {</span><br><span style="color: hsl(0, 100%, 40%);">-              ast_log(LOG_ERROR, "cdr_sqlite: %s\n", zErr);</span><br><span style="color: hsl(0, 100%, 40%);">-         ast_free(zErr);</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%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* is the table there? */</span><br><span style="color: hsl(0, 100%, 40%);">-       res = sqlite_exec(db, "SELECT COUNT(AcctId) FROM cdr;", NULL, NULL, NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-    if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              res = sqlite_exec(db, sql_create_table, NULL, NULL, &zErr);</span><br><span style="color: hsl(0, 100%, 40%);">-         if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-                      ast_log(LOG_ERROR, "cdr_sqlite: Unable to create table 'cdr': %s\n", zErr);</span><br><span style="color: hsl(0, 100%, 40%);">-                   ast_free(zErr);</span><br><span style="color: hsl(0, 100%, 40%);">-                 goto err;</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%);">-               /* TODO: here we should probably create an index */</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%);">-       res = ast_cdr_register(name, ast_module_info->description, sqlite_log);</span><br><span style="color: hsl(0, 100%, 40%);">-      if (res) {</span><br><span style="color: hsl(0, 100%, 40%);">-              ast_log(LOG_ERROR, "Unable to register SQLite CDR handling\n");</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%);">-err:</span><br><span style="color: hsl(0, 100%, 40%);">-     if (db)</span><br><span style="color: hsl(0, 100%, 40%);">-         sqlite_close(db);</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%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "SQLite CDR Backend",</span><br><span style="color: hsl(0, 100%, 40%);">-       .support_level = AST_MODULE_SUPPORT_DEPRECATED,</span><br><span style="color: hsl(0, 100%, 40%);">- .load = load_module,</span><br><span style="color: hsl(0, 100%, 40%);">-    .unload = unload_module,</span><br><span style="color: hsl(0, 100%, 40%);">-        .load_pri = AST_MODPRI_CDR_DRIVER,</span><br><span style="color: hsl(0, 100%, 40%);">-      .requires = "cdr",</span><br><span style="color: hsl(0, 100%, 40%);">-);</span><br><span>diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c</span><br><span>index dc18d71..07657e2 100644</span><br><span>--- a/channels/chan_misdn.c</span><br><span>+++ b/channels/chan_misdn.c</span><br><span>@@ -76,7 +76,7 @@</span><br><span>  <depend>isdnnet</depend></span><br><span>         <depend>misdn</depend></span><br><span>   <depend>suppserv</depend></span><br><span style="color: hsl(0, 100%, 40%);">-   <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/channels/chan_nbs.c b/channels/chan_nbs.c</span><br><span>index 4a080a7..f839124 100644</span><br><span>--- a/channels/chan_nbs.c</span><br><span>+++ b/channels/chan_nbs.c</span><br><span>@@ -27,7 +27,7 @@</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span>    <depend>nbs</depend></span><br><span style="color: hsl(0, 100%, 40%);">-        <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/channels/chan_oss.c b/channels/chan_oss.c</span><br><span>index ed4391b..815284c 100644</span><br><span>--- a/channels/chan_oss.c</span><br><span>+++ b/channels/chan_oss.c</span><br><span>@@ -40,7 +40,7 @@</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span>    <depend>oss</depend></span><br><span style="color: hsl(0, 100%, 40%);">-        <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/channels/chan_phone.c b/channels/chan_phone.c</span><br><span>index c33f27a..4e3237a 100644</span><br><span>--- a/channels/chan_phone.c</span><br><span>+++ b/channels/chan_phone.c</span><br><span>@@ -35,7 +35,7 @@</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span>    <depend>ixjuser</depend></span><br><span style="color: hsl(0, 100%, 40%);">-    <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/channels/chan_vpb.cc b/channels/chan_vpb.cc</span><br><span>index 7fdb9ed..6ccf3ac 100644</span><br><span>--- a/channels/chan_vpb.cc</span><br><span>+++ b/channels/chan_vpb.cc</span><br><span>@@ -50,7 +50,7 @@</span><br><span> /*** MODULEINFO</span><br><span>    <depend>vpb</depend></span><br><span>     <defaultenabled>no</defaultenabled></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include <vpbapi.h></span><br><span>diff --git a/formats/format_jpeg.c b/formats/format_jpeg.c</span><br><span>deleted file mode 100644</span><br><span>index 250939c..0000000</span><br><span>--- a/formats/format_jpeg.c</span><br><span>+++ /dev/null</span><br><span>@@ -1,115 +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 - 2005, 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 JPEG File format support.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \arg File name extension: jpeg, jpg</span><br><span style="color: hsl(0, 100%, 40%);">- * \ingroup formats</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%);">-    <support_level>extended</support_level></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 "asterisk/mod_format.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/image.h"</span><br><span style="color: hsl(0, 100%, 40%);">-#include "asterisk/endian.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 struct ast_frame *jpeg_read_image(int fd, int len)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        struct ast_frame fr;</span><br><span style="color: hsl(0, 100%, 40%);">-    int res;</span><br><span style="color: hsl(0, 100%, 40%);">-        char buf[65536];</span><br><span style="color: hsl(0, 100%, 40%);">-        if (len > sizeof(buf) || len < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               ast_log(LOG_WARNING, "JPEG image too large to read\n");</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%);">-       res = read(fd, buf, len);</span><br><span style="color: hsl(0, 100%, 40%);">-       if (res < len) {</span><br><span style="color: hsl(0, 100%, 40%);">-             ast_log(LOG_WARNING, "Only read %d of %d bytes: %s\n", res, len, strerror(errno));</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       memset(&fr, 0, sizeof(fr));</span><br><span style="color: hsl(0, 100%, 40%);">- fr.frametype = AST_FRAME_IMAGE;</span><br><span style="color: hsl(0, 100%, 40%);">- fr.subclass.format = ast_format_jpeg;</span><br><span style="color: hsl(0, 100%, 40%);">-   fr.data.ptr = buf;</span><br><span style="color: hsl(0, 100%, 40%);">-      fr.src = "JPEG Read";</span><br><span style="color: hsl(0, 100%, 40%);">- fr.datalen = len;</span><br><span style="color: hsl(0, 100%, 40%);">-       return ast_frisolate(&fr);</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 jpeg_identify(int fd)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-        char buf[10];</span><br><span style="color: hsl(0, 100%, 40%);">-   int res;</span><br><span style="color: hsl(0, 100%, 40%);">-        res = read(fd, buf, sizeof(buf));</span><br><span style="color: hsl(0, 100%, 40%);">-       if (res < sizeof(buf))</span><br><span style="color: hsl(0, 100%, 40%);">-               return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-       if (memcmp(buf + 6, "JFIF", 4))</span><br><span style="color: hsl(0, 100%, 40%);">-               return 0;</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%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-static int jpeg_write_image(int fd, struct ast_frame *fr)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-    int res=0;</span><br><span style="color: hsl(0, 100%, 40%);">-      if (fr->datalen) {</span><br><span style="color: hsl(0, 100%, 40%);">-           res = write(fd, fr->data.ptr, fr->datalen);</span><br><span style="color: hsl(0, 100%, 40%);">-               if (res != fr->datalen) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    ast_log(LOG_WARNING, "Only wrote %d of %d bytes: %s\n", res, fr->datalen, strerror(errno));</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%);">-       }</span><br><span style="color: hsl(0, 100%, 40%);">-       return res;</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_imager jpeg_format = {</span><br><span style="color: hsl(0, 100%, 40%);">-    .name = "jpg",</span><br><span style="color: hsl(0, 100%, 40%);">-        .desc = "JPEG (Joint Picture Experts Group)",</span><br><span style="color: hsl(0, 100%, 40%);">- .exts = "jpg|jpeg",</span><br><span style="color: hsl(0, 100%, 40%);">-   .read_image = jpeg_read_image,</span><br><span style="color: hsl(0, 100%, 40%);">-  .identify = jpeg_identify,</span><br><span style="color: hsl(0, 100%, 40%);">-      .write_image = jpeg_write_image,</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%);">- jpeg_format.format = ast_format_jpeg;</span><br><span style="color: hsl(0, 100%, 40%);">-   if (ast_image_register(&jpeg_format))</span><br><span style="color: hsl(0, 100%, 40%);">-               return AST_MODULE_LOAD_DECLINE;</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%);">-static int unload_module(void)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">- ast_image_unregister(&jpeg_format);</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%);">-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "jpeg (joint picture experts group) image format",</span><br><span style="color: hsl(0, 100%, 40%);">-        .support_level = AST_MODULE_SUPPORT_EXTENDED,</span><br><span style="color: hsl(0, 100%, 40%);">-   .load = load_module,</span><br><span style="color: hsl(0, 100%, 40%);">-    .unload = unload_module,</span><br><span style="color: hsl(0, 100%, 40%);">-        .load_pri = AST_MODPRI_APP_DEPEND</span><br><span style="color: hsl(0, 100%, 40%);">-);</span><br><span>diff --git a/main/Makefile b/main/Makefile</span><br><span>index 5f02937..0e29c84 100644</span><br><span>--- a/main/Makefile</span><br><span>+++ b/main/Makefile</span><br><span>@@ -205,7 +205,7 @@</span><br><span>   $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_version_script libasteriskssl "$(LINKER_SYMBOL_PREFIX)" "$(ASTTOPDIR)"</span><br><span> endif</span><br><span>       $(ECHO_PREFIX) echo "   [LD] $^ -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-     $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+      $(CMD_PREFIX) $(CC) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span> </span><br><span> $(ASTSSL_LIB): $(ASTSSL_LIB).$(ASTSSL_SO_VERSION)</span><br><span>    $(ECHO_PREFIX) echo "   [LN] $< -> $@"</span><br><span>@@ -224,7 +224,7 @@</span><br><span> # Special rules for building a shared library (not a dynamically loadable module)</span><br><span> $(ASTSSL_LIB): libasteriskssl.o</span><br><span>         $(ECHO_PREFIX) echo "   [LD] $^ -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-     $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+      $(CMD_PREFIX) $(CC) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span> endif</span><br><span> </span><br><span> endif</span><br><span>@@ -282,7 +282,7 @@</span><br><span> # type that are built by the standard rules)</span><br><span> $(ASTPJ_LIB).$(ASTPJ_SO_VERSION): libasteriskpj.o libasteriskpj.exports</span><br><span>      $(ECHO_PREFIX) echo "   [LD] $< -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-  $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $< $(CC_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+   $(CMD_PREFIX) $(CC) -o $@ $(CC_LDFLAGS_SO) $< $(CC_LIBS)</span><br><span> </span><br><span> $(ASTPJ_LIB): $(ASTPJ_LIB).$(ASTPJ_SO_VERSION)</span><br><span>    $(ECHO_PREFIX) echo "   [LN] $< -> $@"</span><br><span>@@ -301,7 +301,7 @@</span><br><span> # Special rules for building a shared library (not a dynamically loadable module)</span><br><span> $(ASTPJ_LIB): libasteriskpj.o</span><br><span>   $(ECHO_PREFIX) echo "   [LD] $^ -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-     $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+      $(CMD_PREFIX) $(CC) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)</span><br><span> endif</span><br><span> </span><br><span> endif</span><br><span>@@ -312,7 +312,7 @@</span><br><span> $(MAIN_TGT): $(OBJS) $(MOD_OBJS) $(ASTSSL_LIB) $(ASTPJ_LIB)</span><br><span>  @$(CC) -c -o buildinfo.o $(_ASTCFLAGS) buildinfo.c $(ASTCFLAGS)</span><br><span>      $(ECHO_PREFIX) echo "   [LD] $(OBJS) $(MOD_OBJS) -> $@"</span><br><span style="color: hsl(0, 100%, 40%);">-    $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(_ASTLDFLAGS) $(ASTLDFLAGS) $(OBJS) $(MOD_OBJS) $(ASTSSL_LDLIBS) $(ASTPJ_LDLIBS) buildinfo.o $(AST_LIBS) $(GMIMELDFLAGS) $(LIBEDIT_LIB)</span><br><span style="color: hsl(120, 100%, 40%);">+        $(CMD_PREFIX) $(CXX) -o $@ $(ASTLINK) $(_ASTLDFLAGS) $(ASTLDFLAGS) $(OBJS) $(MOD_OBJS) $(ASTSSL_LDLIBS) $(ASTPJ_LDLIBS) buildinfo.o $(AST_LIBS) $(GMIMELDFLAGS) $(LIBEDIT_LIB)</span><br><span> </span><br><span> ifeq ($(GNU_LD),1)</span><br><span> $(MAIN_TGT): asterisk.exports</span><br><span>diff --git a/menuselect/test/menuselect-tree b/menuselect/test/menuselect-tree</span><br><span>index 0fa5152..40c08b6 100644</span><br><span>--- a/menuselect/test/menuselect-tree</span><br><span>+++ b/menuselect/test/menuselect-tree</span><br><span>@@ -535,8 +535,6 @@</span><br><span>             </member></span><br><span>              <member name="DEBUG_THREADS" displayname="Enable Thread Debugging"></span><br><span>                </member></span><br><span style="color: hsl(0, 100%, 40%);">-         <member name="STATIC_BUILD" displayname="Build static binaries"></span><br><span style="color: hsl(0, 100%, 40%);">-              </member></span><br><span>              <member name="LOADABLE_MODULES" displayname="Runtime module loading"></span><br><span>                      <defaultenabled>yes</defaultenabled></span><br><span>             </member></span><br><span>diff --git a/res/res_adsi.c b/res/res_adsi.c</span><br><span>index 698f935..7a23f45 100644</span><br><span>--- a/res/res_adsi.c</span><br><span>+++ b/res/res_adsi.c</span><br><span>@@ -31,7 +31,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-  <support_level>core</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+       <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk.h"</span><br><span>diff --git a/utils/conf2ael.c b/utils/conf2ael.c</span><br><span>index e3a9056..14b2aa9 100644</span><br><span>--- a/utils/conf2ael.c</span><br><span>+++ b/utils/conf2ael.c</span><br><span>@@ -24,7 +24,7 @@</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span>        <depend>res_ael_share</depend></span><br><span style="color: hsl(0, 100%, 40%);">-      <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #define ASTMM_LIBC ASTMM_IGNORE</span><br><span>diff --git a/utils/muted.c b/utils/muted.c</span><br><span>index 2cdd7e2..6a86a67 100644</span><br><span>--- a/utils/muted.c</span><br><span>+++ b/utils/muted.c</span><br><span>@@ -45,7 +45,7 @@</span><br><span>  */</span><br><span> </span><br><span> /*** MODULEINFO</span><br><span style="color: hsl(0, 100%, 40%);">-        <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>  ***/</span><br><span> </span><br><span> #include "asterisk/autoconfig.h"</span><br><span>diff --git a/utils/utils.xml b/utils/utils.xml</span><br><span>index 5b3a27a..777789a 100644</span><br><span>--- a/utils/utils.xml</span><br><span>+++ b/utils/utils.xml</span><br><span>@@ -1,7 +1,7 @@</span><br><span> <category name="MENUSELECT_UTILS" displayname="Utilities" positive_output="yes"></span><br><span>   <member name="aelparse"></span><br><span>    <defaultenabled>no</defaultenabled></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>   </member></span><br><span>   <member name="astcanary"></span><br><span>    <defaultenabled>yes</defaultenabled></span><br><span>@@ -18,7 +18,7 @@</span><br><span>   <member name="astman"></span><br><span>     <defaultenabled>no</defaultenabled></span><br><span>      <depend>newt</depend></span><br><span style="color: hsl(0, 100%, 40%);">-       <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>   </member></span><br><span>   <member name="check_expr"></span><br><span>   <defaultenabled>no</defaultenabled></span><br><span>@@ -30,11 +30,11 @@</span><br><span>   </member></span><br><span>   <member name="conf2ael"></span><br><span>     <defaultenabled>no</defaultenabled></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>   </member></span><br><span>   <member name="muted"></span><br><span>        <defaultenabled>no</defaultenabled></span><br><span style="color: hsl(0, 100%, 40%);">- <support_level>extended</support_level></span><br><span style="color: hsl(120, 100%, 40%);">+   <support_level>deprecated</support_level></span><br><span>   </member></span><br><span>   <member name="smsq"></span><br><span>         <defaultenabled>no</defaultenabled></span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/9504">change 9504</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/9504"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I64783d017b86dba9ee3c7bcfb97e59889a3f76d7 </div>
<div style="display:none"> Gerrit-Change-Number: 9504 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Joshua Colp <jcolp@digium.com> </div>