Skip to content
Snippets Groups Projects
  1. Nov 20, 2017
  2. Jan 17, 2017
    • Kevin Harwell's avatar
      abstract/fixed/adpative jitter buffer: disallow frame re-inserts · 283c16c6
      Kevin Harwell authored
      It was possible for a frame to be re-inserted into a jitter buffer after it
      had been removed from it. A case when this happened was if a frame was read
      out of the jitterbuffer, passed to the translation core, and then multiple
      frames were returned from said translation core. Upon multiple frames being
      returned the first is passed on, but sebsequently "chained" frames are put
      back into the read queue. Thus it was possible for a frame to go back into
      the jitter buffer where this would cause problems.
      
      This patch adds a flag to frames that are inserted into the channel's read
      queue after translation. The abstract jitter buffer code then checks for this
      flag and ignores any frames marked as such.
      
      Change-Id: I276c44edc9dcff61e606242f71274265c7779587
      283c16c6
  3. 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
  4. 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
  5. Nov 02, 2014
  6. Sep 26, 2014
  7. Jul 28, 2014
  8. Jul 20, 2014
  9. May 09, 2014
  10. Sep 18, 2013
  11. Aug 22, 2013
  12. Jul 30, 2013
  13. May 21, 2013
  14. Jul 23, 2012
    • Matthew Jordan's avatar
      Unit tests for the Jitter Buffer API; remove unnecessary resync · b6a0ae0b
      Matthew Jordan authored
      This patch includes the following:
      * Unit tests for the abstract Jitter Buffer API.  This includes both fixed
        and adaptive flavors, testing nominal creation, frame input, frame retrieval,
        resyncing; off nominal frame input overflow, out of order, and others.
      * Tweaks to the abstract_jb API to remove the unnecessary resync_threshold
        parameter from the create function (resync_threshold is already in the
        struct passed into the create function)
      * Ensure the fixed jitter buffer is empty before destroying it, to avoid an
        ASSERT
      * Don't "resync" the adaptive jitter buffer.  The mechanism that was being
        used actually causes the jitter buffer to think its being overflowed by going
        around the jitterbuf API and attempting to 'resynch' it improperly.  If a
        resync is needed, the jitter buffer will do it properly by itself.  Note that
        this is only an optimization needed for trunk, as the worst that happens is 
        the loss of three voice packets before the adaptive jitter buffer will resync
        anyway.
        
      Review: https://reviewboard.asterisk.org/r/2035
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370387 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b6a0ae0b
  15. Jun 15, 2012
    • Kevin P. Fleming's avatar
      Multiple revisions 369001-369002 · 166b4e2b
      Kevin P. Fleming authored
      ........
        r369001 | kpfleming | 2012-06-15 10:56:08 -0500 (Fri, 15 Jun 2012) | 11 lines
        
        Add support-level indications to many more source files.
        
        Since we now have tools that scan through the source tree looking for files
        with specific support levels, we need to ensure that every file that is
        a component of a 'core' or 'extended' module (or the main Asterisk binary)
        is explicitly marked with its support level. This patch adds support-level
        indications to many more source files in tree, but avoids adding them to
        third-party libraries that are included in the tree and to source files
        that don't end up involved in Asterisk itself.
      ........
        r369002 | kpfleming | 2012-06-15 10:57:14 -0500 (Fri, 15 Jun 2012) | 3 lines
        
        Add a script to enable finding source files without support-levels defined.
      ........
      
      Merged revisions 369001-369002 from http://svn.asterisk.org/svn/asterisk/branches/1.8
      ........
      
      Merged revisions 369005 from http://svn.asterisk.org/svn/asterisk/branches/10
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369013 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      166b4e2b
  16. Feb 29, 2012
  17. Feb 20, 2012
  18. 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
  19. Apr 20, 2011
  20. Feb 03, 2011
  21. Dec 02, 2010
  22. Mar 10, 2010
    • Jeff Peeler's avatar
      Fix jitterbuffer logging not creating logfiles. · 94c83aca
      Jeff Peeler authored
      Three changes made here:
      1) Do not fail if a previous log does not exist (in fact, this is probably
      expected).
      2) Ensure that the file descriptor to write to gets assigned properly. I am at
      a loss as to why assigning safe_fd outside the if fixes this, but it makes
      the if statement slightly less complicated anyway.
      3) Move up the failure message so that the errno of the failure is not
      overwritten by fclose.
      
      (closes issue #16917)
      Reported by: Artem
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@251631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      94c83aca
  23. Mar 02, 2010
    • David Vossel's avatar
      fixes adaptive jitterbuffer configuration · 862ebf4d
      David Vossel authored
      When configuring the adaptive jitterbuffer, the target_extra
      value not only could not be set from the configuration, but was
      not even being set to its proper default.  This value is required
      in order for the adaptive jitterbuffer to work correctly.  To resolve
      this a config option has been added to expose this value to the conf
      files, and a default value is provided when no config specific value
      is present.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      862ebf4d
  24. Nov 06, 2009
  25. Nov 04, 2009
  26. 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
  27. Mar 04, 2009
  28. Jan 22, 2009
  29. Aug 10, 2008
  30. Aug 06, 2008
    • Mark Michelson's avatar
      Merged revisions 135841,135847,135850 via svnmerge from · 89c28442
      Mark Michelson authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r135841 | mmichelson | 2008-08-05 19:25:10 -0500 (Tue, 05 Aug 2008) | 27 lines
      
      Merging the issue11259 branch.
      
      The purpose of this branch was to take into account
      "burps" which could cause jitterbuffers to misbehave.
      One such example is if the L option to Dial() were used
      to inject audio into a bridged conversation at regular
      intervals. Since the audio here was not passed through
      the jitterbuffer, it would cause a gap in the jitterbuffer's
      timestamps which would cause a frames to be dropped for a 
      brief period.
      
      Now ast_generic_bridge will empty and reset the jitterbuffer
      each time it is called. This causes injected audio to be handled
      properly.
      
      ast_generic_bridge also will empty and reset the jitterbuffer
      if it receives an AST_CONTROL_SRCUPDATE frame since the change
      in audio source could negatively affect the jitterbuffer.
      
      All of this was made possible by adding a new public API call
      to the abstract_jb called ast_jb_empty_and_reset.
      
      (closes issue #11259)
      Reported by: plack
      Tested by: putnopvut
      
      
      ........
      r135847 | mmichelson | 2008-08-05 19:27:54 -0500 (Tue, 05 Aug 2008) | 4 lines
      
      Revert inadvertent changes to app_skel that occurred when
      I was testing for a memory leak
      
      
      ........
      r135850 | mmichelson | 2008-08-05 19:29:54 -0500 (Tue, 05 Aug 2008) | 3 lines
      
      Remove properties that should not be here
      
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@135851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      89c28442
  31. Jul 11, 2008
  32. Jun 11, 2008
  33. May 22, 2008
    • Michiel van Baak's avatar
      - revert change to ast_queue_hangup and create ast_queue_hangup_with_cause · f1e9371d
      Michiel van Baak authored
      - make data member of the ast_frame struct a named union instead of a void
      
      Recently the ast_queue_hangup function got a new parameter, the hangupcause
      Feedback came in that this is no good and that instead a new function should be created.
      This I did.
      
      The hangupcause was stored in the seqno member of the ast_frame struct. This is not very
      elegant, and since there's already a data member that one should be used.
      Problem is, this member was a void *.
      Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone
      wants to store another type in there in the future.
      
      This commit is so massive, because all ast_frame.data uses have to be
      altered to ast_frame.data.data
      
      Thanks russellb and kpfleming for the feedback.
      
      (closes issue #12674)
      Reported by: mvanbaak
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f1e9371d
  34. May 14, 2008
  35. Jan 22, 2008
  36. Jan 15, 2008
    • Russell Bryant's avatar
      Merged revisions 98943 via svnmerge from · 4fb04cb5
      Russell Bryant authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
      r98943 | russell | 2008-01-15 17:26:52 -0600 (Tue, 15 Jan 2008) | 25 lines
      
      Commit a fix for some memory access errors pointed out by the valgrind2.txt
      output on issue #11698.
      
      The issue here is that it is possible for an instance of a translator to get
      destroyed while the frame allocated as a part of the translator is still being
      processed.  Specifically, this is possible anywhere between a call to ast_read()
      and ast_frame_free(), which is _a lot_ of places in the code.  The reason this
      happens is that the channel might get masqueraded during this time.  During a
      masquerade, existing translation paths get destroyed.
      
      So, this patch fixes the issue in an API and ABI compatible way.  (This one is
       for you, paravoid!)
      
      It changes an int in ast_frame to be used as flag bits.  The 1 bit is still used
      to indicate that the frame contains timing information.  Also, a second flag has
      been added to indicate that the frame came from a translator.  When a frame with
      this flag gets released and has this flag, a function is called in translate.c to
      let it know that this frame is doing being processed.  At this point, the flag gets
      cleared.  Also, if the translator was requested to be destroyed while its internal
      frame still had this flag set, its destruction has been deffered until it finds out
      that the frame is no longer being processed.
      
      Admittedly, this feels like a hack.  But, it does fix the issue, and I was not able 
      to think of a better solution ...
      
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4fb04cb5
  37. Nov 28, 2007
  38. Nov 21, 2007
  39. Nov 19, 2007
Loading