I was using this module in version 3.1.0. The thing is that I used the provisioning python scripts (ser_domain, ser_attrs) to create my domains and their attributes (see : http://www.mail-archive.com/sr-users@lists.sip-router.org/msg12415.html).
The default value for the flag field when creating a domain was 37, which according to kamailio-3.1.0/lib/python2.4/site-packages/serctl/flag.py equals to LOAD_SER | CANON | FOR_SERWEB : LOAD_SER = 1L << 0 # The row should be loaded by SER DISABLED = 1L << 1 # The row is disabled CANON = 1L << 2 # Canonical entry (domain or uri) IS_TO = 1L << 3 # The URI can be used in To IS_FROM = 1L << 4 # The URI can be used in From FOR_SERWEB = 1L << 5 # Credentials instance can be used by serweb As kamctl does not handle the uid_domain and uid_domain_attrs tables, I must rely on MySQL default value (0), set in utils/kamctl/mysql/uid_domain-create.sql. And 0 for the flag field will make lookup_domain fail in uid_domain if caching is used. So, 37 seems to be the right default value to provision (the flags from the former python script are all reflected in lib/srdb2/db.h). I have written a patch that adds uid_domain commands to kamctl with the default values from 3.1.0, attached to this message. Will work on something for uid_domain_attrs too if needed. Cheers, Philippe 2013/1/24 Daniel-Constantin Mierla <mico...@gmail.com> > I am not using this module and I don't know what are supposed to be the > right default values for flags. But it should be like it was in the past. > If you used with an older version 3.x, apart of renaming, nothing was > touched in the code for 4.x. > > Cheers, > Daniel > > > On 1/24/13 4:27 PM, Philippe Sultan wrote: > > 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 > 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 - > > > _______________________________________________ > 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
kamctl-uid_domain.diff
Description: Binary data
_______________________________________________ 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