[asterisk-dev] [Code Review] 3417: Add AMI events for all device state and presence state changes

Corey Farrell reviewboard at asterisk.org
Thu Apr 10 16:50:58 CDT 2014



> On April 5, 2014, 3:02 a.m., Olle E Johansson wrote:
> > I would like to see a configuration option for this, as it will generate a massive amount of events in busy servers.
> 
> Mark Michelson wrote:
>     That's fair. I can think of two ways to do this:
>     
>     1) The DeviceStateChange and PublishStateChange belong to a new event category. This way, you can add the event category to your read= line in manager.conf if you want to see the event, or you can leave the category off if you don't.
>     2) There can be individual configuration options in manager.conf to suppress certain events. This would act as a generic method to disable the publication of certain events and could be applied to any event.
>     
>     Personally, I like number 2 more, but I'm willing to hear suggestions for other ways of doing this.
> 
> Mark Michelson wrote:
>     Interestingly, I wasn't aware of this until I dived into the manager code, but you can already set up individual events to be filtered out if you want. If you put
>     
>     eventfilter = !DeviceStateChange
>     eventfilter = !PresenceStateChange
>     
>     Then these events will be suppressed. This has been around since 1.8

eventfilters are for preventing excessive TCP traffic, or hiding certain events for security reasons.  They actually add CPU overhead.  Each eventfilter runs regexec() from within an ao2_t_callback_data for every event.  I am also concerned about the impact of topic_forwarder generating full AMI packets before eventfilters are processed.

As an alternative, isn't the point of stasis so we don't add stuff to the core unless it's universally useful?  If this were res_manager_devicestate and res_manager_presencestate or similar, they could easily be set to noload.  I have no doubt the information provided by these events will be useful to some, but not me.  I'm not tied to the idea of this stuff living in modules, but would like to see a way to disable the topic_forwarder's.


- Corey


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3417/#review11505
-----------------------------------------------------------


On April 10, 2014, 4:10 p.m., Mark Michelson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3417/
> -----------------------------------------------------------
> 
> (Updated April 10, 2014, 4:10 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> AMI does not emit events when device state or presence state changes. The closest things that exist currently are the ExtenstionStatus and PresenceStatus events, which inform about device state and presence state events as they pertain to hints in the dialplan. These new events are raised for every device state change or presence state change in Asterisk.
> 
> 
> Diffs
> -----
> 
>   /trunk/main/presencestate.c 411714 
>   /trunk/main/manager.c 411714 
>   /trunk/main/devicestate.c 411714 
>   /trunk/include/asterisk/presencestate.h 411714 
>   /trunk/include/asterisk/devicestate.h 411714 
> 
> Diff: https://reviewboard.asterisk.org/r/3417/diff/
> 
> 
> Testing
> -------
> 
> See /r/3418
> 
> 
> Thanks,
> 
> Mark Michelson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140410/fb165722/attachment.html>


More information about the asterisk-dev mailing list