[sr-dev] [ openser-Bugs-2911707 ] usrloc stores username in lowercase in "location" table

SourceForge.net noreply at sourceforge.net
Thu Dec 10 14:56:14 CET 2009


Bugs item #2911707, was opened at 2009-12-10 00:11
Message generated for change (Comment added) made by henningw
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2911707&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver 1.5.x
>Status: Closed
>Resolution: Invalid
Priority: 5
Private: No
Submitted By: Asgaroth (asgaroth000)
>Assigned to: Henning Westerholt (henningw)
Summary: usrloc stores username in lowercase in "location" table

Initial Comment:
I am trying to integrate Kamailio (1.5.3-notls) into our existing
database structure using a view for the subscriber table and using the
location table to store the registration information.

I am successfully able to register a phone using this method.

One of our requirements is to set an "outboundproxy" and
"outboundproxyport" parameter in the location table for a particular sip
account (username). I am trying to do this with the sqlops module.

What I have come across though is that when the registration information
is saved to the location table the username is stored in lower case. So
when my sqlops query is run against the username it does not match.

For example, in the subscriber table I have view defined that for my
user account returns the following information:

-------------
select * from subscriber where username = 'BruceNW9440';
  username   |    domain     |  password  |               ha1
     |               ha1b
-------------+---------------+------------+----------------------------------+----------------------------------
 BruceNW9440 | 10.10.10.10 | 00minger00 |
1f2d688f65be04a61cab36a1fb3f426a | 6529d45f5c418daf35be7b3dd4a858cb
(1 row)
-------------

Now, if I check the above against the location table:

--------------
 select * from location where username = 'BruceNW9440';

0 rows returned
--------------

If I run the same query using "brucenw9440" as the username (lowercase)
then the correct information is returned.

I have the following log line in my kamailio configuration script:

xlog("L_INFO","Username: $au, OutboundProxy: $Ri, OutboundProxyPort: $Rp");

The details of this log appear correct when it is logged:

Dec  9 14:21:03 ibis /opt/kamailio/sbin/kamailio[16972]: [ID 197553
local0.info] Username: BruceNW9440, OutboundProxy: 10.10.10.10,
OutboundProxyPort: 5060

However, when my sqlopt query is run it does not find a match because of
the incorrect case:

sql_query("bfl", "UPDATE location SET outboundproxy = '$Ri',
outboundproxyport = '$Rp' WHERE username = '$au'", "res");

I've had a read through the usrloc module documentation and I cannot
seem to find a reference to any options that will preserve the case. I
also cannot find if there is a parameter to save('location') that will
preserve the case. I cant seem to find a reference to the save()
function on the wiki. I must be missing something small.


----------------------------------------------------------------------

>Comment By: Henning Westerholt (henningw)
Date: 2009-12-10 13:56

Message:
I can confirm that setting the mentioned parameter fixes the usrloc
insertion.



More information about the sr-dev mailing list