Skip to content
Snippets Groups Projects
  1. Apr 08, 2022
    • Naveen Albert's avatar
      app_queue: Add music on hold option to Queue. · ede4e209
      Naveen Albert authored
      Adds the m option to the Queue application, which allows a
      music on hold class to be specified at runtime which will
      override the class configured in queues.conf.
      
      This option functions like the m option to Dial.
      
      ASTERISK-29876 #close
      
      Change-Id: Ie25a48569cf8755c305c9438b1ed292c3adcf8d7
      ede4e209
    • Naveen Albert's avatar
      app_meetme: Emit warning if conference not found. · da44b848
      Naveen Albert authored
      Currently, if a user tries to access a non-dynamic
      MeetMe conference and the conference is not found,
      the call simply silent hangs up. There is no indication
      to the user that anything went wrong at all.
      
      This changes the relevant debug message to a warning
      so that the user is notified of this invalidity.
      
      ASTERISK-29954 #close
      
      Change-Id: Iebcfae3755d00f2150d676ee211c57bc59530048
      da44b848
  2. Mar 30, 2022
    • Naveen Albert's avatar
      build: Remove obsolete leftover build references. · 94df6077
      Naveen Albert authored
      Removes some leftover build and config references to
      modules that have since been removed from Asterisk.
      
      ASTERISK-29935 #close
      
      Change-Id: Iaefc73a23f4b2de3c6c14d928050135b6d0ef6af
      94df6077
    • Kevin Harwell's avatar
      res_pjsip_header_funcs: wrong pool used tdata headers · 0e31df6c
      Kevin Harwell authored
      When adding headers to an outgoing request the headers were cloned using
      the dialog's pool when they should have been cloned using tdata's pool.
      Under certain circumstances it was possible for the dialog object, and
      its pool to be freed while tdata is still active and available. Thus the
      cloned header "disappeared", and when tdata tried to later access it a
      crash would occur.
      
      This patch makes it so all added headers are cloned appropriately using
      tdata's pool.
      
      ASTERISK-29411 #close
      ASTERISK-29535 #close
      
      Change-Id: I9852025b5ee93ce1c038209150ee9dba1e0767c5
      0e31df6c
    • Kevin Harwell's avatar
      deprecation cleanup: remove leftover files · 30cefc97
      Kevin Harwell authored
      Several modules removal and deprecations occurred in 19.0.0 (initial
      19 release), but associated UPGRADE files were not removed from
      staging for some reason in the master branch.
      
      This patch removes those files, and also removes a spurious leftover
      header, chan_phone.h (associated module removed in 19).
      
      Change-Id: Ib92142c846b45c882d6b2b6caca7225253c83add
      30cefc97
    • Joshua C. Colp's avatar
      pjproject: Update bundled to 2.12 release. · fa0078fb
      Joshua C. Colp authored
      This change removes patches which have been merged into
      upstream and updates some existing ones. It also adds
      some additional config_site.h changes to restore previous
      behavior, as well as a patch to allow multiple Authorization
      headers. There seems to be some confusion or disagreement
      on language in RFC 8760 in regards to whether multiple
      Authorization headers are supported. The RFC implies it
      is allowed, as does some past sipcore discussion. There is
      also the catch all of "local policy" to allow it. In
      the case of Asterisk we allow it.
      
      ASTERISK-29351
      
      Change-Id: Id39ece02dedb7b9f739e0e37ea47d76854af7191
      fa0078fb
  3. Mar 29, 2022
    • Naveen Albert's avatar
      pbx.c: Warn if there are too many includes in a context. · a7cf3979
      Naveen Albert authored
      The PBX core uses the stack when it comes to includes, which
      means that a context can only contain strictly fewer than
      AST_PBX_MAX_STACK includes. If this is exceeded, then warnings
      will be emitted for each number of includes beyond this if
      searching for an extension in the including context, and if
      the extension's inclusion is beyond the stack size, it will
      simply not be found.
      
      To address this, we now check if there are too many includes
      in a context when the dialplan is reloaded so that if there
      is an issue, the user is aware of at "compile time" as opposed
      to "run time" only. Secondly, more details are printed out
      when this message is encountered so it's clear what has happened.
      
      ASTERISK-26719
      
      Change-Id: Ia3700452e75a7af3391b3e82ee69f06a669f8958
      a7cf3979
    • George Joseph's avatar
      Makefile: Disable XML doc validation · 3e97156f
      George Joseph authored
      make_xml_documentation was being called with the --validate
      flag set when it shouldn't have been.  This was causing
      build failures if neither xmllint nor xmlstarlet were installed.
      The correct behavior is to simply print a message that either
      one of those tools should be installed for validation and
      continue with the build.
      
      ASTERISK-29988
      
      Change-Id: Idc6c44114e7dd3fadae183a4e22f4fdba0b8a645
      3e97156f
    • George Joseph's avatar
      make_xml_documentation: Remove usage of get_sourceable_makeopts · 144b3c54
      George Joseph authored
      get_sourceable_makeopts wasn't handling variables with embedded
      double quotes in them very well.  One example was the DOWNLOAD
      variable when curl was being used instead of wget.  Rather than
      trying to fix get_sourceable_makeopts, it's just been removed.
      
      ASTERISK-29986
      Reported by: Stefan Ruijsenaars
      
      Change-Id: Idf2a90902228c2558daa5be7a4f8327556099cd2
      144b3c54
  4. Mar 28, 2022
    • Naveen Albert's avatar
      chan_iax2: Fix spacing in netstats command · 0d11938e
      Naveen Albert authored
      The iax2 show netstats command previously didn't contain
      enough spacing in the header to properly align the table
      header with the table body. This caused column headers
      to not align with the values on longer channel names.
      
      Some spacing is added to account for the longest channel
      names that display (before truncation occurs) so that
      columns are always properly aligned.
      
      ASTERISK-29895 #close
      patches:
        61205_misaligned2.patch submitted by Birger Harzenetter (license 5870)
      
      Change-Id: I450ce6bb81157b9d6d149007e53b749f237b6d9f
      0d11938e
    • Sean Bright's avatar
      openssl: Supress deprecation warnings from OpenSSL 3.0 · 5ac5c2b0
      Sean Bright authored
      There is work going on to update our OpenSSL usage to avoid the
      deprecated functions but in the meantime make it possible to compile
      in devmode.
      
      Change-Id: Ib082eb8b3751f0185d8aa8fe127da664c93f0726
      5ac5c2b0
    • Marcel Wagner's avatar
      documentation: Add information on running install_prereq script in readme · 9b654d4e
      Marcel Wagner authored
      Adding information in the readme about running the install_preqreq script to install components that the ./configure script might indicate as missing.
      
      ASTERISK-29976 #close
      
      Change-Id: Ic287b46300168729838bddd8f9265e98fc22bce6
      9b654d4e
  5. Mar 25, 2022
    • Naveen Albert's avatar
      chan_iax2: Fix perceived showing host address. · 7bc8ef26
      Naveen Albert authored
      ASTERISK_22025 introduced a regression that shows
      the host IP and port as the perceived IP and port
      again, as opposed to showing the actual perceived
      address. This fixes this by showing the correct
      information.
      
      ASTERISK-29048 #close
      
      Change-Id: I0ad3e25bc6b449e83ce72ea5d1a1cdba72aa304a
      7bc8ef26
    • Boris P. Korzun's avatar
      res_pjsip_sdp_rtp: Improve detecting of lack of RTP activity · 6624e345
      Boris P. Korzun authored
      Change RTP timer behavior for detecting RTP only after two-way
      SDP channel establishment. Ignore detecting after receiving 183
      with SDP or while direct media is used.
      Make rtp_timeout and rtp_timeout_hold options consistent to rtptimeout
      and rtpholdtimeout options in chan_sip.
      
      ASTERISK-26689 #close
      ASTERISK-29929 #close
      
      Change-Id: I07326d5b9c40f25db717fd6075f6f3a8d77279eb
      6624e345
    • Hugh McMaster's avatar
      configure.ac: Use pkg-config to detect libxml2 · 64f11e0d
      Hugh McMaster authored
      Use pkg-config to detect libxml2, falling back to xml2-config if the
      former is not available.
      
      This patch ensures Asterisk continues to build on systems without
      xml2-config installed.
      
      The patch also updates the associated 'configure' files.
      
      ASTERISK-29970 #close
      
      Change-Id: I3c90dfe0b0590486cbb8e6d426a7c5c4199410c0
      64f11e0d
  6. Mar 24, 2022
  7. Mar 23, 2022
  8. Mar 15, 2022
    • Alexei Gradinari's avatar
      res_pjsip_pubsub: update RLS to reflect the changes to the lists · edce8531
      Alexei Gradinari authored
      This patch makes the Resource List Subscriptions (RLS) dynamic.
      The asterisk updates the current subscriptions to reflect the changes
      to the list on the subscriptions refresh. If list items are added,
      removed, updated or do not exist anymore, the asterisk regenerates
      the resource list.
      
      ASTERISK-29906 #close
      
      Change-Id: Icee8c00459a7aaa43c643d77ce6f16fb7ab037d3
      edce8531
  9. Mar 14, 2022
    • Naveen Albert's avatar
      res_agi: Fix xmldocs bug with set music. · 37ece756
      Naveen Albert authored
      The XML documentation for the SET MUSIC AGI
      command is invalid, as the parameter does not
      have a name and the on/off enum options for
      the on/off argument are listed separately, which
      is incorrect. The cumulative effect of these currently
      is that the Asterisk Wiki documentation for SET MUSIC
      is broken and external documentation generators crash
      on SET MUSIC due to the malformed documentation.
      
      These issues are corrected so that the documentation
      can be successfully parsed as with other similar AGI
      commands.
      
      ASTERISK-29939 #close
      ASTERISK-28891 #close
      
      Change-Id: I8c3d59897531bcbc401cbc7b00c9e2829dcb35f8
      37ece756
    • Boris P. Korzun's avatar
      res_config_pgsql: Add text-type column check in require_pgsql() · 636d43ca
      Boris P. Korzun authored
      Omit "unsupported column type 'text'" warning in logs while
      using text-type column in the PgSQL backend.
      
      ASTERISK-29924 #close
      
      Change-Id: I48061a7d469426859670db07f1ed8af1eb814712
      636d43ca
  10. Mar 11, 2022
    • Kfir Itzhak's avatar
      app_queue: Add QueueWithdrawCaller AMI action · 2be01ba4
      Kfir Itzhak authored
      This adds a new AMI action called QueueWithdrawCaller.
      This AMI action makes it possible to withdraw a caller from a queue,
      in a safe and a generic manner.
      This can be useful for retrieving a specific call and
      dispatching it to a specific extension.
      It works by signaling the caller to exit the queue application
      whenever it can. Therefore, it is not guaranteed
      that the call will leave the queue.
      
      ASTERISK-29909 #close
      
      Change-Id: Ic15aa238e23b2884abdcaadff2fda7679e29b7ec
      2be01ba4
  11. Mar 07, 2022
    • Naveen Albert's avatar
      ami: Improve substring parsing for disabled events. · fbde0186
      Naveen Albert authored
      ASTERISK_29853 added the ability to selectively disable
      AMI events on a global basis, but the logic for this uses
      strstr which means that events with names which are the prefix
      of another event, if disabled, could disable those events as
      well.
      
      Instead, we account for this possibility to prevent this
      undesired behavior from occuring.
      
      ASTERISK_29853
      
      Change-Id: Icccd1872602889806740971e4adf932f92466959
      fbde0186
  12. Mar 03, 2022
    • George Joseph's avatar
      xml.c, config,c: Add stylesheets and variable list string parsing · b40c4d59
      George Joseph authored
      Added functions to open, close, and apply XML Stylesheets
      to XML documents.  Although the presence of libxslt was already
      being checked by configure, it was only happening if xmldoc was
      enabled.  Now it's checked regardless.
      
      Added ability to parse a string consisting of comma separated
      name/value pairs into an ast_variable list.  The reverse of
      ast_variable_list_join().
      
      Change-Id: I1e1d149be22165a1fb8e88e2903a36bba1a6cf2e
      b40c4d59
  13. Mar 01, 2022
    • George Joseph's avatar
      xmldoc: Fix issue with xmlstarlet validation · 9c36c055
      George Joseph authored
      Added the missing xml-stylesheet and Xinclude namespace
      declarations in pjsip_config.xml and pjsip_manager.xml.
      
      Updated make_xml_documentation to show detailed errors when
      xmlstarlet is the validator.  It's now run once with the '-q'
      option to suppress harmless/expected messages and if it actually
      fails, it's run again without '-q' but with '-e' to show
      the actual errors.
      
      Change-Id: I4bdc9d2ea6741e8d2e5eb82df60c68ccc59e1f5e
      9c36c055
  14. Feb 28, 2022
    • George Joseph's avatar
      core: Config and XML tweaks needed for geolocation · b5391ff6
      George Joseph authored
      Added:
      
      Replace a variable in a list:
      int ast_variable_list_replace_variable(struct ast_variable **head,
          struct ast_variable *old, struct ast_variable *new);
      Added test as well.
      
      Create a "name=value" string from a variable list:
      'name1="val1",name2="val2"', etc.
      struct ast_str *ast_variable_list_join(
          const struct ast_variable *head, const char *item_separator,
          const char *name_value_separator, const char *quote_char,
          struct ast_str **str);
      Added test as well.
      
      Allow the name of an XML element to be changed.
      void ast_xml_set_name(struct ast_xml_node *node, const char *name);
      
      Change-Id: I330a5f63dc0c218e0d8dfc0745948d2812141ccb
      b5391ff6
    • George Joseph's avatar
      Makefile: Allow XML documentation to exist outside source files · 2e00b5ed
      George Joseph authored
      Moved the xmldoc build logic from the top-level Makefile into
      its own script "make_xml_documentation" in the build_tools
      directory.
      
      Created a new utility script "get_sourceable_makeopts", also in
      the build_tools directory, that dumps the top-level "makeopts"
      file in a format that can be "sourced" from shell sscripts.
      This allows scripts to easily get the values of common make
      build variables such as the location of the GREP, SED, AWK, etc.
      utilities as well as the AST* and library *_LIB and *_INCLUDE
      variables.
      
      Besides moving logic out of the Makefile, some optimizations
      were done like removing "third-party" from the list of
      subdirectories to be searched for documentation and changing some
      assignments from "=" to ":=" so they're only evaluated once.
      The speed increase is noticeable.
      
      The makeopts.in file was updated to include the paths to
      REALPATH and DIRNAME.  The ./conifgure script was setting them
      but makeopts.in wasn't including them.
      
      So...
      
      With this change, you can now place documentation in any"c"
      source file AND you can now place it in a separate XML file
      altogether.  The following are examples of valid locations:
      
      res/res_pjsip.c
          Using the existing /*** DOCUMENTATION ***/ fragment.
      
      res/res_pjsip/pjsip_configuration.c
          Using the existing /*** DOCUMENTATION ***/ fragment.
      
      res/res_pjsip/pjsip_doc.xml
          A fully-formed XML file.  The "configInfo", "manager",
          "managerEvent", etc. elements that would be in the "c"
          file DOCUMENTATION fragment should be wrapped in proper
          XML.  Example for "somemodule.xml":
      
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE docs SYSTEM "appdocsxml.dtd">
          <docs>
              <configInfo>
              ...
              </configInfo>
          </docs>
      
      It's the "appdocsxml.dtd" that tells make_xml_documentation
      that this is a documentation XML file and not some other XML file.
      It also allows many XML-capable editors to do formatting and
      validation.
      
      Other than the ".xml" suffix, the name of the file is not
      significant.
      
      As a start... This change also moves the documentation that was
      in res_pjsip.c to 2 new XML files in res/res_pjsip:
      pjsip_config.xml and pjsip_manager.xml.  This cut the number of
      lines in res_pjsip.c in half. :)
      
      Change-Id: I486c16c0b5a44d7a8870008e10c941fb19b71ade
      2e00b5ed
    • George Joseph's avatar
      build: Refactor the earlier "basebranch" commit · 1950cec3
      George Joseph authored
      Recap from earlier commit:  If you have a development branch for a
      major project that will receive gerrit reviews it'll probably be
      named something like "development/16/newproject" or a work branch
      based on that "development" branch.  That will necessitate
      setting "defaultbranch=development/16/newproject" in .gitreview.
      The make_version script uses that variable to construct the
      asterisk version however, which results in versions
      like "GIT-development/16/newproject-ee582a8c7b" which is probably
      not what you want.  It also constructs the URLs for downloading
      external modules with that version, which will fail.
      
      Fast-forward:
      
      The earlier attempt at adding a "basebranch" variable to
      .gitreview didn't work out too well in practice because changes
      were made to .gitreview, which is a checked-in file.  So, if
      you wanted to rebase your work branch on the base branch, rebase
      would attempt to overwrite your .gitreview with the one from
      the base branch and complain about a conflict.
      
      This is a slighltly different approach that adds three methods to
      determine the mainline branch:
      
      1.  --- MAINLINE_BRANCH from the environment
      
      If MAINLINE_BRANCH is already set in the environment, that will
      be used.  This is primarily for the Jenkins jobs.
      
      2.  --- .develvars
      
      Instead of storing the basebranch in .gitreview, it can now be
      stored in a non-checked-in ".develvars" file and keyed by the
      current branch.  So, if you were working on a branch named
      "new-feature-work" based on "development/16/new-feature" and wanted
       to push to that branch in Gerrit but wanted to pull the external
       modules for 16, you'd create the following .develvars file:
      
      [branch "new-feature-work"]
          mainline-branch = 16
      
      The .gitreview file would still look like:
      
      [gerrit]
      defaultbranch=development/16/new-feature
      
      ...which would cause any reviews pushed from "new-feature-work" to
      go to the "development/16/new-feature" branch in Gerrit.
      
      The key is that the .develvars file is NEVER checked in (it's been
      added to .gitignore).
      
      3.  --- Well Known Development Branch
      
      If you're actually working in a branch named like
      "development/<mainline_branch>/some-feature", the mainline branch
      will be parsed from it.
      
      4.  --- .gitreview
      
      If none of the earlier conditions exist, the .gitreview
      "defaultbranch" variable will be used just as before.
      
      Change-Id: I1cdeeaa0944bba3f2e01d7a2039559d0c266f8c9
      1950cec3
  15. Feb 25, 2022
    • Joshua C. Colp's avatar
      jansson: Update bundled to 2.14 version. · dd7db5c6
      Joshua C. Colp authored
      ASTERISK-29353
      
      Change-Id: I4ea43eda1691565563a4c03ef37166952d211b2b
      dd7db5c6
    • Naveen Albert's avatar
      func_channel: Add lastcontext and lastexten. · 27fb4fd5
      Naveen Albert authored
      Adds the lastcontext and lastexten channel fields to allow users
      to access previous dialplan execution locations.
      
      ASTERISK-29840 #close
      
      Change-Id: Ib455fe300cc8e9a127686896ee2d0bd11e900307
      27fb4fd5
    • Naveen Albert's avatar
      channel.c: Clean up debug level 1. · 3a3b8fbd
      Naveen Albert authored
      Although there are 10 debugs levels, over time,
      many current debug calls have come to use
      inappropriately low debug levels. In particular,
      a select few debug calls (currently all debug 1)
      can result in thousands of debug messages per minute
      for a single call.
      
      This can adds a lot of noise to core debug
      which dilutes the value in having different
      debug levels in the first place, as these
      log messages are from the core internals are
      are better suited for higher debug levels.
      
      Some debugs levels are thus adjusted so that
      debug level 1 is not inappropriately overloaded
      with these extremely high-volume and general
      debug messages.
      
      ASTERISK-29897 #close
      
      Change-Id: I55a71598993552d3d64a401a35ee99474770d4b4
      3a3b8fbd
    • Naveen Albert's avatar
      configs, LICENSE: remove pbx.digium.com. · 2ba5da15
      Naveen Albert authored
      pbx.digium.com no longer accepts IAX2 calls and
      there are no plans for it to come back.
      
      Accordingly, nonworking IAX2 URIs are removed from
      both the LICENSE file and the sample config.
      
      ASTERISK-29923 #close
      
      Change-Id: I257c54d4d812ed6b4bd4cbec2cd7ebe2b87b5bad
      2ba5da15
    • Naveen Albert's avatar
      documentation: Add since tag to xmldocs DTD · c35e205b
      Naveen Albert authored
      Adds the since tag to the documentation DTD so
      that individual applications, functions, etc.
      can now specify when they were added to Asterisk.
      
      This tag is added at the individual application,
      function, etc. level as opposed to at the module
      level because modules can expand over time as new
      functionality is added, and granularity only
      to the module level would generally not be useful.
      
      This enables the ability to more easily determine
      when new functionality was added to Asterisk, down
      to minor version as opposed to just by major version.
      This makes it easier for users to write more portable
      dialplan if desired to not use functionality that may
      not be widely available yet.
      
      ASTERISK-29896 #close
      
      Change-Id: Ibbb35c702d8038bdc3fd0a944fbfa69384cc15d5
      c35e205b
    • Naveen Albert's avatar
      asterisk: Add macro for curl user agent. · e26b5798
      Naveen Albert authored
      Currently, each module that uses libcurl duplicates the standard
      Asterisk curl user agent.
      
      This adds a global macro for the Asterisk user agent used for
      curl requests to eliminate this duplication.
      
      ASTERISK-29861 #close
      
      Change-Id: I9fc37935980384b4daf96ae54fa3c9adb962ed2d
      e26b5798
  16. Feb 23, 2022
Loading