[OpenSIPS-Devel] [NEW FEATURE] Multi DB connections support in AVPOPS

Bogdan-Andrei Iancu bogdan at voice-system.ro
Wed Dec 31 10:12:24 CET 2008


Hi,

Thanks to a contribution of Kobi Eshun, the avpops module can now 
operate with multiple DB connections in the same time. Shortly, you will 
be able to operate with multiple databases (even different types of 
databases) in the same time.

How it works:
=============

1) define all the DB connections you want to use in AVPOPS module be 
multiple definitions of "db_url" param:
        modparam("avpops","db_url","mysql://user:passwd@host/database")
        modparam("avpops","db_url","1 postgres://user:passwd@host/osips")
        modparam("avpops","db_url","2 
mysql://user:passwd@localhost/opensips_1_4")
Note that the db url string is prefixed by a numerical id - a db_url 
reference number that will be used later to specify what DB connection 
to be used.

For backward comaptibility, the id 0 is considered default if missing 
and it is considered the default DB connection to be used if no other 
one is explicitly given:
        modparam("avpops","db_url","mysql://user:passwd@host/database")
  is the same with:
        modparam("avpops","db_url","0 mysql://user:passwd@host/database")

Also see 
http://www.opensips.org/html/docs/modules/devel/avpops.html#id2520921


2) use it - all avp_db_xxxx function takes as optional 3rd parameter the 
db connection id. If this param is missing, the default (id 0) 
connection is to be assumed.

  Ex:
    # load using default db connection (backward compatible)
    avp_db_load("$fu","$(i:678)");
    # load using db connection id 2
    avp_db_load("$fu","$(i:678)", "2");

Also see 
http://www.opensips.org/html/docs/modules/devel/avpops.html#id2511018.

Many thanks to Kobi for his contribution.

Best regards,
Bogdan





More information about the Devel mailing list