[OpenSIPS-Users] Dynamic routing .

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Sep 29 10:39:55 CEST 2015


Hi Sasmita,

avp_db_query() does not do any kind of caching, but you can combine it 
at script level with caching in localcache (see 
http://www.opensips.org/Documentation/Tutorials-MemoryCaching).

dp_translate() in dialplan module does data caching - please read the 
module documentation.

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 29.09.2015 08:40, Sasmita Panda wrote:
> Hi Bogdan ,
>
>    One more question . In the above describe process , each time the 
> value will get loaded from Database or it will get store in cache ?
> I think in avp_db_query() , it will get the data from database each 
> time . Which is not a preferable solution in my case .
> What about load_credentials and dp_translate ? Are these methods also 
> load data from database each time ? I don't have any idea .
> Can you please explain a bit how they work ?
>
> */Thanks & Regards/*
> /Sasmita Panda/
> /Network Testing and Software Engineer/
> /3CLogic , ph:07827611765/
>
> On Mon, Sep 28, 2015 at 6:21 PM, Bogdan-Andrei Iancu 
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
>     That "3" you can load it from DB (via avp_db_query()) or you can
>     get it from user profile (load_credentials) or it can be the
>     result of a translation (dp_translate based on SIP domain).
>
>     It is up to you where you get the value from - the important part
>     is that you can pass it via a variable to do_routing().
>
>     Regards,
>
>     Bogdan-Andrei Iancu
>     OpenSIPS Founder and Developer
>     http://www.opensips-solutions.com
>
>     On 28.09.2015 15:43, Sasmita Panda wrote:
>>     This is also give a fixed value 3 in do_routing() . I think so . 
>>     I want my do_routing() , parameter should be flexible . It should
>>     be decided on the basis of the domain of the group . Is this
>>     possible ?
>>
>>     */Thanks & Regards/*
>>     /Sasmita Panda/
>>     /Network Testing and Software Engineer/
>>     /3CLogic , ph:07827611765/
>>
>>     On Mon, Sep 28, 2015 at 6:03 PM, Bogdan-Andrei Iancu
>>     <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>
>>         Use a variable then :)
>>
>>         $avp(grp) = 3;
>>
>>         do_routing("$avp(grp)");
>>
>>         Regards,
>>
>>         Bogdan-Andrei Iancu
>>         OpenSIPS Founder and Developer
>>         http://www.opensips-solutions.com
>>
>>         On 28.09.2015 15:31, Sasmita Panda wrote:
>>>         Hi Andrei,
>>>
>>>             Yes , I know the do_routing() reflects the routing
>>>         groups . But in my case its not fixed .
>>>         If i am doing  "do_routing("2")"  then it only point to the
>>>         group_id :2 of the dr_groups table and do the perform the task .
>>>         But I dont want to fix this parameter .
>>>
>>>         Please have a look into the bellow tables :
>>>
>>>
>>>         mysql> select * from dr_rules;
>>>         +--------+---------+--------+---------+----------+---------+--------+-------+---------------+
>>>         | ruleid | groupid | prefix | timerec | priority | routeid |
>>>         gwlist | attrs   | description |
>>>         +--------+---------+--------+---------+----------+---------+--------+-------+---------------+
>>>         |     13 | 3         |     |         |        0    | NULL  
>>>             | 3      | NULL  | My Number     |
>>>         |     12 | 2         |     |         |        0     | NULL  
>>>            | 2     | NULL  | My 2nd Number |
>>>         +--------+---------+--------+---------+----------+---------+--------+-------+---------------+
>>>
>>>         mysql> select * from dr_groups;
>>>         +----+----------+--------------------------+---------+-------------+
>>>         | id | username | domain                             |
>>>         groupid | description |
>>>         +----+----------+--------------------------+---------+-------------+
>>>         |  3 | .*             | .*@mongodb5-sasmita.com.* |   2 |
>>>         Outbound    |
>>>
>>>         |  4 | .*             | .*@mongodb6-sasmita.com.* |   3 |
>>>         Outbound    |
>>>         +----+----------+--------------------------+---------+-------------+
>>>
>>>         mysql> select * from dr_gateways;
>>>         +----+------+------+-------------------+-------+------------+-------+------------+-------+--------+-------------+
>>>         | id | gwid | type | address               | strip |
>>>         pri_prefix | attrs   | probe_mode | state | socket |
>>>         description |
>>>
>>>         |  4 | 2    |    0   | 192.168.1.17:9900
>>>         <http://192.168.1.17:9900> |     0 | NULL       | NULL  |  
>>>              0       |     0 | NULL | Freeswitch1 |
>>>         |  5 | 3    |    1   | 192.168.1.17:7700
>>>         <http://192.168.1.17:7700> |     0 | NULL       | NULL  |  
>>>              0       |     0 | NULL | Freeswitch2 |
>>>         +----+------+------+-------------------+-------+------------+-------+------------+-------+--------+-------------+
>>>
>>>
>>>         This is my table . Now what I want is if call comes from
>>>         groupid:2  then route it to the gwlist:2 , if its coming form
>>>         groupid:3  then route it to the gwlist:3 .
>>>
>>>             In this case how I will do the routing in my script ?
>>>
>>>
>>>         */Thanks & Regards/*
>>>         /Sasmita Panda/
>>>         /Network Testing and Software Engineer/
>>>         /3CLogic , ph:07827611765/
>>>
>>>         On Mon, Sep 28, 2015 at 4:47 PM, Bogdan-Andrei Iancu
>>>         <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>>
>>>             Hi Sasmita,
>>>
>>>             The param of do_routing() has to reflct the routing
>>>             group you want to use (the groupid in the dr_rules table) .
>>>
>>>             Regards,
>>>
>>>             Bogdan-Andrei Iancu
>>>             OpenSIPS Founder and Developer
>>>             http://www.opensips-solutions.com
>>>
>>>             On 28.09.2015 13:26, Sasmita Panda wrote:
>>>>             Hi All ,
>>>>
>>>>                 I mean to say , when there is more that one group
>>>>             and for each group there is different gateways then how
>>>>             I will set the do_routing parameter inside my script ?
>>>>
>>>>                 If I have a single group then I am setting it as
>>>>             do_routing("1") . But for different groups this logic
>>>>             wont work . I don't want to add if... else loop for
>>>>             this . I don't want to change my config file every time
>>>>             I add an new group and its corresponding gateway .
>>>>
>>>>
>>>>                 So please help me how will I do this ? Any kind of
>>>>             suggestion is welcome .
>>>>
>>>>             */Thanks & Regards/*
>>>>             /Sasmita Panda/
>>>>             /Network Testing and Software Engineer/
>>>>             /3CLogic , ph:07827611765/
>>>>
>>>>             On Fri, Sep 25, 2015 at 7:08 PM, Sasmita Panda
>>>>             <spanda at 3clogic.com <mailto:spanda at 3clogic.com>> wrote:
>>>>
>>>>
>>>>
>>>>                 Hi All ,
>>>>
>>>>
>>>>                     I am trying to use dynamic routing in
>>>>                 opensips-1.11 .
>>>>                  I have just done an single outbound call . I have
>>>>                 added a group corresponding to  outbound domain
>>>>                 then i had define a gate way corresponding to the
>>>>                 group id .
>>>>                   In side my script , I have added
>>>>                 do_routing(group_id) . Its working for me .
>>>>
>>>>                     Now I have multiple groups and for each group
>>>>                 the gateway is different .
>>>>                 like : group1 : gr_id:1 , domain : 1.1.1.1:5506
>>>>                 <http://1.1.1.1:5506>
>>>>                 group2 : gr_id2 . domain : 2.2.2.2:5506
>>>>                 <http://2.2.2.2:5506>
>>>>                    gatw1 : domain:x.x.x.x:5506 , gw_type:1 , gr_id:1
>>>>                 gatw2 : domain:x.x.x.y:5506 , gw_type:1 , gr_id:2
>>>>
>>>>                      Now , I can add this in the table . but how
>>>>                 will I define it in the script so that for
>>>>                 different group different gateway will get selected
>>>>                 and the call get routed ?
>>>>
>>>>                 Please help. Thank you in advance .
>>>>
>>>>
>>>>
>>>>                 */Thanks & Regards/*
>>>>                 /Sasmita Panda/
>>>>                 /Network Testing and Software Engineer/
>>>>                 /3CLogic , ph:07827611765/
>>>>
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>             Users mailing list
>>>>             Users at lists.opensips.org  <mailto:Users at lists.opensips.org>
>>>>             http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20150929/4123d4ba/attachment-0001.htm>


More information about the Users mailing list