What OpenSIPS version are you using? Are you sure that your specific '^9675...' rule is being applied?

Hint: you can enter the debug mode with /opensipsctl fifo debug 4/ and look for:

Apr 4 15:58:44 [9963] DBG:dialplan:translate: Found a matching rule 0x7fa7b59ae6d0: pr 1, match_exp ^9675#0[1-9]{2}[1-6][0-9]{7}

Best regards,

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 04/04/2014 03:35 PM, Alcindo Schleder wrote:

Hi Liviu Chircu.

See my dialplan database table:

+----+------+----+----------+------------------------------------+-------------+----------------------------------+----------+----------+----------+

| id | dpid | pr | match_op | match_exp | match_flags | subst_exp | repl_exp | disabled | attrs |

+----+------+----+----------+------------------------------------+-------------+----------------------------------+----------+----------+----------+

| 6 | 0 | 1 | 1 | ^9675#0[1-9]{2}[1-6][0-9]{7} | 0 | ^(9675#)(0[1-9]{2})([1-6][0-9]{7}) | \2\3 | 0 | fix_pstn |

+----+------+----+----------+------------------------------------+-------------+----------------------------------+----------+----------+----------+

And call db_translate:

dp_translate("0","$rU/$rU")

store "fix_pstn" into $avp(s:dest)

Is all right, except that the value of $ rU = "23"

[]s

*De:*[email protected] [mailto:[email protected]] *Em nome de *Liviu Chircu
*Enviada em:* sexta-feira, 4 de abril de 2014 07:27
*Para:* [email protected]
*Assunto:* Re: [OpenSIPS-Users] Opensips dialplan repl_exp

Hello Alcindo,

This should work:

mysql> select * from dialplan where id=3;
+----+------+----+----------+-----------+-------------+-----------+----------+----------+-------+
| id | dpid | pr | match_op | match_exp | match_flags | subst_exp | repl_exp | disabled | attrs |
+----+------+----+----------+-----------+-------------+-----------+----------+----------+-------+
| 3 | 1 | 1 | 1 | ^\d*#.* | 0 | ^(\d*)#.* | \1 | 0 | |
+----+------+----+----------+-----------+-------------+-----------+----------+----------+-------+

It basically matches your input string, and catches the user id with "(\d*)". It then replaces the $rU with that data, which is now stored in variable #1: "\1"

Script usage:

"
$var(in) = "9675#[email protected]" <mailto:9675#[email protected]>;

if (!dp_translate("1", "$var(in)/$rU"))
    xlog("XXX failed to translate\n");
else
    xlog("XXX translated to: $ru\n");
"

...
XXX translated to: sip:[email protected]:5060 <mailto:sip:[email protected]:5060>
...


Best regards,

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 04/04/2014 11:24 AM, Alcindo Schleder wrote:

    I'm using opensips 1.10xeo dialplan module. The user send me the
    following string: '9675#destinationNumber@serverip'.

    I want to remove only the # 9675 number and store in $rU.

    I've tried everything and can not succeed. I tried with subst_exp,
    repl_exp and nothing.

    What could be wrong?

    Alcindo Schleder

    Gerente de Negócios -- [email protected]
    <mailto:[email protected]>

    (51) 3564-4156

    (51) 9790-9437

    Renovare Telecom <http://www.renovaretelecom.com.br/>




    _______________________________________________

    Users mailing list

    [email protected]  <mailto:[email protected]>

    http://lists.opensips.org/cgi-bin/mailman/listinfo/users



_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to