<div class="gmail_quote">On Thu, Feb 25, 2010 at 7:03 AM, Klaus Darilion <span dir="ltr">&lt;<a href="mailto:klaus.mailinglists@pernau.at">klaus.mailinglists@pernau.at</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
Am 25.02.2010 14:53, schrieb Pavel Troller:<br>
<div><div></div><div class="h5">&gt; Hi!<br>
&gt;<br>
&gt;&gt; _XXX! in overlap mode:<br>
&gt;&gt;<br>
&gt;&gt; 1 is received ... wait for more<br>
&gt;&gt; 1 is received ... wait for more<br>
&gt;&gt; 1 is received ... trigger -&gt;  dialed number: 111<br>
&gt;&gt;<br>
&gt;&gt; _XX. in overlap mode:<br>
&gt;&gt;<br>
&gt;&gt; 1 is received ... wait for more<br>
&gt;&gt; 1 is received ... wait for more<br>
&gt;&gt; 1 is received ... trigger -&gt;  dialed number: 111<br>
&gt;<br>
&gt; It&#39;s not true.<br>
&gt; I&#39;ve made an example on a live system for you.<br>
&gt; Please look at the following:<br>
&gt;<br>
&gt; exten =&gt;  _133X.,1,NoOp(Collected number: ${EXTEN})<br>
&gt; exten =&gt;  _133X.,n,Milliwatt()<br>
&gt;<br>
&gt; exten =&gt;  _134XX!,1,NoOp(Collected number: ${EXTEN})<br>
&gt; exten =&gt;  _134XX!,n,Milliwatt()<br>
&gt;<br>
&gt; Asterisk log:<br>
&gt; Case 1:<br>
&gt;      -- Accepting overlap call from &#39;11442&#39; to &#39;&lt;unspecified&gt;&#39; on channel 0/19, span 1<br>
&gt;      -- Starting simple switch on &#39;DAHDI/g1-1&#39;<br>
&gt;      -- Executing [1333333333@default-ovlp:1] NoOp(&quot;DAHDI/g1-1&quot;, &quot;Collected number: 1333333333&quot;) in new stack<br>
&gt;      -- Executing [1333333333@default-ovlp:2] Milliwatt(&quot;DAHDI/g1-1&quot;, &quot;&quot;) in new stack<br>
&gt; Case 2:<br>
&gt;      -- Accepting overlap call from &#39;11442&#39; to &#39;&lt;unspecified&gt;&#39; on channel 0/19, span 1<br>
&gt;      -- Starting simple switch on &#39;DAHDI/g1-1&#39;<br>
&gt;      -- Executing [13444@default-ovlp:1] NoOp(&quot;DAHDI/g1-1&quot;, &quot;Collected number: 13444&quot;) in new stack<br>
&gt;      -- Executing [13444@default-ovlp:2] Milliwatt(&quot;DAHDI/g1-1&quot;, &quot;&quot;) in new stack<br>
&gt;<br>
&gt; Both the cases were dialled the same way: A call was received over PRI (no SS7)<br>
&gt; in overlap mode (you can see) and then, once per second, a digit has bee sent<br>
&gt; maximum 10 times. In the first case, after 10 digits the dialling was stopped,<br>
&gt; and after a timeout about 5 seconds the call was connected. In the second<br>
&gt; example, immediately after receiving the fifth digit, the connection was<br>
&gt; established, so it was not possible to send more digits.<br>
&gt;<br>
&gt; Do you see the diffference now ?<br>
<br>
</div></div>Yes, I see. You are right. ! stops the overlap timer.<br>
<br>
So, ! and . are not only different in 2 ways - minimum number of<br>
characters and overlap behavior.<br>
<br>
I guess the conclusion is that 2 different wildcards are needed - one<br>
which stops the overlap timer and one which does not stop the overlap timer.<br>
<br>
regards<br>
<font color="#888888">klaus<br>
</font><div><div></div><br></div></blockquote><div> </div><div>No, not really. Immediate end to a pattern is the immediate end of the pattern.<br>! has nothing to do with with classified pattern matching, perse. It isn&#39;t a &quot;zero or more&quot;<br>
type of construct. It&#39;s a &quot;zero&quot; sort of construct. It&#39;s a marker for the end of the pattern.<br>&quot;Stop here and call it a day&quot; sort of situation. So, there&#39;s no need for one more version<br>
of it.<br><br>But, you are right along the &#39;orthogonality&#39; lines. If we are going to supply a regex equiv<br>to &#39;+&#39;, we might as well supply one for &#39;*&#39;. OK, I get that. BNF, regex, all these sorts of <br>
systems took the trouble to supply both &quot;0 or more&quot; and &quot;1 or more&quot; constructs, even<br>tho the &quot;1 or more&quot; is just shorthand for a char match followed by &quot;zero or more&quot;.<br>(ie, X+ == XX* )<br>
<br>So, all that&#39;s left is to decide what characters to use for them. <br>* and # are definitely out. They are on phone keypads, common input.<br>! and . and [ and ] are out. Quote chars are out-- they imply they come in pairs, so `,&#39;, and &quot; are out too,<br>
along with &#39;{&#39;, &#39;}&#39;, and &#39;(&#39; and &#39;), and &#39;&lt;&#39; and &#39;&gt;&#39;&#39;. &#39;$&#39; will confuse those familiar with regex. &#39;@&#39; is probably not a good candidate<br>because you&#39;d think it would be common in urls, which might turn up sometime in extension values.<br>
&#39;^&#39; would also confuse regex familiar folks. &#39;&amp;&#39; is commonly used in stuff like dialstrings and hints.<br>&#39;_&#39; is used to start patterns. We could use it for stuff like this, but it might confuse. &#39;-&#39; is out, it is<br>
used in range notation, and could confuse. &#39;+&#39; would normally be considered open game, but it turns<br>up in European numbers (doesn&#39;t it?) as a prefix, so that would louse things up or confuse at least.<br>| seems out, used as a separator in other places. So are comma, and ; and : and /.  \ is out.<br>
Let&#39;s leave out ?, too, as someday we might want to use it in patterns to match its regex <br>usage, a &quot;0 or 1&quot; of any character, or some dialplanishly appropriate set of almost any characters.<br><br>That leaves us with ~ and %. <br>
<br>So, how about:   ~ at the end is 1 or more of the preceding character.<br>and % is 0 or more of the preceeding character. Or vice versa, as the original <br>proposal was really wanting ~ for 0-or-more usage. It don&#39;t matter to me, but<br>
the % has those little circles in its graphics, crying &quot;Zero!&quot;... any pnemonic trick helps.<br><br>Am I making sense? Have I missed something big? <br><br>murf<br><br></div></div>-- <br>Steve Murphy<br>ParseTree Corp<br>
<br>