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. Apr 01, 2015
  3. Mar 31, 2015
    • Ashley Sanders's avatar
      stasis: set a channel variable on websocket disconnect error · 06578ef4
      Ashley Sanders authored
      When an error occurs while writing to a web socket, the web socket is
      disconnected and the event is logged. A side-effect of this, however, is that
      any application on the other side waiting for a response from Stasis is left
      hanging indefinitely (as there is no mechanism presently available for
      notifying interested parties about web socket error states in Stasis).
      
      To remedy this scenario, this patch introduces a new channel variable:
      STASISSTATUS.
      
      The possible values for STASISSTATUS are:
      SUCCESS         - The channel has exited Stasis without any failures
      FAILED          - Something caused Stasis to croak. Some (not all) possible
                        reasons for this:
                          - The app registry is not instantiated;
                          - The app requested is not registered;
                          - The app requested is not active;
                          - Stasis couldn't send a start message
      
      ASTERISK-24802
      Reported By: Kevin Harwell
      Review: https://reviewboard.asterisk.org/r/4519/
      ........
      
      Merged revisions 433839 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@433845 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      06578ef4
  4. Jul 25, 2014
  5. Jun 24, 2013
  6. May 14, 2013
    • David M. Lee's avatar
      Break res_stasis into smaller files. · e8f4ac6c
      David M. Lee authored
      When implementing playback for stasis-http, the monolithicedness of
      res_stasis really started to get in my way.
      
      This patch breaks the major components of res_stasis.c into individual
      files.
      
       * res/stasis/app.c - Stasis application tracking
       * res/stasis/control.c - Channel control objects
       * res/stasis/command.c - Channel command object
      
      This refactoring also allows res_stasis applications to be loaded as
      independent modules, such as the new res_stasis_answer module.
      
      The bulk of this patch is simply moving code from one file to another,
      adjusting names and adding accessors as necessary.
      
      Review: https://reviewboard.asterisk.org/r/2530/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@388729 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      e8f4ac6c
  7. May 10, 2013
  8. Apr 15, 2013
    • David M. Lee's avatar
      Moved core logic from app_stasis to res_stasis · c599aca5
      David M. Lee authored
      After some discussion on asterisk-dev, it was decided that the bulk of
      the logic in app_stasis actually belongs in a resource module instead
      of the application module.
      
      This patch does that, leaves the app specific stuff in app_stasis, and
      fixes up everything else to be consistent with that change.
      
       * Renamed test_app_stasis to test_res_stasis
       * Renamed app_stasis.h to stasis_app.h
         * This is still stasis application support, even though it's no
           longer in an app_ module. The name should never have been tied to
           the type of module, anyways.
       * Now that json isn't a resource module anymore, moved the
         ast_channel_snapshot_to_json function to main/stasis_channels.c,
         where it makes more sense.
      
      Review: https://reviewboard.asterisk.org/r/2430/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@385742 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c599aca5
    • David M. Lee's avatar
      DTMF events are now published on a channel's stasis_topic. AMI was · 2450722f
      David M. Lee authored
      refactored to use these events rather than producing the events directly
      in channel.c. Finally, the code was added to app_stasis to produce
      DTMF events on the WebSocket.
      
      The AMI events are completely backward compatible, including sending
      events on transmitted DTMF, and sending DTMF start events.
      
      The Stasis-HTTP events are somewhat simplified. Since DTMF start and
      DTMF send events are generally less useful, Stasis-HTTP will only send
      events on received DTMF end.
      
      (closes issue ASTERISK-21282)
      (closes issue ASTERISK-21359)
      Review: https://reviewboard.asterisk.org/r/2439
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@385734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2450722f
  9. Apr 09, 2013
  10. Apr 08, 2013
    • Matthew Jordan's avatar
      Add multi-channel Stasis messages; refactor Dial AMI events to Stasis · b8d4e573
      Matthew Jordan authored
      This patch does the following:
       * A new Stasis payload has been defined for multi-channel messages. This
         payload can store multiple ast_channel_snapshot objects along with a single
         JSON blob. The payload object itself is opaque; the snapshots are stored
         in a container keyed by roles. APIs have been provided to query for and
         retrieve the snapshots from the payload object.
       * The Dial AMI events have been refactored onto Stasis. This includes dial
         messages in app_dial, as well as the core dialing framework. The AMI events
         have been modified to send out a DialBegin/DialEnd events, as opposed to
         the subevent type that was previously used.
       * Stasis messages, types, and other objects related to channels have been
         placed in their own file, stasis_channels. Unit tests for some of these
         objects/messages have also been written.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@384910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b8d4e573
    • 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
Loading