You know, first time I used the &quot;fantastic&quot; dialplan module it didn&#39;t work.. When I went back and did a select * from dialplan, I noticed that what was IN the table wasn&#39;t anything like what I put into the table.<div>

<br></div><div>Seems that because of all the crazy PCRE symbols, there was quite a bit of escaping that needed to be done for it to get into the table properly. So, try that.. check the actual contents in the table and see if it&#39;s what is expected..</div>

<div><br></div><div><br><div class="gmail_quote">On Mon, Jun 15, 2009 at 7:27 PM, Bogdan-Andrei Iancu <span dir="ltr">&lt;<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi Bradley,<br>
<br>
I re-made your case with:<br>
<br>
mysql&gt; select * from dialplan;<br>
+----+------+----+----------+------------+-----------+------------+----------------+-------+<br>
| id | dpid | pr | match_op | match_exp  | match_len | subst_exp  |<br>
repl_exp       | attrs |<br>
+----+------+----+----------+------------+-----------+------------+----------------+-------+<br>
|  1 |    1 |  0 |        1 | (sip:06.+) |         0 | (sip:06.+) |<br>
\<a href="mailto:1@10.47.19.24">1@10.47.19.24</a> | 0     |<br>
+----+------+----+----------+------------+-----------+------------+----------------+-------+<br>
1 row in set (0.00 sec)<br>
<br>
and in script:<br>
<br>
    $var(x) = &quot;sip:061111&quot;;<br>
    dp_translate(&quot;1&quot;, &quot;$var(x)/$var(tmp)&quot;);<br>
    xlog(&quot;-------------$var(tmp)\n&quot;);<br>
<br>
<br>
The output was:<br>
<br>
Jun 16 03:22:34 [7921] DBG:dialplan:dp_get_ivalue: integer value<br>
Jun 16 03:22:34 [7921] DBG:dialplan:dp_translate_f: dpid is 1<br>
Jun 16 03:22:34 [7921] DBG:dialplan:dp_get_svalue: searching 78<br>
Jun 16 03:22:34 [7921] DBG:dialplan:dp_translate_f: input is sip:061111<br>
Jun 16 03:22:34 [7921] DBG:dialplan:translate: regex operator testing<br>
Jun 16 03:22:34 [7921] DBG:dialplan:test_match: test string sip:061111<br>
<div class="im">against a pattern (sip:06.+)<br>
</div>Jun 16 03:22:34 [7921] DBG:dialplan:test_match: test_match:[0] sip:061111<br>
Jun 16 03:22:34 [7921] DBG:dialplan:test_match: test_match:[1] sip:061111<br>
Jun 16 03:22:34 [7921] DBG:dialplan:translate: found a matching rule<br>
0xb56744c0: pr 0, match_exp (sip:06.+)<br>
Jun 16 03:22:34 [7921] DBG:dialplan:test_match: test string sip:061111<br>
<div class="im">against a pattern (sip:06.+)<br>
</div>Jun 16 03:22:34 [7921] DBG:dialplan:test_match: test_match:[0] sip:061111<br>
Jun 16 03:22:34 [7921] DBG:dialplan:test_match: test_match:[1] sip:061111<br>
Jun 16 03:22:34 [7921] DBG:dialplan:dp_translate_f: input sip:061111<br>
with dpid 1 =&gt; output <a href="mailto:sip%3A061111@10.47.19.24">sip:061111@10.47.19.24</a><br>
-------------<a href="mailto:sip%3A061111@10.47.19.24">sip:061111@10.47.19.24</a><br>
<br>
Which looks pretty ok ...<br>
<br>
Maybe there is something something in the correct data in DB.....<br>
<br>
Regards,<br>
<font color="#888888">Bogdan<br>
</font><div><div></div><div class="h5"><br>
<br>
Bradley, Todd wrote:<br>
&gt; Hi, I&#39;m new to openSIPS and am trying to set it up with the dialplan<br>
&gt; module, but I&#39;ve had a couple problems I can&#39;t figure out.<br>
&gt;<br>
&gt; The first problem is related to how dp_translate is doing regexp<br>
&gt; replacements. I have code like this in my route method:<br>
&gt;<br>
&gt; if (is_method(&quot;INVITE&quot;)) {<br>
&gt;       xlog(&quot;To user is: $tu\n&quot;);<br>
&gt;       xlog(&quot;ruri.user is: $ruri.user\n&quot;);<br>
&gt;       xlog(&quot;avp(s:dest) is: $avp(s:dest)\n&quot;);<br>
&gt;       dp_translate(&quot;1&quot;, &quot;$tu/$var(tmp)&quot;);<br>
&gt;       xlog(&quot;The variable that came out was $var(tmp)\n&quot;);<br>
&gt;       setflag(1); # do accounting<br>
&gt; }<br>
&gt;<br>
&gt; And my dialplan DB table has this row for dpid 1:<br>
&gt; match_exp=(^06.+)<br>
&gt; subst_exp=(^06.+)<br>
&gt; repl_exp=\<a href="mailto:1@10.47.19.24">1@10.47.19.24</a><br>
&gt;<br>
&gt; When I send in a SIP INVITE that is to &quot;sip:061111&quot;, I expect the<br>
&gt; dp_translate to convert this to &quot;<a href="mailto:sip%3A061111@10.47.19.24">sip:061111@10.47.19.24</a>&quot;. But I just get<br>
&gt; &quot;sip:061111&quot; back. Here&#39;s the output:<br>
&gt;<br>
&gt; To user is: sip:061111<br>
&gt; ruri.user is: &lt;null&gt;<br>
&gt; avp(s:dest) is: &lt;null&gt;<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:dp_get_ivalue: integer value<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:dp_translate_f: dpid is 2<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:dp_get_svalue: searching 22<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:dp_translate_f: input is sip:061111<br>
&gt;<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:translate: regex operator testing<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test string sip:061111<br>
&gt; against a pattern (sip:06.+)<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test_match:[0]<br>
&gt; sip:061111<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test_match:[1]<br>
&gt; sip:061111<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:translate: found a matching rule<br>
&gt; 0xb610c1f0: pr 2, match_exp (sip:06.+)<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test string sip:061111<br>
&gt; against a pattern (sip:06.+)<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test_match:[0]<br>
&gt; sip:061111<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:test_match: test_match:[1]<br>
&gt; sip:061111<br>
&gt; Jun 12 13:48:55 [29901] DBG:dialplan:dp_translate_f: input sip:061111<br>
&gt; with dpid 2 =&gt; output sip:061111<br>
&gt; The variable that came out was sip:061111<br>
&gt;<br>
&gt; So it looks like \1 is indeed replaced with the part that matches the<br>
&gt; regexp, but the rest of my replacement string (the &quot;@<a href="http://10.47.19.24" target="_blank">10.47.19.24</a>&quot; part)<br>
&gt; is ignored. Why is that? What am I doing wrong?<br>
&gt;<br>
&gt; And my second question is this: Once I fix my first mistake, what should<br>
&gt; I do to make use of this? The behavior I want is that when the proxy<br>
&gt; gets an INVITE to 061111, it fills in the rest of the address and then<br>
&gt; routes it along. In this case, it should pass it along to<br>
&gt; <a href="mailto:061111@10.47.19.24">061111@10.47.19.24</a>.<br>
&gt;<br>
&gt; Here&#39;s where my newness to openSIPS is coming to light, I think. When I<br>
&gt; read the documentation for the dialplan module<br>
&gt; (<a href="http://www.opensips.org/html/docs/modules/1.5.x/dialplan.html" target="_blank">http://www.opensips.org/html/docs/modules/1.5.x/dialplan.html</a>), it has<br>
&gt; an example that leads me to believe I should be able to just do this:<br>
&gt;<br>
&gt; dp_translate(&quot;2&quot;, &quot;$avp(s:dest)/$avp(s:dest)&quot;);<br>
&gt;<br>
&gt; But $avp(s:dest) is null, as you can see from the output above. What<br>
&gt; SHOULD I have in my route script to do what I&#39;m trying to do?<br>
&gt;<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Todd.<br>
&gt;<br>
&gt; ps.  I originally posted this question last week to the OpenSIPS web<br>
&gt; forum, but then realized that nobody really reads the forum and all the<br>
&gt; action is over here on the users email list.  So sorry for the sort-of<br>
&gt; duplication.<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Users mailing list<br>
&gt; <a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</div></div></blockquote></div><br></div>