Version: Openser 1.2.0
Platform: PSTN <-> Central Gateways <-- OpenSer --> Remote Gateways <-- >PABX
We have 4 central Voice Gateway connected to local PSTN and several tens of customer remote voice gateways connected to PABX. On our central voice gateways, we have several PSTN provider, and these providers have different prices for different location ( so calling a cell phone should be rather made by a voice gateway connected to a particular PSTN provider ).
As well, we provide SDA numbers for incoming call from PSTN on our central gateway and that should be routed to a remote customer voice gateway. But if customerA call the SDA of customerB, customerA should go through PSTN by our central voice gateway and then our central voice gateway route the call to CustomerB. So all remote gateways should not know any of the SDA route, only our central gateway should use this routes.
So basically we have 2 kinds of routing to be done by OpenSer:
o For our Central Gateway - For SDA11, try gateway Customer1 - For SDA12, try gateway Customer1 - For SDA21, try gateway Customer2 - For SDA22, try gateway Customer2 - For any other unknown number, no gateway should be returned ( I don't want a wrong number routed to our gateway from PSTN to generate another call on PSTN )
o For our remote customer gateways, I should have routing like this: - for cell phone, try gateway 1, if that gateway1 fail then try randomly gateway 2,3 or 4 ( and if possible the less loaded of these 3 gateways ) - for spain try gateway2, if that gateway2 fail, then try randomly gateway 1,3 or 4 ( and if possible the less loaded of these 3 gateways ) - for all other routes, try randomly gateway 1,2,3,4 ( and if possible the less loaded of these 4 gateways )
So I have several constraint: - two kind of routing should be made either if the call is coming from the central gateway or from a remote customer gateway ( differenlty said: routing different if call originate from PSTN or originate from remote voice gateway ) - for customer remote gateways, there are some preferred central gateway for certains location (e.g international call ) but if these gateways fail, fallback should occur to others central gateway - the less is hardcoded in the configuration file, the better is is. - how to try first the currently less loaded gateway when several gateways are available ( is it possible in openser has it is only dialog statefull and not call statefull ? )
What is the best option in OpenSer to achieve this ? Is the LCR module with "from_uri" and route by "prefix" can handle all this ? Where can we find complex examples of the LCR module ?
Regards, Jerome.