Hi, 

The 'subst_exp' is incorrect, it should be "\1" instead of "1" (note the backslash).

Send the debug logs when you have them.

J.

On Mon, Aug 7, 2017 at 11:56 PM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
Please find the below rules I am using:

+----+------+----+----------+--------------+-----------+---------------+----------+-------+
| id | dpid | pr | match_op | match_exp    | match_len | subst_exp     | repl_exp | attrs |
+----+------+----+----------+--------------+-----------+---------------+----------+-------+
|  1 |    1 |  1 |        1 | ^000[0-9]+$  |         0 | ^000([0-9]+)$ | 1        |       |


Correct me If I am Wrong,

I will enable the logs and send you for the clarity.

On Mon, Aug 7, 2017 at 7:11 PM, Joel Serrano <joel@gogii.net> wrote:
Hi, 

I don't see the problem... 

checked with online tester and the regex looks OK:

Inline image 1



Can you enable debug logs and try again, then send the logs?


On Sun, Aug 6, 2017 at 11:19 PM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
I mean to say by applying the Rule mentioned from Joel is also not worked.


Rules:
======
dpid: 1
pr: 1
match_op: 1
match_exp: ^000[0-9]+$  <<<<<<< This will trigger a match on any number that will start with three zeros.
match_len: 0
subst_exp: ^000([0-9]+)$  <<<<<<< If the match_exp is found, then create a group with the desired part of the number, in this case, everything after the three zeros.
repl_exp: \1   <<<<<<< \1 is a back reference to group 1, in this case the number you selected in subst_exp, without the three zeros.
attrs: 




On Mon, Aug 7, 2017 at 11:43 AM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
Please find the below output

 5(12951) ERROR: <script>: R-URI User: 000919629897172
 5(12951) ERROR: <script>: R-URI User: 000919629897172



On Mon, Aug 7, 2017 at 11:10 AM, Joel Serrano <joel@gogii.net> wrote:
Can you add logging and post results?

 if (is_method("INVITE")) {
               xlog("R-URI User: $rU\n");
               dp_translate("1", "$rU/$rU");
               xlog("R-URI User: $rU\n");
}



On Sun, Aug 6, 2017 at 10:05 PM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
I am using the below function:

 if (is_method("INVITE")) {
              
               dp_translate("1", "$rU/$rU");
}


On Sat, Aug 5, 2017 at 9:19 PM, Joel Serrano <joel@gogii.net> wrote:
Can you post your block of config related to dialplan module from kamailio.cfg?

Also, how are you calling the dp_* functions?


On Fri, Aug 4, 2017 at 10:34 PM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
Thanks a lot for the Detailed Explanation.

I am Beginner to Kamailio, As per Your Suggestion I have used the below Rule:

Rules:
======
dpid: 1
pr: 1
match_op: 1
match_exp: ^000[0-9]+$  <<<<<<< This will trigger a match on any number that will start with three zeros.
match_len: 0
subst_exp: ^000([0-9]+)$  <<<<<<< If the match_exp is found, then create a group with the desired part of the number, in this case, everything after the three zeros.
repl_exp: \1   <<<<<<< \1 is a back reference to group 1, in this case the number you selected in subst_exp, without the three zeros.
attrs:

But the First three Digit is not Removed. Please find the below log:

 5(16152) INFO: <script>: Request : INVITE sip:000919629897172@209.95.52.97 SIP/2.0
Record-Route: <sip:209.95.52.97;lr>
Record-Route: <sip:209.95.52.97;lr>
To: <sip:000919629897172@45.249.123.97>
From: 7777<sip:7777@45.249.123.97>;tag=501aa976
Via: SIP/2.0/UDP 209.95.52.97;branch=z9hG4bK0d36.636d0921d672f2d0bdb3fc87c52a3caa.0
Via: SIP/2.0/UDP 209.95.52.97;rport=5060;branch=z9hG4bK0d36.4d76f923bd5cc7d64297898058440098.0
Via: SIP/2.0/UDP 45.249.123.97:6107;received=45.249.123.97;branch=z9hG4bK-d87543-1054953376-1--d87543-;rport=6107
Call-ID: db4777505114995c
CSeq: 1 INVITE
Contact: <sip:7777@45.249.123.97:6107>
Max-Forwards: 68
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: eyeBeam release 3004t stamp 16741
Content-Length: 191

v=0
o=- 355180136 355180140 IN IP4 45.249.123.97
s=eyeBeam
c=IN IP4 45.249.123.97
t=0 0
m=audio 31444 RTP/AVP 18 0 8 101
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=sendrecv





On Sat, Aug 5, 2017 at 10:30 AM, Joel Serrano <joel@gogii.net> wrote:
Ok, so clearly you have not tried what Daniel suggested...

IN a regexp ^ matches the beginning of the line/string, and $ matches
the end. So "^000$" only matches exactly "000" and not "000xxxx"
Remove the $ to match strings begining with 000.


Rules:
======
dpid: 1
pr: 1
match_op: 1
match_exp: ^000$
match_len: 0
subst_exp: ^0000$
repl_exp: 
attrs: 

Can you see you still have the $ char at the end of match_exp and subst_exp? 

To begin with, do you know how regular expressions work? Because that is the first thing you need to know to correctly use the dialplan module.

That said you need a match expression, a substitute expression, and a replace expression...

Try with:

Rules:
======
dpid: 1
pr: 1
match_op: 1
match_exp: ^000[0-9]+$  <<<<<<< This will trigger a match on any number that will start with three zeros.
match_len: 0
subst_exp: ^000([0-9]+)$  <<<<<<< If the match_exp is found, then create a group with the desired part of the number, in this case, everything after the three zeros.
repl_exp: \1   <<<<<<< \1 is a back reference to group 1, in this case the number you selected in subst_exp, without the three zeros.
attrs: 


What isn't clear to me is that 91 you are talking about in your email, you might have to exclude/include that in your regex.


You have a couple examples that might make it more clear.


Let me know if it helps.

Joel.



On Fri, Aug 4, 2017 at 9:18 PM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
Yes I have Tried, please find below the Rules I have applied and the Result:

Rules:
======
dpid: 1
pr: 1
match_op: 1
match_exp: ^000$
match_len: 0
subst_exp: ^0000$
repl_exp:
attrs:


I am Calling to the number 00091xxxxxxxxxx , But its saying as Too many Hops.

Its only looking for 000, Its not taking the 91xxxxxxxxxx numbers, If I call 000 only its replacing with the given number in the Rule table.

I need to Remove only the first 3 digits, and the other numbers should go to the call.

For Example If I am calling 00091xxxxxxxxx, It should remove the first 3 digits 000 and 91xxxxxxxxx call should be place.

Please Guide me for removing the first three digits alone and other numbers should takes place.

On Fri, Aug 4, 2017 at 6:43 PM, Joel Serrano <joel@gogii.net> wrote:
Have you tried what Daniel suggested?

Share the results of the tests and we can go from there. 

On Thu, Aug 3, 2017 at 21:34 Logeshwaran G <logeshwarangs@gmail.com> wrote:
Input Please!!

On Thu, Aug 3, 2017 at 5:08 PM, Logeshwaran G <logeshwarangs@gmail.com> wrote:
Thanks a lot!

But for my scenario,

If I am Dialling 000919999999999, need to remove the first three digits 000, so the call should go to 919999999999.

I am stucked to create the rule for the above scenario, Kindly help me for the same.

Kind Regards,
Logeshwaran

On Thu, Aug 3, 2017 at 4:48 PM, Daniel Tryba <d.tryba@pocos.nl> wrote:
On Thu, Aug 03, 2017 at 04:00:45PM +0530, Logeshwaran G wrote:
>
> +----+------+----+----------+-----------+-----------+-----------+----------+-------+
> | id | dpid | pr | match_op | match_exp | match_len | subst_exp | repl_exp
> | attrs |
> +----+------+----+----------+-----------+-----------+-----------+----------+-------+
> |  1 |    1 |  1 |        1 | ^000$     |         0 | ^000$     |
> |       | 111
> +----+------+----+----------+-----------+-----------+-----------+----------+-------+
>
> The above rule replacing only the 000, If we Dial 000xxxx its omitting,
> While Dialing 000 its replacing that with 111.

IN a regexp ^ matches the beginning of the line/string, and $ matches
the end.

So "^000$" only matches exactly "000" and not "000xxxx"
Remove the $ to match strings begining with 000.

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users




_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users