Thank you Daniel, your answer helped a lot. With : #!KAMAILIO loadmodule "pv.so" $avp(fd.did)
Everything works fine, but only if I turn off caching with : modparam("uid_domain", "db_mode", 0) Otherwise, avps are not loaded from the db. Digging into modules/uid_domain/domain.c, I figured out that the default flag value 0 for records in the uid_domain table would make the load_domains function skip the records, see (in load_domains) : /* Skip entries that are disabled/scheduled for removal */ if (flags & SRDB_DISABLED) goto skip; /* Skip entries that are for serweb/ser-ctl only */ if (!(flags & SRDB_LOAD_SER)) goto skip; Setting the flag value to 1 does make the load_domains function work as expected, and load the records from the db. Maybe the uid_domain-create.sql file under utils should be modifed. Thanks again Daniel, Philippe 2013/1/24 Daniel-Constantin Mierla <mico...@gmail.com> > The sript compatibility was set to kamailio strict mode, throwing error > if $xy was not a pv. You can fetch latest master and should work like if no > pv found as $xy, then is set as avp. > > Even if with your version, adding #!SER as first line should make it work > with $fd.did... > > Cheers, > Daniel > > > On 1/24/13 10:58 AM, Daniel-Constantin Mierla wrote: > > Hi Philippe, > > On 1/23/13 11:54 PM, Philippe Sultan wrote: > > Hey Daniel, > > Thanks a lot for your help. > > do you have #!SER as first line? This part should be the same ... if pv >> not found, then it should be considered avp. I will try to see what is the >> issue. >> > > I don't have #!SER > > > it should not be needed for this case, if $xyz is not found as pv, it is > considered avp. > > > >> Anyhow, for the moment, if not working, load pv and then try: >> - $fd and $td must stay as parameters for lookup_domain() >> - for strempty() try to use $avp(fd.did) and $avp(td.did) >> > > I loaded pv, and modified the script accordingly. No syntax errors > anymore, but avps are not populated from the data stored in the db. Maybe a > problem with lookup_domain? > > > the modules_s/domain was only renamed to uid_domain to avoid conflict with > the other domain module. No other recent changes to my knowledge. Can you > try to put IF around it and see if returns true or false? Can you check the > sql queries in the server to see if they are returning something? > > Cheers, > Daniel > > > Here's the excerpt of the script (I replaced the selects with '@' by > '$sel()', and added a dump_attrs()) : > xlog("L_INFO", "from.uri.host : $sel(from.uri.host)\n"); > xlog("L_INFO", "ruri.host : $sel(ruri.host)\n"); > > lookup_domain("$fd", "$sel(from.uri.host)"); > lookup_domain("$td", "$sel(ruri.host)"); > > xlog("L_INFO", "fd : $avp(fd.did)\n"); > > dump_attrs(); > > if (strempty($avp(fd.did)) && strempty($avp(td.did))) { > # Neither the calling nor the called domain is local > # This is a relaying attempt which should be forbidden > sl_reply("403", "Relaying Forbidden"); > drop; > } > > And as a result : > 0(22008) INFO: <script>: from.uri.host : ext.test.r3load.voip > 0(22008) INFO: <script>: ruri.host : ext.test.r3load.voip > 0(22008) INFO: <script>: fd : <null> > 0(22008) INFO: avp [avp.c:573]: class=GLOBAL > 0(22008) INFO: avp [avp.c:575]: INFO: No AVP present > 0(22008) INFO: avp [avp.c:583]: track=FROM class=DOMAIN > 0(22008) INFO: avp [avp.c:585]: INFO: No AVP present > 0(22008) INFO: avp [avp.c:593]: track=TO class=DOMAIN > 0(22008) INFO: avp [avp.c:595]: INFO: No AVP present > 0(22008) INFO: avp [avp.c:603]: track=FROM class=USER > 0(22008) INFO: avp [avp.c:605]: INFO: No AVP present > 0(22008) INFO: avp [avp.c:613]: track=TO class=USER > 0(22008) INFO: avp [avp.c:615]: INFO: No AVP present > 0(22008) INFO: avp [avp.c:623]: track=FROM class=URI > 0(22008) INFO: avp [avp.c:625]: INFO: No AVP present > 0(22008) INFO: avp [avp.c:633]: track=TO class=URI > 0(22008) INFO: avp [avp.c:635]: INFO: No AVP present > > In the db : > +----+----------------------+----------------------+-------+ > | id | did | domain | flags | > +----+----------------------+----------------------+-------+ > | 1 | ext.test.r3load.voip | ext.test.r3load.voip | 0 | > +----+----------------------+----------------------+-------+ > > Thanks again! > > Philippe > > > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing > listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > > > -- > Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda > - http://www.linkedin.com/in/miconda > Kamailio World Conference, April 16-17, 2013, Berlin > - http://conference.kamailio.com - > > > -- > Daniel-Constantin Mierla - http://www.asipto.comhttp://twitter.com/#!/miconda > - http://www.linkedin.com/in/miconda > Kamailio World Conference, April 16-17, 2013, Berlin > - http://conference.kamailio.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 > > -- Philippe Sultan
_______________________________________________ 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