Skip to content
Snippets Groups Projects
  1. 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
  2. Sep 26, 2014
  3. Jul 25, 2014
  4. Jul 20, 2014
  5. Jun 26, 2014
    • Matthew Jordan's avatar
      app_jack: Support audio with a sampling rate higher than 8kHz · 22e62ac6
      Matthew Jordan authored
      This patch enables the jack-audiohook to cope with dynamic sampling rates from
      and to Asterisk. Information from the channel is taken to derive the channel's
      sampling rate, suiting SLINxx format and frame->datalen.
      
      There are stil a few limitations after this patch:
      * Required information is taken from the channel during initialization as
        the audiohook does not provide this information.
        Audiohook.internal_sampl_rate(...) is set later, but no callback is available
        to inform app_jack.
      
      * Frame.datalen is computed using "rate / 50" assuming a ptime of 20ms.
        There is no internal API available to determine datalen for a SLINxx.
      
      * Ringbuffer size is now dynamic depending on the value of frame.datalen
        (see above) and the number of frames, which are in RINGBUFFER_FRAME_CAPACITY,
        that need to fit.
      
      Review: https://reviewboard.asterisk.org/r/3618
      
      Note that the patch being committed here is based on the patch posted on
      ASTERISK-23836. However, Matthis Schmieder also provided a patch to enable
      this functionality, and that patch is noted below.
      
      ASTERISK-20696 #close
      Reported by: Matthis Schmieder
      patches:
        app_jack.patch uploaded by Matthis Schmieder (License 6445)
      
      ASTERISK-23836 #close
      Reported by: Dennis Guse
      patches:
        patch-app_jack.c uploaded by Dennis Guse (License 6513)
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@417360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      22e62ac6
  6. Mar 27, 2014
  7. Nov 07, 2012
    • Mark Michelson's avatar
      Multiple revisions 375993-375994 · f2bb9afe
      Mark Michelson authored
      ........
        r375993 | mmichelson | 2012-11-07 11:01:13 -0600 (Wed, 07 Nov 2012) | 30 lines
        
        Fix misuses of timeouts throughout the code.
        
        Prior to this change, a common method for determining if a timeout
        was reached was to call a function such as ast_waitfor_n() and inspect
        the out parameter that told how many milliseconds were left, then use
        that as the input to ast_waitfor_n() on the next go-around.
        
        The problem with this is that in some cases, submillisecond timeouts
        can occur, resulting in the out parameter not decreasing any. When this
        happens thousands of times, the result is that the timeout takes much
        longer than intended to be reached. As an example, I had a situation where
        a 3 second timeout took multiple days to finally end since most wakeups
        from ast_waitfor_n() were under a millisecond.
        
        This patch seeks to fix this pattern throughout the code. Now we log the
        time when an operation began and find the difference in wall clock time
        between now and when the event started. This means that sub-millisecond timeouts
        now cannot play havoc when trying to determine if something has timed out.
        
        Part of this fix also includes changing the function ast_waitfor() so that it
        is possible for it to return less than zero when a negative timeout is given
        to it. This makes it actually possible to detect errors in ast_waitfor() when
        there is no timeout.
        
        (closes issue ASTERISK-20414)
        reported by David M. Lee
        
        Review: https://reviewboard.asterisk.org/r/2135/
      ........
        r375994 | mmichelson | 2012-11-07 11:08:44 -0600 (Wed, 07 Nov 2012) | 3 lines
        
        Remove some debugging that accidentally made it in the last commit.
      ........
      
      Merged revisions 375993-375994 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 375995 from http://svn.asterisk.org/svn/asterisk/branches/10
      ........
      
      Merged revisions 376014 from http://svn.asterisk.org/svn/asterisk/branches/11
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@376015 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f2bb9afe
  8. Mar 24, 2012
  9. Jan 09, 2012
    • Terry Wilson's avatar
      Replace direct access to channel name with accessor functions · 04da92c3
      Terry Wilson authored
      There are many benefits to making the ast_channel an opaque handle, from
      increasing maintainability to presenting ways to kill masquerades. This patch
      kicks things off by taking things a field at a time, renaming the field to
      '__do_not_use_${fieldname}' and then writing setters/getters and converting the
      existing code to using them. When all fields are done, we can move ast_channel
      to a C file from channel.h and lop off the '__do_not_use_'.
      
      This patch sets up main/channel_interal_api.c to be the only file that actually
      accesses the ast_channel's fields directly. The intent would be for any API
      functions in channel.c to use the accessor functions. No more monkeying around
      with channel internals. We should use our own APIs.
      
      The interesting changes in this patch are the addition of
      channel_internal_api.c, the moving of the AST_DATA stuff from channel.c to
      channel_internal_api.c (note: the AST_DATA stuff will have to be reworked to
      use accessor functions when ast_channel is really opaque), and some re-working
      of the way channel iterators/callbacks are handled so as to avoid creating fake
      ast_channels on the stack to pass in matching data by directly accessing fields
      (since "name" is a stringfield and the fake channel doesn't init the
      stringfields, you can't use the ast_channel_name_set() function). I went with
      ast_channel_name(chan) for a getter, and ast_channel_name_set(chan, name) for a
      setter.
      
      The majority of the grunt-work for this change was done by writing a semantic
      patch using Coccinelle ( http://coccinelle.lip6.fr/ ).
      
      Review: https://reviewboard.asterisk.org/r/1655/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@350223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      04da92c3
  10. Jul 14, 2011
  11. Feb 22, 2011
    • David Vossel's avatar
      Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd... · d760e81f
      David Vossel authored
      Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff
      
      -Functional changes
      1. Dynamic global format list build by codecs defined in codecs.conf
      2. SILK 8khz, 12khz, 16khz, and 24khz with custom attributes defined in codecs.conf
      3. Negotiation of SILK attributes in chan_sip.
      4. SPEEX 32khz with translation
      5. SLINEAR 8khz, 12khz, 24khz, 32khz, 44.1khz, 48khz, 96khz, 192khz with translation
         using codec_resample.c
      6. Various changes to RTP code required to properly handle the dynamic format list
         and formats with attributes.
      7. ConfBridge now dynamically jumps to the best possible sample rate.  This allows
         for conferences to take advantage of HD audio (Which sounds awesome)
      8. Audiohooks are no longer limited to 8khz audio, and most effects have been
         updated to take advantage of this such as Volume, DENOISE, PITCH_SHIFT.
      9. codec_resample now uses its own code rather than depending on libresample.
      
      -Organizational changes
      Global format list is moved from frame.c to format.c
      Various format specific functions moved from frame.c to format.c
      
      Review: https://reviewboard.asterisk.org/r/1104/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@308582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d760e81f
  12. Feb 03, 2011
  13. Jan 15, 2010
  14. Nov 04, 2009
  15. Jun 06, 2009
  16. May 21, 2009
    • Kevin P. Fleming's avatar
      Const-ify the world (or at least a good part of it) · e6b2e9a7
      Kevin P. Fleming authored
      This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:
      
      - CLI command handlers
      - CLI command handler arguments
      - AGI command handlers
      - AGI command handler arguments
      - Dialplan application handler arguments
      - Speech engine API function arguments
      
      In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.
      
      Review: https://reviewboard.asterisk.org/r/251/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      e6b2e9a7
  17. Apr 14, 2009
  18. Dec 15, 2008
  19. Nov 01, 2008
  20. Sep 02, 2008
  21. Aug 07, 2008
  22. Jul 21, 2008
  23. May 22, 2008
  24. May 13, 2008
  25. May 10, 2008
  26. Apr 22, 2008
  27. Jan 14, 2008
  28. Jan 13, 2008
    • Russell Bryant's avatar
      Bring in the code from team/russell/jack/. · f32aec9f
      Russell Bryant authored
      Add a new module, app_jack, which provides interfaces to JACK, the Jack
      Audio Connection Kit (http://www.jackaudio.org/).  Two interfaces are
      provided; there is a JACK() application, and a JACK_HOOK() function.  Both
      interfaces create an input and output JACK port.  The application makes
      these ports the endpoint of the call.  The audio coming from the channel
      goes out the output port and whatever comes back in on the input port is
      what gets sent to the channel.  The JACK_HOOK() function turns on a JACK
      audiohook on the channel.  This lets you run the audio coming from a
      channel through JACK, and whatever comes back in is what gets forwarded
      on as the channel's audio.  This is very useful for building custom
      vocoders or doing recording or analysis of the channel's audio in another
      application.
      
      In case anyone is curious, the platform that inspired me to write this is
      PureData (http://puredata.info/).  I wrote these JACK interfaces so that I
      could use Pd to do interesting things with the audio of phone calls ...
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f32aec9f
Loading