[SR-Users] voltdb support

Alex Balashov abalashov at evaristesys.com
Mon Dec 14 21:15:40 CET 2020


You'd have to devise some sort of API or use something that Kamailio can 
talk to, unless you're inclined to write a custom module that uses a 
library[1].

Otherwise, the usual integration paths are available, e.g.

1) You could put a REST API server in front of VoltDB and use:

https://kamailio.org/docs/modules/5.4.x/modules/http_async_client.html

https://kamailio.org/docs/modules/5.4.x/modules/http_client.html

2) Or, you could write a server of some kind which mediates these 
requests using EVAPI:

https://kamailio.org/docs/modules/5.4.x/modules/evapi.html

3) Or, you could write a minimal SIP redirect service using a library 
such as PJSUA/PJSIP, or JAIN,

https://www.oracle.com/technical-resources/articles/enterprise-architecture/introduction-jain-sip-part1.html

which would allow Kamailio to consume 3xx redirects as a transport for 
information queries. That is a common pattern for external routing 
services, for example.

It's also worth keeping in mind that even if you invent such a shim, 
you're not going to be able to use VoltDB to provide database backing 
for Kamailio's database-backed modules (e.g. htable, usrloc, dispatcher, 
carrierroute, etc). If your aim is to make VoltDB work transparently 
with those modules, then this isn't a viable project.

What you can do is query an API for some limited purposes. For example, 
you could get authentication credentials from VoltDB and store them in 
pseudovariables so as to feed them into functions which can use them, 
such as:

https://kamailio.org/docs/modules/5.4.x/modules/auth.html#auth.f.pv_auth_check

But most Kamailio modules which extensively utilise a relational 
database don't expose capabilities like that. That would, after all, 
contradict the basic purpose for which a lot of them exist, which is to 
transparently manage database interactions for you while providing terse 
and easy-to-use syntactical sugar.

So, it depends on what exactly you want to do. If it's something very 
specific, like getting routes or authentication credentials, you could 
potentially use an unsupported database if you devise a means of 
communicating with it indirectly, using a generic channel that Kamailio 
does support.

But if you're asking if Kamailio supports VoltDB in a rather general 
sense, the answer is no.

-- Alex

[1] https://docs.voltdb.com/UsingVoltDB/ChapAppDesign.php

On 12/14/20 2:57 PM, Ali Taher wrote:
> Hi Alex,
> 
> Thanks for your answer. How to proceed to let Kamailio talk manually to 
> VoltDB ?
> 
> Regards,
> 
> Ali Taher


-- 
Alex Balashov | Principal | Evariste Systems LLC

Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/



More information about the sr-users mailing list