[SR-Users] LCR issues (request_uri)

bayu p bayupmail at gmail.com
Wed Apr 20 11:15:26 CEST 2022


Hi ,
how do you perform sip-router.cfg in your kamailio ?

Pada tanggal Rab, 13 Apr 2022 pukul 23.26 Antoine DEBARRE <
adebarre at b2s-group.com> menulis:

> Hi,
>
> I'm trying to use LCR with kamailio v5.5.4
> gw, rule and rule_target are stored on mysql.
>
> for lcr rules, do you know if prefix is mandatory ?
> I first wanted to start using request_uri instead and leave the prefix
> column null/empty because prefix seems not to support regexp, I don't want
> to add the same rule with different prefixes.
>
> but I'm facing issues
>
> my database is fulfilled with :
> lcr_gw
>
> +----+--------+--------------+---------------+----------+------+--------+------------+-----------+-------+--------+-------------+-------+---------+
> | id | lcr_id | gw_name      | ip_addr       | hostname | port | params |
> uri_scheme | transport | strip | prefix | tag         | flags | defunct |
>
> +----+--------+--------------+---------------+----------+------+--------+------------+-----------+-------+--------+-------------+-------+---------+
> |  1 |      1 | carrier1     | 10.78.51.3    | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | fd=carrier1 |     0 |    NULL |
> |  2 |      1 | carrier2     | 10.78.51.3    | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | fd=carrier2 |     0 |    NULL |
> |  3 |      1 | carrier3     | 10.192.50.212 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> |  6 |      1 | carrier4     | 10.192.50.3   | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | fd=carrier4 |     0 |    NULL |
> | 10 |      1 | carrier5     | 10.192.50.3   | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | fd=carrier5 |     0 |    NULL |
> | 18 |      1 | carrier6     | 10.192.50.214 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 20 |      1 | carrier7     | 10.192.50.210 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 30 |      1 | carrier8     | 10.192.50.211 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 31 |      1 | carrier9     | 10.192.50.216 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 32 |      2 | media1       | 10.192.50.232 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 33 |      2 | media2       | 10.192.50.233 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 34 |      2 | media3       | 10.192.50.234 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 35 |      2 | media4       | 10.192.50.235 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 36 |      2 | media5       | 10.192.50.240 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 37 |      2 | media6       | 10.192.50.241 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 38 |      2 | media7       | 10.192.50.242 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | NULL        |     0 |    NULL |
> | 39 |      3 | xivo-231     | 10.192.50.231 | NULL     | 5060 | NULL   |
>       NULL |         1 |  NULL | NULL   | cps=5;cc=50 |     0 |    NULL |
>
> +----+--------+--------------+---------------+----------+------+--------+------------+-----------+-------+--------+-------------+-------+---------+
>
> lcr_rule
>
> +----+------------------------+-----------------------------------+------------------+--------+----------+-----------+---------+---------+
> | id | desc                          | request_uri                   |
> lcr_id | prefix | from_uri | mt_tvalue | stopper | enabled |
>
> +----+------------------------+-----------------------------------+------------------+--------+----------+-----------+---------+---------+
> |  1  | Default                      | .+
>   |      1 | NULL   | NULL     | NULL      |       0 |       1 |
> |  2  | France GSM             | (0|(|00|\+)33)[67]\d{8}    |      1 |
> NULL   | NULL     | NULL      |       1 |       1 |
> |  3  | France                      | (0|(|00|\+)33)[1-59]\d{8} |      1 |
> NULL   | NULL     | NULL      |       1 |       1 |
> |  4  | International default  | (00|\+)[1-9].+                 |      1 |
> NULL   | NULL     | NULL      |       1 |       1 |
> |  5  | Italy                           | (00|\+)39.+                    |
>      1 | NULL   | NULL     | NULL      |       1 |       1 |
> | 14 | to_oldmedias            | .+                                   |
>    2 | NULL   | NULL     | NULL      |       0 |       1 |
>
> +----+------------------------+-----------------------------------+-------------------+--------+----------+-----------+---------+---------+
>
> lcr_rule_target
> +----+--------+---------+-------+----------+--------+
> | id | lcr_id | rule_id | gw_id | priority | weight |
> +----+--------+---------+-------+----------+--------+
> | 25 |      1 |       3 |     3 |        1 |      1 |
> | 26 |      1 |       3 |    18 |        2 |      1 |
> | 28 |      1 |       3 |    30 |        3 |      1 |
> | 29 |      1 |       2 |    30 |        4 |      1 |
> | 30 |      1 |       2 |     3 |        2 |      1 |
> | 31 |      1 |       2 |    18 |        3 |      1 |
> | 32 |      1 |       2 |    20 |        1 |      1 |
> | 33 |      1 |       1 |    30 |        1 |      1 |
> | 34 |      1 |      12 |     1 |        1 |      1 |
> | 35 |      1 |      12 |    10 |        1 |      1 |
> | 37 |      2 |      14 |    32 |        1 |      1 |
> | 38 |      2 |      14 |    33 |        1 |      1 |
> | 39 |      2 |      14 |    34 |        1 |      1 |
> | 40 |      2 |      14 |    35 |        1 |      1 |
> | 41 |      2 |      14 |    36 |        1 |      1 |
> | 42 |      2 |      14 |    37 |        1 |      1 |
> | 43 |      2 |      14 |    38 |        1 |      1 |
> | 45 |      1 |       2 |    10 |        3 |      1 |
> +----+--------+---------+-------+----------+--------+
>
> to test gws, I use kamcmd
> for example :
> kamcmd lcr.load_gws 1 s:0600000001 s:02111111111 s:0600000001
> arg 1 : prefix or $rU
> arg 2 : from_uri
> arg 3 : request_uri
>
> result is OK with 5 gateways selected
>
> but in real test situation with the following config file :
>
> kamailio.cfg :
>
> request_route {
> ...
> if(!load_gws(1,$rU,$fU)) {
>               sl_send_reply("500", "Cannot load gateways");
>               exit;
> }
> ## - dumping the list of lcr gateways
> $var(i) = 0;
> while( $(avp(lcr_gw_uri)[$var(i)]) != $null) {
>         xlog("L_ERR","loaded
> gw_uri_avp[$var(i)]=’$(avp(lcr_gw_uri)[$var(i)])’\n");
>         $var(i) = $var(i) + 1;
> }
>
> if(!next_gw()) {
>         sl_send_reply("503", "No gateways found");
>         exit;
> }
> }
> .....
>
> => we receive a 503 "No gateways found", which indicate that load_gws() is
> OK, but wasn't able to parse avp lcr_gw_uri (we have no xlog output)
>
> Then I noticed that some calls are OK  and others are KO (with same
> pattern for $rU) => lcr rule id 2
>
> So I with debug=3
>
> *call to 0611111111 => load_gws OK and next_gw OK*
>
>  lcr [lcr_mod.c:3018]: do_from_gw(): request did not come from gw
>  lcr [lcr_mod.c:3018]: do_from_gw(): request did not come from gw
>  lcr [lcr_mod.c:3004]: do_from_gw(): request game from gw
>  lcr [lcr_mod.c:3009]: do_from_gw(): added tag_avp <cps=5;cc=50>
>  lcr [lcr_mod.c:2264]: ki_load_gws_furi(): load_gws(1, 0611111111,
> 0211111111)
>  lcr [lcr_mod.c:2313]: ki_load_gws_furi(): from uri <0211111111> did not
> match to from regex <AMD>
>  lcr [lcr_mod.c:2349]: ki_load_gws_furi(): request uri <
> sip:0611111111 at 10.192.50.227:5060> did not match to request regex
> <(00|\+)39.+>
>  lcr [lcr_mod.c:2349]: ki_load_gws_furi(): request uri <
> sip:0611111111 at 10.192.50.227:5060> did not match to request regex
> <(00|\+)[1-9].+>
>  lcr [lcr_mod.c:2349]: ki_load_gws_furi(): request uri <
> sip:0611111111 at 10.192.50.227:5060> did not match to request regex
> <(0|(|00|\+)33)[1-59]\d{8}>
>  lcr [lcr_mod.c:2369]: ki_load_gws_furi(): added matched_gws[0]=[4, 0, 3,
> 2329862]
>  lcr [lcr_mod.c:2369]: ki_load_gws_furi(): added matched_gws[1]=[5, 0, 1,
> 5553909]
>  lcr [lcr_mod.c:2369]: ki_load_gws_furi(): added matched_gws[2]=[8, 0, 3,
> 7256660]
>  lcr [lcr_mod.c:2369]: ki_load_gws_furi(): added matched_gws[3]=[7, 0, 2,
> 3129551]
>  lcr [lcr_mod.c:2369]: ki_load_gws_furi(): added matched_gws[4]=[6, 0, 4,
> 2234577]
>  lcr [lcr_mod.c:2085]: add_gws_into_avps(): added gw_uri_avp
> <6|sip:|0|||3543318538||5060||;transport=udp|0|2> with weight <2234577>
>  lcr [lcr_mod.c:2085]: add_gws_into_avps(): added gw_uri_avp
> <4|sip:|0||fd=carrier5|53657610||5060||;transport=udp|0|2> with weight
> <2329862>
>  lcr [lcr_mod.c:2085]: add_gws_into_avps(): added gw_uri_avp
> <8|sip:|0|||3593650186||5060||;transport=udp|0|2> with weight <7256660>
>  lcr [lcr_mod.c:2085]: add_gws_into_avps(): added gw_uri_avp
> <7|sip:|0|||3560095754||5060||;transport=udp|0|2> with weight <3129551>
>  lcr [lcr_mod.c:2085]: add_gws_into_avps(): added gw_uri_avp
> <5|sip:|0|||3526541322||5060||;transport=udp|0|2> with weight <5553909>
>  lcr [lcr_mod.c:2610]: generate_uris(): r_uri
> <sip:0611111111 at 10.192.50.210:5060;transport=udp>, dst_uri <>
>  lcr [lcr_mod.c:2904]: ki_next_gw(): added ruri_user_avp <0611111111>
>  lcr [lcr_mod.c:2950]: ki_next_gw(): added tag_avp <>
>  lcr [lcr_mod.c:2965]: ki_next_gw(): added defunct_gw_avp <3526541322>
>  lcr [lcr_mod.c:2610]: generate_uris(): r_uri
> <sip:0611111111 at 10.192.50.212:5060;transport=udp>, dst_uri <>
>  lcr [lcr_mod.c:2950]: ki_next_gw(): added tag_avp <>
>  lcr [lcr_mod.c:2965]: ki_next_gw(): added defunct_gw_avp <3560095754>
>  lcr [lcr_mod.c:2610]: generate_uris(): r_uri
> <sip:0611111111 at 10.192.50.214:5060;transport=udp>, dst_uri <>
>  lcr [lcr_mod.c:2950]: ki_next_gw(): added tag_avp <>
>  lcr [lcr_mod.c:2965]: ki_next_gw(): added defunct_gw_avp <3593650186>
>  lcr [lcr_mod.c:2610]: generate_uris(): r_uri
> <sip:0611111111 at 10.192.50.3:5060;transport=udp>, dst_uri <>
>  lcr [lcr_mod.c:2950]: ki_next_gw(): added tag_avp <fd=carrier5>
>  lcr [lcr_mod.c:2965]: ki_next_gw(): added defunct_gw_avp <53657610>
>  lcr [lcr_mod.c:2610]: generate_uris(): r_uri
> <sip:0611111111 at 10.192.50.211:5060;transport=udp>, dst_uri <>
>  lcr [lcr_mod.c:2950]: ki_next_gw(): added tag_avp <>
>  lcr [lcr_mod.c:2965]: ki_next_gw(): added defunct_gw_avp <3543318538>
>
> the right gws are selected and call are routed to them
>
> *call to 0600000001 => load_gws OK and next_gw KO*
>
>  lcr [lcr_mod.c:3018]: do_from_gw(): request did not come from gw
>  lcr [lcr_mod.c:3018]: do_from_gw(): request did not come from gw
>  lcr [lcr_mod.c:3004]: do_from_gw(): request game from gw
>  lcr [lcr_mod.c:3009]: do_from_gw(): added tag_avp <cps=5;cc=50>
>  lcr [lcr_mod.c:2264]: ki_load_gws_furi(): load_gws(1, 0600000001,
> 0211111111)
>  lcr [lcr_mod.c:2313]: ki_load_gws_furi(): from uri <0170619309> did not
> match to from regex <AMD>
>  lcr [lcr_mod.c:2349]: ki_load_gws_furi(): request uri <
> sip:0600000001 at 10.192.50.227:5060> did not match to request regex
> <(00|\+)39.+>
>
> the process stops after trying to match rule with regexp <(00|\+)39.+>
>
> Don't know if it's a bug or if I misunderstood something !
>
> Thanks in advance !
>
> Best regards,
>
>
>
>
> [image:
> https://app.livestorm.co/comdata-group/metaverse-what-will-cx-look-like-in-an-immersive-world?type=detailed&utm_source=Livestorm&utm_medium=Email&utm_campaign=Webinar+Metaverse]
> <https://app.livestorm.co/comdata-group/metaverse-what-will-cx-look-like-in-an-immersive-world?type=detailed&utm_source=Livestorm&utm_medium=Email&utm_campaign=Webinar+Metaverse>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
>   * sr-users at lists.kamailio.org
> Important: keep the mailing list in the recipients, do not reply only to
> the sender!
> Edit mailing list options or unsubscribe:
>   * 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/20220420/328dc6ce/attachment.htm>


More information about the sr-users mailing list