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:KLAUS.darilion@example.com 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
John.Doe@domain instead of john.doe@domain (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