Skip to content
Snippets Groups Projects
  1. Jan 06, 2022
    • Naveen Albert's avatar
      say.conf: fix 12pm noon logic · 54f2f1e0
      Naveen Albert authored
      Fixes 12pm noon incorrectly returning 0/a.m.
      Also fixes a misspelling typo in the config.
      
      ASTERISK-29695 #close
      
      Change-Id: Ie40f9618636eb4c483b449bd707a5dcffca5c406
      54f2f1e0
  2. Jan 05, 2022
  3. Dec 13, 2021
    • Naveen Albert's avatar
      configs: Updates to sample configs · c6410dc4
      Naveen Albert authored
      Includes some minor updates to extensions.conf
      and iax.conf. In particular, the demonstration
      of macros in extensions.conf is removed, as
      Macro is deprecated and will be removed soon.
      These examples have been replaced with examples
      demonstrating the usage of Gosub instead.
      
      The older exten => ...,n syntax is also mostly
      replaced with the same keyword to demonstrate the
      newer, more concise way of defining extensions.
      
      IAXTEL no longer exists, so this example is replaced
      with something more generic.
      
      Some documentation is also added to extensions.conf
      and iax.conf to clarify some of the new expanded
      encryption capabilities with IAX2.
      
      ASTERISK-29758 #close
      
      Change-Id: I04fba9671aa1ee9ba1bd5027061f80bbe38e7b46
      c6410dc4
  4. Nov 15, 2021
    • Josh Soref's avatar
      configs: Spelling fixes · ae83d927
      Josh Soref authored
      Correct typos of the following word families:
      
      password
      excludes
      undesirable
      checksums
      through
      screening
      interpreting
      database
      causes
      initiation
      member
      busydetect
      defined
      severely
      throughput
      recognized
      counter
      require
      indefinitely
      accounts
      
      ASTERISK-29714
      
      Change-Id: Ie8f2a7b274a162dd627ee6a2165f5e8a3876527e
      ae83d927
  5. Oct 28, 2021
    • George Joseph's avatar
      ast_coredumper: Refactor to better find things · 08cb6725
      George Joseph authored
      The search for a running asterisk when --running is used
      has been greatly simplified and in the event it doesn't
      work, you can now specify a pid to use on the command
      line with --pid.
      
      The search for asterisk modules when --tarball-coredumps
      is used has been enhanced to have a better chance of finding
      them and in the event it doesn't work, you can now specify
      --libdir on the command line to indicate the library directory
      where they were installed.
      
      The DATEFORMAT variable was renamed to DATEOPTS and is now
      passed to the 'date' utility rather than running DATEFORMAT
      as a command.
      
      The coredump and output files are now renamed with DATEOPTS.
      This can be disabled by specifying --no-rename.
      
      Several confusing and conflicting options were removed:
      --append-coredumps
      --conffile
      --no-default-search
      --tarball-uniqueid
      
      The script was re-structured to make it easier for follow.
      
      Change-Id: I674be64bdde3ef310b6a551d4911c3b600ffee59
      08cb6725
  6. Oct 06, 2021
    • Matthew Kern's avatar
      res_pjsip_t38: bind UDPTL sessions like RTP · 15e43222
      Matthew Kern authored
      In res_pjsip_sdp_rtp, the bind_rtp_to_media_address option and the
      fallback use of the transport's bind address solve problems sending
      media on systems that cannot send ipv4 packets on ipv6 sockets, and
      certain other situations. This change extends both of these behaviors
      to UDPTL sessions as well in res_pjsip_t38, to fix fax-specific
      problems on these systems, introducing a new option
      endpoint/t38_bind_udptl_to_media_address.
      
      ASTERISK-29402
      
      Change-Id: I87220c0e9cdd2fe9d156846cb906debe08c63557
      15e43222
  7. Sep 24, 2021
    • Joseph Nadiv's avatar
      res_pjsip_registrar: Remove unavailable contacts if exceeds max_contacts · 43687640
      Joseph Nadiv authored
      The behavior of max_contacts and remove_existing are connected.  If
      remove_existing is enabled, the soonest expiring contacts are removed.
      This may occur when there is an unavailable contact.  Similarly,
      when remove_existing is not enabled, registrations from good
      endpoints are rejected in favor of retaining unavailable contacts.
      
      This commit adds a new AOR option remove_unavailable, and the effect
      of this setting will depend on remove_existing.  If remove_existing
      is set to no, we will still remove unavailable contacts when they
      exceed max_contacts, if there are any. If remove_existing is set to
      yes, we will prioritize the removal of unavailable contacts before
      those that are expiring soonest.
      
      ASTERISK-29525
      
      Change-Id: Ia2711b08f2b4d1177411b1be23e970d7fdff5784
      43687640
  8. Sep 21, 2021
    • Naveen Albert's avatar
      logger: Add custom logging capabilities · a65bb134
      Naveen Albert authored
      Adds the ability for users to log to custom log levels
      by providing custom log level names in logger.conf. Also
      adds a logger show levels CLI command.
      
      ASTERISK-29529
      
      Change-Id: If082703cf81a436ae5a565c75225fa8c0554b702
      a65bb134
  9. Sep 01, 2021
    • Sebastien Duthil's avatar
      res_rtp_asterisk: Automatically refresh stunaddr from DNS · ac492f2f
      Sebastien Duthil authored
      This allows the STUN server to change its IP address without having to
      reload the res_rtp_asterisk module.
      
      The refresh of the name resolution occurs first when the module is
      loaded, then recurringly, slightly after the previous DNS answer TTL
      expires.
      
      ASTERISK-29508 #close
      
      Change-Id: I7955a046293f913ba121bbd82153b04439e3465f
      ac492f2f
  10. Aug 20, 2021
    • Sarah Autumn's avatar
      sig_analog: Changes to improve electromechanical signalling compatibility · 241686f8
      Sarah Autumn authored
      This changeset is intended to address compatibility issues encountered
      when interfacing Asterisk to electromechanical telephone switches that
      implement ANI-B, ANI-C, or ANI-D.
      
      In particular the behaviours that this impacts include:
      
       - FGC-CAMA did not work at all when using MF signaling. Modified the
         switch case block to send calls to the correct part of the
         signaling-handling state machine.
      
       - For FGC-CAMA operation, the delay between called number ST and
         second wink for ANI spill has been made configurable; previously
         all calls were made to wait for one full second.
      
       - After the ANI spill, previous behavior was to require a 'ST' tone
         to advance the call.  This has been changed to allow 'STP' 'ST2P'
         or 'ST3P' as well, for compatibility with ANI-D.
      
       - Store ANI2 (ANI INFO) digits in the CALLERID(ANI2) channel variable.
      
       - For calls with an ANI failure, No. 1 Crossbar switches will send
         forward a single-digit failure code, with no calling number digits
         and no ST pulse to terminate the spill.  I've made the ANI timeout
         configurable so to reduce dead air time on calls with ANI fail.
      
       - ANI info digits configurable.  Modern digital switches will send 2
         digits, but ANI-B sends only a single info digit.  This caused the
         ANI reported by Asterisk to be misaligned.
      
       - Changed a confusing log message to be more informative.
      
      ASTERISK-29518
      
      Change-Id: Ib7e27d987aee4ed9bc3663c57ef413e21b404256
      241686f8
  11. Aug 19, 2021
    • George Joseph's avatar
      res_pjproject: Allow mapping to Asterisk TRACE level · b72425b1
      George Joseph authored
      Allow mapping pjproject log messages to the Asterisk TRACE
      log level.  The defaults were also changes to log pjproject
      levels 3,4 to DEBUG and 5,6 to TRACE.  Previously 3,4,5,6
      all went to DEBUG.
      
      ASTERISK-29582
      
      Change-Id: I859a37a8dec263ed68099709cfbd3e665324c72d
      b72425b1
  12. Aug 03, 2021
    • Rijnhard Hessel's avatar
      res_statsd: handle non-standard meter type safely · 71dd1d91
      Rijnhard Hessel authored
      Meter types are not well supported,
      lacking support in telegraf, datadog and the official statsd servers.
      We deprecate meters and provide a compliant fallback for any existing usages.
      
      A flag has been introduced to allow meters to fallback to counters.
      
      
      ASTERISK-29513
      
      Change-Id: I5fcb385983a1b88f03696ff30a26b55c546a1dd7
      71dd1d91
  13. Jun 08, 2021
  14. May 21, 2021
  15. May 20, 2021
    • George Joseph's avatar
      res_pjsip_outbound_authenticator_digest: Be tolerant of RFC8760 UASs · 655ee680
      George Joseph authored
      RFC7616 and RFC8760 allow more than one WWW-Authenticate or
      Proxy-Authenticate header per realm, each with different digest
      algorithms (including new ones like SHA-256 and SHA-512-256).
      Thankfully however a UAS can NOT send back multiple Authenticate
      headers for the same realm with the same digest algorithm.  The
      UAS is also supposed to send the headers in order of preference
      with the first one being the most preferred.  We're supposed to
      send an Authorization header for the first one we encounter for a
      realm that we can support.
      
      The UAS can also send multiple realms, especially when it's a
      proxy that has forked the request in which case the proxy will
      aggregate all of the Authenticate headers and then send them all
      back to the UAC.
      
      It doesn't stop there though... Each realm can require a
      different username from the others.  There's also nothing
      preventing each digest algorithm from having a unique password
      although I'm not sure if that adds any benefit.
      
      So now... For each Authenticate header we encounter, we have to
      determine if we support the digest algorithm and, if not, just
      skip the header.  We then have to find an auth object that
      matches the realm AND the digest algorithm or find a wildcard
      object that matches the digest algorithm. If we find one, we add
      it to the results vector and read the next Authenticate header.
      If the next header is for the same realm AND we already added an
      auth object for that realm, we skip the header. Otherwise we
      repeat the process for the next header.
      
      In the end, we'll have accumulated a list of credentials we can
      pass to pjproject that it can use to add Authentication headers
      to a request.
      
      NOTE: Neither we nor pjproject can currently handle digest
      algorithms other than MD5.  We don't even have a place for it in
      the ast_sip_auth object. For this reason, we just skip processing
      any Authenticate header that's not MD5.  When we support the
      others, we'll move the check into the loop that searches the
      objects.
      
      Changes:
      
       * Added a new API ast_sip_retrieve_auths_vector() that takes in
         a vector of auth ids (usually supplied on a call to
         ast_sip_create_request_with_auth()) and populates another
         vector with the actual objects.
      
       * Refactored res_pjsip_outbound_authenticator_digest to handle
         multiple Authenticate headers and set the stage for handling
         additional digest algorithms.
      
       * Added a pjproject patch that allows them to ignore digest
         algorithms they don't support.  This patch has already been
         merged upstream.
      
       * Updated documentation for auth objects in the XML and
         in pjsip.conf.sample.
      
       * Although res_pjsip_authenticator_digest isn't affected
         by this change, some debugging and a testsuite AMI event
         was added to facilitate testing.
      
      Discovered during OpenSIPit 2021.
      
      ASTERISK-29397
      
      Change-Id: I3aef5ce4fe1d27e48d61268520f284d15d650281
      655ee680
  16. May 19, 2021
    • Naveen Albert's avatar
      AMI: Add AMI event to expose hook flash events · 0ad3504c
      Naveen Albert authored
      Although Asterisk can receive and propogate flash events, it currently
      provides no mechanism for doing anything with them itself.
      
      This AMI event allows flash events to be processed by Asterisk.
      Additionally, AST_CONTROL_FLASH is included in a switch statement
      in channel.c to avoid throwing a warning when we shouldn't.
      
      ASTERISK-29380
      
      Change-Id: Ie17ffe65086e0282c88542e38eed6a461ec79e81
      0ad3504c
  17. May 11, 2021
    • Ben Ford's avatar
      STIR/SHAKEN: Switch to base64 URL encoding. · a84d3403
      Ben Ford authored
      STIR/SHAKEN encodes using base64 URL format. Currently, we just use
      base64. New functions have been added that convert to and from base64
      encoding.
      
      The origid field should also be an UUID. This means there's no reason to
      have it as an option in stir_shaken.conf, as we can simply generate one
      when creating the Identity header.
      
      https://wiki.asterisk.org/wiki/display/AST/OpenSIPit+2021
      
      Change-Id: Icf094a2a54e87db91d6b12244c9f5ba4fc2e0b8c
      a84d3403
    • Ben Ford's avatar
      STIR/SHAKEN: Fix certificate type and storage. · 5e6508b5
      Ben Ford authored
      During OpenSIPit, we found out that the public certificates must be of
      type X.509. When reading in public keys, we use the corresponding X.509
      functions now.
      
      We also discovered that we needed a better naming scheme for the
      certificates since certificates with the same name would cause issues
      (overwriting certs, etc.). Now when we download a public certificate, we
      get the serial number from it and use that as the name of the cached
      certificate.
      
      The configuration option public_key_url in stir_shaken.conf has also
      been renamed to public_cert_url, which better describes what the option
      is for.
      
      https://wiki.asterisk.org/wiki/display/AST/OpenSIPit+2021
      
      Change-Id: Ia00b20835f5f976e3603797f2f2fb19672d8114d
      5e6508b5
  18. Apr 29, 2021
  19. Apr 21, 2021
  20. Mar 28, 2021
  21. Mar 25, 2021
  22. Mar 23, 2021
    • Sean Bright's avatar
      app_queue.c: Remove dead 'updatecdr' code. · e27fa9ec
      Sean Bright authored
      Also removed the sample documentation, and some oddly-placed
      documentation about the timeout argument to the Queue() application
      itself. There is a large section on the timeout behavior below.
      
      ASTERISK-26614 #close
      
      Change-Id: I8f84e8304b50305b7c4cba2d9787a5d77c3a6217
      e27fa9ec
  23. Mar 10, 2021
  24. Feb 23, 2021
    • Jaco Kroon's avatar
      func_odbc: Introduce minargs config and expose ARGC in addition to ARGn. · bee35fe0
      Jaco Kroon authored
      
      minargs enables enforcing of minimum count of arguments to pass to
      func_odbc, so if you're unconditionally using ARG1 through ARG4 then
      this should be set to 4.  func_odbc will generate an error in this case,
      so for example
      
      [FOO]
      minargs = 4
      
      and ODBC_FOO(a,b,c) in dialplan will now error out instead of using a
      potentially leaked ARG4 from Gosub().
      
      ARGC is needed if you're using optional argument, to verify whether or
      not an argument has been passed, else it's possible to use a leaked ARGn
      from Gosub (app_stack).  So now you can safely do
      ${IF($[${ARGC}>3]?${ARGV}:default value)} kind of thing.
      
      Change-Id: I6ca0b137d90b03f6aa9c496991f6cbf1518f6c24
      Signed-off-by: default avatarJaco Kroon <jaco@uls.co.za>
      bee35fe0
    • Sebastien Duthil's avatar
      app_mixmonitor: Add AMI events MixMonitorStart, -Stop and -Mute. · 092628c9
      Sebastien Duthil authored
      ASTERISK-29244
      
      Change-Id: I1862d58264c2c8b5d8983272cb29734b184d67c5
      092628c9
  25. Feb 18, 2021
    • Alexander Traud's avatar
      rtp: Enable srtp replay protection · 703158b9
      Alexander Traud authored
      Add option "srtpreplayprotection" rtp.conf to enable srtp
      replay protection.
      
      ASTERISK-29260
      Reported by: Alexander Traud
      
      Change-Id: I5cd346e3c6b6812039d1901aa4b7be688173b458
      703158b9
  26. Feb 09, 2021
    • George Joseph's avatar
      chan_iax2.c: Require secret and auth method if encryption is enabled · 28f187d6
      George Joseph authored
      If there's no secret specified for an iax2 peer and there's no secret
      specified in the dial string, Asterisk will crash if the auth method
      requested by the peer is MD5 or plaintext.  You also couldn't specify
      a default auth method in the [general] section of iax.conf so if you
      don't have static peers defined and just use the dial string, Asterisk
      will still crash even if you have a secret specified in the dial string.
      
      * Added logic to iax2_call() and authenticate_reply() to print
        a warning and hanhup the call if encryption is requested and
        there's no secret or auth method.  This prevents the crash.
      
      * Added the ability to specify a default "auth" in the [general]
        section of iax.conf.
      
      ASTERISK-29624
      Reported by: N A
      
      Change-Id: I5928e16137581f7d383fcc7fa04ad96c919e6254
      28f187d6
  27. Dec 09, 2020
    • lvl's avatar
      Introduce astcachedir, to be used for temporary bucket files · 92fcd4ed
      lvl authored
      As described in the issue, /tmp is not a suitable location for a
      large amount of cached media files, since most distributions make
      /tmp a RAM-based tmpfs mount with limited capacity.
      
      I opted for a location that can be configured separately, as opposed
      to using a subdirectory of spooldir, given the different storage
      profile (transient files vs files that might stay there indefinitely).
      
      This commit just makes the cache directory configurable, but leaves
      it at /tmp by default, to ensure backwards compatibility.
      
      A future commit that only targets master could change the default
      location to something more sensible such as /var/tmp/asterisk. At
      that point, the cachedir could be created and cleaned up during
      uninstall by the Makefile script.
      
      ASTERISK-29143
      
      Change-Id: Ic54e95199405abacd9e509cef5f08fa14c510b5d
      92fcd4ed
  28. Nov 16, 2020
  29. Nov 06, 2020
    • Dovid Bender's avatar
      func_curl.c: Allow user to set what return codes constitute a failure. · c635c782
      Dovid Bender authored
      Currently any response from res_curl where we get an answer from the
      web server, regardless of what the response is (404, 403 etc.) Asterisk
      currently treats it as a success. This patch allows you to set which
      codes should be considered as a failure by Asterisk. If say we set
      failurecodes=404,403 then when using curl in realtime if a server gives
      a 404 error Asterisk will try to failover to the next option set in
      extconfig.conf
      
      ASTERISK-28825
      
      Reported by: Dovid Bender
      Code by: Gobinda Paul
      
      Change-Id: I94443e508343e0a3e535e51ea6e0562767639987
      c635c782
  30. Oct 22, 2020
  31. Oct 14, 2020
  32. Oct 13, 2020
    • Joshua C. Colp's avatar
      res_pjsip: Adjust outgoing offer call pref. · 412b385d
      Joshua C. Colp authored
      This changes the outgoing offer call preference
      default option to match the behavior of previous
      versions of Asterisk.
      
      The additional advanced codec negotiation options
      have also been removed from the sample configuration
      and marked as reserved for future functionality in
      XML documentation.
      
      The codec preference options have also been fixed to
      enforce local codec configuration.
      
      ASTERISK-29109
      
      Change-Id: Iad19347bd5f3d89900c15ecddfebf5e20950a1c2
      412b385d
  33. Oct 02, 2020
    • George Joseph's avatar
      app_confbridge/bridge_softmix: Add ability to force estimated bitrate · 4a049ad5
      George Joseph authored
      app_confbridge now has the ability to set the estimated bitrate on an
      SFU bridge.  To use it, set a bridge profile's remb_behavior to "force"
      and set remb_estimated_bitrate to a rate in bits per second.  The
      remb_estimated_bitrate parameter is ignored if remb_behavior is something
      other than "force".
      
      Change-Id: Idce6464ff014a37ea3b82944452e56cc4d75ab0a
      4a049ad5
  34. Sep 28, 2020
  35. Aug 28, 2020
    • Alexander Traud's avatar
      samples: Fix keep_alive_interval default in pjsip.conf. · 217449a1
      Alexander Traud authored
      Since ASTERISK_27978 the default is not off but 90 seconds. That change
      happened because ASTERISK_27347 disabled the keep-alives in the bundled
      PJProject and Asterisk should behave the same as before.
      
      Change-Id: Ie63dc558ade6a5a2b969c30a4bd492d63730dc46
      217449a1
    • George Joseph's avatar
      logger.c: Added a new log formatter called "plain" · 5a8cacb9
      George Joseph authored
      Added a new log formatter called "plain" that always prints
      file, function and line number if available (even for verbose
      messages) and never prints color control characters.  It also
      doesn't apply any special formatting for verbose messages.
      Most suitable for file output but can be used for other channels
      as well.
      
      You use it in logger.conf like so:
      debug => [plain]debug
      console => [plain]error,warning,debug,notice,pjsip_history
      messages => [plain]warning,error,verbose
      
      Change-Id: I4fdfe4089f66ce2f9cb29f3005522090dbb5243d
      5a8cacb9
  36. Aug 06, 2020
    • George Joseph's avatar
      ACN: Configuration renaming for pjsip endpoint · 802aa97f
      George Joseph authored
      This change renames the codec preference endpoint options.
      incoming_offer_codec_prefs becomes codec_prefs_incoming_offer
      to keep the options together when showing an endpoint.
      
      Change-Id: I6202965b4723777f22a83afcbbafcdafb1d11c8d
      802aa97f
Loading