Skip to content
Snippets Groups Projects
  1. Feb 10, 2017
  2. Feb 02, 2017
  3. Jan 23, 2017
    • Lorenzo Miniero's avatar
      media: Add experimental support for RTCP feedback. · 1061539b
      Lorenzo Miniero authored
      This change adds experimental support for providing RTCP
      feedback information to codec modules so they can dynamically
      change themselves based on conditions.
      
      ASTERISK-26584
      
      Change-Id: Ifd6aa77fb4a7ff546c6025900fc2baf332c31857
      1061539b
  4. Jan 20, 2017
    • George Joseph's avatar
      debug_utilities: Create ast_loggrabber · d16b3a99
      George Joseph authored
      ast_loggrabber gathers log files from customizable search patterns,
      optionally converts POSIX timestamps to a readable format and
      tarballs the results.
      
      Also a few tweaks were made to ast_coredumper.
      
      Change-Id: I8bfe1468ada24c1344ce4abab7b002a59a659495
      (cherry picked from commit c70915287837704090d75f181525765de7a17221)
      d16b3a99
  5. Jan 11, 2017
    • George Joseph's avatar
      debug_utilities: Create the ast_coredumper utility · 0d53c91f
      George Joseph authored
      This utility allows easy manipulation of asterisk coredumps.
      
      * Configurable search paths and patterns for existing coredumps
      * Can generate a consistent coredump from the running instance
      * Can dump the lock_infos table from a coredump
      * Dumps backtraces to separate files...
        - thread apply 1 bt full -> <coredump>.thread1.txt
        - thread apply all bt -> <coredump>.brief.txt
        - thread apply all bt full -> <coredump>.full.txt
        - lock_infos table -> <coredump>.locks.txt
      * Can tarball corefiles and optionally delete them after processing
      * Can tarball results files and optionally delete them after processing
      * Converts ':' in coredump and results file names '-' to facilitate
        uploading.  Jira for instance, won't accept file names with colons
        in them.
      
      Tested on Fedora24+, Ubuntu14+, Debian6+, CentOS6+ and FreeBSD9+[1].
      
      [1] For *BSDs, the "devel/gdb" package might have to be installed to
      get a recent gdb.  The utility will check all instances of gdb
      it finds in $PATH and if one isn't found that can run python, it
      prints a friendly error.
      
      Change-Id: I935d37ab9db85ef923f32b05579897f0893d33cd
      (cherry picked from commit cb47b4556053cd50d9102eef913671ad0306062d)
      0d53c91f
  6. Jan 04, 2017
  7. Nov 30, 2016
    • Richard Mudgett's avatar
      PJPROJECT logging: Made easier to get available logging levels. · 1dfa11b6
      Richard Mudgett authored
      Use of the new logging is as simple as issuing the new CLI command or
      setting the new pjproject.conf option.
      
      Other options that can affect the logging are how you have the pjproject
      log levels mapped to Asterisk log types in pjproject.conf and if you have
      configured Asterisk to log the DEBUG type messages.  Altering the
      pjproject.conf level mapping shouldn't be necessary for most installations
      as the default mapping is sensible.  Configuring Asterisk to log the DEBUG
      message type is standard practice for collecting debug information.
      
      * Added CLI "pjproject set log level" command to dynamically adjust the
      maximum pjproject log message level.
      
      * Added CLI "pjproject show log level" command to see the currently set
      maximum pjproject log message level.
      
      * Added pjproject.conf startup section "log_level" option to set the
      initial maximum pjproject log message level so all messages could be
      captured from initialization.
      
      * Set PJ_LOG_MAX_LEVEL to 6 to compile in all defined logging levels into
      bundled pjproject.  Pjproject will use the currently set run time log
      level to determine if a log message is generated just like Asterisk
      verbose and debug logging levels.
      
      * In log_forwarder(), made always log enabled and mapped pjproject log
      messages.  DEBUG mapped log messages are no longer gated by the current
      Asterisk debug logging level.
      
      * Removed RAII_VAR() from res_pjproject.c:get_log_level().
      
      ASTERISK-26630 #close
      
      Change-Id: I6dca12979f482ffb0450aaf58db0fe0f6d2e5389
      1dfa11b6
  8. Nov 14, 2016
    • Sebastien Duthil's avatar
      res_ari: Add support for channel variables in ARI events. · c6d755de
      Sebastien Duthil authored
      This works the same as for AMI manager variables. Set
      "channelvars=foo,bar" in your ari.conf general section, and then the
      channel variables "foo" and "bar" (along with their values), will
      appear in every Stasis websocket channel event.
      
      ASTERISK-26492 #close
      patches:
        ari_vars.diff submitted by Mark Michelson
      
      Change-Id: I5609ba239259577c0948645df776d7f3bc864229
      c6d755de
  9. Nov 02, 2016
    • Alexander Traud's avatar
      rtp_engine: Allow more than 32 dynamic payload types. · 9ac53877
      Alexander Traud authored
      Since adding all remaining rates of Signed Linear (ASTERISK-24274), SILK
      (Gerrit 3136) and Codec 2 (ASTERISK-26217), no RTP Payload Type is left in the
      dynamic range (96-127). RFC 3551 section 3 allows to reassign other ranges.
      Consequently, when the dynamic range is exhausted, this change utilizes payload
      types in the range between 35 and 63 giving room for another 29 payload types.
      
      ASTERISK-26311 #close
      
      Change-Id: I7bc96ab764bc30098a178b841cbf7146f9d64964
      9ac53877
  10. Nov 01, 2016
  11. Oct 28, 2016
  12. Oct 27, 2016
    • Tzafrir Cohen's avatar
      chan_dahdi: remove by_name support · 0646b48e
      Tzafrir Cohen authored
      Support for referring to DAHDI channels by logical names was added in
      (FIXME: when? Asterisk 11? 1.8?) and was intended to be part of support
      of refering to channels by name.
      
      While technically usable, it has never been properly supported in
      dahdi-tools, as using it would require many changes at the Asterisk
      level. Instead logical mapping was added at the kernel level.
      
      Thus it seems that refering to DAHDI channels by name is not really used
      by anyone, and therefore should probably be removed.
      
      Change-Id: I7d50bbfd9d957586f5cd06570244ef87bd54b485
      0646b48e
  13. Oct 26, 2016
    • Joshua Colp's avatar
      pjsip: Fix a few media bugs with reinvites and asymmetric payloads. · aed6c219
      Joshua Colp authored
      When channel format changes occurred as a result of an RTP
      re-negotiation the bridge was not informed this had happened.
      As a result the bridge technology was not re-evaluated and the
      channel may have been in a bridge technology that was incompatible
      with its formats. The bridge is now unbridged and the technology
      re-evaluated when this occurs.
      
      The chan_pjsip module also allowed asymmetric codecs for sending
      and receiving. This did not work with all devices and caused one
      way audio problems. The default has been changed to NOT do this
      but to match the sending codec to the receiving codec. For users
      who want asymmetric codecs an option has been added, asymmetric_rtp_codec,
      which will return chan_pjsip to the previous behavior.
      
      The codecs returned by the chan_pjsip module when queried by
      the bridge_native_rtp module were also not reflective of the
      actual negotiated codecs. The nativeformats are now returned as
      they reflect the actual negotiated codecs.
      
      ASTERISK-26423 #close
      
      Change-Id: I6ec88c6e3912f52c334f1a26983ccb8f267020dc
      aed6c219
  14. Oct 23, 2016
    • Joshua Colp's avatar
      pjsip: Support dual stack automatically. · 403c4f58
      Joshua Colp authored
      This change adds support for dual stack automatically. No
      configuration is required and the IP address and version
      in the SIP messages and SDP will be automatically changed
      based on the transport over which the message is being
      sent. RTP usage has also been changed to listen on both
      IPv4 and IPv6 simultaneously to allow media to flow, and
      to allow ICE support on both simultaneously. This also
      allows failover between IPv6 and IPv4 to work as expected.
      
      ASTERISK-26309 #close
      
      Change-Id: I235a421d8f9a326606d861b449fa6fe3a030572d
      403c4f58
  15. Oct 19, 2016
    • Michael Walton's avatar
      res_rtp_asterisk: Add ice_blacklist option · 3e96d491
      Michael Walton authored
      Introduces ice_blacklist configuration in rtp.conf. Subnets listed in the
      form ice_blacklist = <subnet spec>, e.g. ice_blacklist =
      192.168.1.0/255.255.255.0, are excluded from ICE host, srflx and relay
      discovery. This is useful for optimizing the ICE process where a system
      has multiple host address ranges and/or physical interfaces and certain
      of them are not expected to be used for RTP. Multiple ice_blacklist
      configuration lines may be used. If left unconfigured, all discovered
      host addresses are used, as per previous behavior.
      
      Documention in rtp.conf.sample.
      
      ASTERISK-26418 #close
      
      Change-Id: Ibee88f80d7693874fda1cceaef94a03bd86012c9
      3e96d491
  16. Oct 10, 2016
    • Ludovic Gasc (GMLudo)'s avatar
      res_calendar: Add support for fetching calendars when reloading · 9f62feca
      Ludovic Gasc (GMLudo) authored
      We use a lot res_calendar, we are very happy with that, especially
      because you use libical, the almost alone opensource library that
      supports really ical format with all types of recurrency.
      
      Nevertheless, some features are missed for our business use cases.
      
      This first patch adds a new option in calendar.conf:
      fetch_again_at_reload. Be my guest for a better name.
      
      If it's true, when you'll launch "module reload res_calendar.so",
      Asterisk will download again the calendar.
      
      The business use case is that we have a WebUI with a scheduler planner,
      we know when the calendars are modified.
      
      For now, we need to define 1 minute of timeout to have a chance that
      our user doesn't wait too long between the modification and the real
      test.  But it generates a lot of useless HTTP traffic.
      
      
      ASTERISK-26422 #close
      
      Change-Id: I384b02ebfa42b142bbbd5b7221458c7f4dee7077
      9f62feca
  17. Sep 21, 2016
  18. Sep 15, 2016
    • Tzafrir Cohen's avatar
      cdr_mysql: fix UTC support · d3ddf4b0
      Tzafrir Cohen authored
      * Make 'cdrzone=UTC' work properly.
      * Fix the documentation of cdr_mysql.conf: it's cdrzone and not timezone
      
      ASTERISK-26359 #close
      
      Change-Id: I2a6f67b71bbbe77cac31a34d0bbfb1d67c933778
      d3ddf4b0
  19. Sep 09, 2016
    • Richard Mudgett's avatar
      res_pjsip: Add ignore_uri_user_options option. · ba362822
      Richard Mudgett authored
      This implements the chan_sip legacy_useroption_parsing option but with a
      better name.
      
      * Made the caller-id number and redirecting number strings obtained from
      incoming SIP URI user fields always truncated at the first semicolon.
      People don't care about anything after the semicolon showing up on their
      displays even though the RFC allows the semicolon.
      
      ASTERISK-26316 #close
      Reported by: Kevin Harwell
      
      Change-Id: Ib42b0e940dd34d84c7b14bc2e90d1ba392624f62
      ba362822
    • Aaron An's avatar
      res/res_pjsip: Add preferred_codec_only config to pjsip endpoint. · 2a50c291
      Aaron An authored
      This patch add config to pjsip by endpoint.
      ;preferred_codec_only=yes
      ; Respond to a SIP invite with the single most preferred codec
      ; rather than advertising all joint codec capabilities. This
      ; limits the other side's codec choice to exactly what we prefer.
      
      ASTERISK-26317 #close
      Reported by: AaronAn
      Tested by: AaronAn
      
      Change-Id: Iad04dc55055403bbf5ec050997aee2dadc4f0762
      2a50c291
  20. Sep 02, 2016
  21. Aug 19, 2016
    • Alexander Traud's avatar
      sip.conf: tlsclientmethod is using sslv23 as default. · 1a9555f0
      Alexander Traud authored
      When 'tlsclientmethod' is not specified in sip.conf, chan_sip uses the OpenSSL
      SSLv23_method. This was documented incorrectly in the file sip.conf.sample.
      
      SSLv23_method got its name in the 90s. Today, with OpenSSL 1.0.2, this method
      enables (just) the secure TLSv1.0 and TLSv1.2. Or stated differently, that
      function should have been called 'secure_method' or 'automatic_method' back in
      the 90s.
      
      Consequently please, specify 'tlsclientmethod=tlsv1' in your sip.conf only if
      you face a server which has problems like not falling back to TLSv1.0
      automatically.
      
      ASTERISK-24425
      
      Change-Id: I502ce6146b4504cadfd3973af8d6ec3994f54fa3
      1a9555f0
  22. Aug 17, 2016
    • George Joseph's avatar
      res_pjsip: Add contact_user to endpoint · 534063fd
      George Joseph authored
      contact_user, when specified on an endpoint, will override the user
      portion of the Contact header on outgoing requests.
      
      Change-Id: Icd4ebfda2f2e44d3ac749d0b4066630e988407d4
      534063fd
  23. Aug 15, 2016
    • Alexei Gradinari's avatar
      core: Entity ID is not set or invalid · e85adbd9
      Alexei Gradinari authored
      The Exchanging Device and Mailbox States could not working
      if the Entity ID (EID) is not set manually and can't be obtained
      from ethernet interface.
      
      This patch replaces debug message to warning
      and addes missing description about option 'entityid' to
      asterisk.conf.sample.
      
      With this patch the asterisk also:
      (1) decline loading the modules which won't work without EID:
          res_corosync and res_pjsip_publish_asterisk.
      (2) warn if EID is empty on loading next modules:
          pbx_dundi, res_xmpp
      
      Starting with v197 systemd/udev will automatically assign "predictable"
      names for all local Ethernet interfaces.
      This patch also addes some new ethernet prefixes "eno" and "ens".
      
      ASTERISK-26164 #close
      
      Change-Id: I72d712f1ad5b6f64571bb179c5cb12461e7c58c6
      e85adbd9
    • Joshua Colp's avatar
      manager: Clarify that dialplan manipulation actions are under system class. · 922b7416
      Joshua Colp authored
      ASTERISK-26246 #close
      
      Change-Id: Id673b9786389f9d2a87f638ce1a25161f5f31657
      922b7416
  24. Aug 11, 2016
  25. Aug 08, 2016
    • Alexei Gradinari's avatar
      res_pjsip_mwi: fix unsolicited mwi blocks PJSIP stack · 403b6357
      Alexei Gradinari authored
      The PJSIP taskprocessors could be overflowed on startup
      if there are many (thousands) realtime endpoints
      configured with unsolicited mwi.
      The PJSIP stack could be totally unresponsive for a few minutes
      after boot completed.
      
      This patch creates a separate PJSIP serializers pool for mwi
      and makes unsolicited mwi use serializers from this pool.
      This patch also adds 2 new global options to tune taskprocessor
      alert levels: 'mwi_tps_queue_high' and 'mwi_tps_queue_low'.
      
      This patch also adds new global option 'mwi_disable_initial_unsolicited'
      to disable sending unsolicited mwi to all endpoints on startup.
      If disabled then unsolicited mwi will start processing
      on next endpoint's contact update.
      
      ASTERISK-26230 #close
      
      Change-Id: I4c8ecb82c249eb887930980a800c9f87f28f861a
      403b6357
  26. Aug 05, 2016
    • Alexei Gradinari's avatar
      app_voicemail: Add taskprocessor alert level options. · 9042ad40
      Alexei Gradinari authored
      On heavy loaded system with IMAP or DB storage,
      'app_voicemail' taskprocessor queue could reach 500 scheduled tasks.
      It could happen when the IMAP or DB server dies or is unreachable.
      It could happen on startup when there are many (thousands)
      realtime endpoints configured with unsolicited mwi.
      If the taskprocessor queue reaches the high water level
      then the alert is triggered and pjsip stops processing new requests
      until the queue reaches the low water level to clear the alert.
      
      This patch adds 2 new 'general' configuration options
      to tune taskprocessor alert levels:
      'tps_queue_high' - Taskprocessor high water alert trigger level.
      'tps_queue_low' - Taskprocessor low water clear alert level
      
      ASTERISK-26229 #close
      
      Change-Id: I766294fbffedf64053c0d9ac0bedd3109f043ee8
      9042ad40
  27. Jul 26, 2016
  28. Jul 22, 2016
  29. Jul 19, 2016
    • Richard Mudgett's avatar
      chan_dahdi: Add faxdetect_timeout option. · 0d1744e1
      Richard Mudgett authored
      The new option allows the channel driver's faxdetect option to timeout on
      a call after the specified number of seconds into a call.  The new feature
      is disabled if the timeout is set to zero.  The option is disabled by
      default.
      
      * Don't clear dsp_features after passing them to the dsp code in
      my_pri_ss7_open_media().  We should still remember them especially for the
      new faxdetect_timeout option.
      
      ASTERISK-26214
      Reported by: Richard Mudgett
      
      Change-Id: Ieffd3fe788788d56282844774365546dce8ac810
      0d1744e1
    • Richard Mudgett's avatar
      res_pjsip: Add fax_detect_timeout endpoint option. · e739888d
      Richard Mudgett authored
      The new endpoint option allows the PJSIP channel driver's fax_detect
      endpoint option to timeout on a call after the specified number of
      seconds into a call.  The new feature is disabled if the timeout is set
      to zero.  The option is disabled by default.
      
      ASTERISK-26214
      Reported by: Richard Mudgett
      
      Change-Id: Id5a87375fb2c4f9dc1d4b44c78ec8735ba65453d
      e739888d
  30. Jun 29, 2016
    • Matt Jordan's avatar
      hep.conf.sample: Default 'enabled' to 'no' · dab2a6b6
      Matt Jordan authored
      Following the principle of least surprise, we should not be sending
      massive numbers of PJSIP and RTCP HEP packets out into the ether to some
      only-slightly-random IP address. Having 'enabled' set to 'no' in the
      sample configuration file should prevent this from happening for those
      who run 'make samples'.
      
      ASTERISK-26159 #close
      
      Change-Id: I1753a64ca83a3442a6ebdc31061f8185c062d9b1
      dab2a6b6
  31. Jun 28, 2016
    • Matt Jordan's avatar
      configs/basic-pbx/modules.conf: Remove 'bad' modules · 83f2c257
      Matt Jordan authored
      This patch removes the following modules:
       - pbx_functions: It never existed.
       - res_pjsip_log_forwarder: It no longer exists.
       - res_hep_pjsip: The base HEP module wasn't loaded, and most basic PBXs
                        aren't going to be installing HOMER
       - res_pjsip_phoneprov_provider: The basic res_phoneprov module isn't
                        loaded, and we aren't configured to make use of the
                        module
      
      Change-Id: Id91f68cae7c9c8c3d370029fe1268cb51e4ff5a5
      83f2c257
  32. Jun 07, 2016
    • Joshua Colp's avatar
      res_odbc: Implement a connection pool. · 31a5c283
      Joshua Colp authored
      Testing has shown that our usage of UnixODBC is problematic
      due to bugs within UnixODBC itself as well as the heavy weight
      cost of connecting and disconnecting database connections, even
      when pooling is enabled.
      
      For users of UnixODBC 2.3.1 and earlier crashes would occur due
      to insufficient protection of the disconnect operation. This was
      fixed in UnixODBC 2.3.2 and above.
      
      For users of UnixODBC 2.3.3 and higher a slow-down would occur
      under heavy database use due to repeated connection establishment.
      A regression is present where on each connection the database
      configuration is cached again, with the cache growing out of
      control.
      
      The connection pool implementation present in this change helps
      to mitigate these issues by reducing how much we connect and
      disconnect database connections. We also solve the issue of
      crashes under UnixODBC 2.3.1 by defaulting the maximum number of
      connections to 1, returning us to the previous working behavior.
      For users who may have a fixed version the maximum concurrent
      connection limit can be increased helping with performance.
      
      The connection pool works by keeping a list of active connections.
      If the connection limit has not been reached a new connection is
      established. If the connection limit has been reached then the
      request waits until a connection becomes available before
      continuing.
      
      ASTERISK-26074 #close
      ASTERISK-26054 #close
      
      Change-Id: I6774bf4bac49a0b30242c76a09c403d2e856ecff
      31a5c283
  33. Jun 03, 2016
  34. May 26, 2016
  35. May 20, 2016
    • Alexei Gradinari's avatar
      func_odbc: single database connection should be optional · c378b00a
      Alexei Gradinari authored
      func_odbc was changed in Asterisk 13.9.0
      to make func_odbc use a single database connection per DSN
      because of reported bug ASTERISK-25938
      with MySQL/MariaDB LAST_INSERT_ID().
      
      This is drawback in performance when func_odbc is used
      very often in dialplan.
      
      Single database connection should be optional.
      
      ASTERISK-26010
      
      Change-Id: I7091783a7150252de8eeb455115bd00514dfe843
      c378b00a
  36. May 15, 2016
  37. May 14, 2016
    • Matt Jordan's avatar
      res_hep: Provide an option to pick the UUID type · e06a2368
      Matt Jordan authored
      At one point in time, it seemed like a good idea to use the Asterisk
      channel name as the HEP correlation UUID. In particular, it felt like
      this would be a useful identifier to tie PJSIP messages and RTCP
      messages together, along with whatever other data we may eventually send
      to Homer. This also had the benefit of keeping the correlation UUID
      channel technology agnostic.
      
      In practice, it isn't as useful as hoped, for two reasons:
      1) The first INVITE request received doesn't have a channel. As a
         result, there is always an 'odd message out', leading it to be
         potentially uncorrelated in Homer.
      2) Other systems sending capture packets (Kamailio) use the SIP Call-ID.
         This causes RTCP information to be uncorrelated to the SIP message
         traffic seen by those capture nodes.
      
      In order to support both (in case someone is trying to use res_hep_rtcp
      with a non-PJSIP channel), this patch adds a new option, uuid_type, with
      two valid values - 'call-id' and 'channel'. The uuid_type option is used
      by a module to determine the preferred UUID type. When available, that
      source of a correlation UUID is used; when not, the more readily available
      source is used.
      
      For res_hep_pjsip:
       - uuid_type = call-id: the module uses the SIP Call-ID header value
       - uuid_type = channel: the module uses the channel name if available,
                              falling back to SIP Call-ID if not
      For res_hep_rtcp:
       - uuid_type = call-id: the module uses the SIP Call-ID header if the
                              channel type is PJSIP and we have a channel,
                              falling back to the Stasis event provided
                              channel name if not
       - uuid_type = channel: the module uses the channel name
      
      ASTERISK-25352 #close
      
      Change-Id: Ide67e59a52d9c806e3cc0a797ea1a4b88a00122c
      e06a2368
Loading