What I need is to fetch routing from VoltDB and send it back to switch using 
3xx response. So I think the API solution is the best approach here. 
Thanks for all this useful info.

-----Original Message-----
From: sr-users <[email protected]> On Behalf Of Alex Balashov
Sent: Monday, December 14, 2020 10:16 PM
To: [email protected]
Subject: Re: [SR-Users] voltdb support

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/

_______________________________________________
Kamailio (SER) - Users Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

_______________________________________________
Kamailio (SER) - Users Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to