Hi list, I'm reading some old post in order to implement carrierroute.
I found this in a post that I include at the end of this message, but the part that I want to ask about is this one:
"You can put all the carriers under the same table and prioritize the gateway based on domains. Like tis you don't need to hardcode anything in the config file"
If I do this, do I need to prioritize the gateways on the subscriber table and if is there, how do I do it for the domain, when it is only a cr_preferred_carrier field?
Cheers,
Juan.-
[OpenSER-Users] Carrierroute
*Ovidiu Sas* osas at voipembedded.com mailto:users%40lists.kamailio.org?Subject=%5BOpenSER-Users%5D%20Carrierroute&In-Reply-To=352597.51885.qm%40web45602.mail.sp1.yahoo.com /Wed Mar 26 04:57:54 CET 2008/
* Previous message: [OpenSER-Users] Carrierroute http://lists.opensips.org/pipermail/users/2008-March/016657.html * Next message: [OpenSER-Users] [FEATURE REQ] allow does_uri_exist() to test against other variables besides $ru http://lists.opensips.org/pipermail/users/2008-March/016658.html * *Messages sorted by:* [ date ] http://lists.opensips.org/pipermail/users/2008-March/date.html#16659 [ thread ] http://lists.opensips.org/pipermail/users/2008-March/thread.html#16659 [ subject ] http://lists.opensips.org/pipermail/users/2008-March/subject.html#16659 [ author ] http://lists.opensips.org/pipermail/users/2008-March/author.html#16659
------------------------------------------------------------------------
Hello Douglas,
I am using this module in production with more then 400k routes loaded for 8 different providers and it is working like a charm. As Henning mentioned, the interface is a little bit cumbersome but usable. You can put all the carriers under the same table and prioritize the gateway based on domains. Like tis you don't need to hardcode anything in the config file.
Carrierroute was designed to deal with a big amount of routing rules and it is doing an amazing job. LCR was designed to deal with a limited number of routes/gateways but it has a different level of flexibility and a more mature interface.
Carrierroute is a brand new module and for sure it will improve in flexibility as times go by (just like the lcr did along releases).
Hope this helps, Ovidiu Sas
On Wednesday 07 January 2009, Juan Asencio wrote:
I found this in a post that I include at the end of this message, but the part that I want to ask about is this one:
"You can put all the carriers under the same table and prioritize the gateway based on domains. Like tis you don't need to hardcode anything in the config file"
If I do this, do I need to prioritize the gateways on the subscriber table and if is there, how do I do it for the domain, when it is only a cr_preferred_carrier field?
Hi Juan,
you don't need to combine all carriers together. If you want to priorize over different carriers, then i'd suggest you also use them in cr. For example something like this:
- carrier premium; domain 0, 1, 2; GWs a1, a2, a3, b1, b2, b3.. - carrier standard; domain 0, 1, 2; GWs A1, A2, A3, B1, B2, B3..
Then you could use different domains to implement your failover over the different GWs. And also of course do your prefix matching to route your calls to the best GW.
If you want to use only one carrier, then you also could just load the domain with DB avpops from some table, and just give the AVP to the cr_route function. You don't need to use the cr_user_carrier function, this is provided mainly for convinience and backward compatiblity.
Cheers,
Henning
Henning Westerholt wrote:
On Wednesday 07 January 2009, Juan Asencio wrote:
I found this in a post that I include at the end of this message, but the part that I want to ask about is this one:
"You can put all the carriers under the same table and prioritize the gateway based on domains. Like tis you don't need to hardcode anything in the config file"
If I do this, do I need to prioritize the gateways on the subscriber table and if is there, how do I do it for the domain, when it is only a cr_preferred_carrier field?
Hi Juan,
you don't need to combine all carriers together. If you want to priorize over different carriers, then i'd suggest you also use them in cr. For example something like this:
- carrier premium; domain 0, 1, 2; GWs a1, a2, a3, b1, b2, b3..
- carrier standard; domain 0, 1, 2; GWs A1, A2, A3, B1, B2, B3..
Then you could use different domains to implement your failover over the different GWs. And also of course do your prefix matching to route your calls to the best GW.
If you want to use only one carrier, then you also could just load the domain with DB avpops from some table, and just give the AVP to the cr_route function. You don't need to use the cr_user_carrier function, this is provided mainly for convinience and backward compatiblity.
Cheers,
Henning
Hi again Henning,
So to do the failover over the different gw's, has to be done on the configuration file? As [fail route xx]..
Cheers,
Juan.-
On Wednesday 07 January 2009, Juan Asencio wrote:
you don't need to combine all carriers together. If you want to priorize over different carriers, then i'd suggest you also use them in cr. For example something like this:
- carrier premium; domain 0, 1, 2; GWs a1, a2, a3, b1, b2, b3..
- carrier standard; domain 0, 1, 2; GWs A1, A2, A3, B1, B2, B3..
Then you could use different domains to implement your failover over the different GWs. And also of course do your prefix matching to route your calls to the best GW.
If you want to use only one carrier, then you also could just load the domain with DB avpops from some table, and just give the AVP to the cr_route function. You don't need to use the cr_user_carrier function, this is provided mainly for convinience and backward compatiblity.
[..]
So to do the failover over the different gw's, has to be done on the configuration file? As [fail route xx]..
Hi Juan,
yes, you need to do this in the cfg. You can use a static setup, like having three different failure_routes that goes over three domains. Another option is to load the failure routes from the DB, then you would need only one failure route, but need to setup this in the DB. Take a look to the example 1.18 in the cr README about how to use the cr_next_domain function.
Cheers,
Henning