Re: [SR-Users] Problem with parallel forking

2011-01-21 Thread Daniel-Constantin Mierla

Hello,

the problem is that lookup(location) is handling only R-URI, so if ruri 
is for user XYZ and that is offline, then will return false.


Since you create many branches with avp_pushto(), other destinations 
added as extra branches will be not attempted because of 
lookup(location) condition.


The best is to relay the call after the avp_pushto(), so you will get 
two branches (or more) coming back via loopback and then you do lookup 
location for each:


if(src_ip!=myself)
{
   if(avp_db_load($ru/username,$avp(s:fork)))
   {
 avp_pushto($ru/username,$avp(s:fork)/g);
 t_relay();
 exit;
   }
}

if(!lookup(location)) 

Be sure you skip authentication or other checks when the requests comes 
back due to such loop, using if(src_ip==myself) conditions.


Cheers,
Daniel


On 1/21/11 11:10 AM, Daniel Grotti wrote:

Hi all,
I'm using kamailio 3.1 and I have some problems with parallel forking.
I need to implement parallel forking to different users registered on 
kamailio.
So, when call arrives with R-URI= sip:003912345678@IP_server, I need 
to fork te call to (for example) 2 users: 1001 and 1001.


To do that, I've created my usr_preferences table like this:

++--+--++---+--+---+-+
|/  id | uuid | username   | domain | attribute | type | value 
|/last_modified   |
++--+--++---+--+---+-+
|/   1 |  |/003912345678/  || fork  |0 | 1001  |
  |
/|/   2 |  |/003912345678/  || fork  |0 | 1002  |   
   |
/++--+--++---+--+---+-+

and I've added a code to my kam.cfg like this:

if (is_method(INVITE))
{

xlog(L_INFO, REQUEST Invite - M=$rm RURI=$ru F=$fu T=$tu IP=$si 
ID=$ci\n);
 if(avp_db_load($ru/username,$avp(s:fork)))
 {
 avp_pushto($ru/username,$avp(s:fork)/g);

 }

if(!lookup(location))
 {

 xlog(L_INFO, Local user offline - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si ID=$ci\n);
 sl_send_reply(404, User Offline);
 exit;
 }
 else
 {

 xlog(L_INFO, Local user online - M=$rm RURI=$ru F=$fu T=$tu 
IP=$si ID=$ci\n);
 t_relay();
 }

}


If 1001 and 1002 are registered everything works fine (1001 Ringing 
and 1002 ringing).
Ifonly 1001 registered everything works fine (1001 ringing and 1002 is 
offline.).


But when 1002 is registered and 1001 in offline, kamailio try to call 
1001, find that it's offline ( and I get 404 User Offline) but no 
call to 1002 is attempted.




What's wrong ?



Regards,

Daniel



___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


--
Daniel-Constantin Mierla
Kamailio (OpenSER) Advanced Training
Jan 24-26, 2011, Irvine, CA, USA
http://www.asipto.com

___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


Re: [SR-Users] avp_db_query() question

2011-01-21 Thread Daniel-Constantin Mierla

please keep the mailing list cc-ed all the time.

Thanks,
Daniel

On 1/20/11 1:49 PM, ?? wrote:

many thanks
I've fixed the problem. http://problem.Your
Using $(avp(s:name)) instead of $avp(s:name)
Your http://problem.your/ solution is OK too.

At 2011-01-20 18:10:40??Daniel-Constantin Mierla mico...@gmail.com 
wrote:


Hello,

maybe is better to use sqlops module, it more suitable for queries
with many records in result.
http://kamailio.org/docs/modules/stable/modules_k/sqlops.html

Cheers,
Daniel

On 1/19/11 2:58 PM, Klaus Darilion wrote:

looks fine. try to increase debug level - then you should see the
query and the results in syslog

regards
klaus

Am 18.01.2011 12:07, schrieb ??:

Hello


|avp_db_query(query[,dest]) can get a database query and store the
results in the avps.|


|But what if the results returns many rows,and how can I get all
the results? How to set the [dest] parameter ?|


|I've tried the method describered in
http://www.kamailio.org/docs/avp_db_query.html,but it doesn't
work.|


|like below|


|mysqlselect mem_user from tgroup where grp_name='1234';|


|+--+|


|| mem_user ||


|+--+|


|| 1013 ||


|| 2013 ||


|+--+|


|2 rows in set (0.00 sec)|


|kamailio.cfg|


|if(avp_db_query(select mem_user from tgroup where
grp_name='1234',$avp(name)))|


|{|


|||xlog(L_INFO,query results[1] :$avp(name[1])\n);|


|xlog(L_INFO,query results[2] :$avp(name[2])\n);|


|}|


|syslog|


|INFO query results[1] :null|


|INFO query results[2] :null|


|version: kamailio 3.0.2 MySQL 5.0|


||


|thank you very much!|





___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users


-- 
Daniel-Constantin Mierla

Kamailio (OpenSER) Advanced Training
Jan 24-26, 2011, Irvine, CA, USA
http://www.asipto.com





--
Daniel-Constantin Mierla
Kamailio (OpenSER) Advanced Training
Jan 24-26, 2011, Irvine, CA, USA
http://www.asipto.com

___
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users