[asterisk-dev] [Code Review] Rework the Asterisk indications API

Russell Bryant russell at digium.com
Wed Feb 11 10:58:48 CST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/149/
-----------------------------------------------------------

(Updated 2009-02-11 10:58:48.846947)


Review request for Asterisk Developers.


Summary
-------

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.  In fact, this came up again in #asterisk-dev today.  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 while tone zones 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"


Diffs (updated)
-----

  /trunk/apps/app_disa.c 174880 
  /trunk/apps/app_playtones.c PRE-CREATION 
  /trunk/apps/app_read.c 174880 
  /trunk/apps/app_readexten.c 174880 
  /trunk/channels/chan_misdn.c 174880 
  /trunk/channels/chan_skinny.c 174880 
  /trunk/channels/chan_unistim.c 174880 
  /trunk/configs/indications.conf.sample 174880 
  /trunk/funcs/func_channel.c 174880 
  /trunk/include/asterisk/_private.h 174880 
  /trunk/include/asterisk/channel.h 174880 
  /trunk/include/asterisk/indications.h 174880 
  /trunk/main/app.c 174880 
  /trunk/main/asterisk.c 174880 
  /trunk/main/channel.c 174880 
  /trunk/main/indications.c 174880 
  /trunk/main/loader.c 174880 
  /trunk/main/pbx.c 174880 
  /trunk/res/res_indications.c 174880 
  /trunk/res/snmp/agent.c 174880 

Diff: http://reviewboard.digium.com/r/149/diff


Testing
-------

Basic testing playing different tones using the Playtones() application works fine.


Thanks,

Russell




More information about the asterisk-dev mailing list