Hello,
I would like to announce that Federico Cabiddu has now write access to
Kamailio git repository. He is going to push a new module named tsilo,
which facilitates adding new branches to active transactions -- the
typical case implemented so far is to track invites per callee and add a
new branch if the callee registers while invite transaction is active,
quite useful for services with mobile clients that are getting push
notifications to wake up.
Federico is one of the guys using Kamailio for many years, currently
working at Orange, France.
His commit user id is: fcabiddu
My warm welcome and thanks for joining the effort to develop Kamailio!
Looking forward to future contribution to the project,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany
Hi all Kamailio developers,
I would like to propose a new module that I've written recently, the tsilo
module where tsilo stands for "transaction silo" (thanks Daniel for
suggesting the name). The module provides the ability to add branches to a
transaction that has already been relayed and still hasn't got a final
response. It achieves it by storing in an internal table a list of
transactions per r-uri.
The scenarios for which this functionality has been originally though are
those in which a user's device is usually not registered on kamailio but,
in case of incoming invite, can be "waken up" (and so trigger its
registration) by means of mechanisms other than SIP; typically scenarios
involving APN, GCM or other push mechanisms.
The module exposes 3 functions to configuration script:
- t_store(): store the current transaction
- t_append(domain, ruri): append branches to all the transactions existing
for "ruri" looking up new contacts in "domain" table
- t_append_to(tindex, tlabel, domain): append branches to transaction
identified by tindex and tlabel looking up new contacts in "domain" table
The module depends on tm and registrar module on which some modifications
have been done:
registrar: new api function update_to_dset to update the dset without
rewriting the r-uri
tm: new api function t_append_branches and some modifications on t_fwd.* to
implement it
I hope that this contribution could be useful for the community and I look
forward to hearing your feedback, thoughts, suggestions.
Best regards,
Federico Cabiddu
Hello Awesome Kamailio Community,
We are writing on behalf of 2600hz, where we have been using Kamailio for some time now and are very pleased with our results! So, seems time to commit something back, dontchya think?
We would like to present to you a new module, to hopefully be included in master. We call it db_kazoo (although a new name is fine too).
db_kazoo is a general purpose AMQP connector (connects to our rabbitmq-server). It exposes publish/consume capabilities into Kamailio. Why is this amazing, you ask? Well even if you didn’t ask, we will explain…
>From a high-level, the purpose of the module might be for things like:
- Integrate to an AMQP application to make real-time routing decisions (instead of using, say, a SQL database)
- Provide a real-time integration into your program, instead of your database, so you can overlay additional logic in your preferred language while also utilizing a message bus
- Utilize messaging to have a distributed messaging layer, such that machines processing requests/responses/events can go up/down or share the workload and your Kamailio node will still be happy
With this module, someone can:
1 - publish json payloads to rabbitmq
2 - publish json payloads to rabbitmq and wait for correlated response message
3 - subscribe to an exchange with a routing key
The module works with a main forked process that does the communication with rabbitmq for issuing publishes, waiting for replies and consuming messages. When it consumes a message it defers the process to a worker process so that it doesn't block this main process.
The worker process issues an event-route where we can act on the received payload. The name of the event-route is composed by values extracted from the payload.
Consumed messages have the option of being acknowledge in two ways:
1 - immediately when received
2 - after processing by the worker
One unique feature of our implementation revolves around failover of the message bus itself. In our design, the module supports multiple RabbitMQ servers and will fallback from one to the next in a list of RabbitMQ servers if the connection fails to the current connected server. When using acknowledge in db_kazoo with clustering in RabbitMQ, we have simulated and experienced full reconnects while in the middle of processing pending messages. In this way, when we get disconnected from one server we proved that, even at high speeds, we are able to connect to the next in the list and continue interacting with our application.
We have run a variety of sipp load tests on this module and believe it is ready for prime time. We monitored memory, response accuracy and overall stability and it seemed OK. But we would, of course, love for others to help us find what we have missed, or contribute more features, or overall just use the work we slaved over for so many hours. Or just make comments and suggestions!
If nothing else, we hope we’ve provided something useful to the Kamailio community, as you all have provided useful items to us.
Thanks to everyone for all the work on Kamailio and related products.
Look forward to hearing from you all.
This is our first formal / large contribution to Kamailio so if we’ve done something wrong process, code or otherwise please let us know!
Hello,
the development of new features for next major release, v4.2.0, is going
to be frozen by end of today. As we have developers all over the world,
we are going to allow everyone to benefit of the full day, so
technically is like end of Wednesday, September 10, in Hawaii ( :-) a
good fit, because it is the home region for the name of the project.
If there is a patch with new features that you want to push, but needs
review, we are going to take care of them in the next days, but upload
them to the tracker or send them to sr-dev mailing list by today.
Then follows about one month of testing and bug fixing for the existing
code, with the target to have the 4.2.0 release out around mid of October.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany
Hello,
I would like to announce that a new developer has now write access to
Kamailo git repository: Luis Azedo.
His commit username is: lazedo
He is going to push soon the 'kazoo' module that was discussed these
days on the mailing list - a module connector for the Kazoo - the open
source, distributed VoIP platform using Kamailio for core SIP routing.
He also provided many patches to other components so far. Luis works for
2600hz, an USA company, and will be accompanied by Darren Schreiber and
Karl Andreson in maintenance of the new module.
My warm welcome and thanks for joining the effort of developing Kamailio
further!
Looking forward to future contributions to the project!
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Next Kamailio Advanced Trainings 2014 - http://www.asipto.com
Sep 22-25, Berlin, Germany
Hi,
we have a transformation in our module and on the eval function we are
setting the pv_value_t flags to PV_VAL_STR | PV_VAL_PKG.
shouldn't the pv_value_t.rs.s be freed ? we want to avoid using static
buffers because they may be overlapped by other processes.
Best