Skip to content
Snippets Groups Projects
  1. Mar 27, 2017
    • Joshua Colp's avatar
      channel: Remove old epoll support and fixed max number of file descriptors. · 5d938045
      Joshua Colp authored
      This change removes the old epoll support which has not been used or
      maintained in quite some time.
      
      The fixed number of file descriptors on a channel has also been removed.
      File descriptors are now contained in a growable vector. This can be
      used like before by specifying a specific position to store a file
      descriptor at or using a new API call, ast_channel_fd_add, which adds
      a file descriptor to the channel and returns its position.
      
      Tests have been added which cover the growing behavior of the vector
      and the new API call.
      
      ASTERISK-26885
      
      Change-Id: I1a754b506c009b83dfdeeb08c2d2815db30ef928
      5d938045
  2. 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
  3. Jun 04, 2016
    • Alexei Gradinari's avatar
      core/dial: New channel variable FORWARDERNAME · 3e8d523d
      Alexei Gradinari authored
      Added a new channel variable FORWARDERNAME which indicates which
      channel was responsible for a forwarding requests received on dial attempt.
      
      Fixed a bug in the app_queue: FORWARD_CONTEXT is not used.
      
      ASTERISK-26059 #close
      
      Change-Id: I34e93e8c1b5e17776a77b319703c48c8ca48e7b2
      3e8d523d
  4. May 31, 2016
    • Mark Michelson's avatar
      Expand the scope of Dial Events · 205a31f8
      Mark Michelson authored
      Dial events up to this point have come in two flavors
      * A Dial event with no status to indicate that dialing has begun
      * A Dial event with a status to indicate that dialing has ended
      
      With this change, Dial events have been expanded to also give
      intermediate events, such as "RINGING", "PROCEEDING", and "PROGRESS".
      This is especially useful for ARI dialing, as it gives the application
      writer the opportunity to place a channel into an early bridge when
      early media is detected.
      
      AMI handles these in-progress dial events by sending a new event called
      "DialState" that simply indicates that dial state has changed but has
      not ended. ARI never distinguished between DialBegin and DialEnd, so no
      change was made to the event itself.
      
      Another change here relates to dial forwards. A forward-related event
      was previously only sent when a channel was successfully able to forward
      a call to a new channel. With this set of changes, if forwarding is
      blocked, we send a Dial event with a forwarding destination but no
      forwarding channel, since we were prevented from creating one. This is
      again useful for ARI since application writers can now handle call
      forward attempts from within their own application.
      
      ASTERISK-25925 #close
      Reported by Mark Michelson
      
      Change-Id: I42cbec7730d84640a434d143a0d172a740995543
      205a31f8
  5. Apr 14, 2016
    • Mark Michelson's avatar
      Dial: Combine frame handling functions. · 5e64d7e7
      Mark Michelson authored
      There is a good amount of repetition in the two frame handling routines
      in the Dial API. This commit combines the two functions into one.
      
      This is in preparation for an upcoming commit that adds the ability to
      handle frames for a channel in a bridge.
      
      ASTERISK-25925
      Reported by Mark Michelson
      
      Change-Id: Iaae2f174e3058e774cb44e10659fcdfb85345c58
      5e64d7e7
  6. Apr 05, 2016
    • Mark Michelson's avatar
      Dial: Add function to append already-created channel. · ef4d3f13
      Mark Michelson authored
      The Dial API takes responsiblity for creating an outbound channel when
      calling ast_dial_append(). This commit adds a new function,
      ast_dial_append_channel(), which allows us to create the channel outside
      the Dial API and then to append the channel to the ast_dial structure.
      
      This is useful for situations where the channel's creation and dialing
      are distinct operations. Upcoming ARI early bridge work will illustrate
      its usage.
      
      ASTERISK-25889
      
      Change-Id: Id8179f64f8f99132f80dead8d5db2030fd2c0509
      ef4d3f13
  7. Nov 04, 2015
    • Matt Jordan's avatar
      main/dial: Protect access to the format_cap structure of the requesting channel · 9c293b51
      Matt Jordan authored
      When a dial attempt is made that involves a requesting channel, we previously
      were not:
      a) Protecting access to the native format capabilities structure on the
         requesting channel. That is inherently unsafe.
      b) Reference bumping the lifetime of the format capabilities structure.
      
      In both cases, something else could sneak in, blow away the format
      capabilities, and we'd be holding onto an invalid format_cap structure. When
      the newly created channel attempts to construct its format capabilities, things
      go poorly.
      
      This patch:
      a) Ensures that we get a reference to the native format capabilities while
         the requesting channel is locked
      b) Holds a reference to the native format capabilities during the creation
         of the new channel.
      
      ASTERISK-25522 #close
      
      Change-Id: I0bfb7ba8b9711f4158cbeaae96edf9626e88a54f
      9c293b51
  8. Sep 22, 2015
    • Richard Mudgett's avatar
      app_page.c: Fix crash when forwarding with a predial handler. · 06f4f80a
      Richard Mudgett authored
      Page uses the async method of dialing with the dial API.  When a call gets
      forwarded there is no calling channel available.  If the predial handler
      was set then the calling channel could not be put into auto-service
      for the forwarded call because it doesn't exist.  A crash is the result.
      
      * Moved the callee predial parameter string processing to before the
      string is passed to the dial API rather than having the dial API do it.
      There are a few benefits do doing this.  The first is the predial
      parameter string processing doesn't need to be done for each channel
      called by the dial API.  The second is in async mode and the forwarded
      channel is to have the predial handler executed on it then the
      non-existent calling channel does not need to be present to process the
      predial parameter string.
      
      * Don't start auto-service on a non-existent calling channel to execute
      the predial handler when the dial API is in async mode and forwarding a
      call.
      
      ASTERISK-25384 #close
      Reported by: Chet Stevens
      
      Change-Id: If53892b286d29f6cf955e2545b03dcffa2610981
      06f4f80a
  9. Apr 17, 2015
    • Mark Michelson's avatar
      Detect potential forwarding loops based on count. · aae45acb
      Mark Michelson authored
      A potential problem that can arise is the following:
      
      * Bob's phone is programmed to automatically forward to Carol.
      * Carol's phone is programmed to automatically forward to Bob.
      * Alice calls Bob.
      
      If left unchecked, this results in an endless loops of call forwards
      that would eventually result in some sort of fiery crash.
      
      Asterisk's method of solving this issue was to track which interfaces
      had been dialed. If a destination were dialed a second time, then
      the attempt to call that destination would fail since a loop was
      detected.
      
      The problem with this method is that call forwarding has evolved. Some
      SIP phones allow for a user to manually forward an incoming call to an
      ad-hoc destination. This can mean that:
      
      * There are legitimate use cases where a device may be dialed multiple
      times, or
      * There can be human error when forwarding calls.
      
      This change removes the old method of detecting forwarding loops in
      favor of keeping a count of the number of destinations a channel has
      dialed on a particular branch of a call. If the number exceeds the
      set number of max forwards, then the call fails. This approach has
      the following advantages over the old:
      
      * It is much simpler.
      * It can detect loops involving local channels.
      * It is user configurable.
      
      The only disadvantage it has is that in the case where there is a
      legitimate forwarding loop present, it takes longer to detect it.
      However, the forwarding loop is still properly detected and the
      call is cleaned up as it should be.
      
      Address review feedback on gerrit.
      
      * Correct "mfgium" to "Digium"
      * Decrement max forwards by one in the case where allocation of the
        max forwards datastore is required.
      * Remove irrelevant code change from pjsip_global_headers.c
      
      ASTERISK-24958 #close
      
      Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
      aae45acb
  10. 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
  11. Mar 13, 2015
  12. Feb 26, 2015
    • Scott Griepentrog's avatar
      Dial API: add self destruct option when complete · d79670b2
      Scott Griepentrog authored
      This patch adds a self-destruction option to the
      dial api.  The usefulness of this is mostly when
      using async mode to spawn a separate thread used
      to handle the new call, while the calling thread
      is allowed to go on about other business.
      
      The only alternative to this option would be the
      calling thread spawning a new thread, or hanging
      around itself waiting to destroy the dial struct
      after completion.
      
      Example of use (minus error checking):
      
        struct ast_dial *dial = ast_dial_create();
      
        ast_dial_append(dial, "PJSIP", "200", NULL);
      
        ast_dial_option_global_enable(dial, AST_DIAL_OPTION_ANSWER_EXEC, "Echo");
        ast_dial_option_global_enable(dial, AST_DIAL_OPTION_SELF_DESTROY, NULL);
      
        ast_dial_run(dial, NULL, 1);
      
      The dial_run call will return almost immediately
      after spawning the new thread to run and monitor
      the dial.  If the call is answered, it is placed
      into the echo app.  When completed, it will call
      ast_dial_destroy() on the dial structure.
      
      Note that any allocations made to pass values to
      ast_dial_set_user_data() or dial options must be
      free'd in a state callback function on any of:
        AST_DIAL_RESULT_UNASWERED,
        AST_DIAL_RESULT_ANSWERED,
        AST_DIAL_RESULT_HANGUP, or 
        AST_DIAL_RESULT_TIMEOUT.
      
      Review: https://reviewboard.asterisk.org/r/4443/
      ........
      
      Merged revisions 432385 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432386 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d79670b2
  13. Sep 05, 2014
  14. Jul 24, 2014
    • Richard Mudgett's avatar
      accountcode: Slightly change accountcode propagation. · a2ce95d9
      Richard Mudgett authored
      The previous behavior was to simply set the accountcode of an outgoing
      channel to the accountcode of the channel initiating the call.  It was
      done this way a long time ago to allow the accountcode set on the SIP/100
      channel to be propagated to a local channel so the dialplan execution on
      the Local;2 channel would have the SIP/100 accountcode available.
      
      SIP/100 -> Local;1/Local;2 -> SIP/200
      
      Propagating the SIP/100 accountcode to the local channels is very useful.
      Without any dialplan manipulation, all channels in this call would have
      the same accountcode.
      
      Using dialplan, you can set a different accountcode on the SIP/200 channel
      either by setting the accountcode on the Local;2 channel or by the Dial
      application's b(pre-dial), M(macro) or U(gosub) options, or by the
      FollowMe application's b(pre-dial) option, or by the Queue application's
      macro or gosub options.  Before Asterisk v12, the altered accountcode on
      SIP/200 will remain until the local channels optimize out and the
      accountcode would change to the SIP/100 accountcode.
      
      Asterisk v1.8 attempted to add peeraccount support but ultimately had to
      punt on the support.  The peeraccount support was rendered useless because
      of how the CDR code needed to unconditionally force the caller's
      accountcode onto the peer channel's accountcode.  The CEL events were thus
      intentionally made to always use the channel's accountcode as the
      peeraccount value.
      
      With the arrival of Asterisk v12, the situation has improved somewhat so
      peeraccount support can be made to work.  Using the indicated example, the
      the accountcode values become as follows when the peeraccount is set on
      SIP/100 before calling SIP/200:
      
      SIP/100 ---> Local;1 ---- Local;2 ---> SIP/200
      acct: 100 \/ acct: 200 \/ acct: 100 \/ acct: 200
      peer: 200 /\ peer: 100 /\ peer: 200 /\ peer: 100
      
      If a channel already has an accountcode it can only change by the
      following explicit user actions:
      
      1) A channel originate method that can specify an accountcode to use.
      
      2) The calling channel propagating its non-empty peeraccount or its
      non-empty accountcode if the peeraccount was empty to the outgoing
      channel's accountcode before initiating the dial.  e.g., Dial and
      FollowMe.  The exception to this propagation method is Queue.  Queue will
      only propagate peeraccounts this way only if the outgoing channel does not
      have an accountcode.
      
      3) Dialplan using CHANNEL(accountcode).
      
      4) Dialplan using CHANNEL(peeraccount) on the other end of a local
      channel pair.
      
      If a channel does not have an accountcode it can get one from the
      following places:
      
      1) The channel driver's configuration at channel creation.
      
      2) Explicit user action as already indicated.
      
      3) Entering a basic or stasis-mixing bridge from a peer channel's
      peeraccount value.
      
      You can specify the accountcode for an outgoing channel by setting the
      CHANNEL(peeraccount) before using the Dial, FollowMe, and Queue
      applications.  Queue adds the wrinkle that it will not overwrite an
      existing accountcode on the outgoing channel with the calling channels
      values.
      
      Accountcode and peeraccount values propagate to an outgoing channel before
      dialing.  Accountcodes also propagate when channels enter or leave a basic
      or stasis-mixing bridge.  The peeraccount value only makes sense for
      mixing bridges with two channels; it is meaningless otherwise.
      
      * Made peeraccount functional by changing accountcode propagation as
      described above.
      
      * Fixed CEL extracting the wrong ie value for the peeraccount.  This was
      done intentionally in Asterisk v1.8 when that version had to punt on
      peeraccount.
      
      * Fixed a few places dealing with accountcodes that were reading from
      channels without the lock held.
      
      AFS-65 #close
      
      Review: https://reviewboard.asterisk.org/r/3601/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@419520 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      a2ce95d9
  15. Jul 21, 2014
  16. Jul 20, 2014
  17. Jun 13, 2014
    • Matthew Jordan's avatar
      stasis: Reduce creation of channel snapshots to improve performance · 9cc1a8e8
      Matthew Jordan authored
      During some performance testing of Asterisk with AGI, ARI, and lots of Local
      channels, we noticed that there's quite a hit in performance during channel
      creation and releasing to the dialplan (ARI continue). After investigating
      the performance spike that occurs during channel creation, we discovered
      that we create a lot of channel snapshots that are technically unnecessary.
      This includes creating snapshots during:
       * AGI execution
       * Returning objects for ARI commands
       * During some Local channel operations
       * During some dialling operations
       * During variable setting
       * During some bridging operations
      And more.
      
      This patch does the following:
       - It removes a number of fields from channel snapshots. These fields were
         rarely used, were expensive to have on the snapshot, and hurt performance.
         This included formats, translation paths, Log Call ID, callgroup, pickup
         group, and all channel variables. As a result, AMI Status,
         "core show channel", "core show channelvar", and "pjsip show channel" were
         modified to either hit the live channel or not show certain pieces of data.
         While this is unfortunate, the performance gain from this patch is worth
         the loss in behaviour.
       - It adds a mechanism to publish a cached snapshot + blob. A large number of
         publications were changed to use this, including:
         - During Dial begin
         - During Variable assignment (if no AMI variables are emitted - if AMI
           variables are set, we have to make snapshots when a variable is changed)
         - During channel pickup
         - When a channel is put on hold/unhold
         - When a DTMF digit is begun/ended
         - When creating a bridge snapshot
         - When an AOC event is raised
         - During Local channel optimization/Local bridging
         - When endpoint snapshots are generated
         - All AGI events
         - All ARI responses that return a channel
         - Events in the AgentPool, MeetMe, and some in Queue
       - Additionally, some extraneous channel snapshots were being made that were
         unnecessary. These were removed.
       - The result of ast_hashtab_hash_string is now cached in stasis_cache. This
         reduces a large number of calls to ast_hashtab_hash_string, which reduced
         the amount of time spent in this function in gprof by around 50%.
      
      #ASTERISK-23811 #close
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/3568/
      ........
      
      Merged revisions 416211 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@416216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      9cc1a8e8
  18. Apr 18, 2014
    • Richard Mudgett's avatar
      Originated calls: Fix several originate call problems. · 51b6c496
      Richard Mudgett authored
      * Restore the reason value set by pbx_outgoing_attempt() to use
      AST_CONTROL_xxx values as all the consumers were expecting rather than
      cause codes.
      
      * Fixed the dial routines to set cause codes for more than just
      ast_request() so pbx_outgoing_attempt() reason codes will function.
      
      * Fix inconsistent locked_channel return status in pbx_outgoing_attempt().
      The chanel may not have been locked or the channel may have been a stale
      pointer.
      
      * Fixed the OutgoingSpoolFailed channel to run dialplan whenever the
      dialing fails for an originate exten and 1 < synchronous.
      
      * Fix incorrect ast_cond_wait() usage in pbx_outgoing_attempt().
      Indroduced by issue ASTERISK-22212 patch.
      
      * Made struct pbx_outgoing use the ao2 lock instead of its own lock for
      the cond wait mutex.  No sense in having two locks associated with the
      same struct when only one is needed.
      
      Review: https://reviewboard.asterisk.org/r/3421/
      ........
      
      Merged revisions 412581 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      51b6c496
  19. Mar 20, 2014
    • Richard Mudgett's avatar
      assigned-uniqueids: Miscellaneous cleanup and fixes. · 1ba13718
      Richard Mudgett authored
      * Fix memory leak in ast_unreal_new_channels().  Made it generate the ;2
      uniqueid on a stack variable instead of mallocing it.
      
      * Made send error response to ARI and AMI requests instead of just logging
      excessive uniqueid length and allowing truncation.  action_originate() and
      ari_channels_handle_originate_with_id().
      
      * Fixed minor truncating uniqueid hole when generating the ;2 uniqueid
      string length.  Created public and internal lengths of uniqueid.  The
      internal length can handle a max public uniqueid plus an appended ;2.
      
      * free() and ast_free() are NULL tolerant so they don't need a NULL test
      before calling.
      
      * Made use better struct initialization format instead of the position
      dependent initialization format.  Also anything not explicitly initialized
      in the struct is initialized to zero by the compiler.
      
      * Made ast_channel_internal_set_fake_ids() use the safer
      ast_copy_string() instead of strncpy().
      
      Review: https://reviewboard.asterisk.org/r/3371/
      ........
      
      Merged revisions 410949 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410950 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      1ba13718
  20. Mar 07, 2014
    • Scott Griepentrog's avatar
      uniqueid: channel linkedid, ami, ari object creation with id's · 80ef9a21
      Scott Griepentrog authored
      Much needed was a way to assign id to objects on creation, and
      much change was necessary to accomplish it.  Channel uniqueids
      and linkedids are split into separate string and creation time
      components without breaking linkedid propgation.  This allowed
      the uniqueid to be specified by the user interface - and those
      values are now carried through to channel creation, adding the
      assignedids value to every function in the chain including the
      channel drivers. For local channels, the second channel can be
      specified or left to default to a ;2 suffix of first.  In ARI,
      bridge, playback, and snoop objects can also be created with a
      specified uniqueid.
      
      Along the way, the args order to allocating channels was fixed
      in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
      masquerade occurs.
      
      (closes issue ASTERISK-23120)
      Review: https://reviewboard.asterisk.org/r/3191/
      ........
      
      Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      80ef9a21
  21. Dec 18, 2013
    • Kevin Harwell's avatar
      channel locking: Add locking for channel snapshot creation · 28c0cb28
      Kevin Harwell authored
      Original commit message by mmichelson (asterisk 12 r403311):
      
      "This adds channel locks around calls to create channel snapshots as well
      as other functions which operate on a channel and then end up
      creating a channel snapshot. Functions that expect the channel to be
      locked prior to being called have had their documentation updated to
      indicate such."
      
      The above was initially committed and then reverted at r403398.  The problem
      was found to be in core_local.c in the publish_local_bridge_message function.
      The ast_unreal_lock_all function locks and adds a reference to the returned
      channels and while they were being unlocked they were not being unreffed when
      no longer needed.  Fixed by unreffing the channels.
      
      Also in bridge.c a lock was obtained on "other->chan", but then an attempt was
      made to unlock "other" and not the previously locked channel.  Fixed by
      unlocking "other->chan"
      
      (closes issue ASTERISK-22709)
      Reported by: John Bigelow
      ........
      
      Merged revisions 404237 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404260 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      28c0cb28
  22. Dec 14, 2013
  23. Dec 09, 2013
  24. Dec 05, 2013
  25. Dec 03, 2013
  26. Oct 03, 2013
  27. Oct 02, 2013
  28. Sep 20, 2013
  29. Jul 17, 2013
  30. Jun 17, 2013
    • Matthew Jordan's avatar
      Update Asterisk's CDRs for the new bridging framework · 6258bbe7
      Matthew Jordan authored
      This patch is the initial push to update Asterisk's CDR engine for the new
      bridging framework. This patch guts the existing CDR engine and builds the new
      on top of messages coming across Stasis. As changes in channel state and bridge
      state are detected, CDRs are built and dispatched accordingly. This
      fundamentally changes CDRs in a few ways.
      (1) CDRs are now *very* reflective of the actual state of channels and bridges.
          This means CDRs track well with what an actual channel is doing - which
          is useful in transfer scenarios (which were previously difficult to pin
          down). It does, however, mean that CDRs cannot be 'fooled'. Previous
          behavior in Asterisk allowed for CDR applications, channels, and other
          properties to be spoofed in parts of the code - this no longer works.
      (2) CDRs have defined behavior in multi-party scenarios. This behavior will not
          be what everyone wants, but it is a defined behavior and as such, it is
          predictable.
      (3) The CDR manipulation functions and applications have been overhauled. Major
          changes have been made to ResetCDR and ForkCDR in particular. Many of the
          options for these two applications no longer made any sense with the new
          framework and the (slightly) more immutable nature of CDRs.
      
      There are a plethora of other changes. For a full description of CDR behavior,
      see the CDR specification on the Asterisk wiki.
      
      (closes issue ASTERISK-21196)
      
      Review: https://reviewboard.asterisk.org/r/2486/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@391947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      6258bbe7
  31. May 22, 2013
  32. May 18, 2013
  33. May 17, 2013
    • Matthew Jordan's avatar
      Publish the outbound channel's application/data when dialing · d04f1fd6
      Matthew Jordan authored
      This patch does two things:
      * It fixes a bug where the outbound channel's application/data set by the
        dialing API/app_dial is not communicated until the channel is hung up.
        If that happens, AMI would incorrectly send a NewExten event immediately
        after a Hangup. This isn't really AMI's fault, as the dialing APIs never
        communicated the 'helpful' app/data on the outbound channel until it was
        hungup.
      * It makes public sending a stasis message about a change in channel state.
        This is useful enough that - for now at least - it should be public. If
        operations on a channel go to being more coarse-grained, this function
        could be made private again.
      
      Review: https://reviewboard.asterisk.org/r/2548
      
      Note that this problem was found and reported by Matt DiMeo.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@388976 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d04f1fd6
  34. 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
  35. Feb 05, 2013
  36. 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
  37. May 14, 2012
    • Kinsey Moore's avatar
      Commit framework for HANGUPCAUSE (replacement for SIP_CAUSE) · b5a6de76
      Kinsey Moore authored
      This is the starting point for the Asterisk 11: Who Hung Up work and provides
      a framework which will allow channel drivers to report the types of hangup
      cause information available in SIP_CAUSE without incurring the overhead of the
      MASTER_CHANNEL dialplan function. The initial implementation only includes
      cause generation for chan_sip and does not include cause code translation
      utilities.
      
      This change deprecates SIP_CAUSE and replaces its method of reporting cause
      codes with the new framework. This change also deprecates the 'storesipcause'
      option in sip.conf.
      
      Review: https://reviewboard.asterisk.org/r/1822/
      (Closes issue SWP-4221)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@366408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b5a6de76
  38. Mar 29, 2012
Loading