Hello,
I have a system consisting of OpenSIPS proxy, working as registrar and outbound
proxy for subscribers and multiple
asterisk systems behind it providing all kind of media services to subscribers.
OpenSIPS proxy dynamically assigns
which asterisk a particular endpoint should be served at and then forwards all
messages from that endpoint to the
selected asterisk server. Since this is dynamic process there's no predefined
list of endpoints assigned to each asterisk server.
Each asterisk server must be prepared to handle requests from any endpoint.
Currently I'm using chan_sip with dynamic realtime and it works well. Whenever
a request arrives to an asterisk it retrieves that
endpoint (peer) from db and caches it. chan_sip never attempts to retrieve the
whole list of endpoints.
Now I'm considering migrating to chan_pjsip and immediately I encountered a
problem. Unlike chan_sip, pjsip is retrieving
the whole list of subscribers multiple times during initial load. Then it does
it again every time you issue "pjsip list/show endpoints/aors"
CLI commands. Even worse (much worse), after initial load of AORs and endpoints
with the queries that looks like this:
SELECT * FROM pjsip_aors_v WHERE id LIKE '%' ORDER BY id
SELECT * FROM pjsip_endpoints_v WHERE id LIKE '%' ORDER BY id
it follows on with loading every AOR individually with queries like this:
SELECT * FROM pjsip_aors_v WHERE id = 'ep1'
SELECT * FROM pjsip_aors_v WHERE id = 'ep2'
...
SELECT * FROM pjsip_aors_v WHERE id = 'epN'
Then it goes on with loading every endpoint individually with queries like this:
SELECT * FROM pjsip_endpoints_v WHERE id = 'ep1'
SELECT * FROM pjsip_endpoints_v WHERE id = 'ep2'
...
SELECT * FROM pjsip_endpoints_v WHERE id = 'epN'
I currently have around 10K of endpoints and it's completely unacceptable even
at my scale and I'm sure there are much
bigger installations out there.
I asked this question on asterisk-users already
(http://lists.digium.com/pipermail/asterisk-users/2015-October/287742.html)
and was told by Joshua Colp that this is how things stands now and it works as
intended.
So I would like to ask developers if there are any plans to address it and make
it behave more like chan_sip does. If no
I'd like to know how developers suggest the installations with larger number of
endpoints to handle this. I'm open to any
suggestions. Right now it looks like show-stopper to me.
Thanks in advance,
Michael
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev