freeswitch
freeswitch copied to clipboard
[mod_amqp] Added xml handler via amqp
Added ability to retrieve XML config via mod_amqp
mod_amqp creates one connection for sending requests and multiple connections for retrieving responses(had to do it because librabbitmq-dev doesn't allow to share connection between threads)
When fs needs xml config, it takes a free connection from a pool(or creates a new one) Then it sends a request via main connection and waits for a response via auxiliary connection. After fs receives XML it releases auxiliary connection, so next thread can use it now.
mod adds 3 fields to event:
reply_key - unique ID for request. it's used to compare request and response. Client must add this value as a header value. Header name is x-fs-resp-id.
reply_queue - a queue, from which fs tries to receive the response.
reply_exchange - exchange for routing(routing key = reply_queue)
Unit-tests failed: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/522/artifacts.html
Scan-build found bugs: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/522/index.html
Unit-tests failed: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/527/artifacts.html
Unit-tests failed: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/910/artifacts.html
@crienzo i've fixed unit-tests issues, made some code refactoring and added description how it works.
Unit-tests failed: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/914/artifacts.html
Unit-tests failed: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/915/artifacts.html
Unit-tests failed: https://public-artifacts.signalwire.cloud/drone/signalwire/freeswitch/1201/artifacts.html
@crienzo hi! I've fixed all bugs and memory leaks. also, i added description how it works and an example.