Skip to content
Snippets Groups Projects
  1. Aug 25, 2021
  2. Mar 02, 2021
    • Alexei Gradinari's avatar
      res_fax: validate the remote/local Station ID for UTF-8 format · d5e73d21
      Alexei Gradinari authored
      If the remote Station ID contains invalid UTF-8 characters
      the asterisk fails to publish the Stasis and ReceiveFax status messages.
      
      json.c: Error building JSON from '{s: s, s: s}': Invalid UTF-8 string.
      0: /usr/sbin/asterisk(ast_json_vpack+0x98) [0x4f3f28]
      1: /usr/sbin/asterisk(ast_json_pack+0x8c) [0x4f3fcc]
      2: /usr/sbin/asterisk(ast_channel_publish_varset+0x2b) [0x57aa0b]
      3: /usr/sbin/asterisk(pbx_builtin_setvar_helper+0x121) [0x530641]
      4: /usr/lib64/asterisk/modules/res_fax.so(+0x44fe) [0x7f27f4bff4fe]
      ...
      stasis_channels.c: Error creating message
      
      json.c: Error building JSON from '{s: s, s: s, s: s, s: s, s: s, s: s, s: o}': Invalid UTF-8 string.
      0: /usr/sbin/asterisk(ast_json_vpack+0x98) [0x4f3f28]
      1: /usr/sbin/asterisk(ast_json_pack+0x8c) [0x4f3fcc]
      2: /usr/lib64/asterisk/modules/res_fax.so(+0x5acd) [0x7f27f4c00acd]
      ...
      res_fax.c: Error publishing ReceiveFax status message
      
      This patch replaces the invalid UTF-8 Station IDs with an empty string.
      
      ASTERISK-29312 #close
      
      Change-Id: Ieb00b6ecf67db3bfca787649caa8517f29d987db
      d5e73d21
  3. Jun 10, 2020
    • George Joseph's avatar
      res_fax: Don't start a gateway if either channel is hung up · 41f3a7da
      George Joseph authored
      When fax_gateway_framehook is called and a gateway hasn't already
      been started, the framehook gets the t38 state for both the current
      channel and the peer.  That call trickles down to the channel
      driver which determines the state.  If either channel is hung up
      (or in the process of being hung up), the channel driver's tech_pvt
      is going to be NULL which, in the case of chan_pjsip, will cause a
      segfault.
      
      * Added a hangup check for both the channel and peer channel
        before starting a fax gateway.
      
      * Added a check for NULL tech_pvt to chan_pjsip_queryoption
        so we don't attempt to reference a tech_pvt that's already
        gone.
      
      ASTERISK-28923
      Reported by: Yury Kirsanov
      
      Change-Id: I4e10e63b667bbb68c1c8623f977488f5d807897c
      41f3a7da
  4. Jun 05, 2020
    • Joshua C. Colp's avatar
      res_fax: Don't consume frames given to fax gateway on write. · d2500c62
      Joshua C. Colp authored
      In a particular fax gateway scenario whereby it would
      have to translate using the read translation path on a
      channel the frame being translated would be consumed.
      When the frame is in the write path it is not permitted
      to free the frame as the caller expects it to continue
      to exist.
      
      This change makes it so that the frame is only consumed
      on the read path where it is acceptable to free it.
      
      ASTERISK-28900
      
      Change-Id: I011c321288a1b056d92b37c85e229f4a28ee737d
      d2500c62
  5. Dec 13, 2019
    • Kevin Harwell's avatar
      res_fax: wrap v21 detected Asterisk initiated negotiation with config option · b6f56073
      Kevin Harwell authored
      A previous patch:
      
      Gerrit Change-Id: I73bb24799bfe1a48adae9c034a2edbae54cc2a39
      
      made it so a T.38 Gateway tries to negotiate with both sides by sending T.38
      negotiation request to both endpoints supported T.38 versus the previous
      behavior of forwarding negotiation to the "other" channel once a preamble
      was detected.
      
      This had the unfortunate side effect of breaking some setups. Specifically
      ones that set the max datagram option on an endpoint configuration (configured
      max datagram was not propagated since Asterisk now initiates negotiations).
      
      This patch adds a configuration option, "negotiate_both", that when enabled
      makes it so Asterisk initiates the negotiation requests to both endpoints vs.
      the previous behavior of waiting, and forwarding the request.
      
      The default is disabled keeping with the old behavior.
      
      ASTERISK-28660
      
      Change-Id: I5deb875f3485e20bc75119ec743090655d864a1a
      b6f56073
  6. Jun 20, 2019
    • Alexei Gradinari's avatar
      res_fax: gateway sends T.38 request to both endpoints if V.21 detected · f414ca06
      Alexei Gradinari authored
      According T.38 Gateway 'Use case 3'
      https://wiki.asterisk.org/wiki/display/AST/T.38+Gateway
      T.38 Gateway should send T.38 negotiation request to called endpoint
      if FAX preamble (using V.21 detector) generated by called endpoint.
      But it does not, because fax_gateway_detect_v21 constructs T.38
      negotiation request, but forwards it only to other channel,
      not to the channel on which FAX preamble is detected.
      
      Some SIP endpoints could be improperly configured to rely on the other side
      to initiate T.38 re-INVITEs.
      
      With this patch the T.38 Gateway tries to negotiate with both sides
      by sending T.38 negotiation request to both endpoints supported T.38.
      
      Change-Id: I73bb24799bfe1a48adae9c034a2edbae54cc2a39
      f414ca06
  7. Jun 03, 2019
    • Alexei Gradinari's avatar
      res_fax: fix segfault on inactive "reserved" fax session · 1b62781b
      Alexei Gradinari authored
      The change #10017 "Handle fax gateway being started more than once"
      introdiced a bug which leads to segfault in res_fax_spandsp.
      
      The res_fax_spandsp module does not support reserving sessions, so
      fax_session_reserve returns a fax session with state AST_FAX_STATE_INACTIVE.
      
      The fax_gateway_start does not create a real fax session if the fax session
      is already present and the state is not AST_FAX_STATE_RESERVED.
      But the "reserved" session created for res_fax_spandsp has state
      AST_FAX_STATE_INACTIVE, so fax_gateway_start not starting.
      
      Then when fax_gateway_framehook is called and gateway T.38 state is
      NEGOTIATED the call of gateway->s->tech->write(gateway->s, f) leads to
      segfault, because session tech_pvt is not set, i.e. the tech session
      was not initialized/started.
      
      This patch adds check also on AST_FAX_STATE_INACTIVE to the "reserved"
      session created for res_fax_spandsp will start.
      
      This patch also adds extra check and log ERROR if tech_pvt is not set
      before call tech->write.
      
      ASTERISK-27981 #close
      
      Change-Id: Ife3e65e5f18c902db2ff0538fccf7d28f88fa803
      1b62781b
  8. May 29, 2019
  9. Mar 07, 2019
    • Sean Bright's avatar
      Replace calls to strtok() with strtok_r() · 2473b791
      Sean Bright authored
      strtok() uses a static buffer, making it not thread safe.
      
      Also add a #define to cause a compile failure if strtok is used.
      
      Change-Id: Icce265153e1e65adafa8849334438ab6d190e541
      2473b791
  10. Nov 21, 2018
  11. Aug 29, 2018
    • Joshua Colp's avatar
      res_fax: Handle fax gateway being started more than once. · 40def059
      Joshua Colp authored
      The T.38 fax gateway state machine can cause the fax gateway
      to be started more than once on a channel depending on the
      responses of the remote endpoint. This would previously leak
      the channel name, channel unique id, and underlying fax engine
      state. This change instead makes it so that if the fax gateway
      session is already present and not reserved the fax gateway
      is not started again.
      
      ASTERISK-27981
      
      Change-Id: I552d95086860cb18f2522ee40ef47b13b6da2e0e
      40def059
  12. Jan 24, 2018
    • Corey Farrell's avatar
      Remove redundant module checks and references. · 527cf5a5
      Corey Farrell authored
      This removes references that are no longer needed due to automatic
      references created by module dependencies.
      
      In addition this removes most calls to ast_module_check as they were
      checking modules which are listed as dependencies.
      
      Change-Id: I332a6e8383d4c72c8e89d988a184ab8320c4872e
      527cf5a5
  13. Jan 03, 2018
    • Corey Farrell's avatar
      loader: Create ast_module_running_ref. · 55f1d69c
      Corey Farrell authored
      This function returns NULL if the module in question is not running.  I
      did not change ast_module_ref as most callers do not check the result
      and they always call ast_module_unref.
      
      Make use of this function when running registered items from:
      * app_stack API's
      * bridge technologies
      * CLI commands
      * File formats
      * Manager Actions
      * RTP engines
      * Sorcery Wizards
      * Timing Interfaces
      * Translators
      * AGI Commands
      * Fax Technologies
      
      ASTERISK-20346 #close
      
      Change-Id: Ia16fd28e188b2fc0b9d18b8a5d9cacc31df73fcc
      55f1d69c
  14. Dec 20, 2017
    • Corey Farrell's avatar
      Fix Common Typo's. · 1b80ffa4
      Corey Farrell authored
      Fix instances of:
      * Retreive
      * Recieve
      * other then
      * different then
      * Repeated words ("the the", "an an", "and and", etc).
      * othterwise, teh
      
      ASTERISK-24198 #close
      
      Change-Id: I3809a9c113b92fd9d0d9f9bac98e9c66dc8b2d31
      1b80ffa4
  15. Nov 19, 2017
  16. Oct 27, 2016
    • Corey Farrell's avatar
      Remove ASTERISK_REGISTER_FILE. · a6e5bae3
      Corey Farrell authored
      ASTERISK_REGISTER_FILE no longer has any purpose so this commit removes
      all traces of it.
      
      Previously exported symbols removed:
      * __ast_register_file
      * __ast_unregister_file
      * ast_complete_source_filename
      
      This also removes the mtx_prof static variable that was declared when
      MTX_PROFILE was enabled.  This variable was only used in lock.c so it
      is now initialized in that file only.
      
      ASTERISK-26480 #close
      
      Change-Id: I1074af07d71f9e159c48ef36631aa432c86f9966
      a6e5bae3
  17. Oct 13, 2016
    • Richard Mudgett's avatar
      Audit ast_json_pack() calls for needed UTF-8 checks. · 9c49b963
      Richard Mudgett authored
      Added needed UTF-8 checks before constructing json objects in various
      files for strings obtained outside the system.  In this case string values
      from a channel driver's peer and not from the user setting channel
      variables.
      
      * aoc.c: Fixed type mismatch in s_to_json() for time and granularity json
      object construction.
      
      ASTERISK-26466
      Reported by: Richard Mudgett
      
      Change-Id: Iac2d867fa598daba5c5dbc619b5464625a7f2096
      9c49b963
  18. Oct 12, 2016
  19. Aug 25, 2016
    • Richard Mudgett's avatar
      res_fax: Fix deadlock in ast_channel_get_t38_state(). · 5eb6cb96
      Richard Mudgett authored
      ast_channel_get_t38_state() calls ast_channel_queryoption() with
      AST_OPTION_T38_STATE.  If the passed in channel is a local channel then a
      deadlock can happen if a channel lock is held when called.
      
      * Made ast_channel_get_t38_state() callers not hold a channel lock before
      calling.
      
      * Update ast_channel_get_t38_state() doxygen to note that no channel locks
      can be held when calling the function.
      
      ASTERISK-26203 #close
      Reported by: Etienne Lessard
      
      ASTERISK-24822 #close
      Reported by: David Brillert
      
      ASTERISK-22732 #close
      Reported by: Richard Mudgett
      
      Change-Id: I49fd76fa9af628b4198009b5c0b82c8b03681214
      5eb6cb96
    • Richard Mudgett's avatar
      res_fax: Fix deadlock setting FAXMODE channel variable. · 277a2d66
      Richard Mudgett authored
      ASTERISK-25980 added the FAXMODE channel variable to res_fax.c.
      Unfortunately, it also introduced a deadlock potential because
      set_channel_variables() which sets FAXMODE can be called during a
      masquerade.  The ast_channel_get_t38_state() which gets the value used to
      set FAXMODE cannot be called with the channel locked.  As a result, local
      channels can deadlock because of how they must acquire the locks necessary
      to operate.
      
      The intent of FAXMODE is for dialplan to know how a fax was transferred
      after the fax completes.  However, the previous patch sets FAXMODE to the
      channel's current T.38 state AFTER the fax has completed and where T.38
      may have already disconnected.
      
      * Set FAXMODE based upon T.38 negotiations exchanged either with the fax
      applications or the fax framehooks.
      
      ASTERISK-26203
      Reported by: Etienne Lessard
      
      ASTERISK-24822
      Reported by: David Brillert
      
      ASTERISK-22732
      Reported by: Richard Mudgett
      
      Change-Id: Id525747254b64c1efe8b1b5973d52ff9719c2ae1
      277a2d66
    • Richard Mudgett's avatar
      res_fax.c: Fix deadlock in fax_gateway_indicate_t38(). · edca14c8
      Richard Mudgett authored
      fax_gateway_indicate_t38() calls ast_indicate_data() which cannot be
      called with any channel locks already held.  A deadlock can happen if the
      function is operating on a local channel.
      
      * Made fax_gateway_indicate_t38() unlock the channel before calling
      ast_indicate_data() since fax_gateway_indicate_t38() is always called with
      the channel locked.
      
      * Made fax_gateway_indicate_t38() return void since nothing cared about
      its return value.
      
      ASTERISK-26203
      Reported by: Etienne Lessard
      
      ASTERISK-24822
      Reported by: David Brillert
      
      ASTERISK-22732
      Reported by: Richard Mudgett
      
      Change-Id: I701ff2d26c5fc23e0d5a48a3fd98759a9fd09407
      edca14c8
    • Richard Mudgett's avatar
      res_fax.c: Add chan locked precondition comments. · 141cd428
      Richard Mudgett authored
      Change-Id: Ic10ae434536bbf7fb7055d6ab36cc50b8748a4e7
      141cd428
    • Richard Mudgett's avatar
      ast_framehook_detach() must be called with the channel locked. · b86771d1
      Richard Mudgett authored
      The framehook container could become corrupted if the channel lock is not
      held before calling.
      
      Change-Id: If0a1c7ba0484ed3a191106a7516526b905952584
      b86771d1
  20. Jul 19, 2016
    • Richard Mudgett's avatar
      res_fax.c: Fix deadlock potential in FAXOPT(faxdetect) framehook. · 9abbea16
      Richard Mudgett authored
      The fax_detect_framehook() has the potential to deadlock if an incoming
      fax happens during the Playback or similar application.
      
      * Fixed the potential deadlock by not calling ast_async_goto() with the
      channel lock held.
      
      * Made always eat the fax detection frame whether there is a fax extension
      or not.
      
      * Made only detach the framehook if we detected a fax and not on other
      possible frames.
      
      ASTERISK-26216
      Reported by: Richard Mudgett
      
      Change-Id: I99da35c26d1cd802626ffb4c1b4eb5b015581b6d
      9abbea16
    • Richard Mudgett's avatar
      res_fax: Fix FAXOPT(faxdetect) timeout option. · 804fbd9c
      Richard Mudgett authored
      The fax detection timeout option did not work because basically the wrong
      variable was checked in fax_detect_framehook().  As a result, the timer
      would timeout immediately and disable fax detection.
      
      * Fixed ignoring negative timeout values.  We'd complain and then go right
      on using the negative value.
      
      * Fixed destroy_faxdetect() in the off-nominal case of an incomplete
      object creation.
      
      * Added more range checking to FAXOPT(gateway) timeout parameter.
      
      ASTERISK-26214 #close
      Reported by: Richard Mudgett
      
      Change-Id: Idc5e698dfe33572de9840bc68cd9fc043cbad976
      804fbd9c
  21. Jun 22, 2016
    • Corey Farrell's avatar
      res_fax: Fix reference leak in fax_v21_session_new. · 8c7017f7
      Corey Farrell authored
      fax_v21_session_new created a session details object but only released
      the allocation reference during error conditions.  fax_session_new adds
      it's own reference to details if needed so the caller is always
      responsible for cleaning it's own reference.
      
      ASTERISK-26141 #close
      
      Change-Id: Ie7fc52a83b6596ce9ce2d5a2bd9f3e204f48fc88
      8c7017f7
  22. May 05, 2016
    • Alexei Gradinari's avatar
      res_fax/t38_gateway: Peer V.21 session is created on wrong channel · 92f85fe7
      Alexei Gradinari authored
      The channel and peer V.21 sessions are created on the same channel now.
      The peer V.21 session should be created only on peer channel
      when one of channel can handle T.38.
      
      Also this patch enable debug for T.38 gateway session
      if global fax debug enabled.
      
      ASTERISK-25982
      
      Change-Id: I78387156ea521a77eb0faf170179ddd37a50430e
      92f85fe7
  23. May 04, 2016
    • Alexei Gradinari's avatar
      res_fax: add FAXMODE variable · 380ac201
      Alexei Gradinari authored
      The app_fax set FAXMODE variable, but res_fax missing this feature.
      This patch add FAXMODE variable which is set to either "audio" or "T38".
      
      ASTERISK-25980
      
      Change-Id: Ie3dcbfb72cc681e9e267a60202f7fb8723a51b6b
      380ac201
  24. Dec 16, 2015
    • Joshua Colp's avatar
      json: Audit ast_json_* usage for thread safety. · d17d9a92
      Joshua Colp authored
      The JSON library Asterisk uses, jansson, is not thread
      safe for us in a few ways. To help with this wrappers for JSON
      object reference count increasing and decreasing were added
      which use a global lock to ensure they don't clobber over
      each other. This does not extend to reference count manipulation
      within the jansson library itself. This means you can't safely
      use the object borrowing specifier (O) in ast_json_pack and
      you can't share JSON instances between objects.
      
      This change removes uses of the O specifier and replaces them
      with the o specifier and an explicit ast_json_ref. Some cases
      of instance sharing have also been removed.
      
      ASTERISK-25601 #close
      
      Change-Id: I06550d8b0cc1bfeb56cab580a4e608ae4f1ec7d1
      d17d9a92
  25. May 13, 2015
  26. Apr 29, 2015
    • Kevin Harwell's avatar
      res_fax: allow 2400 transmission rate according to v.27ter standard · 5d0c1828
      Kevin Harwell authored
      A previous set of patches (see: ASTERISK-22790 & ASTERISK-23231) made it so
      a v.27 modem was not allowed to have a minimum transmission rate of 2400 bits
      per second. This reverts all or some of those patches since according to the
      v.27ter standard a rate of 2400 bits per second is also supported.
      
      One of the original patches also added 9600 bits per second support for v.27.
      This patch also removes that since v.27ter only supports 2400/4800 bits per
      second.
      
      Also, since Asterisk specifically supports v.27ter the enum was renamed to
      better reflect this.
      
      ASTERISK-24955 #close
      Reported by: Matt Jordan
      
      Change-Id: I4b9dfb6bf7eff08463ab47ee1a74224f27cae733
      5d0c1828
  27. Apr 17, 2015
    • Richard Mudgett's avatar
      res_fax: Fix latent bug exposed by ASTERISK-24841 changes. · 1269dd06
      Richard Mudgett authored
      Three fax related tests started failing as a result of changes made for
      ASTERISK-24841:
      tests/fax/pjsip/gateway_t38_g711
      tests/fax/sip/gateway_mix1
      tests/fax/sip/gateway_mix3
      
      Historically, ast_channel_make_compatible() did nothing if the channels
      were already "compatible" even if they had a sub-optimal translation path
      already setup.  With the changes from ASTERISK-24841 this is no longer
      true in order to allow the best translation paths to always be picked.  In
      res_fax.c:fax_gateway_framehook() code manually setup the channels to go
      through slin and then called ast_channel_make_compatible().  With the
      previous version of ast_channel_make_compatible() this was always a
      no-operation.
      
      * Remove call to ast_channel_make_compatible() in fax_gateway_framehook()
      that now undoes what was just setup when the framehook is attached.
      
      * Fixed locking around saving the channel formats in
      fax_gateway_framehook() to ensure that the formats that are saved are
      consistent.
      
      * Fix copy pasta errors in fax_gateway_framehook() that confuses read and
      write when dealing with saved channel formats.
      
      ASTERISK-24841
      Reported by: Matt Jordan
      
      Change-Id: I6fda0877104a370af586a5e8cf9e161a484da78d
      1269dd06
  28. Apr 13, 2015
    • Matt Jordan's avatar
      git migration: Refactor the ASTERISK_FILE_VERSION macro · 4a582616
      Matt Jordan authored
      Git does not support the ability to replace a token with a version
      string during check-in. While it does have support for replacing a
      token on clone, this is somewhat sub-optimal: the token is replaced
      with the object hash, which is not particularly easy for human
      consumption. What's more, in practice, the source file version was often
      not terribly useful. Generally, when triaging bugs, the overall version
      of Asterisk is far more useful than an individual SVN version of a file. As a
      result, this patch removes Asterisk's support for showing source file
      versions.
      
      Specifically, it does the following:
      
      * Rename ASTERISK_FILE_VERSION macro to ASTERISK_REGISTER_FILE, and
        remove passing the version in with the macro. Other facilities
        than 'core show file version' make use of the file names, such as
        setting a debug level only on a specific file. As such, the act of
        registering source files with the Asterisk core still has use. The
        macro rename now reflects the new macro purpose.
      
      * main/asterisk:
        - Refactor the file_version structure to reflect that it no longer
          tracks a version field.
        - Remove the "core show file version" CLI command. Without the file
          version, it is no longer useful.
        - Remove the ast_file_version_find function. The file version is no
          longer tracked.
        - Rename ast_register_file_version/ast_unregister_file_version to
          ast_register_file/ast_unregister_file, respectively.
      
      * main/manager: Remove value from the Version key of the ModuleCheck
        Action. The actual key itself has not been removed, as doing so would
        absolutely constitute a backwards incompatible change. However, since
        the file version is no longer tracked, there is no need to attempt to
        include it in the Version key.
      
      * UPGRADE: Add notes for:
        - Modification to the ModuleCheck AMI Action
        - Removal of the "core show file version" CLI command
      
      Change-Id: I6cf0ff280e1668bf4957dc21f32a5ff43444a40e
      4a582616
  29. Jan 23, 2015
  30. Jan 20, 2015
  31. Jan 15, 2015
  32. Jan 12, 2015
  33. Jan 09, 2015
    • Richard Mudgett's avatar
      AMI: Remove no longer used parameter from astman_send_listack(). · ef34a05f
      Richard Mudgett authored
      Follow-up issue to -r430435 from reviewboard review.
      
      ASTERISK-24049
      Review: https://reviewboard.asterisk.org/r/4315/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430452 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      ef34a05f
    • Richard Mudgett's avatar
      AMI: Make AMI actions that generate event lists consistent. · 52a7cdb1
      Richard Mudgett authored
      * Made the following AMI actions use list API calls for consistency:
      Agents
      BridgeInfo
      BridgeList
      BridgeTechnologyList
      ConfbridgeLIst
      ConfbridgeLIstRooms
      CoreShowChannels
      DAHDIShowChannels
      DBGet
      DeviceStateList
      ExtensionStateList
      FAXSessions
      Hangup
      IAXpeerlist
      IAXpeers
      IAXregistry
      MeetmeList
      MeetmeListRooms
      MWIGet
      ParkedCalls
      Parkinglots
      PJSIPShowEndpoint
      PJSIPShowEndpoints
      PJSIPShowRegistrationsInbound
      PJSIPShowRegistrationsOutbound
      PJSIPShowResourceLists
      PJSIPShowSubscriptionsInbound
      PJSIPShowSubscriptionsOutbound
      PresenceStateList
      PRIShowSpans
      QueueStatus
      QueueSummary
      ShowDialPlan
      SIPpeers
      SIPpeerstatus
      SIPshowregistry
      SKINNYdevices
      SKINNYlines
      Status
      VoicemailUsersList
      
      * Incremented the AMI version to 2.7.0.
      
      * Changed astman_send_listack() to not use the listflag parameter and
      always set the value to "Start" so the start capitalization is consistent.
      i.e., The FAXSessions used "Start" while the rest of the system used
      "start".  The corresponding complete event always used "Complete".
      
      * Fixed ami_show_resource_lists() "PJSIPShowResourceLists" to output the
      AMI ActionID for all of its list events.
      
      * Fixed off-nominal AMI protocol error in manager_bridge_info(),
      manager_parking_status_single_lot(), and
      manager_parking_status_all_lots().  Use of astman_send_error() after
      responding to the original AMI action request violates the action response
      pattern by sending two responses.
      
      * Fixed minor protocol error in action_getconfig() when no requested
      categories are found.  Each line needs to be formatted as "Header: text".
      
      * Fixed off-nominal memory leak in manager_build_parked_call_string().
      
      * Eliminated unnecessary use of RAII_VAR() in ami_subscription_detail().
      
      ASTERISK-24049 #close
      Reported by: Jonathan Rose
      
      Review: https://reviewboard.asterisk.org/r/4315/
      ........
      
      Merged revisions 430434 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430435 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      52a7cdb1
Loading