Skip to content
Snippets Groups Projects
  1. Aug 02, 2013
  2. Feb 19, 2013
  3. 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
  4. Apr 19, 2012
  5. Mar 13, 2012
  6. Mar 01, 2012
  7. Feb 29, 2012
  8. Feb 20, 2012
  9. Feb 13, 2012
  10. Jan 27, 2012
  11. Jan 24, 2012
  12. 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
  13. Jul 14, 2010
    • Richard Mudgett's avatar
      Expand the caller ANI field to an ast_party_id · cf7bbcc4
      Richard Mudgett authored
      Expand the ani field in ast_party_caller and ast_party_connected_line to
      an ast_party_id.
      
      This is an extension to the ast_callerid restructuring patch in review:
      https://reviewboard.asterisk.org/r/702/
      
      Review: https://reviewboard.asterisk.org/r/744/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      cf7bbcc4
    • Richard Mudgett's avatar
      Make compile again. · 2cf60bb0
      Richard Mudgett authored
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276391 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2cf60bb0
    • Richard Mudgett's avatar
      ast_callerid restructuring · ec37ffbd
      Richard Mudgett authored
      The purpose of this patch is to eliminate struct ast_callerid since it has
      turned into a miscellaneous collection of various party information.
      
      Eliminate struct ast_callerid and replace it with the following struct
      organization:
      
      struct ast_party_name {
      	char *str;
      	int char_set;
      	int presentation;
      	unsigned char valid;
      };
      struct ast_party_number {
      	char *str;
      	int plan;
      	int presentation;
      	unsigned char valid;
      };
      struct ast_party_subaddress {
      	char *str;
      	int type;
      	unsigned char odd_even_indicator;
      	unsigned char valid;
      };
      struct ast_party_id {
      	struct ast_party_name name;
      	struct ast_party_number number;
      	struct ast_party_subaddress subaddress;
      	char *tag;
      };
      struct ast_party_dialed {
      	struct {
      		char *str;
      		int plan;
      	} number;
      	struct ast_party_subaddress subaddress;
      	int transit_network_select;
      };
      struct ast_party_caller {
      	struct ast_party_id id;
      	char *ani;
      	int ani2;
      };
      
      The new organization adds some new information as well.
      
      * The party name and number now have their own presentation value that can
      be manipulated independently.  ISDN supplies the presentation value for
      the name and number at different times with the possibility that they
      could be different.
      
      * The party name and number now have a valid flag.  Before this change the
      name or number string could be empty if the presentation were restricted.
      Most channel drivers assume that the name or number is then simply not
      available instead of indicating that the name or number was restricted.
      
      * The party name now has a character set value.  SIP and Q.SIG have the
      ability to indicate what character set a name string is using so it could
      be presented properly.
      
      * The dialed party now has a numbering plan value that could be useful to
      have available.
      
      The various channel drivers will need to be updated to support the new
      core features as needed.  They have simply been converted to supply
      current functionality at this time.
      
      
      The following items of note were either corrected or enhanced:
      
      * The CONNECTEDLINE() and REDIRECTING() dialplan functions were
      consolidated into func_callerid.c to share party id handling code.
      
      * CALLERPRES() is now deprecated because the name and number have their
      own presentation values.
      
      * Fixed app_alarmreceiver.c write_metadata().  The workstring[] could
      contain garbage.  It also can only contain the caller id number so using
      ast_callerid_parse() on it is silly.  There was also a typo in the
      CALLERNAME if test.
      
      * Fixed app_rpt.c using ast_callerid_parse() on the channel's caller id
      number string.  ast_callerid_parse() alters the given buffer which in this
      case is the channel's caller id number string.  Then using
      ast_shrink_phone_number() could alter it even more.
      
      * Fixed caller ID name and number memory leak in chan_usbradio.c.
      
      * Fixed uninitialized char arrays cid_num[] and cid_name[] in
      sig_analog.c.
      
      * Protected access to a caller channel with lock in chan_sip.c.
      
      * Clarified intent of code in app_meetme.c sla_ring_station() and
      dial_trunk().  Also made save all caller ID data instead of just the name
      and number strings.
      
      * Simplified cdr.c set_one_cid().  It hand coded the ast_callerid_merge()
      function.
      
      * Corrected some weirdness with app_privacy.c's use of caller
      presentation.
      
      Review:	https://reviewboard.asterisk.org/r/702/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      ec37ffbd
  14. Apr 03, 2010
  15. Oct 21, 2009
    • Kevin P. Fleming's avatar
      Finish implementaton of astobj2 OBJ_MULTIPLE, and convert ast_channel_iterator to use it. · cdd1f9e2
      Kevin P. Fleming authored
      This patch finishes the implementation of OBJ_MULTIPLE in astobj2 (the
      case where multiple results need to be returned; OBJ_NODATA mode
      already was supported). In addition, it converts ast_channel_iterators
      (only the targeted versions, not the ones that iterate over all
      channels) to use this method.
      
      During this work, I removed the 'ao2_flags' arguments to the
      ast_channel_iterator constructor functions; there were no uses of that
      argument yet, there is only one possible flag to pass, and it made the
      iterators less 'opaque'. If at some point in the future someone really
      needs an ast_channel_iterator that does not lock the container, we can
      provide constructor(s) for that purpose.
      
      Review: https://reviewboard.asterisk.org/r/379/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225244 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      cdd1f9e2
  16. Aug 10, 2009
  17. 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
  18. Feb 17, 2009
    • Russell Bryant's avatar
      Merge a large set of updates to the Asterisk indications API. · 4ec30136
      Russell Bryant authored
      This patch includes a number of changes to the indications API.  The primary
      motivation for this work was to improve stability.  The object management
      in this API was significantly flawed, and a number of trivial situations could
      cause crashes.
      
      The changes included are:
      
      1) Remove the module res_indications.  This included the critical functionality
         that actually loaded the indications configuration.  I have seen many people
         have Asterisk problems because they accidentally did not have an
         indications.conf present and loaded.  Now, this code is in the core,
         and Asterisk will fail to start without indications configuration.
      
         There was one part of res_indications, the dialplan applications, which did
         belong in a module, and have been moved to a new module, app_playtones.
      
      2) Object management has been significantly changed.  Tone zones are now
         managed using astobj2, and it is no longer possible to crash Asterisk by
         issuing a reload that destroys tone zones while they are in use.
      
      3) The API documentation has been filled out.
      
      4) The API has been updated to follow our naming conventions.
      
      5) Various bits of code throughout the tree have been updated to account
         for the API update.
      
      6) Configuration parsing has been mostly re-written.
      
      7) "Code cleanup"
      
      The code is from svn/asterisk/team/russell/indications/.
      
      Review: http://reviewboard.digium.com/r/149/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@176627 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4ec30136
  19. Feb 07, 2009
  20. Jan 13, 2009
  21. Dec 13, 2008
  22. Dec 10, 2008
  23. May 02, 2008
  24. Mar 03, 2008
  25. Feb 26, 2008
  26. Jan 05, 2008
  27. Dec 20, 2007
  28. Dec 19, 2007
    • Luigi Rizzo's avatar
      make netsmp build under AST_DEVMODE. Description, included in the source, · 094ec652
      Luigi Rizzo authored
      is below. I should note that the PACKAGE_* macros that asterisk
      defines in autoconfig.h are not used anywhere in the tree so
      they should just be removed.
      
       /*
        * There is some collision collision between netsmp and asterisk names,
        * causing build under AST_DEVMODE to fail.
        *
        * The following PACKAGE_* macros are one place.
        * Also netsnmp has an improper check for HAVE_DMALLOC_H, using
        *    #if HAVE_DMALLOC_H   instead of #ifdef HAVE_DMALLOC_H
        * As a countermeasure we define it to 0, however this will fail
        * when the proper check is implemented.
        */
      
      No
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93875 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      094ec652
  29. Dec 14, 2007
  30. Dec 07, 2007
  31. Aug 23, 2007
  32. Jul 18, 2007
  33. Jun 13, 2007
  34. Jun 08, 2007
  35. Dec 25, 2006
  36. Dec 19, 2006
Loading