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 mentiond scripts should work fine if they use uid_domain and uid_domain_attrs tables. It might be configuration option or a small change -- not using them I cannot comment more.
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 <miconda@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 <miconda@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 list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla - http://www.asipto.com http://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.com http://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
-- Daniel-Constantin Mierla - http://www.asipto.com http://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
-- Daniel-Constantin Mierla - http://www.asipto.com http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda Kamailio World Conference, April 16-17, 2013, Berlin - http://conference.kamailio.com -