on what version is this ? Op do 30 apr. 2020 om 15:09 schreef Alex A <[email protected] >:
> Setting the "First Only" flag on the carrier seem to be done the trick for > me. > It round-robins, while failing over to another carrier directly. > > > Thank you for your help. > > > > > ---- On Thu, 30 Apr 2020 07:12:04 -0400 *Alex A > <[email protected] <[email protected]>>* > wrote ---- > > Thank you for the tip, Ben. > > Do you by chance have a script snipped for this scenario? > > For some reason, the drouting part: > if (!do_routing(0,"F")) { > xlog("DRoute GATEWAY: Failed. source:$si -$fU -> $rU\n"); > send_reply(500, "No Gateway to Route found"); > exit; > } > xlog("Before Entering Relay\n CarrierID_avp: $avp(carrier_id), GW > ID avp: $avp(gw_id)"); > route(relay); > > Both AVPs return a single value instead of the a list for me, so I must be > missing something. > > > Thanks. > > > > > ---- On Wed, 29 Apr 2020 14:50:38 -0400 *Ben Newlin > <[email protected] <[email protected]>>* wrote ---- > > We also had a need to do this and did not find a way to do it via drouting > directly, but it will work with drouting with a little help. > > > > First, we specify the carrier_id_avp param [1]. After we call do_routing, > we copy out the carrier IDs from that avp into our own AVP. Then we use > route_to_carrier [2] for each carrier ID in the list. To continue routing > within the carrier, you can still do use_next_gw. When that returns false > (no more gateways), or if you want to skip to the next carrier you just > call route_to_carrier again with the next ID in your list. > > > > This solved two problem for us: > > * allows us to fail over by carrier instead of just by gateway > > * allows us to call do_routing multiple times for a call with different > groups and aggregate the results > > > > [1] - > https://opensips.org/docs/modules/3.0.x/drouting.html#param_carrier_id_avp > > [2] - > https://opensips.org/docs/modules/3.0.x/drouting.html#func_route_to_carrier > > > > > > Ben Newlin > > > > *From: *Users <[email protected]> on behalf of Alex A < > [email protected]> > *Reply-To: *OpenSIPS users mailling list <[email protected]> > *Date: *Wednesday, April 29, 2020 at 2:40 PM > *To: *users <[email protected]> > *Subject: *[OpenSIPS-Users] Drouting failover by carrier only > > > > Hi Everyone, > > > > Is it possible to failover to next carrier (instead next gateway) while > using drouting? > > > > > > I got the below to work; however currently, use_next_gw gets the next > gateway in the list, so > > if gwlist= #0,#3 > > > > and one of the carriers has multiple gateway IPs, the retry happens many > times to the same carrier: > > > > > > route[droute] { > > > > xlog("DRoute GATEWAY: source:$si - $fU -> $rU\n"); > > if (!do_routing(0,"F")) { > > xlog("DRoute GATEWAY: Failed. source:$si -$fU -> $rU\n"); > > send_reply(500, "No Gateway to Route found"); > > exit; > > } > > route(relay); > > exit; > > > > } > > > > route[relay] { > > > > if (is_method("INVITE")) { > > t_on_failure("missed_call"); > > } > > > > if (!t_relay()) { > > if (use_next_gw()) { > > xlog("L_INFO","Next Gateway: From=$fu, > To=$tu,RU=$ru, CI=$ci IP=$si\n"); > > t_on_failure("missed_call"); > > route(relay); > > exit; > > } > > else { > > send_reply(503, "Service not available, no more > gws"); > > exit; > > } > > }; > > exit; > > } > > > > > > failure_route[missed_call] { > > > > #if (use_next_gw(, , $var(carrier_attrs))) { > > if (use_next_gw(, $avp(gw_id),$avp(carrier_id))) { > > xlog("MissedCall--Next Gateway: From=$fu, > To=$tu,RU=$ru, CI=$ci IP=$si\n"); > > xlog("Carrier attributes of current gateway: > $avp(gw_id). carrier: $avp(carrier_id)\n"); > > > > t_on_failure("missed_call"); > > route(relay); > > exit; > > } > > else { > > send_reply(503, "Service not available, no more > gws"); > > exit; > > } > > > > > > > > > > Thank you. > > > > > > > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
