On Wed, May 7, 2008 at 10:30 AM, Henning Westerholt
<henning.westerholt(a)1und1.de> wrote:
On Wednesday 07 May 2008, Bård Aase wrote:
I am trying to switch from SER to OpenSER, and
I'm using mysql for
data storage. Asterisk's sip_buddies table is supposed to contain
authentication data.
The configuration is set up, the openser database is appearantly set
up and working, but when I try to authenticate against
asterisk.sip_buddies i get the following errors:
May 6 12:36:58 [25672] ERROR:auth_db:auth_fixup: invalid table
version (use openser_mysql.sh reinstall)
[..]
The version tables in asterisk and openser is as follows:
SELECT * FROM asterisk.`version`
5
SELECT * FROM openser.`version`
6
What is the differences between database version 5 and 6?
Since the asterisk database is shared between multiple asterisks and
SER instances, its not trivial to upgrade the tables if that would
have implications on asterisk and/or ser
Hi Bård,
OpenSER checks on startup during the fixup process of the config script that
the table version is correct. This version data is read from the
openser.version table. The auth_db module uses normally the 'subscriber'
table, thus its expect the table version entry under the same name.
from trunk: select table_version from version where table_name='subscriber';
-> 6
If the asterisk.sip_buddies table has the correct format (compare against a
fresh DB setup with your OpenSER version), then it should be sufficient to
add a entry with the correct version number (check in auth_db
source, 'VERSION') in the version table, or just remove the check from the
source code. To get the differences you could also just setup a fresh
installation of the DB, and use the usual tools to show the table
format. For
more information you should provide the OpenSER
version you use, and the
table format of the table you authenticate against.
Thanks, I will check this out now, I'm using OpenSER 1.3.1 and the
sip_buddies table looks like this:
+--------------------+------------------+------+-----+-------------------------+-------+
| Field | Type | Null | Key | Default
| Extra |
+--------------------+------------------+------+-----+-------------------------+-------+
| name | varchar(80) | | PRI |
| |
| accountcode | varchar(20) | YES | | NULL
| |
| secret | varchar(80) | YES | | NULL
| |
| type | varchar(6) | | | friend
| |
| username | varchar(80) | | |
| |
| amaflags | varchar(7) | YES | | DEFAULT
| |
| callgroup | varchar(10) | YES | | NULL
| |
| callerid | varchar(80) | YES | | NULL
| |
| canreinvite | varchar(3) | YES | | yes
| |
| context | varchar(80) | YES | | NULL
| |
| defaultip | varchar(15) | YES | | NULL
| |
| dtmfmode | varchar(7) | YES | | NULL
| |
| fromuser | varchar(80) | YES | | NULL
| |
| fromdomain | varchar(80) | YES | | NULL
| |
| host | varchar(31) | | | dynamic
| |
| incominglimit | int(2) | YES | | NULL
| |
| outgoinglimit | int(2) | YES | | NULL
| |
| insecure | varchar(4) | YES | | NULL
| |
| language | varchar(2) | YES | | NULL
| |
| mailbox | varchar(50) | YES | | NULL
| |
| md5secret | varchar(80) | YES | | NULL
| |
| nat | varchar(8) | | | yes
| |
| permit | varchar(95) | YES | | NULL
| |
| deny | varchar(95) | YES | | NULL
| |
| mask | varchar(95) | YES | | NULL
| |
| pickupgroup | varchar(10) | YES | | NULL
| |
| port | varchar(5) | | |
| |
| qualify | varchar(8) | YES | | NULL
| |
| mobilenumber | varchar(16) | | |
| |
| restrictcid | char(1) | YES | | NULL
| |
| rtptimeout | varchar(3) | YES | | NULL
| |
| rtpholdtimeout | varchar(3) | YES | | NULL
| |
| allow | varchar(100) | YES | |
g729;ilbc;gsm;ulaw;alaw | |
| disallow | varchar(100) | YES | | all
| |
| musiconhold | varchar(100) | YES | | NULL
| |
| regseconds | int(11) | | | 0
| |
| ipaddr | varchar(15) | | MUL |
| |
| cancallforward | varchar(3) | YES | | yes
| |
| fullcontact | varchar(80) | YES | | NULL
| |
| domain | varchar(128) | YES | | UNDISCLOSED
| |
| ha1b | varchar(128) | YES | |
| |
| rpid | varchar(255) | YES | |
| |
| trustrpid | enum('YES','NO') | | | NO
| |
+--------------------+------------------+------+-----+-------------------------+-------+
The openser.cfg configuration for auth_db:
loadmodule "auth_db.so"
# -- auth_db params --
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "user_column", "name")
modparam("auth_db", "domain_column", "domain")
modparam("auth_db", "password_column", "secret")
modparam("auth_db", "password_column_2", "ha1b")
modparam("auth_db", "use_domain", 0)
modparam("auth_db", "db_url",
"mysql://UNDISCLOSED:UNDISCLOSED@UNDISCLOSED/asterisk")
All the fields referred to here exists in the asterisk.sip_buddies
table, so my guess now is that this is just a matter of disabling the
version check, or bumping the version number.
--
Bård Aase
gTalk/Jabber: elzapp(a)elzapp.com MSN: msn(a)elzapp.com
http://blog.elzapp.com