[OpenSIPS-Users] Basic dynamic routing question
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Tue Jun 23 10:42:59 CEST 2009
Hi James,
I would say the script ids working, but you do not print the right
stuff. After do_routing() the first GW is already set as ruri in the
request; $avp(s:dr_ruri) is storing the next GWs to be used (if any). Try:
..
modparam("drouting", "attrs_avp", '$avp(s:dr_attrs)')
modparam("drouting", "ruri_avp", '$avp(s:dr_ruri)')
...
route {
...
# set failure route for forward
t_on_failure("1");
# detect resources and do balancing
xlog("-----Doing routing\n");
if (!do_routing("1")) {
sl_send_reply("503", "No destination available");
exit;
}
xlog("----- gw attr is $avp(s:dr_attrs)\n");
xlog("----- ruri is $ru\n");
if (!t_relay()) {
xlog("----- relay failed\n");
sl_reply_error();
}
}
Regards,
Bogdan
James Wiegand wrote:
> Still no luck ... I can see the routing match, but the relay always fails.
>
> -----Doing routing
> Jun 22 11:55:35 [12508] DBG:drouting:do_routing: using dr group 1
> Jun 22 11:55:35 [12508] DBG:drouting:internal_check_rt: found rgid 1
> (rule list
> 0xb60cadc8)
> Jun 22 11:55:35 [12508] DBG:drouting:do_routing: setting attr [] as
> for ruri
> Jun 22 11:55:35 [12508] DBG:drouting:do_routing: setting the gw [0] as
> ruri "si
> p:87zzzzzzz at xx.xx.xx.59 <mailto:p%3A8706569978 at 66.234.135.59>"
> ----- gw attr is
> ----- ruri is <null>
> Jun 22 11:55:35 [12508] DBG:core:pv_get_dsturi: no destination URI
> -----to uri is <null>
> Jun 22 11:55:35 [12508] DBG:tm:t_newtran: transaction on entrance=(nil)
> Jun 22 11:55:35 [12508] DBG:core:parse_headers: flags=ffffffffffffffff
> Jun 22 11:55:35 [12508] DBG:core:get_hdr_field: content_length=388
> Jun 22 11:55:35 [12508] DBG:core:get_hdr_field: found end of header
>
>
> My config:
>
> ...
> modparam("drouting", "attrs_avp", '$avp(s:dr_attrs)')
> modparam("drouting", "ruri_avp", '$avp(s:dr_ruri)')
> ...
> route {
> ...
> # set failure route for forward
> t_on_failure("1");
> # detect resources and do balancing
> xlog("-----Doing routing\n");
>
> if (!do_routing("1")) {
> sl_send_reply("503", "No destination available");
> exit;
> }
> xlog("----- gw attr is $avp(s:dr_attrs)\n");
> xlog("----- ruri is $avp(s:dr_ruri)\n");
>
> xlog("-----to uri is $du\n");
>
> if (!t_relay())
> {
> xlog("----- relay failed\n");
> sl_reply_error();
> }
> }
>
> What am I missing here?
>
> -jim
>
> On Fri, Jun 19, 2009 at 6:05 PM, Bogdan-Andrei Iancu
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
> Hi James,
>
> The logic is a bit different that the one for lcr - the
> do_routing() functions already pushes the initial destination, so
> no need to do the "use_next_gw" after it:
>
> route {
>
> ...
> if (!do_routing("1")) {
>
> sl_send_reply("503", "No destination available");
> exit;
> }
> xlog("-----gw attr is $avp(s:dr_attrs)\n");
>
>
> if (!t_relay())
> {
> sl_reply_error();
> }
>
> }
>
>
> Regards,
> Bogdan
>
>
>
> James Wiegand wrote:
>
> Hi all,
>
> I am trying to get dynamic routing working and can't seem to
> get any
> traction on the problem
>
> when I do a do_routing() call in the request loop nothing seems to
> happen. I am at a loss troubleshooting this problem. How can you
> tell what possible matches there are?
>
> Routing setup I have includes the following items - OpenSIPS 1.5.1
>
> table dr_rules:
>
> ruleid groupid prefix timerec priority
> routeid gwlist description
> 1 1 870 20040101T000000
> 0 0 1 Default route
>
> table dr_gateways:
>
> gwid type address strip pri_prefix
> attrs description
> 1 10 XXX.XXX.XXX.XXX 0 NULL NULL Provider
>
> route {
>
> ...
> do_routing("1");
> xlog("-----gw attr is $avp(s:dr_attrs)\n");
>
> if(use_next_gw())
> {
> if (!t_relay())
> {
> sl_reply_error();
> }
> exit;
>
>
> } else {
> sl_send_reply("503", "No destination available");
> exit;
> }
>
> }
>
> >From the log:
>
> Jun 19 17:10:55 [9270] DBG:drouting:do_routing: using dr group 1
> Jun 19 17:10:55 [9270] DBG:drouting:internal_check_rt: found
> rgid 1
> (rule list 0xb60d4dc8)
> Jun 19 17:10:55 [9270] DBG:drouting:do_routing: setting attr
> [] as for ruri
> Jun 19 17:10:55 [9270] DBG:drouting:do_routing: setting the gw
> [0] as
> ruri "sip:8706569978 at XXX.XXX.XXX.XXX"
> -----gw attr is <null>
>
>
> Thanks,
>
> -jim
>
>
>
>
>
>
> --
> --
> Jim Wiegand
> -----------
> Home: originaljimdandy at gmail.com <mailto:originaljimdandy at gmail.com>
> AIM: originaljimdandy
More information about the Users
mailing list