[asterisk-dev] Dynamic server side event type filtering in ARI

George Joseph gjoseph at digium.com
Thu Dec 13 15:42:15 CST 2018


On Thu, Dec 13, 2018 at 2:27 PM Kevin Harwell <kharwell at digium.com> wrote:

> Greetings,
>
> I'm looking into adding the ability for an ARI application to dynamically
> control which event types it would like sent to it[1] (i.e. server side
> event type filtering). I'm currently leaning toward implementing this as a
> blacklist. I believe doing so would ease the development burden on the
> Asterisk side as well as on the application side of things while
> maintaining current application received event type expectations. Here's a
> proposed REST interface:
>
> GET /applications/{applicationName}/excludeEventFilters
>
.
excludeEventFilters sounds like you're excluding event filters.  What
you're operating on is an eventExclusionList

    Returns a list of exclude event filters.
>
> POST /applications/{applicationName}/excludeEventFilters
>
>     Using a json object as a body parameter create a list of exclude event
> filters. This will overwrite any existing filters list. For now the json
> object *might* look something like the following:
>
> {  types: [ eventType, eventType, ...] }
>

When you POST, you're asking the object to take some action.
If you want to use POST, then the json blob should contain an "add" list of
types and a "remove" list of types.

We SHOULD be using PUT to add or replace an entire list.


> By making it an object this would make it possible to add more filtering
> in the future without having to update the definition.
>
> DELETE /applications/{applicationName}/excludeEventFilters
>
>     Remove all filters from the exclude list.
>

DELETE deletes the list.  See below.

> If people wanted I could also add the following?
>
> PUT /applications/{applicationName}/excludeEventFilters/{eventType}
>
>     Add the specified “eventType” to the exclude list.
>
> DELETE /applications/{applicationName}/excludeEventFilters/{eventType}
>
>     Remove the specified “eventType” from the exclude list.
>

You could DELETE /applications/{applicationName}/eventExclusionList/all
to delete the event types from the list.


> Naming is hard, but I've used “exclude” in order to signify that matches
> on a specified filter would block messages being sent to the application.
> “Filters” I've used because it's filtering the messages that are being sent
> to the application, and later we might want to filter off more than the
> event type name.
>
> Anyhoo thoughts, opinions, alternative ideas are most welcome.
>
> Thanks!
>
> [1] https://issues.asterisk.org/jira/browse/ASTERISK-28106
>
> --
> Kevin Harwell
> Digium - A Sangoma Company | Senior Software Developer
> 445 Jan Davis Drive NW - Huntsville, AL 35806 - US
> Check us out at: https://digium.com & https://asterisk.org
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev



-- 
*George Joseph*
Digium - A Sangoma Company | Software Developer | Software Engineering
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
direct/fax: +1 256 428 6012
Check us out at: https://digium.com · https://sangoma.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20181213/23248710/attachment.html>


More information about the asterisk-dev mailing list