[OpenSIPS-Users] Dispatcher module with multiple groups

Diego Barberio diego.barberio at redmondsoftware.com
Fri Jun 1 15:17:15 CEST 2012



I'm kind of newbie to opensips, so I don't know all the modules I will
investigate dialplan module.


Thanks for your suggestion




From: users-bounces at lists.opensips.org
[mailto:users-bounces at lists.opensips.org] On Behalf Of Jamuel Starkey
Sent: jueves, 31 de mayo de 2012 04:17 p.m.
To: OpenSIPS users mailling list
Subject: Re: [OpenSIPS-Users] Dispatcher module with multiple groups


Have you tried the dialplan module?  We route TN's to various backend media
servers based on a regexp match and then use the avp that you get upon a
match from dp_translate to identify the media server to route to.


Then we can update the dialplan rules and use dp_reload without penalty to
"activate" any changes.


modparam("dialplan", "attrs_pvar", "$avp(dest)")

#Initial value for dialplan group




if ($avp(dest)==NULL) {

        xlog("L_INFO", "$ruri.user not found.");

        sl_send_reply("404", "Not Found");




Then do_something based on  $avp(dest) being set based on the match from
dp_translate maybe even call your ds_select_dst based on $avp(dest) being
one value or another (assuming you set the $avp(dest) to "MATCH" in your
dialplan rules table:


if ($avp(dest)=="MATCH") {

    ds_select_dst("2", "4");




     ds_select_dst("1", "4");



Hope that helps . . .





On May 31, 2012, at 11:59 AM, Diego Barberio wrote:

Hi All,


I'm using dispatcher module to forward incoming INVITEs to two destination

I have a set of 8 telephone numbers, if the call goes or comes from any of
that numbers I have to send the call to a group otherwise to the other.
Right now I'm doing this to select the group:


if($rU=~ '^*40109615*' || $rU=~ '^*40109541*' || $rU=~ '^*40285849*' ||
$rU=~ '^*40284592*' || $rU=~ '^*40117817*' || $rU=~ '^*40117830*' || $rU=~
'^*40489340*' || $rU=~ '^*40489455*' || $fU= ~ '^*40109615*' || $fU=~
'^*40109541*' || $fU=~ '^*40285849*' || $fU=~ '^*40284592*' || $fU=~
'^*40117817*' || $fU=~ '^*40117830*' || $fU=~ '^*40489340*' || $fU=~
'^*40489455*' ){

ds_select_dst("2", "4");


               ds_select_dst("1", "4");



Is there any better way to do this, I mean something like:

if(is_in_file($fU, 'numbers.txt') || is_in_file($rU, 'numbers.txt'))


Of course any option will be welcome, however it would be very nice if
there's an option which allows me to modify the numbers list without
restarting opensips.


Thanks a lot




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120601/b738e2ac/attachment.htm>

More information about the Users mailing list