Skip to content
Snippets Groups Projects
  1. Mar 01, 2018
    • Richard Mudgett's avatar
      core: Remove ABI effects of MALLOC_DEBUG. · c711e407
      Richard Mudgett authored
      This allows asterisk to be compiled with MALLOC_DEBUG to load modules
      built without MALLOC_DEBUG.  Now pre-compiled third-party modules will
      still work regardless of MALLOC_DEBUG being enabled or not.
      
      Change-Id: Ic07ad80b2c2df894db984cf27b16a69383ce0e10
      c711e407
  2. Feb 28, 2018
    • Richard Mudgett's avatar
      pjproject: Add cache_pools debugging option. · 1a36a452
      Richard Mudgett authored
      The pool cache gets in the way of finding use after free errors of memory
      pool contents.  Tools like valgrind and MALLOC_DEBUG don't know when a
      pool is released because it gets put into the cache instead of being
      freed.
      
      * Added the "cache_pools" option to pjproject.conf.  Disabling the option
      helps track down pool content mismanagement when using valgrind or
      MALLOC_DEBUG.  The cache gets in the way of determining if the pool
      contents are used after free and who freed it.
      
      To disable the pool caching simply disable the cache_pools option in
      pjproject.conf and restart Asterisk.
      
      Sample pjproject.conf setting:
      [startup]
      cache_pools=no
      
      * Made current users of the caching pool factory initialization and
      destruction calls call common routines to create and destroy cached pools.
      
      ASTERISK-27704
      
      Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
      1a36a452
  3. Feb 22, 2018
  4. Feb 21, 2018
    • George Joseph's avatar
      AST-2018-005: res_pjsip_transport_management: Move to core · 758409de
      George Joseph authored
      Since res_pjsip_transport_management provides several attack
      mitigation features, its functionality moved to res_pjsip and
      this module has been removed.  This way the features will always
      be available if res_pjsip is loaded.
      
      ASTERISK-27618
      Reported By: Sandro Gauci
      
      Change-Id: I21a2d33d9dda001452ea040d350d7a075f9acf0d
      758409de
  5. Feb 13, 2018
    • Corey Farrell's avatar
      Deprecate legacy modules. · 9f74afbd
      Corey Farrell authored
      * app_fax (replaced by res_fax).
      * res_config_sqlite (replaced by res_config_sqlite3).
      * res_monitor (replaced by app_mixmonitor).
      
      This is related to ASTERISK~23657 but does not resolve that ticket.
      Resolving that ticket would require complete removal of res_monitor.
      
      ASTERISK-27671 #close
      
      Change-Id: I16a3edd61fc1abd4a7b2e9357693ed663f62dd49
      9f74afbd
  6. Feb 12, 2018
    • Corey Farrell's avatar
      core: Remove embedded editline. · 9fddc8b4
      Corey Farrell authored
      This removes the embedded copy of editline from the Asterisk source
      tree, making a system copy of libedit mandatory in Asterisk 16+.
      
      ASTERISK-27634 #close
      
      Change-Id: Iedb64ad92acb78419f3caefedaa2bb7cd2a1a33f
      9fddc8b4
  7. Feb 05, 2018
  8. Jan 31, 2018
  9. Jan 30, 2018
    • George Joseph's avatar
      res_pjsip_pubsub: Prune subs with reliable transports at startup · 2b9aa6b5
      George Joseph authored
      In an earlier release, inbound registrations on a reliable transport
      were pruned on Asterisk restart since the TCP connection would have
      been torn down and become unusable when Asterisk stopped.  This same
      process is now also applied to inbound subscriptions.
      
      Also fixed issues in res_pjsip_registrar where it wasn't handling the
      monitoring correctly when multiple registrations came in over the same
      transport.
      
      To accomplish this, the pjsip_transport_event feature needed to
      be refactored to allow multiple monitors (multiple subcriptions or
      registrations from the same endpoint) to exist on the same transport.
      Since this changed the API, any external modules that may have used the
      transport monitor feature (highly unlikey) will need to be changed.
      
      ASTERISK-27612
      Reported by: Ross Beer
      
      Change-Id: Iee87cf4eb9b7b2b93d5739a72af52d6ca8fbbe36
      2b9aa6b5
  10. Jan 24, 2018
  11. Jan 19, 2018
    • krells's avatar
      pbx: Reduce verbosity while loading extensions · 77f2814d
      krells authored
      Each time the dial plan is reloaded, a lot of logs like these are generated:
      "Added extension 'XXXXX' priority 1 to YYYYYYYYYYY"
      This patch changes the log level for those logs.
      
      ASTERISK-27084
      
      Change-Id: I5662902161c50890997ddc56835d4cafb456c529
      77f2814d
  12. Jan 17, 2018
  13. Jan 16, 2018
    • Richard Mudgett's avatar
      res_pjsip: Split type=identify to IP address and SIP header matching priorities · 8494e780
      Richard Mudgett authored
      The type=identify endpoint identification method can match by IP address
      and by SIP header.  However, the SIP header matching has limited
      usefulness because you cannot specify the SIP header matching priority
      relative to the IP address matching.  All the matching happens at the same
      priority and the order of evaluating the identify sections is
      indeterminate.  e.g., If you had two type=identify sections where one
      matches by IP address for endpoint alice and the other matches by SIP
      header for endpoint bob then you couldn't predict which endpoint is
      matched when a request comes in that matches both.
      
      * Extract the SIP header matching criteria into its own "header" endpoint
      identification method so the user can specify the relative priority of the
      SIP header and the IP address matching criteria in the global
      endpoint_identifier_order option.  The "ip" endpoint identification method
      now only matches by IP address.
      
      ASTERISK-27491
      
      Change-Id: I9df142a575b7e1e3471b7cda5d3ea156cef08095
      8494e780
  14. Jan 10, 2018
    • Sean Bright's avatar
      cdr_syslog: Deprecate unmaintained module · 9e2fcb82
      Sean Bright authored
      There has been an open issue against cdr_syslog (ASTERISK~14441) about
      a race condition for 7.5 years that has never been addressed. Because
      this module is effectively unmaintained and currently broken, there is
      no sense in keeping it around.
      
      If logging CDRs to syslog is a desirable feature, it would probably be
      better to write the logs directly to the syslog server via socket
      instead of using the facilities provided by openlog/syslog/closelog.
      Doing so would address the race condition referenced in the associated
      issue.
      
      Change-Id: Ic77b94cd97f355a9cf5b1d3f3444964a6e0ba5dc
      9e2fcb82
  15. Jan 08, 2018
  16. Jan 02, 2018
  17. Dec 18, 2017
  18. Dec 15, 2017
  19. Dec 11, 2017
    • Kevin Harwell's avatar
      pjsip_options: wrongly applied "UNKNOWN" status · b088cddc
      Kevin Harwell authored
      A couple of places were setting the status to "UNKNOWN" when qualifies were
      being disabled. Instead this should be set to the "CREATED" status that
      represents when a contact is given (uri available), but the qualify frequency
      is set to zero so we don't know the status.
      
      This patch updates the relevant places with "CREATED". It also updates the
      "CREATED" status description (value shown in CLI/AMI/ARI output) to a value
      of "NonQualified"/"NonQual" as this description is hopefully less confusing.
      
      ASTERISK-27467
      
      Change-Id: Id67509d25df92a72eb3683720ad2a95a27b50c89
      b088cddc
  20. Nov 11, 2017
    • Richard Mudgett's avatar
      core: Add cache_media_frames debugging option. · 90bb0a3e
      Richard Mudgett authored
      The media frame cache gets in the way of finding use after free errors of
      media frames.  Tools like valgrind and MALLOC_DEBUG don't know when a
      frame is released because it gets put into the cache instead of being
      freed.
      
      * Added the "cache_media_frames" option to asterisk.conf.  Disabling the
      option helps track down media frame mismanagement when using valgrind or
      MALLOC_DEBUG.  The cache gets in the way of determining if the frame is
      used after free and who freed it.  NOTE: This option has no effect when
      Asterisk is compiled with the LOW_MEMORY compile time option enabled
      because the cache code does not exist.
      
      To disable the media frame cache simply disable the cache_media_frames
      option in asterisk.conf and restart Asterisk.
      
      Sample asterisk.conf setting:
      [options]
      cache_media_frames=no
      
      ASTERISK-27413
      
      Change-Id: I0ab2ce0f4547cccf2eb214901835c2d951b78c00
      90bb0a3e
  21. Nov 06, 2017
    • Sean Bright's avatar
      dtls: Add support for ephemeral DTLS certificates. · 04d3785a
      Sean Bright authored
      This mimics the behavior of Chrome and Firefox and creates an ephemeral
      X.509 certificate for each DTLS session.
      
      Currently, the only supported key type is ECDSA because of its faster
      generation time, but other key types can be added in the future as
      necessary.
      
      ASTERISK-27395
      
      Change-Id: I5122e5f4b83c6320cc17407a187fcf491daf30b4
      04d3785a
  22. Oct 29, 2017
  23. Oct 25, 2017
    • Joshua Colp's avatar
      res_pjsip: Add 'ip' as a valid option to 'identify_by' on endpoint. · 9e1fbab3
      Joshua Colp authored
      When the identify_by option on an endpoint is set to ip it will
      only be identified using the res_pjsip_endpoint_identifier_ip module.
      This ensures that it is not mistakenly matched using the username of
      the From header. To ensure behavior has not changed the default has
      been changed to "username,ip" for the identify_by option.
      
      ASTERISK-27206
      
      Change-Id: I2170b86a7f7e221b4f00bf14aa1ef1ac5b050bbd
      9e1fbab3
  24. Oct 18, 2017
    • Corey Farrell's avatar
      app_macro deprecation. · 955a891a
      Corey Farrell authored
      * Mark the module deprecated.
      * Disable the module by default.
      * Produce a warning the first time a macro is used.
      * Note deprecation related options in app_dial and app_queue.
      
      ASTERISK-27350
      
      Change-Id: I560ea043bacdbc5534a17d97854273d52c2f1bdc
      955a891a
  25. Oct 12, 2017
  26. Oct 09, 2017
    • Richard Mudgett's avatar
      res_pjsip_registrar.c: Update remove_existing AOR contact handling. · fb19799b
      Richard Mudgett authored
      When "rewrite_contact" is enabled, the "max_contacts" count option can
      block re-registrations because the source port from the endpoint can be
      random.  When the re-registration is blocked, the endpoint may give up
      re-registering and require manual intervention.
      
      * The "remove_existing" option now allows a registration to succeed by
      displacing any existing contacts that now exceed the "max_contacts" count.
      Any removed contacts are the next to expire.  The behaviour change is
      beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
      than one.  The removed contact is likely the old contact created by
      "rewrite_contact" that the device is refreshing.
      
      ASTERISK-27192
      
      Change-Id: I64c107a10b70db1697d17136051ae6bf22b5314b
      fb19799b
  27. Sep 13, 2017
    • George Joseph's avatar
      res_pjsip: Add handling for incoming unsolicited MWI NOTIFY · 446d48fd
      George Joseph authored
      A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to
      receive unsolicited MWI NOTIFY requests and make them available to
      other modules via the stasis message bus.
      
      res_pjsip_pubsub has a new handler "pubsub_on_rx_mwi_notify_request"
      that parses a simple-message-summary body and, if
      endpoint->incoming_mwi_account is set, calls ast_publish_mwi_state
      with the voice-message counts from the message.
      
      Change-Id: I08bae3d16e77af48fcccc2c936acce8fc0ef0f3c
      446d48fd
  28. Aug 15, 2017
  29. Aug 08, 2017
    • George Joseph's avatar
      Make --with-pjproject-bundled the default for Asterisk 15 · 305bd0d9
      George Joseph authored
      '--with-pjproject-bundled' is now the default when running
      ./configure. It can be disabled with '--without-pjproject-bundled'.
      
      To make building without an internet connection easier, a new
      ./configure option '--with-download-cache' was added that sets
      the cache for externals (like pjproject, the codecs and the DPMA),
      AND the sounds files.  It can also be specified as an environment
      variable named "AST_DOWNLOAD_CACHE".  The existing
      '--with-sounds-cache' option / SOUNDS_CACHE_DIR env variable and
      '--with-externals-cache' option / EXTERNALS_CACHE_DIR env variable
      remain and if specified, will override '--with-downloads-cache'.
      
      ASTERISK-27189
      
      Change-Id: Ifa9783fddf44aafadb060c9feba713dfa81d38ce
      305bd0d9
  30. Aug 07, 2017
    • kkm's avatar
      chan_sip: Access incoming REFER headers in dialplan · 4b58609c
      kkm authored
      This adds a way to access information passed along with SIP headers in
      a REFER message that initiates a transfer. Headers matching a dialplan
      variable GET_TRANSFERRER_DATA in the transferrer channel are added to
      a HASH object TRANSFER_DATA to be accessed with functions HASHKEY and HASH.
      
      The variable GET_TRANSFERRER_DATA is interpreted to be a prefix for
      headers that should be put into the hash. If not set, no headers are
      included. If set to a string (perhaps 'X-' in a typical case), all headers
      starting this string are added. Empty string matches all headers.
      
      If there are multiple of the same header, only the latest occurrence in
      the REFER message is available in the hash.
      
      Obviously, the variable GET_TRANSFERRER_DATA must be inherited by the
      referrer channel, and should be set with the '_' or '__' prefix.
      
      I avoided a specific reference to SIP or REFER, as in my mind the mechanism
      can be generalized to other channel techs.
      
      ASTERISK-27162
      
      Change-Id: I73d7a1e95981693bc59aa0d5093c074b555f708e
      4b58609c
  31. Aug 03, 2017
    • kkm's avatar
      chan_sip: Add dialplan function SIP_HEADERS · 4c0798e9
      kkm authored
      Syntax: SIP_HEADERS([prefix])
      
      If the argument is specified, only the headers matching the given prefix
      are returned.
      
      The function returns a comma-separated list of SIP header names from an
      incoming INVITE message. Multiple headers with the same name are included
      in the list only once. The returned list can be iterated over using the
      functions POP() and SIP_HEADER().
      
      For example, '${SIP_HEADERS(Co)}' might return the string
      'Contact,Content-Length,Content-Type'.
      
      Practical use is rather '${SIP_HEADERS(X-)}' to enumerate optional
      extended headers sent by a peer.
      
      ASTERISK-27163
      
      Change-Id: I2076d3893d03a2f82429f393b5b46db6cf68a267
      4c0798e9
  32. Aug 01, 2017
    • Joshua Colp's avatar
      res_pjsip: Add support for dnsmgr to external_media_address. · 2a4283f3
      Joshua Colp authored
      The "external_media_address" option on transports is now
      resolved using dnsmgr. This allows it to be automatically
      refreshed regularly if refreshes are enabled in dnsmgr.
      If the system is using a dynamic IP address a dynamic DNS
      hostname can be provided to keep the IP address up to
      date.
      
      Change-Id: Ia54771720dff0105bde55d5bbb81a3ba437e05b2
      2a4283f3
    • Sean Bright's avatar
      app_queue: Add announce-position-only-up option · 3f984882
      Sean Bright authored
      Setting this option will cause the Queue application to only announce
      the caller's position if it has improved since the last time that we
      announced it.
      
      Change-Id: I173a124121422209485b043e2bf784f54242fce6
      3f984882
    • Torrey Searle's avatar
      chan_pjsip: add a new function PJSIP_DTMF_MODE · 65c56089
      Torrey Searle authored
      This function is a replica of SIPDtmfMode, allowing the DTMF mode of a
      PJSIP call to be modified on a per-call basis
      
      ASTERISK-27085 #close
      
      Change-Id: I20eef5da3e5d1d3e58b304416bc79683f87e7612
      65c56089
  33. Jul 11, 2017
    • George Joseph's avatar
      res_musiconhold: Add kill_escalation_delay, kill_method to class · b7a87577
      George Joseph authored
      By default, when res_musiconhold reloads or unloads, it sends a HUP
      signal to custom applications (and all descendants), waits 100ms,
      then sends a TERM signal, waits 100ms, then finally sends a KILL
      signal.  An application which is interacting with an external
      device and/or spawns children of its own may not be able to exit
      cleanly in the default times, expecially if sent a KILL signal, or
      if it's children are getting signals directly from
      res_musiconhoild.
      
      * To allow extra time, the 'kill_escalation_delay'
        class option can be used to set the number of milliseconds
        res_musiconhold waits before escalating kill signals, with the
        default being the current 100ms.
      
      * To control to whom the signals are sent, the "kill_method" class
        option can be set to "process_group" (the default, existing
        behavior), which sends signals to the application and its
        descendants directly, or "process" which sends signals only to the
        application itself.
      
      Change-Id: Iff70a1a9405685a9021a68416830c0db5158603b
      b7a87577
  34. Jun 30, 2017
    • George Joseph's avatar
      pjproject_bundled: Allow passing configure options to bundled · f573e599
      George Joseph authored
      There wasn't any good way to pass options like --host or --build
      down to the pjproject configure which makes cross-compiling difficult.
      
      * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which
        can be used to pass arbitrary options to pjproject configure.
      * Automatically set the pjproject configure --host and --build
        options to match those supplied for the asterisk configure.
      
      ASTERISK-27097 #close
      Reported-by: Kinsey Moore
      
      Change-Id: I5fa776e110262851173002a26ffe1172e4c35b2e
      f573e599
  35. Jun 29, 2017
    • Torrey Searle's avatar
      res_pjsip: Add DTMF INFO Failback mode · fb7247c5
      Torrey Searle authored
      The existing auto dtmf mode reverts to inband if 4733 fails to be
      negotiated.  This patch adds a new mode auto_info which will
      switch to INFO instead of inband if 4733 is not available.
      
      ASTERISK-27066 #close
      
      Change-Id: Id185b11e84afd9191a2f269e8443019047765e91
      fb7247c5
  36. Jun 22, 2017
    • Alexei Gradinari's avatar
      app_voicemail: IMAP connection control · 0cef7b9d
      Alexei Gradinari authored
      A new global option "imap_poll_logout" was added to specify whether need to
      disconnect from the IMAP server after polling of mailboxes.
      
      ASTERISK-27068 #close
      
      Closing IMAP connection after loading mailbox from voicemail.conf
      
      ASTERISK-24052 #close
      
      Change-Id: Ib7558ba04516240a32b65f42e9be64372a0ae12a
      0cef7b9d
  37. Jun 16, 2017
    • Alexei Gradinari's avatar
      res_pjsip: New endpoint option "notify_early_inuse_ringing" · 7a46309d
      Alexei Gradinari authored
      This option was added to control whether to notify dialog-info state
      'early' or 'confirmed' on Ringing when already INUSE.
      The value "yes" is useful for some SIP phones (Cisco SPA)
      to be able to indicate and pick up ringing devices.
      
      ASTERISK-26919 #close
      
      Change-Id: Ie050bc30023543c7dfb4365c5be3ce58c738c711
      7a46309d
Loading