[SR-Users] DIALPLAN Module: doubts about regular expression usage

Stefano Bertuola stefano.bertuola at gmail.com
Thu Oct 11 08:40:31 CEST 2018


Hi Daniel.

Thanks for your suggestion. It worked:

kamcmd> dialplan.dump 2
{
        DPID: 2
        ENTRIES: {
                ENTRY: {
                        PRIO: 1
                        MATCHOP: 1
                        MATCHEXP: ^\+39.....
                        MATCHLEN: 0
                        SUBSTEXP: ^\+(.*)$
                        REPLEXP: \1
                        ATTRS: 1
                }
        }
}
kamcmd> dialplan.translate 2 s:+3912345
{
        Output: 6212345
        Attributes: 1
}
kamcmd> dialplan.translate 2 '+3912345'
error: 500 - No translation
kamcmd> dialplan.translate 2 "+3912345"
error: 500 - No translation


Instead, with single or double quotes, it doesn't.

Br. Stefano

On Wed, Oct 10, 2018 at 12:55 PM David Villasmil <
david.villasmil.work at gmail.com> wrote:

> Or single-quotes
>
> On Wed, Oct 10, 2018, 11:50 Daniel-Constantin Mierla <miconda at gmail.com>
> wrote:
>
>> Hello,
>>
>> this might be due to automatic translation of kamcmd for its parameters
>> that look like numbers, can you try with:
>>
>> kamcmd dialplan.translate 1 s:+39123456
>>
>> If still fails, send here the log messages with debug=3 when running the
>> rpc command.
>>
>> Cheers,
>> Daniel
>>
>>
>> On 10.10.18 10:00, Stefano Bertuola wrote:
>>
>> Hi Patrick.
>>
>> Thanks for your replay.
>>
>> I also verified an issue with *dialplan.translate* command in *kamcmd*.
>>
>> Running a live test it is working.
>>
>> mysql> select * from dialplan;
>>
>> +----+------+----+----------+--------------+-----------+--------------+----------+-------+
>> | id | dpid | pr | match_op | match_exp    | match_len | subst_exp    |
>> repl_exp | attrs |
>>
>> +----+------+----+----------+--------------+-----------+--------------+----------+-------+
>> |  1 |    1 |  1 |        1 | ^(\+39)(.*)$ |         0 | ^(\+39)(.*)$ |
>> \2       | 1     |
>>
>> +----+------+----+----------+--------------+-----------+--------------+----------+-------+
>>
>> NOTICE: <script>: +3912345|Before Dialplan
>> NOTICE: <script>: 12345|After Dialplan
>>
>>
>> Br. Stefano
>>
>>
>> On Wed, Oct 10, 2018 at 6:50 AM Patrick Wakano <pwakano at gmail.com> wrote:
>>
>>> Hi Stefano,
>>> I have similar rules in my dialplan and they work.
>>> However the kamcmd dialplan.translate command also fails for me
>>> (Kamailio 5.0.4), but I guess it is a problem with the command itself and
>>> not with the translation done by the dp_translate(), because for real calls
>>> it does work!
>>>
>>> Patrick Wakano
>>>
>>> On Wed, 10 Oct 2018 at 02:21, Stefano Bertuola <
>>> stefano.bertuola at gmail.com> wrote:
>>>
>>>> Hi Experts.
>>>>
>>>> I did some tests with DIALPLAN module and I have some doubts about how
>>>> to define the regular expressions in the database.
>>>>
>>>> For example, using the start character '^' (beginning of the string),
>>>> it looks not working:
>>>>
>>>> kamcmd> dialplan.dump 1
>>>> {
>>>>         DPID: 1
>>>>         ENTRIES: {
>>>>                 ENTRY: {
>>>>                         PRIO: 1
>>>>                         MATCHOP: 2
>>>>                         MATCHEXP: ^(\+39)(.*)$
>>>>                         MATCHLEN: 0
>>>>                         SUBSTEXP: ^(\+39)(.*)$
>>>>                         REPLEXP: \2
>>>>                         ATTRS: 1
>>>>                 }
>>>>         }
>>>> }
>>>> kamcmd> dialplan.translate 1 "+39123456"
>>>> error: 500 - No translation
>>>>
>>>>
>>>> Removing it, it works... but not as desired:
>>>>
>>>> kamcmd> dialplan.dump 1
>>>> {
>>>>         DPID: 1
>>>>         ENTRIES: {
>>>>                 ENTRY: {
>>>>                         PRIO: 1
>>>>                         MATCHOP: 1
>>>>                         MATCHEXP: (\+39)(.*)$
>>>>                         MATCHLEN: 0
>>>>                         SUBSTEXP: (\+39)(.*)$
>>>>                         REPLEXP: \2
>>>>                         ATTRS: 1
>>>>                 }
>>>>         }
>>>> }
>>>> kamcmd> dialplan.translate 1 "+39123456"
>>>> {
>>>>         Output: 123456"
>>>>         Attributes: 1
>>>> }
>>>> kamcmd> dialplan.translate 1 "xxxxxxx+39123456"
>>>> {
>>>>         Output: 123456"
>>>>         Attributes: 1
>>>> }
>>>>
>>>>
>>>> Can someone help me understand how the regular expression should be
>>>> used in DIALPLAN, please?
>>>>
>>>> Br. Stefano
>>>> _______________________________________________
>>>> Kamailio (SER) - Users Mailing List
>>>> sr-users at lists.kamailio.org
>>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>> _______________________________________________
>>> Kamailio (SER) - Users Mailing List
>>> sr-users at lists.kamailio.org
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>> --
>> Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
>> Kamailio World Conference -- www.kamailioworld.com
>> Kamailio Advanced Training, Nov 12-14, 2018, in Berlin -- www.asipto.com
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20181011/0657bd5e/attachment.html>


More information about the sr-users mailing list