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. Jul 20, 2014
  3. May 09, 2014
  4. Mar 17, 2014
    • Mark Michelson's avatar
      Fix stuck channel in ARI through the introduction of synchronous bridge actions. · d44aefee
      Mark Michelson authored
      Playing back a file to a channel in an ARI bridge would attempt to wait until
      the playback concluded before returning. The method used involved signaling the
      waiting thread in the ARI custom playback function.
      
      The problem with this is that there were some corner cases that were not accounted for:
      * If a bridge channel could not be found, then we never would attempt the playback but
        would still attempt to wait for the playback to complete.
      * If the bridge playfile action failed to queue, we would still attempt to wait for the
        playback to complete.
      * If the bridge playfile action were queued but some circumstance caused the playback
        not to occur (the bridge dies, the channel is removed from the bridge), then we would
        never be notified.
      
      The solution to this is to move the waiting logic into the bridge code. A new bridge
      API function is added to queue a synchronous action on a bridge. The waiting thread
      is notified when the queued frame has been freed, either due to an error occurring
      or due to successful playback. As a failsafe, the waiting thread has a 10 minute
      timeout just in case there is a frame leak somewhere.
      
      Review: https://reviewboard.asterisk.org/r/3338
      ........
      
      Merged revisions 410673 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d44aefee
  5. Jan 17, 2014
    • Scott Griepentrog's avatar
      pjsip: fix support for allow=all · 2b14601b
      Scott Griepentrog authored
      This change adds improvements to support for allow=all in
      pjsip.conf so that it functions as intended.  Previously,
      the allow/disallow socery configuration would set & clear
      codecs from the media.codecs and media.prefs list, but if
      all was specified the prefs list was not updated.  Then a
      call would fail when create_outgoing_sdp_stream() created
      an SDP with no audio codecs.
      
      A new function ast_codec_pref_append_all() is provided to
      add all codecs to the prefs list - only those not already
      on the list.  This enables the configuration to specify a
      codec preference, but still add all codecs, and even then
      remove some codecs, as shown in this example:
      
      allow = ulaw, alaw, all, !g729, !g723
      
      Also, the display order of allow in cli output is updated
      to match the configuration by using prefs instead of caps
      when generating a human readable string.
      
      Finally, a change to create_outgoing_sdp_stream() skips a
      codec when it does not have a payload code instead of the
      call failing.
      
      (closes issue ASTERISK-23018)
      Reported by: xrobau
      Review: https://reviewboard.asterisk.org/r/3131/
      ........
      
      Merged revisions 405875 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@405876 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2b14601b
  6. Aug 23, 2013
    • Matthew Jordan's avatar
      Add pass through support for Opus and VP8; Opus format attribute negotiation · 4d348e85
      Matthew Jordan authored
      This patch adds pass through support for Opus and VP8. That includes:
      
      * Format attribute negotiation for Opus. Note that unlike some other codecs,
        the draft RFC specifies having spaces delimiting the attributes in addition
        to ';', so you have "attra=X; attrb=Y". This broke the attribute parsing in
        chan_sip, so a small tweak was also included in this patch for that.
      
      * A format attribute negotiation module for Opus, res_format_attr_opus
      
      * Fast picture update for VP8. Since VP8 uses a different RTCP packet number
        than FIR, this really is specific to VP8 at this time.
      
      Note that the format attribute negotiation in res_pjsip_sdp_rtp was written
      by mjordan. The rest of this patch was written completely by Lorenzo Miniero.
      
      Review: https://reviewboard.asterisk.org/r/2723/
      
      (closes issue ASTERISK-21981)
      Reported by: Tzafrir Cohen
      patches:
        asterisk_opus+vp8_passthrough_20130718.patch uploaded by lminiero (License 6518)
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397526 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4d348e85
  7. May 21, 2013
  8. Apr 08, 2013
    • David M. Lee's avatar
      Stasis application WebSocket support · a2a53cc3
      David M. Lee authored
      This is the API that binds the Stasis dialplan application to external
      Stasis applications. It also adds the beginnings of WebSocket
      application support.
      
      This module registers a dialplan function named Stasis, which is used
      to put a channel into the named Stasis app. As a channel enters and
      leaves the Stasis diaplan application, the Stasis app receives a
      'stasis-start' and 'stasis-end' events.
      
      Stasis apps register themselves using the stasis_app_register and
      stasis_app_unregister functions. Messages are sent to an application
      using stasis_app_send.
      
      Finally, Stasis apps control channels through the use of the
      stasis_app_control object, and the family of stasis_app_control_*
      functions.
      
      Other changes along for the ride are:
       * An ast_frame_dtor function that's RAII_VAR safe
       * Some common JSON encoders for name/number, timeval, and
         context/extension/priority
      
      Review: https://reviewboard.asterisk.org/r/2361/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@384879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      a2a53cc3
  9. Jan 31, 2013
  10. Jul 24, 2012
  11. Jun 15, 2012
  12. Mar 22, 2012
  13. Sep 07, 2011
  14. Jul 07, 2011
  15. Jun 30, 2011
  16. 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
  17. Feb 03, 2011
  18. Jun 17, 2010
  19. Jun 16, 2010
  20. Jun 11, 2010
  21. Apr 21, 2010
  22. Jan 26, 2010
  23. Jan 10, 2010
  24. Nov 06, 2009
  25. Nov 05, 2009
  26. Nov 04, 2009
  27. Oct 21, 2009
  28. Oct 08, 2009
    • Russell Bryant's avatar
      Merged revisions 222878 via svnmerge from · dd50b9e8
      Russell Bryant authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r222878 | russell | 2009-10-08 14:45:47 -0500 (Thu, 08 Oct 2009) | 44 lines
        
        Make filestream frame handling safer by isolating frames before returning them.
        
        This patch is related to a number of issues on the bug tracker that show
        crashes related to freeing frames that came from a filestream.  A number of
        fixes have been made over time while trying to figure out these problems, but
        there re still people seeing the crash.  (Note that some of these bug reports
        include information about other problems.  I am specifically addressing
        the filestream frame crash here.)
        
        I'm still not clear on what the exact problem is.  However, what is _very_
        clear is that we have seen quite a few problems over time related to unexpected
        behavior when we try to use embedded frames as an optimization.  In some cases,
        this optimization doesn't really provide much due to improvements made in other
        areas.
        
        In this case, the patch modifies filestream handling such that the embedded frame
        will not be returned.  ast_frisolate() is used to ensure that we end up with a
        completely mallocd frame.  In reality, though, we will not actually have to malloc
        every time.  For filestreams, the frame will almost always be allocated and freed
        in the same thread.  That means that the thread local frame cache will be used.
        So, going this route doesn't hurt.
        
        With this patch in place, some people have reported success in not seeing the
        crash anymore.
        
        (SWP-150)
        (AST-208)
        (ABE-1834)
        
        (issue #15609)
        Reported by: aragon
        Patches:
              filestream_frisolate-1.4.diff2.txt uploaded by russell (license 2)
        Tested by: aragon, russell
        
        (closes issue #15817)
        Reported by: zerohalo
        Tested by: zerohalo
        
        (closes issue #15845)
        Reported by: marhbere
        
        Review: https://reviewboard.asterisk.org/r/386/
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222880 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      dd50b9e8
  29. Sep 01, 2009
  30. Aug 10, 2009
  31. Jul 23, 2009
    • Kevin P. Fleming's avatar
      Rework of T.38 negotiation and UDPTL API to address interoperability problems · 0a6e06c7
      Kevin P. Fleming authored
      Over the past couple of months, a number of issues with Asterisk
      negotiating (and successfully completing) T.38 sessions with various
      endpoints have been found. This patch attempts to address many of
      them, primarily focused around ensuring that the endpoints'
      MaxDatagram size is honored, and in addition by ensuring that T.38
      session parameter negotiation is performed correctly according to the
      ITU T.38 Recommendation.
      
      The major changes here are:
      
      1) T.38 applications in Asterisk (app_fax) only generate/receive IFP
      packets, they do not ever work with UDPTL packets. As a result of
      this, they cannot be allowed to generate packets that would overflow
      the other endpoints' MaxDatagram size after the UDPTL stack adds any
      error correction information. With this patch, the application is told
      the maximum *IFP* size it can generate, based on a calculation using
      the far end MaxDatagram size and the active error correction mode on
      the T.38 session. The same is true for sending *our* MaxDatagram size
      to the remote endpoint; it is computed from the value that the
      application says it can accept (for a single IFP packet) combined with
      the active error correction mode.
      
      2) All treatment of T.38 session parameters as 'capabilities' in
      chan_sip has been removed; these parameters are not at all like
      audio/video stream capabilities. There are strict rules to follow for
      computing an answer to a T.38 offer, and chan_sip now follows those
      rules, using the desired parameters from the application (or channel)
      that wants to accept the T.38 negotiation.
      
      3) chan_sip now stores and forwards ast_control_t38_parameters
      structures for tracking 'our' and 'their' T.38 session parameters;
      this greatly simplifies negotiation, especially for pass-through
      calls.
      
      4) Since T.38 negotiation without specifying parameters or receiving
      the final negotiated parameters is not very worthwhile, the
      AST_CONTROL_T38 control frame has been removed. A note has been added
      to UPGRADE.txt about this removal, since any out-of-tree applications
      that use it will no longer function properly until they are upgraded
      to use AST_CONTROL_T38_PARAMETERS.
      
      Review: https://reviewboard.asterisk.org/r/310/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@208464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0a6e06c7
  32. Jun 26, 2009
  33. Jun 16, 2009
  34. 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
  35. May 18, 2009
  36. Mar 05, 2009
    • Kevin P. Fleming's avatar
      Merged revisions 180372 via svnmerge from · 2f24689b
      Kevin P. Fleming authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r180372 | kpfleming | 2009-03-05 12:22:16 -0600 (Thu, 05 Mar 2009) | 9 lines
        
        Fix problems when RTP packet frame size is changed
        
        During some code analysis, I found that calling ast_rtp_codec_setpref() on an ast_rtp session does not work as expected; it does not adjust the smoother that may on the RTP session, in fact it summarily drops it, even if it has data in it, even if the current format's framing size has not changed. This is not good.
        
        This patch changes this behavior, so that if the packetization size for the current format changes, any existing smoother is safely updated to use the new size, and if no smoother was present, one is created. A new API call for smoothers, ast_smoother_reconfigure(), was required to implement these changes.
        
        Review: http://reviewboard.digium.com/r/184/
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@180373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2f24689b
Loading