Skip to content
Snippets Groups Projects
  1. Sep 10, 2022
    • George Joseph's avatar
      res_geolocation: Add built-in profiles · 2d5a6498
      George Joseph authored
      The trigger to perform outgoing geolocation processing is the
      presence of a geoloc_outgoing_call_profile on an endpoint. This
      is intentional so as to not leak location information to
      destinations that shouldn't receive it.   In a totally dynamic
      configuration scenario however, there may not be any profiles
      defined in geolocation.conf.  This makes it impossible to do
      outgoing processing without defining a "dummy" profile in the
      config file.
      
      This commit adds 4 built-in profiles:
        "<prefer_config>"
        "<discard_config>"
        "<prefer_incoming>"
        "<discard_incoming>"
      The profiles are empty except for having their precedence
      set and can be set on an endpoint to allow processing without
      entries in geolocation.conf.  "<discard_config>" is actually the
      best one to use in this situation.
      
      ASTERISK-30182
      
      Change-Id: I1819ccfa404ce59802a3a07ad1cabed60fb9480a
      2d5a6498
    • Joshua C. Colp's avatar
      res_pjsip_sdp_rtp: Skip formats without SDP details. · f3de933b
      Joshua C. Colp authored
      When producing an outgoing SDP we iterate through the configured
      formats and produce SDP information. It is possible for some
      configured formats to not have SDP information available. If this
      is the case we skip over them to allow the SDP to still be
      produced.
      
      ASTERISK-29185
      
      Change-Id: I3e37569aa4ca341260e6ca5904dc2f75e46a1749
      f3de933b
  2. Sep 09, 2022
    • Joshua C. Colp's avatar
      pjsip: Add TLS transport reload support for certificate and key. · a0713a9f
      Joshua C. Colp authored
      This change adds support using the pjsip_tls_transport_restart
      function for reloading the TLS certificate and key, if the filenames
      remain unchanged. This is useful for Let's Encrypt and other
      situations. Note that no restart of the transport will occur if
      the certificate and key remain unchanged.
      
      ASTERISK-30186
      
      Change-Id: I9bc95a6bf791830a9491ad9fa43c17d4010028d0
      a0713a9f
    • Naveen Albert's avatar
      res_tonedetect: Fix typos referring to wrong variables. · 754346a4
      Naveen Albert authored
      Fixes two typos that cause fax detection to not work.
      One refers to the wrong frame variable, and the other
      refers to the subclass.integer instead of the frametype
      as it should.
      
      ASTERISK-30192 #close
      
      Change-Id: I7b35fdb7bcf25a29a212eee37c20812c64ab3ef1
      754346a4
    • Alexei Gradinari's avatar
      res_pjsip_pubsub: Postpone destruction of old subscriptions on RLS update · 12c4c1bf
      Alexei Gradinari authored
      Set termination state to old subscriptions to prevent queueing and sending
      NOTIFY messages on exten/device state changes.
      
      Postpone destruction of old subscriptions until all already queued tasks
      that may be using old subscriptions have completed.
      
      ASTERISK-29906
      
      Change-Id: I96582aad3a26515ca73a8460ee6756f56f6ba23b
      12c4c1bf
  3. Aug 10, 2022
    • George Joseph's avatar
      res_geolocation: Address user issues, remove complexity, plug leaks · 8a8416e3
      George Joseph authored
      * Added processing for the 'confidence' element.
      * Added documentation to some APIs.
      * removed a lot of complex code related to the very-off-nominal
        case of needing to process multiple location info sources.
      * Create a new 'ast_geoloc_eprofile_to_pidf' API that just takes
        one eprofile instead of a datastore of multiples.
      * Plugged a huge leak in XML processing that arose from
        insufficient documentation by the libxml/libxslt authors.
      * Refactored stylesheets to be more efficient.
      * Renamed 'profile_action' to 'profile_precedence' to better
        reflect it's purpose.
      * Added the config option for 'allow_routing_use' which
        sets the value of the 'Geolocation-Routing' header.
      * Removed the GeolocProfileCreate and GeolocProfileDelete
        dialplan apps.
      * Changed the GEOLOC_PROFILE dialplan function as follows:
        * Removed the 'profile' argument.
        * Automatically create a profile if it doesn't exist.
        * Delete a profile if 'inheritable' is set to no.
      * Fixed various bugs and leaks
      * Updated Asterisk WiKi documentation.
      
      ASTERISK-30167
      
      Change-Id: If38c23f26228e96165be161c2f5e849cb8e16fa0
      8a8416e3
  4. Aug 05, 2022
  5. Aug 01, 2022
    • Naveen Albert's avatar
      general: Improve logging levels of some log messages. · c6544865
      Naveen Albert authored
      Adjusts some logging levels to be more or less important,
      that is more prominent when actual problems occur and less
      prominent for less noteworthy things.
      
      ASTERISK-30153 #close
      
      Change-Id: Ifc8f7df427aa018627db462125ae744986d3261b
      c6544865
    • Naveen Albert's avatar
      general: Remove obsolete SVN references. · 165368bf
      Naveen Albert authored
      There are a handful of files in the tree that
      reference an SVN link for the coding guidelines.
      
      This removes these because the links are dead
      and the vast majority of source files do not
      contain these links, so this is more consistent.
      
      app_skel still maintains an (up to date) link
      to the coding guidelines.
      
      ASTERISK-30159 #close
      
      Change-Id: I35bbb20f66982e98099cff3029ede20091ffdac7
      165368bf
  6. Jul 14, 2022
    • Michael Neuhauser's avatar
      res_pjsip: delay contact pruning on Asterisk start · 37c16f9e
      Michael Neuhauser authored
      Move the call to ast_sip_location_prune_boot_contacts() *after* the call
      to ast_res_pjsip_init_options_handling() so that
      res/res_pjsip/pjsip_options.c is informed about the contact deletion and
      updates its sip_options_contact_statuses list. This allows for an AMI
      event to be sent by res/res_pjsip/pjsip_options.c if the endpoint
      registers again from the same remote address and port (i.e., same URI)
      as used before the Asterisk restart.
      
      ASTERISK-30109
      Reported-by: Michael Neuhauser
      
      Change-Id: I1ba4478019e4931a7085f62708d9b66837e901a8
      37c16f9e
  7. Jul 13, 2022
    • George Joseph's avatar
      geoloc_eprofile.c: Fix setting of loc_src in set_loc_src() · 80d6f5eb
      George Joseph authored
      line 196:    loc_src = '\0';
      should have been
      line 196:    *loc_src = '\0';
      
      The issue was caught by the gcc optimizer complaining that
      loc_src had a zero length because the pointer itself was being
      set to NULL instead of the _contents_ of the pointer being set
      to the NULL terminator.
      
      ASTERISK-30138
      Reported-by: Sean Bright
      
      Change-Id: Id247be113cc8510f043ca053d5b4f5f3d32acd29
      80d6f5eb
  8. Jul 12, 2022
    • George Joseph's avatar
      Geolocation: chan_pjsip Capability Preview · 1fa568e7
      George Joseph authored
      This commit adds res_pjsip_geolocation which gives chan_pjsip
      the ability to use the core geolocation capabilities.
      
      This commit message is intentionally short because this isn't
      a simple capability.  See the documentation at
      https://wiki.asterisk.org/wiki/display/AST/Geolocation
      for more information.
      
      THE CAPABILITIES IMPLEMENTED HERE MAY CHANGE BASED ON
      USER FEEDBACK!
      
      ASTERISK-30128
      
      Change-Id: Ie2e2bcd87243c2cfabc43eb823d4427c7086f4d9
      1fa568e7
    • George Joseph's avatar
      Geolocation: Core Capability Preview · 639d72e9
      George Joseph authored
      This commit adds res_geolocation which creates the core capabilities
      to manipulate Geolocation information on SIP INVITEs.
      
      An upcoming commit will add res_pjsip_geolocation which will
      allow the capabilities to be used with the pjsip channel driver.
      
      This commit message is intentionally short because this isn't
      a simple capability.  See the documentation at
      https://wiki.asterisk.org/wiki/display/AST/Geolocation
      for more information.
      
      THE CAPABILITIES IMPLEMENTED HERE MAY CHANGE BASED ON
      USER FEEDBACK!
      
      ASTERISK-30127
      
      Change-Id: Ibfde963121b1ecf57fd98ee7060c4f0808416303
      639d72e9
    • Naveen Albert's avatar
      general: Fix various typos. · bcc18ca9
      Naveen Albert authored
      ASTERISK-30089 #close
      
      Change-Id: I1f5db911fd05a3a211c522c13e990fa1d0e62275
      bcc18ca9
  9. Jul 11, 2022
    • Kevin Harwell's avatar
      cel_odbc & res_config_odbc: Add support for SQL_DATETIME field type · 4cbe12d6
      Kevin Harwell authored
      See also: ASTERISK_30023
      
      ASTERISK-30096 #close
      patches:
        inline on issue - submitted by Morvai Szabolcs
      
      Change-Id: I79c0b74862100acd9c8319dca5cc456a654d02eb
      4cbe12d6
    • Joshua C. Colp's avatar
      websocket / aeap: Handle poll() interruptions better. · 68bcf4c4
      Joshua C. Colp authored
      A sporadic test failure was happening when executing the AEAP
      Websocket transport tests. It was originally thought this was
      due to things not getting cleaned up fast enough, but upon further
      investigation I determined the underlying cause was poll()
      getting interrupted and this not being handled in all places.
      
      This change adds EINTR and EAGAIN handling to the Websocket
      client connect code as well as the AEAP Websocket transport code.
      If either occur then the code will just go back to waiting
      for data.
      
      The originally disabled failure test case has also been
      re-enabled.
      
      ASTERISK-30099
      
      Change-Id: I1711a331ecf5d35cd542911dc6aaa9acf1e172ad
      68bcf4c4
  10. Jul 08, 2022
    • Naveen Albert's avatar
      res_cliexec: Add dialplan exec CLI command. · f5680a75
      Naveen Albert authored
      Adds a CLI command similar to "dialplan eval function" except for
      applications: "dialplan exec application", useful for quickly
      testing certain application behavior directly from the CLI
      without writing any dialplan.
      
      ASTERISK-30062 #close
      
      Change-Id: I42e9fa9b60746c21450d40f99a026d48d2486dde
      f5680a75
  11. Jul 06, 2022
  12. Jul 05, 2022
  13. Jun 30, 2022
    • Naveen Albert's avatar
      res_calendar_icalendar: Send user agent in request. · e5553fbd
      Naveen Albert authored
      Microsoft recently began rejecting all requests for
      ICS calendars on Office 365 with 400 errors if
      the request doesn't contain a user agent. See:
      
      https://docs.microsoft.com/en-us/answers/questions/883904/34the-remote-server-returned-an-error-400-bad-requ.html
      
      Accordingly, we now send a user agent on requests for
      ICS files so that requests to Office 365 will work as
      they did before.
      
      ASTERISK-30106
      
      Change-Id: Ie9dcaef12ae8adf37533c684499eb11005fac8f7
      e5553fbd
    • Kevin Harwell's avatar
      res_pjsip: allow TLS verification of wildcard cert-bearing servers · a3b2daf1
      Kevin Harwell authored
      Rightly the use of wildcards in certificates is disallowed in accordance
      with RFC5922. However, RFC2818 does make some allowances with regards to
      their use when using subject alt names with DNS name types.
      
      As such this patch creates a new setting for TLS transports called
      'allow_wildcard_certs', which when it and 'verify_server' are both enabled
      allows DNS name types, as well as the common name that start with '*.'
      to match as a wildcard.
      
      For instance: *.example.com
      will match for: foo.example.com
      
      Partial matching is not allowed, e.g. f*.example.com, foo.*.com, etc...
      And the starting wildcard only matches for a single level.
      
      For instance: *.example.com
      will NOT match for: foo.bar.example.com
      
      The new setting is disabled by default.
      
      ASTERISK-30072 #close
      
      Change-Id: If0be3fdab2e09c2a66bb54824fca406ebaac3da4
      a3b2daf1
    • Naveen Albert's avatar
      pbx: Add helper function to execute applications. · 4a11ae7e
      Naveen Albert authored
      Finding an application and executing it if found is
      a common task throughout Asterisk. This adds a helper
      function around pbx_exec to do this, to eliminate
      redundant code and make it easier for modules to
      substitute variables and execute applications by name.
      
      ASTERISK-30061 #close
      
      Change-Id: Ifee4d2825df7545fb515d763d393065675140c84
      4a11ae7e
  14. Jun 09, 2022
    • Naveen Albert's avatar
      res_parking: Add music on hold override option. · ddc2cca6
      Naveen Albert authored
      An m option to Park and ParkAndAnnounce now allows
      specifying a music on hold class override.
      
      ASTERISK-30087
      
      Change-Id: I03de8d97b100e451b2611b5a621d48750f5d6a9e
      ddc2cca6
    • Naveen Albert's avatar
      xmldocs: Improve examples. · 51d262af
      Naveen Albert authored
      Use example tags instead of regular para tags
      where possible.
      
      ASTERISK-30090
      
      Change-Id: Iada8bbfda08f30b118cedf2d040bbb21e4966ec5
      51d262af
    • Naveen Albert's avatar
      res_pjsip_outbound_registration: Make max random delay configurable. · 31dc28ab
      Naveen Albert authored
      Currently, PJSIP will randomly wait up to 10 seconds for each
      outbound registration's initial attempt. The reason for this
      is to avoid having all outbound registrations attempt to register
      simultaneously.
      
      This can create limitations with the test suite where we need to
      be able to receive inbound calls potentially within 10 seconds of
      starting up. For instance, we might register to another server
      and then try to receive a call through the registration, but if
      the registration hasn't happened yet, this will fail, and hence
      this inconsistent behavior can cause tests to fail. Ultimately,
      this requires a smaller random value because there may be no good
      reason to wait for up to 10 seconds in these circumstances.
      
      To address this, a new config option is introduced which makes this
      maximum delay configurable. This allows, for instance, this to be
      set to a very small value in test systems to ensure that registrations
      happen immediately without an unnecessary delay, and can be used more
      generally to control how "tight" the initial outbound registrations
      are.
      
      ASTERISK-29965 #close
      
      Change-Id: Iab989a8e94323e645f3a21cbb6082287c7b2f3fd
      31dc28ab
    • Trevor Peirce's avatar
      res_pjsip: Actually enable session timers when timers=always · 5f0581c5
      Trevor Peirce authored
      When a pjsip endpoint is defined with timers=always, this has been a
      functional noop.  This patch correctly sets the feature bitmap to both
      enable support for session timers and to enable them even when the
      endpoint itself does not request or support timers.
      
      ASTERISK-29603
      Reported-By: Ray Crumrine
      
      Change-Id: I8b5eeaa9ec7f50cc6d96dd34c2b4aa9c53fb5440
      5f0581c5
    • Alexei Gradinari's avatar
      res_pjsip_pubsub: delete scheduled notification on RLS update · 044a08ae
      Alexei Gradinari authored
      If there is scheduled notification, we must delete it
      to avoid using destroyed subscriptions.
      
      ASTERISK-29906
      
      Change-Id: I1c644e5e15a8fe43eed8e4f9112f113cbf87a40f
      044a08ae
    • Alexei Gradinari's avatar
      res_pjsip_pubsub: XML sanitized RLS display name · 355c07e2
      Alexei Gradinari authored
      ASTERISK-29891
      
      Change-Id: Ic8c9697e616446e06e6302653eae902aa23372ad
      355c07e2
  15. Jun 06, 2022
    • Naveen Albert's avatar
      res_calendar: Prevent assertion if event ends in past. · 64a764c3
      Naveen Albert authored
      res_calendar will trigger an assertion currently
      if the ending time is calculated to be in the past.
      Unlike the reminder and start times, however, there
      is currently no check to catch non-positive times
      and set them to 1. As a result, if we get a negative
      value by happenstance, this can cause a crash.
      
      To prevent the assertion from begin triggered, we now
      use the same logic as the reminder and start events
      to catch this issue before it can cause a problem.
      
      ASTERISK-29981 #close
      
      Change-Id: Idfb3204d195f350d2575fb4bc72a54a597d6e93c
      64a764c3
    • Naveen Albert's avatar
      res_parking: Warn if out of bounds parking spot requested. · bae80928
      Naveen Albert authored
      Emits a warning if the user has requested a parking spot that
      is out of bounds for the requested parking lot.
      
      ASTERISK-30086
      
      Change-Id: I1080371e4f63e94724455003753014fbd3f95fbf
      bae80928
  16. Jun 02, 2022
    • Alexei Gradinari's avatar
      res_pjsip_dialog_info_body_generator: Set LOCAL target URI as local URI · 42b191ad
      Alexei Gradinari authored
      The change "Add LOCAL/REMOTE tags in dialog-info+xml" set both "local"
      Identity Element URI and Target Element URI to the same value -
      the channel Caller Number.
      For Identity Element it's ok to set as Caller ID.
      But Local Target URI should be set as local URI.
      
      In this case the Local Target URI can be used for Directed Call Pickup
      by Polycom ip-phones (parameter useLocalTargetUriforLegacyPickup).
      
      Also XML sanitized Display names.
      
      ASTERISK-24601
      
      Change-Id: If130a2f2f3b2339b14dca0ec0ebeea3a87b34343
      42b191ad
  17. May 26, 2022
  18. May 22, 2022
    • Moritz Fain's avatar
      ari: expose channel driver's unique id to ARI channel resource · 4bf2473a
      Moritz Fain authored
      This change exposes the channel driver's unique id (i.e. the Call-ID
      for chan_sip/chan_pjsip based channels) to ARI channel resources
      as `protocol_id`.
      
      ASTERISK-30027
      Reported by: Moritz Fain
      Tested by: Moritz Fain
      
      Change-Id: I7cc6e7a9d29efe74bc27811d788dac20fe559b87
      4bf2473a
  19. May 17, 2022
    • Joshua C. Colp's avatar
      res_pjsip_transport_websocket: Also set the remote name. · 63ff0cca
      Joshua C. Colp authored
      As part of PJSIP 2.11 a behavior change was done to require
      a matching remote hostname on an established transport for
      secure transports. Since the Websocket transport is considered
      a secure transport this caused the existing connection to not
      be found and used.
      
      We now set the remote hostname and the transport can be found.
      
      ASTERISK-30065
      
      Change-Id: Ia1cdef33e1411f927985b4b852c95e163c080e94
      63ff0cca
  20. May 13, 2022
  21. May 09, 2022
    • George Joseph's avatar
      GCC12: Fixes for 16+ · 4aa54168
      George Joseph authored
      Most issues were in stringfields and had to do with comparing
      a pointer to an constant/interned string with NULL.  Since the
      string was a constant, a pointer to it could never be NULL so
      the comparison was always "true".  gcc now complains about that.
      
      There were also a few issues where determining if there was
      enough space for a memcpy or s(n)printf which were fixed
      by defining some of the involved variables as "volatile".
      
      There were also a few other miscellaneous fixes.
      
      ASTERISK-30044
      
      Change-Id: Ia081ca1bcfb329df6487c4660aaf1944309eb570
      4aa54168
  22. Apr 26, 2022
    • Naveen Albert's avatar
      documentation: Adds versioning information. · 0c70d497
      Naveen Albert authored
      Adds version information for applications, functions,
      and manager events/actions.
      
      This is not completely exhaustive by any means but
      covers most new things added that have release
      versioning information in the issue tracker.
      
      ASTERISK-29940 #close
      
      Change-Id: I506401e93c799715dbbe97c0a8ba18af2bf5e131
      0c70d497
    • Mark Petersen's avatar
      chan_pjsip: add allow_sending_180_after_183 option · 1cdaeb81
      Mark Petersen authored
      added new global config option "allow_sending_180_after_183"
      that if enabled will preserve 180 after a 183
      
      ASTERISK-29842
      
      Change-Id: I8a53f8c35595b6d16d8e86e241b5f110d92f3d18
      1cdaeb81
    • Kevin Harwell's avatar
      res_aeap & res_speech_aeap: Add Asterisk External Application Protocol · 272bac70
      Kevin Harwell authored
      Add framework to connect to, and read and write protocol based
      messages from and to an external application using an Asterisk
      External Application Protocol (AEAP). This has been divided into
      several abstractions:
      
       1. transport - base communication layer (currently websocket only)
       2. message - AEAP description and data (currently JSON only)
       3. transaction - links/binds requests and responses
       4. aeap - transport, message, and transaction handler/manager
      
      This patch also adds an AEAP implementation for speech to text.
      Existing speech API callbacks for speech to text have been completed
      making it possible for Asterisk to connect to a configured external
      translator service and provide audio for STT. Results can also be
      received from the external translator, and made available as speech
      results in Asterisk.
      
      Unit tests have also been created that test the AEAP framework, and
      also the speech to text implementation.
      
      ASTERISK-29726 #close
      
      Change-Id: Iaa4b259f84aa63501e5fd2a6fb107f900b4d4ed2
      272bac70
Loading