<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/1228/">https://reviewboard.asterisk.org/r/1228/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On May 24th, 2011, 3:15 a.m., <b>Olle E Johansson</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I would rather see
Action: AmiFilter
Operation: Add
That would open for "Operation: Delete" to delete active filters. I am not sure that you need the strange syntax with two colons, since the filter is always for events. Or am I wrong?
/O</pre>
</blockquote>
<p>On May 24th, 2011, 3:56 a.m., <b>FeyFre</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">> I am not sure that you need the strange syntax with two colons
Event filter works also for non-"Event" header, i.e if I have filter "eventfilter=!UserEvent: bla-bla-bla" in my manager.conf I shall not receive AMI events which has "UserEvent: bla-bla-bla" line among headers. So "double colon"-ed syntax is legal and useful(just retested on r315054).</pre>
</blockquote>
<p>On May 24th, 2011, 4:12 a.m., <b>Olle E Johansson</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ok then :-) Thanks for the explanation.</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I was thinking about delete operations too, but I'm not sure how they would work just yet. Good point about making room for additional operations within filters for the same command name.
You could either delete all filters, or delete by filter pattern, but if someone had two identical filters it would delete both (which is probably good?). Code would need to be added to store the pattern in the filter list. I personally would like to also see an Operation: List, so you could see your filters. I'll probably add that in.
What I also like to see is a more explicit attachment of filter patterns. For example, instead of filtering on individual event lines like this:
Filter: UserEvent: foo
Filter: UserEvent: baz
Filter: Channel: SIP/bar.*
Filter: Channel: SIP/bing.*
The above will whitelist UserEvent foo, and UserEvent baz, and whitelist channels SIP/bar, SIP/bing.
Maybe there can be something called a FilterSet, where only if that entire group of filters is matched, will the event be blacklisted or whitelisted.
There would need to be a new ami header processing command that will return a list of all headers matching. __astman_get_header_all() or something like that.
This would fundamentally break clients that build commands using hashes (Like I do, using perl hashes).
I would like to be able to do:
Action: AmiFilter
Operation: AddFilterSet
FilterSet: UserEvent: foo
FilterSet: Channel: SIP/bar.*
(Give me only foo user events on SIP/bar.*)
Action: AmiFilter
Operation: AddFilterSet
FilterSet: UserEvent: baz
FilterSet: Channel: SIP/bing.*
(Give me only baz user events on SIP/bing.*)
In order to not fundamentally break clients using hashes, there are other options:
Action: AmiFilter
Operation: AddFilterSet
FilterSet(1): UserEvent: baz
FilterSet(2): Channel: SIP/bing.*
Or, my least favorite
Action: AmiFilter
Operation: AddFilterSet
FilterSet: UserEvent: baz,Channel: SIP/bing.*
The above poses a problem if the pattern you want to filter actually has a comma in it.</pre>
<br />
<p>- kobaz</p>
<br />
<p>On May 23rd, 2011, 9:19 p.m., kobaz wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By kobaz.</div>
<p style="color: grey;"><i>Updated 2011-05-23 21:19:14</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">There is already support for white and black filters for AMI events in manager.conf, but they are defined statically.
It would be really great to be able to log in and add filters on the fly for just the current session.
</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">----------------------
Test 1
----------------------
Log into AMI, events: all
Action: UserEvent
UserEvent: foo
MyValue: bar
(userevent recieved)
Action: FilterAdd
Filter: !UserEvent: foo
Action: UserEvent
UserEvent: foo
MyValue: bar
(no foo userevent event received)
----------------------
Test 2
----------------------
Log into AMI session 1, events: all
Log into AMI session 2, events: all
AMI session 1:
Action: FilterAdd
Filter: Event: PeerStatus
(only peerstatus events received)
AMI session 2:
(all events received)
</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>trunk/main/manager.c <span style="color: grey">(320708)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/1228/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>