Jump to content

Kamailio module db_kazoo disappeared?

Recommended Posts

We are working on building the last known good (4.3) branch with updated versions of dependencies (the last RPMs we can find for Kamailio from 2600hz are 5.0 from almost 7 years ago now).  We've got almost everything running but we have run into a roadblock: the file in the kazoo-configs-kamailio project here: https://github.com/2600hz/kazoo-configs-kamailio/blob/4.3/kamailio/db_kazoo.cfg references a db_kazoo.so module (apparently to query Kazoo via AMQP?)   We found an old thread from 2014 that talks about this module here: https://groups.google.com/g/2600hz-dev/c/c7gk5VTtWWM that references a repo https://github.com/2600hz/kazoo-kamailio that no longer exists but I found archives here: https://github.com/2600hz-archive/kazoo-kamailio

This appears to be the name of the original AMQP connector that was renamed but then from the RPMs it looks like there are two separate modules: https://packages.2600hz.com/centos/6/stable/kamailio-mirror/5.0.4h/ but we really need to be on a newer supported version of Kamailio (there have been numerous vulnerabilities reported in the published versions: https://www.cvedetails.com/vulnerability-list/vendor_id-15820/product_id-33634/Kamailio-Kamailio.html)

There was another clue in this APK build script: https://github.com/lazedo/kamailio-docker-alpine/blob/master/APKBUILD but that points to https://github.com/2600hz/kamailio-db-kazoo/archive/0.1.2.tar.gz which is a project that no longer exists. 

This is where I currently am, wondering if this module is gone forever.  Can anyone point me in the direction of the source for the db_kazoo.so module for Kamailio?  I'm fine with it being a potentially outdated version that needs some love but I can't find anything as it stands.  Thanks!


Link to comment
Share on other sites

After a bit more research and digging into the kamailio-db-kazoo-5.0.4h-4.1.x86_64.rpm archive it appears that there is an executable /usr/bin/KazooDB which is just .. sqlite3?  Maybe the question I really should be asking is what is the recommended configuration for the Kamailio database?   In a cluster is this shared and potentially a single point of failure or can I set them up independently?  I can't find any documentation on it, the cluster guide at https://docs.2600hz.com/sysadmin/doc/kazoo/cluster-guide/ doesn't mention it so I assume it's just using the sqlite3 database locally on each machine set up, is this correct?  

Sorry, for some reason I assumed the kazoo db connector was using couchdb for some reason, just trying to understand the pieces.  If anyone can shed some light we'd appreciate it! 

Link to comment
Share on other sites

  • 2600Hz Employees

You're correct that Kamailio interacts with KAZOO via AMQP, does not contact CouchDB, and does use sqlite for local storage stuff. Kamailio is part of the "cluster" because of the AMQP connection.

I can't speak to the packaging issues though. The process to open sourcing Kazoo5 work continues to wind through the appropriate channels; should resolve so many of these issues. Apologies for the frustrations in the mean time.

Link to comment
Share on other sites

  • 1 month later...

@Christian King In general, when compiling from source, most people use PostgreSQL for the Kamailio DB instead of KazooDB. The Kamailio DB (regardless of backend type) is used by Kamailio for things internal to it, like keeping track of the Kamailio server's dispatcher list of Freeswitch servers, presence subscriptions, etc.  As mc_ noted, there is no connection or relationship between that DB and CouchDB. In the past (around 10 years ago I think?), the 2600Hz KazooDB module actually used AMQP to request data for Kamailio's "database" (i.e. to do a lookup of a presence subscription it would send an AMQP message and some app or module of Kazoo would respond with the data. Kamailio internally saw this communication as just a standard DB lookup like using a local DB.) But for whatever reason they moved away from that system and KazooDB basically became a SQLite wrapper for all practical purposes. (Not sure what else is in the module, as it isn't open source, but I don't think it does much other than use the SQLite DB file nowdays with Kazoo v4 and above.)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...