Skip to content
Snippets Groups Projects
  1. Jul 17, 2015
    • Joshua Colp's avatar
      chan_pjsip: Don't change formats when frame of unsupported format is received. · 2c626ceb
      Joshua Colp authored
      Receipt of an RTP packet currently causes the formats on an PJSIP channel to
      change to the format of the RTP packet. In some off-nominal cases it's possible
      for this to be a format that has not been configured or negotiated. This change
      makes it so only formats explicitly configured on the endpoint are allowed.
      
      ASTERISK-25258 #close
      
      Change-Id: If93d641fb6418a285928839300d7854cab8c1020
      2c626ceb
  2. Jul 15, 2015
  3. Jul 14, 2015
    • Richard Mudgett's avatar
      res_pjsip_session.c: Fix crash on call disconnect. · 653f2087
      Richard Mudgett authored
      The crash fix for ASTERISK-25183 backported some code from master to try
      to make sure that a BYE response is processed by the same serializer used
      by the BYE request.  The identified race condition causing that backport
      was the BYE request code had not finished processing after sending the BYE
      before the BYE response came in for processing under a different thread.
      Unfortunately, there is still a race condition.  Now the race condition is
      between destroying the call session's serializer in
      ast_taskprocessor_unreference() and using ast_taskprocessor_get() to get a
      reference to the serializer for a BYE response.  Even worse, the new race
      condition is a design limitation of the taskprocessor implementation that
      didn't matter in versions before v12.  Back then, taskprocessors were only
      destroyed when a module unloaded.  Now res_pjsip can destroy them when a
      call ends.
      
      However, as noted on the ASTERISK-25183 commit,
      session_inv_on_state_changed() is disassociating the dialog from the
      session when the invite dialog state becomes PJSIP_INV_STATE_DISCONNECTED.
      This is a tad too soon because our BYE request transaction has not
      completed yet.
      
      * Split session_end() that is called by session_inv_on_state_changed() to
      hold off session destruction until the BYE transaction timeout occurs or a
      failed initial INVITE transaction timeout occurs in
      session_inv_on_tsx_state_changed().
      
      ASTERISK-25201 #close
      Reported by: Matt Jordan
      
      Change-Id: Iaf8dc8485fd8392a2a3ee4ad3b7f7f04a0dcc961
      653f2087
    • Benjamin Ford's avatar
      ARI: Added new functionality to reload a single module. · 1aafadf8
      Benjamin Ford authored
      An http request can be sent to reload an Asterisk module. If the
      module can not be reloaded or is not already loaded, an error
      response will be returned.
      
      The command "curl -v -u user:pass -X PUT 'http://localhost:8088
      /ari/asterisk/modules/{moduleName}'" (or something similar, based
      on configuration) can be run in the terminal to access this new
      functionality.
      
      For more information, see:
      https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
      
      * Added new ARI functionality
      * Asterisk modules can be reloaded through http requests
      
      ASTERISK-25173
      
      Change-Id: I289188bcae182b2083bdbd9ebfffd50b62f58ae1
      1aafadf8
    • Benjamin Ford's avatar
      ARI: Added new functionality to unload a single module. · 9dcae23c
      Benjamin Ford authored
      An http request can be sent to unload an Asterisk module. If the
      module can not be unloaded or is already unloaded, an error response
      will be returned.
      
      The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
      /ari/asterisk/modules/{moduleName}'" (or something similar, depending
      on configuration) can be run in the terminal to access this new
      functionality.
      
      For more information, see:
      https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
      
      * Added new ARI functionality
      * Asterisk modules can be unloaded through http requests
      
      ASTERISK-25173
      
      Change-Id: I535a95f5676deb02651522761ecbdc0b00b5ac57
      9dcae23c
  4. Jul 13, 2015
  5. Jul 12, 2015
    • Matt Jordan's avatar
      main/sorcery: Don't fail object set creation from JSON if field fails · bb76b88b
      Matt Jordan authored
      Some individual fields may fail their conversion due to their default
      values being invalid for their custom handlers. In particular,
      configuration values that depend on others being enabled (and thus have
      an empty default value) are notorious for tripping this routine up. An
      example of this are any of the DTLS options for endpoints. Any of the
      DTLS options will fail to be applied (as DTLS is not enabled), causing
      the entire object set to be aborted.
      
      This patch makes it so that we log a debug message when skipping a
      field, and rumble on anyway.
      
      ASTERISK-25238
      
      Change-Id: I0bea13de79f66bf9f9ae6ece0e94a2dc1c026a76
      bb76b88b
    • Matt Jordan's avatar
      main/format_cap: Parse capabilities generated by ast_format_cap_get_names · 5f13c222
      Matt Jordan authored
      We have a strange relationship between the parsing of format
      capabilities from a string and their representation as a string. We
      expect the format capabilities to be expressed as a string in the
      following format:
      
      allow = !all,ulaw,alaw
      disallow = g722
      
      While we would generate the string representation of those formats as:
      
      allow = (ulaw|alaw)
      disallow = (ulaw|alaw|g729...)
      
      When the configuration framework needs to store values as a string, it
      generates the format capabilities using the second representation; this
      representation however cannot be parsed when the entry is rehydrated.
      This patch fixes that by updating
      ast_format_cap_update_by_allow_disallow to parse an entry as if it were
      in the generated format if it has a leading '(' and a trailing ')'.
      
      ASTERISK-25238
      
      Change-Id: I904d43caf4cf45af06f6aee0c9e58556eb91d6ca
      5f13c222
  6. Jul 11, 2015
  7. Jul 10, 2015
  8. Jul 09, 2015
    • Joshua Colp's avatar
      bridge_native_rtp.c: Don't start native RTP bridging after attended transfer. · d558b00c
      Joshua Colp authored
      The bridge_native_rtp module adds a frame hook to channels which are in
      a native RTP bridge. This frame hook is used to intercept when a hold
      or unhold frame traverses the bridge so native RTP can be stopped or
      started as appropriate. This is expected but exposes a specific bug
      when attended transfers are involved.
      
      Upon completion of an attended transfer an unhold frame is queued up
      to take one of the channels involved off hold. After this is done
      the channel is moved between bridges.
      
      When the frame hook is involved in this case for the unhold it
      releases the channel lock and acquires the bridge lock. This
      allows the bridge core to step in and move the channel
      (potentially changing the bridging techology) from another thread.
      Once completed the bridge lock is released by the bridge core.
      The frame hook is then able to acquire the bridge lock and
      wrongfully starts native RTP again, despite the channel no longer
      being in the bridge or needing to start native RTP. In fact at
      this point the frame hook is no longer attached to the channel.
      
      This change makes it so the native RTP bridge data is available to
      the frame hook when it is invoked. Whether the frame hook has
      been detached or not is stored on the native RTP bridge data and
      is checked by the frame hook before starting or stopping native
      RTP bridging. If the frame hook has been detached it does nothing.
      
      ASTERISK-25240 #close
      
      Change-Id: I13a73186a05f4e5a764f81e5cd0ccec1ed1891d2
      d558b00c
    • Joshua Colp's avatar
      res_sorcery_memory_cache: Backport to 13 · b74b0713
      Joshua Colp authored
      Gerrit is complaining of conflicts when trying to create a patch series
      of all of the cherry-picked master commits, so I have instead squashed
      it all into one commit.
      
      ASTERISK-25067 #close
      Reported by: Matt Jordan
      
      Change-Id: I6dda90343fae24a75dc5beec84980024e8d61eb9
      b74b0713
  9. Jul 08, 2015
  10. Jul 07, 2015
Loading