Skip to content
Snippets Groups Projects
  1. Feb 17, 2020
    • Sean Bright's avatar
      app_mixmonitor: Set MIXMONITOR_FILENAME to correct value when wav49 is used · ddfb60ac
      Sean Bright authored
      When opening a file for writing, Asterisk silently converts filenames
      ending with 'wav49' to 'WAV.' We aren't taking that in to account when
      setting the MIXMONITOR_FILENAME variable in MixMonitor.
      
      * If the user wants to write to a wav49 file, make sure that it is
        reflected properly in MIXMONITOR_FILENAME.
      
      * Add a note to the documentation describing this behavior.
      
      * Add a note in main/file.c indicating that app_mixmonitor needs to be
        changed if the logic in build_filename was changed.
      
      ASTERISK-24798 #close
      Reported by: xrobau
      
      Change-Id: I384691ce624eb55c80a125b9ca206d2d691c574c
      ddfb60ac
  2. Feb 14, 2020
  3. Feb 13, 2020
  4. Feb 11, 2020
  5. Feb 10, 2020
    • Sean Bright's avatar
      func_odbc: Prevent snprintf() truncation warning · 1e037ebb
      Sean Bright authored
      For reasons that are not clear to me - this only appears for me when
      _not_ building in dev-mode.
      
      Change-Id: Ib45c54daaea8e0d571cb470cab1daaae2edba968
      1e037ebb
    • Joshua C. Colp's avatar
      res_pjsip_session: Fix off-nominal session refreshes. · ac155dec
      Joshua C. Colp authored
      Given a scenario where session refreshes occur close to
      each other while another is finishing it was possible for
      the session refreshes to occur out of order. It was
      also possible for session refreshes to be delayed for
      quite some time if a session refresh did not result in
      a topology change.
      
      For the out of order session refreshes the first session
      refresh would be queued due to a transaction in progress.
      This transaction would then finish. When finished a
      separate task to process the delayed requests queue
      would be queued for handling. A second refresh would
      be requested internally before this delayed request
      queued task was processed. As no transaction was in
      progress this session refresh would be immediately
      handled before the queued session refresh.
      
      The code will now check if any delayed requests exist
      before allowing a session refresh to immediately occur.
      If any exist then the session refresh is queued.
      
      For the delayed session refreshes if a session refresh
      did not result in a topology change the attempt would
      be immediately stopped and no other delayed requests would
      be processed.
      
      The code will now go through the entire delayed requests
      queue until a delayed request results in a request
      actually being sent.
      
      ASTERISK-28730
      
      Change-Id: Ied640280133871f77d3f332be62265e754605088
      ac155dec
  6. Feb 07, 2020
  7. Feb 06, 2020
  8. Feb 05, 2020
  9. Feb 04, 2020
    • Joshua C. Colp's avatar
      res_rtp_asterisk: Don't produce transport-cc if no packets. · 1b53d329
      Joshua C. Colp authored
      The code assumed that when the transport-cc feedback
      function was called at least one packet will have been
      received. In practice this isn't always true, so now
      we just reschedule the sending and do nothing.
      
      Change-Id: Iabe7b358704da446fc3b0596b847bff8b8a0da6a
      1b53d329
  10. Feb 03, 2020
    • George Joseph's avatar
      message.c: Add option to suppress the Message channel AMI and ARI events · b76ab5e5
      George Joseph authored
      In order to reduce the amount of AMI and ARI events generated,
      the global "Message/ast_msg_queue" channel can be set to suppress
      it's normal channel housekeeping events such as "Newexten",
      "VarSet", etc. This can greatly reduce load on the manager
      and ARI applications when the Digium Phone Module for Asterisk
      is in use.  To enable, set "hide_messaging_ami_events" in
      asterisk.conf to "yes"  In Asterisk versions <18, the default
      is "no" preserving existing behavior.  Beginning with
      Asterisk 18, the option will default to "yes".
      
      NOTE:  This change does not affect UserEvents or the ARI
      TextMessageReceived events.
      
      * Added the "hide_messaging_ami_events" option to asterisk.conf.
      
      * Changed message.c to set the AST_CHAN_TP_INTERNAL property on
        the "Message/ast_msg_queue" channel if the option is set in
        asterisk.conf.  This suppresses the reporting of the events.
      
      Change-Id: Ia2e3516d43f4e0df994fc6598565d6bba2d7018b
      b76ab5e5
    • Joshua Colp's avatar
  11. Jan 31, 2020
    • Walter Doekes's avatar
      chan_sip: Return 503 if we're out of RTP ports · 43620cbf
      Walter Doekes authored
      If you're for some reason out of RTP ports, chan_sip would previously
      responde to an INVITE with a 403, which will fail the call.
      
      Now, it returns a 503, allowing the device/proxy to retry the call on a
      different machine.
      
      ASTERISK-28718
      
      Change-Id: I968dcf6c1e30ecddcce397dcda36db727c83ca90
      43620cbf
  12. Jan 30, 2020
  13. Jan 29, 2020
    • Sean Bright's avatar
      res_config_odbc: Preserve empty strings returned by the database · eb9252ea
      Sean Bright authored
      When res_config_odbc (and perhaps other realtime backends) reads a SQL
      NULL from the database, it coalesces the value to the empty string
      which prevents it from being returned to the realtime core.
      
      However, if it instead reads the empty string from the database, it
      needs a way to encode that fact without having the value omitted
      entirely. It does this by changing the value to a string with a single
      space. The realtime code in main/config.c recognizes this special case
      and _turns the string back into the empty string_ before passing it to
      realtime API consumers.
      
      For all of this to work, we need to ensure that we actually pass the
      single-space-string back to the realtime core, which is currently
      failing because we are trimming the value before checking its
      content. So instead we now special case the single-space-string case
      so that empty values are returned properly.
      
      ASTERISK-28719 #close
      Reported by: EDV O-TON
      
      Change-Id: I673ed8c31ad037aa224e80c78c7a1dc4e4a4e3de
      eb9252ea
    • Sean Bright's avatar
      res_stasis_playback: Prevent media_index from going out of bounds · 31dc9043
      Sean Bright authored
      Incrementing stasis_app_playback.media_index directly in our playback
      loop means that when we reach the end of our playlist the index into
      the vector will be outside of the bounds of the vector.
      
      Instead use a temporary variable and only assign when we're sure that
      we are in bounds.
      
      ASTERISK-28713 #close
      Reported by: Sébastien Duthil
      
      Change-Id: Ib53f7f156097e0607eb5871d9d78d246ed274928
      31dc9043
  14. Jan 28, 2020
  15. Jan 27, 2020
    • Kevin Harwell's avatar
      stasis/app: don't lock an app before a call to send · cce2b0da
      Kevin Harwell authored
      Calling 'app_send' eventually calls the app's message handler. It's possible
      for a handler to obtain a lock on another object, and then need/want to lock
      the app object. If the caller of 'app_send' locks the app object prior to
      calling then there's a potential for a deadlock, if another thread calls
      'app_send' without locking.
      
      This patch makes it so 'app_send' is not called with the app object locked in
      the section of code doing such.
      
      ASTERISK-28423 #close
      
      Change-Id: I6767c6d0933c7db1b984018966eefca4c0638a27
      cce2b0da
    • Kevin Harwell's avatar
      res_stasis: trigger cleanup after update · 4206830a
      Kevin Harwell authored
      The cleanup code in stasis shuts down applications if they are in a deactivated
      state, and no longer have explicit subscriptions. When registering an app the
      cleanup code was running before calling 'update'. When it should be executed
      after 'update' since a call to register may re-activate the app. We don't want
      it to shutdown before the 'update' otherwise the app won't be re-activated,
      or registered.
      
      This patch makes it so the cleanup code is executed post 'update'.
      
      ASTERISK-28679 #close
      
      Change-Id: I8f2c0b17e33bb8128441567b97fd4c7bf74a327b
      4206830a
    • Sean Bright's avatar
      res_pjsip_messaging: Ensure MESSAGE_SEND_STATUS is set properly · b1ca2c5d
      Sean Bright authored
      We need to wait for the message sending callback to finish to know if
      we succeeded or failed.
      
      ASTERISK-25421 #close
      Reported by:  Dmitriy Serov
      
      Change-Id: I22b954398821d2caf4c6fe58f0607c8cfa378059
      b1ca2c5d
  16. Jan 24, 2020
    • Walter Doekes's avatar
      chan_sip: Always process updated SDP on media source change · 711a3fed
      Walter Doekes authored
      Fixes no-audio issues when the media source is changed and
      strictrtp is enabled (default).
      
      If the peer media source changes, the SDP session version also changes.
      If it is lower than the one we had stored, chan_sip would ignore it.
      
      This changeset keeps track of the remote media origin identifier,
      comparing that as well. If it changes, the session version needn't be
      higher for us to accept the SDP.
      
      Common scenario where this would've caused problems: a separate media
      gateway that informs the caller about premium rates before handing off
      the call to the final destination.
      
      (An alternative fix would be to set ignoresdpversion=yes on the peer.)
      
      ASTERISK-28686
      
      Change-Id: I88fdbc5aeb777b583e7738c084254c482a7776ee
      711a3fed
  17. Jan 23, 2020
  18. Jan 22, 2020
    • Friendly Automation's avatar
    • George Joseph's avatar
      cdr.c: Set event time on party b when leaving a parking bridge · 6818c3d1
      George Joseph authored
      When Alice calls Bob and Bob does a blind transfer to Charlie,
      Bob's bridge leave event generates a finalize on both the party_a
      and party_b CDRs but while the party_a CDR has the correct end time
      set from the event time, party_b's leg did not. This caused that
      CDR's end time to be equal to the answered time and resulted in a
      billsec of 0.
      
      * We now pass the bridge leave message event time to
      cdr_object_party_b_left_bridge_cb() and set it on that CDR before
      calling cdr_object_finalize() on it.
      
      NOTE:  This issue affected transfers using chan_sip most of the
      time but also occasionally affected chan_pjsip probably due to
      message timing.
      
      ASTERISK-28677
      Reported by: Maciej Michno
      
      Change-Id: I790720f1e7326f9b8ce8293028743b0ef0fb2cca
      6818c3d1
Loading