Skip to content
Snippets Groups Projects
  1. May 09, 2014
  2. Apr 23, 2014
  3. Apr 15, 2014
  4. Apr 11, 2014
  5. 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
  6. May 29, 2013
    • Kinsey Moore's avatar
      Resolve a merge conflict · 6851801a
      Kinsey Moore authored
      When ast_channel_cached_blob_create was merged,
      ast_channel_blob_create_from_cache was partially removed in an
      unresolved merge conflict. This restores ast_channel_blob_create_from_cache
      and refactors usage of ast_channel_cached_blob_create (requires an
      ast_channel) to use ast_channel_blob_create_from_cache (requires a
      channel uniqueid) instead.
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@389974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      6851801a
  7. May 24, 2013
  8. May 10, 2012
  9. Feb 21, 2012
  10. Feb 20, 2012
  11. Feb 16, 2012
  12. Jan 27, 2012
  13. Jan 24, 2012
  14. 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
  15. Dec 16, 2011
  16. Jul 14, 2011
  17. Jul 20, 2010
  18. Apr 25, 2010
  19. Mar 24, 2010
    • Jeff Peeler's avatar
      Merged revisions 254235 via svnmerge from · 5990fe07
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r254235 | jpeeler | 2010-03-23 19:37:23 -0500 (Tue, 23 Mar 2010) | 72 lines
        
        Ensure that monitor recordings are written to the correct location (again)
        
        This is an extension to 248860. As such the dialplan test has been extended:
        
        ; non absolute path, not combined
        exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test)
        exten => 5040, n, dial(sip/5001)
        ; absolute path, not combined
        exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2)
        exten => 5041, n, dial(sip/5001)
        ; no path, not combined
        exten => 5042, 1, monitor(wav,monitor_test3)
        exten => 5042, n, dial(sip/5001)
        ; combined: changemonitor from non absolute to no path (leaves tmp/jeff)
        exten => 5043, 1, monitor(wav,tmp/jeff/monitor_test4,m)
        exten => 5043, n, changemonitor(monitor_test5)
        exten => 5043, n, dial(sip/5001)
        ; combined: changemonitor from no path to non absolute path
        exten => 5044, 1, monitor(wav,monitor_test6,m)
        exten => 5044, n, changemonitor(tmp/jeff/monitor_test7) ; this wasn't possible before
        exten => 5044, n, dial(sip/5001)
        ; non absolute path, combined
        exten => 5045, 1, monitor(wav,tmp/jeff/monitor_test8,m)
        exten => 5045, n, dial(sip/5001)
        ; absolute path, combined 
        exten => 5046, 1, monitor(wav,/tmp/jeff/monitor_test9,m)
        exten => 5046, n, dial(sip/5001)
        ; no path, combined
        exten => 5047, 1, monitor(wav,monitor_test10,m)
        exten => 5047, n, dial(sip/5001)
        ; combined: changemonitor from non absolute to absolute (leaves tmp/jeff)
        exten => 5048, 1, monitor(wav,tmp/jeff/monitor_test11,m)
        exten => 5048, n, changemonitor(/tmp/jeff/monitor_test12)
        exten => 5048, n, dial(sip/5001)
        ; combined: changemonitor from absolute to non absolute (leaves /tmp/jeff)
        exten => 5049, 1, monitor(wav,/tmp/jeff/monitor_test13,m)
        exten => 5049, n, changemonitor(tmp/jeff/monitor_test14)
        exten => 5049, n, dial(sip/5001)
        ; combined: changemonitor from no path to absolute
        exten => 5050, 1, monitor(wav,monitor_test15,m)
        exten => 5050, n, changemonitor(/tmp/jeff/monitor_test16)
        exten => 5050, n, dial(sip/5001)
        ; combined: changemonitor from absolute to no path (leaves /tmp/jeff)
        exten => 5051, 1, monitor(wav,/tmp/jeff/monitor_test17,m)
        exten => 5051, n, changemonitor(monitor_test18)
        exten => 5051, n, dial(sip/5001)
        ; not combined: changemonitor from non absolute to no path (leaves tmp/jeff)
        exten => 5052, 1, monitor(wav,tmp/jeff/monitor_test19)
        exten => 5052, n, changemonitor(monitor_test20)
        exten => 5052, n, dial(sip/5001)
        ; not combined: changemonitor from no path to non absolute
        exten => 5053, 1, monitor(wav,monitor_test21)
        exten => 5053, n, changemonitor(tmp/jeff/monitor_test22)
        exten => 5053, n, dial(sip/5001)
        ; not combined: changemonitor from non absolute to absolute (leaves tmp/jeff)
        exten => 5054, 1, monitor(wav,tmp/jeff/monitor_test23)
        exten => 5054, n, changemonitor(/tmp/jeff/monitor_test24)
        exten => 5054, n, dial(sip/5001)
        ; not combined: changemonitor from absolute to non absolute (leaves /tmp/jeff)
        exten => 5055, 1, monitor(wav,/tmp/jeff/monitor_test24)
        exten => 5055, n, changemonitor(tmp/jeff/monitor_test25)
        exten => 5055, n, dial(sip/5001)
        ; not combined: changemonitor from no path to absolute
        exten => 5056, 1, monitor(wav,monitor_test26)
        exten => 5056, n, changemonitor(/tmp/jeff/monitor_test27)
        exten => 5056, n, dial(sip/5001)
        ; not combined: changemonitor from absolute to no path (leaves /tmp/jeff)
        exten => 5057, 1, monitor(wav,/tmp/jeff/monitor_test28)
        exten => 5057, n, changemonitor(monitor_test29)
        exten => 5057, n, dial(sip/5001)
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@254277 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      5990fe07
  20. Feb 25, 2010
    • Jeff Peeler's avatar
      Merged revisions 248860 via svnmerge from · 406bb181
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r248860 | jpeeler | 2010-02-25 15:22:06 -0600 (Thu, 25 Feb 2010) | 18 lines
        
        Ensure that monitor recordings are written to the correct location (again)
        
        This is an extension to 248757. As such the dialplan test has been extended:
        
        exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test,b)
        exten => 5040, n, dial(sip/5001)
        exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2,b)
        exten => 5041, n, dial(sip/5001)
        exten => 5042, 1, monitor(wav,monitor_test3,b)
        exten => 5042, n, dial(sip/5001)
        exten => 5043, 1, monitor(wav,tmp/jeff/monitor_test3,m)
        exten => 5043, n, changemonitor(monitor_test4)
        exten => 5043, n, dial(sip/5001)
        exten => 5044, 1, monitor(wav,monitor_test4,m)
        exten => 5044, n, changemonitor(tmp/jeff/monitor_test5) ; this looks to fail by design and emits a warning
        exten => 5044, n, dial(sip/5001)
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248952 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      406bb181
    • Jeff Peeler's avatar
      Merged revisions 248757 via svnmerge from · d64987f8
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r248757 | jpeeler | 2010-02-25 12:06:54 -0600 (Thu, 25 Feb 2010) | 15 lines
        
        Ensure that monitor recordings are written to the correct location.
        
        Recordings should be placed in the monitor directory when a non-absolute path
        is used.
        
        Exact dialplan used for testing:
        exten => 5040, 1, monitor(wav,tmp/jeff/monitor_test,b)
        exten => 5040, n, dial(sip/5001)
        exten => 5041, 1, monitor(wav,/tmp/jeff/monitor_test2,b)
        exten => 5041, n, dial(sip/5001)
        exten => 5042, 1, monitor(wav,monitor_test3,b)
        exten => 5042, n, dial(sip/5001)
        
        ABE-2101
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248793 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d64987f8
  21. Dec 21, 2009
    • Jeff Peeler's avatar
      Merged revisions 235940 via svnmerge from · f95ee393
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r235940 | jpeeler | 2009-12-21 13:43:41 -0600 (Mon, 21 Dec 2009) | 13 lines
        
        Change Monitor to not assume file to write to does not contain pathing.
        
        227944 changed the fname_base argument to always append the configured monitor
        path. This change was necessary to properly compare files for uniqueness. 
        If a full path is given though, nothing needs to be appended and that is
        handled correctly now.
        
        (closes issue #16377)
        (closes issue #16376)
        Reported by: bcnit
        Patches:
              res_monitor.c-issue16376-1.patch uploaded by dant (license 670)
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@235941 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      f95ee393
  22. Nov 13, 2009
  23. Nov 04, 2009
    • Jeff Peeler's avatar
      Merged revisions 227944 via svnmerge from · b6290e0e
      Jeff Peeler authored
      https://origsvn.digium.com/svn/asterisk/branches/1.4
      
      ........
        r227944 | jpeeler | 2009-11-04 17:47:08 -0600 (Wed, 04 Nov 2009) | 14 lines
        
        Fix incorrect filename comparsion after monitor file change
        
        The logic to detect if a requested file is indeed a different file from the
        current file was incorrect. The main issue being confusion of the use of
        filename_base which was previously set without pathing information and then
        compared to another full path. Robust file comparison logic has been added
        to properly check if two files are the same even if symlinks are used.
        
        (closes issue #15313)
        Reported by: caspy
        Patches: 
              20091103__issue15313__1.4.diff.txt uploaded by jpeeler (license 325)
              but mostly tilghman's work
      ........
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b6290e0e
  24. Jun 15, 2009
    • Kevin P. Fleming's avatar
      Redesigned 'optional API' support. · 6c598781
      Kevin P. Fleming authored
      This patch provides a new implementation of the optional API support defined
      in asterisk/optional_api.h; this new version provides solves compatibility
      issues with the use of linker version scripts for suppressing global symbols.
      In addition, there is now a functional (and tested!) implementation for Mac OS/X,
      so module writers no longer need to use special tests before calling optional
      API functions. All future implementations must provide these same semantics,
      so that module writers can rely on them.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      6c598781
  25. Jun 01, 2009
  26. May 22, 2009
  27. 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
  28. May 18, 2009
  29. Apr 24, 2009
    • Russell Bryant's avatar
      Convert the ast_channel data structure over to the astobj2 framework. · cba19c8a
      Russell Bryant authored
      There is a lot that could be said about this, but the patch is a big 
      improvement for performance, stability, code maintainability, 
      and ease of future code development.
      
      The channel list is no longer an unsorted linked list.  The main container 
      for channels is an astobj2 hash table.  All of the code related to searching 
      for channels or iterating active channels has been rewritten.  Let n be 
      the number of active channels.  Iterating the channel list has gone from 
      O(n^2) to O(n).  Searching for a channel by name went from O(n) to O(1).  
      Searching for a channel by extension is still O(n), but uses a new method 
      for doing so, which is more efficient.
      
      The ast_channel object is now a reference counted object.  The benefits 
      here are plentiful.  Some benefits directly related to issues in the 
      previous code include:
      
      1) When threads other than the channel thread owning a channel wanted 
         access to a channel, it had to hold the lock on it to ensure that it didn't 
         go away.  This is no longer a requirement.  Holding a reference is 
         sufficient.
      
      2) There are places that now require less dealing with channel locks.
      
      3) There are places where channel locks are held for much shorter periods 
         of time.
      
      4) There are places where dealing with more than one channel at a time becomes 
         _MUCH_ easier.  ChanSpy is a great example of this.  Writing code in the 
         future that deals with multiple channels will be much easier.
      
      Some additional information regarding channel locking and reference count 
      handling can be found in channel.h, where a new section has been added that 
      discusses some of the rules associated with it.
      
      Mark Michelson also assisted with the development of this patch.  He did the 
      conversion of ChanSpy and introduced a new API, ast_autochan, which makes it 
      much easier to deal with holding on to a channel pointer for an extended period 
      of time and having it get automatically updated if the channel gets masqueraded.
      Mark was also a huge help in the code review process.
      
      Thanks to David Vossel for his assistance with this branch, as well.  David 
      did the conversion of the DAHDIScan application by making it become a wrapper 
      for ChanSpy internally.
      
      The changes come from the svn/asterisk/team/russell/ast_channel_ao2 branch.
      
      Review: http://reviewboard.digium.com/r/203/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@190423 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      cba19c8a
  30. Mar 23, 2009
  31. Dec 12, 2008
  32. Oct 09, 2008
  33. Feb 20, 2008
  34. Jan 31, 2008
  35. Dec 19, 2007
  36. Dec 18, 2007
  37. Dec 11, 2007
Loading