[OpenSIPS-Users] Routing Based on $si and $Ri

Trevor Steyn trevor at webon.co.za
Wed Aug 5 11:44:44 CEST 2015


Ho Bogdan,

Thanks for this just want to make sure i am doing this the right way

So im my thinking i have the following tables in dialplan

*************************** 1. row ***************************
         id: 6
       dpid: 1
         pr: 1
   match_op: 0
  match_exp: 196.2.97.165_41.213.100.100
match_flags: 0
  subst_exp:
   repl_exp:
    timerec:
   disabled: 0
      attrs: route=2,forced_socket=41.213.100.200
*************************** 2. row ***************************
         id: 4
       dpid: 1
         pr: 1
   match_op: 0
  match_exp: 196.2.97.165_41.213.100.200
match_flags: 0
  subst_exp:
   repl_exp: \2
    timerec:
   disabled: 0
      attrs: route=1,forced_socket=41.213.100.100


In my script I will have something like this

if (dp_translate("1",/$si+"_"+$Ri,$avp(foo)) {
    Do some routing
}

Is this the way you envisioned doing this, Also what is the correct way
to to get seperate AVP's for the attributes column i have not been able
to find the answer to this i currently manually get the attributes avp

Lets say my attributes column has the following
route="1";somethingelse="random"

I currently get the route by using avp_subst like so
avp_subst("$avp(foo)/$avp(string_custom_route)/",
'/.*Route=[^"]*"([^"]*).*/\1/');

then i use ///$avp(string_custom_route)/ to route the call, I feel like
this is not good practice if you could guide me here i would appreciate it
as i have tried finding examples with no avail.

Regards
Trevor Steyn
  
/
On 05/08/2015 09:50, Bogdan-Andrei Iancu wrote:
> Hi Trevor,
>
> Why not using the dialplan module which allows you do operate with
> custom data, it does regexp search and caching too.
>
> Regards,
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com
> On 04.08.2015 21:32, Trevor Steyn wrote:
>> Hi All,
>>
>> I would like to be able to route calls based on Source IP and
>> Destination IP (always one of opensips IPs), As usual there are many
>> ways to skin a cat,
>> My first thought was to have a table such as the address table but
>> modify the IP field to a concatenation of $si and $RI
>>
>> so you would have a table like this
>>
>>
>> *************************** 1. row ***************************
>>           id: 6
>>          grp: 1
>>           ip: 196.2.97.165_41.213.100.100
>>         mask: 32
>>         port: 0
>>        proto: udp
>>      pattern:
>> context_info: Route=2;Forced_Socket=41.213.100.200
>>
>> So in the route script i would do something like this
>>
>> /check_cource_address("1",$si+"_"+$Ri) /
>>
>> Obviously i cannot just do this with the permissions module as it
>> wont accept this in the IP field as it expects a valid IP,
>> So before i go down that road i was wondering if anyone knows an out
>> of the box way i can do this without impacting performance, I could
>> easily use avp_ops for this but as far as i can see  it does a db
>> query for every transaction, this is not something that needs to be
>> called for every new sip transaction it should be loaded into memory
>> at startup.
>>
>> Your thoughts would be appreciated I would just like to be pointed in
>> the right (Best possible way to do this) direction.
>>
>> Regards
>> Trevor Steyn
>>
>>
>>
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>




More information about the Users mailing list