Hi Daniel!

Daniel-Constantin Mierla wrote:
On 10/17/07 16:10, Klaus Darilion wrote:
Currently I have users stored in DB with lower case letters. But I want to allow my user to use upper case letters as well. But this does not work as avp_db_load is case sensitive. Is there a way to handle avp_db_load case insensitive?
is it postgres behind? AFAIK, mysql does ignore case comparison -- although I may be wrong!

Yes it is postgres but AFAIK SQL queries are per default always case sensitive.

Here is the query from avp_db_load when the SIP request has sip:[EMAIL PROTECTED] in the From URI:

select value,attribute,type from conference_extension where username='KLAUS.darilion' AND domain='example.com' AND attribute='106'

As you see it is "username='string'" and a "=" comparison is case sensitive. For example in registrar module there is a module parameter for case insensitive lookups which will convert the strings into lower case for all SQL queries.

The problem is also with dbaliases module: if a user calls [EMAIL PROTECTED] instead of [EMAIL PROTECTED] (which is the alias) it won't work:

select username,domain from dbaliases where alias_username='JohnDoe' AND alias_domain='example.com'

As you see the keys used by dbaliases module are the RURI.

The issue comes from the database server, the value is passed as it is gotten from the message. It is hard to predict what is the form in database, upper case, lower case, mixed. Maybe the database server can be configured to do ignore case string comparison.

I think the only solution would be to have a case_sensitive parameter (like in registrar module) in all relevant modules.

What do you think?

regards
klaus

_______________________________________________
Users mailing list
Users@openser.org
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to