[OpenSIPS-Users] Dispatcher module with multiple groups

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


Hi JPS,

 

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

 

Thanks for your suggestion

Diego

 

 

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

$avp(dpid)=0;

 

dp_translate("$avp(dpid)","$ruri.user/$ruri.user");

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

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

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

        exit;

}

 

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");

}

else 

{

     ds_select_dst("1", "4");

}

 

Hope that helps . . .

 

Cheers,

 

JPS

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
groups.

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");

}else{

               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

Diego

<ATT00001.c>

 

-------------- 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