I just checked line 2285 in the code and it
references the exact
commit were avps changed to xavps.
I would definitely try 5.1 and open an issue in github.
Can you post your relevant config related to this in case something
is just wrong there? (Both the request and failed route parts)
On Sun, Sep 2, 2018 at 08:07 Joel Serrano <joel(a)textplus.com
<mailto:joel@textplus.com>> wrote:
Hi
I think dispatcher changed from avps vars to xavps vars in master
(5.2).
Can you try on latest stable (5.1) using avps instead just in
case...?
Also, can you print in the logs the xavp_avp var you set in the
modparam?
On Sun, Sep 2, 2018 at 00:28 Igor Olhovskiy
<igorolhovskiy(a)gmail.com <mailto:igorolhovskiy@gmail.com>> wrote:
An example could be like this
3 nodes (A, B, C)
INVITE 1 -> ds_select_dst() -> Node A
INVITE 2 -> ds_select_dst() -> Node A
A dies
B replaced
C replaced
- external calls dispatcher.reload with new node list A
(yes, died state), E, F
INVITE 1 -> failure_route, ds_mark_dst() as Disabled
but with ds_next_dst() does not know anything about E or F,
and B and C already out of order.
So, my solution is again call ds_select_dst() in
failure_route, but it can return Node A (which is dead and I
know it already). So, I’m trying to select next node, with
ds_next_dst() to select Node E, but calling this command
gives me
WARNING: dispatcher [dispatch.c:2285]: ds_update_dst(): no
xavp uri field
Regards, Igor
On Sep 1, 2018, 9:06 PM +0200, Joel Serrano
<joel(a)textplus.com <mailto:joel@textplus.com>>, wrote:
If it brings the failed it’s because when
it was marked as
disabled that node was already in the list, so it will fail
and hit the failure route again and move to next node.
The next call of ds_select_dst (in request route) will
populate a list without disabled nodes, etc.
To summarize:
- In request route call ds_select_dst()
- if it fails, in failed_route call ds_mark_dst() and then
ds_next_dst()
Example:
...to keep it easy to understand, let's pretend that
dispatcher doesn't load balance and just failsover, let's
say you have a ds group of nodes A, B and C...
- INVITE 1 received. ds_select_dst() (the list contains A,
B, C). $du=A
- INVITE 2 received. ds_select_dst() (the list contains A,
B, C). $du=A
- A dies.
- INVITE 1 in failure route, A is maked as
disabled, ds_next_dst() (updated list contains B and C). $du=B
- INVITE 3 received, ds_select_dst() (the list contains B,
C). $du=B
- INVITE 2 in failure route, A is already marked as
disabled, ds_next_dst() (updated list contains B and C). $du=B
- ...people talk via server B because A failed...
So really you would only send calls that populated the
dispather list before dying, after that the next calls
wouldn't even try to hit that server.
Can you give some more details on what kind of failover you
are trying to achieve?
Joel.
On Sat, Sep 1, 2018 at 11:06 Igor Olhovskiy
<igorolhovskiy(a)gmail.com <mailto:igorolhovskiy@gmail.com>>
wrote:
Hi!
I’ve used
ds_select_dst() and ds_next_dst() one after another in
failure route.
If use in request/failure it’s working ok.
But again, during the failover in my environment
dispatcher list can change. And I don’t want to rely on
ds_next_dst() cause it can bring me absent node.
So, I’ve been thinking of use xavp variable to get data
from it, but still can’t get it to work.
Regards, Igor
On Sep 1, 2018, 4:33 PM +0200, Joel Serrano
<joel(a)textplus.com <mailto:joel@textplus.com>>, wrote:
I think you are confused between:
ds_select_dst() = get a node from the dispatcher group
based on weight and priority. Use in request_route.
ds_next_dst() = get the next node from the list
previously created with ds_select_dst(). Use this in
failure_route.
Give it a try and let us know.
On Sat, Sep 1, 2018 at 00:27 Igor Olhovskiy
<igorolhovskiy(a)gmail.com
<mailto:igorolhovskiy@gmail.com>> wrote:
Is there any way to select not first destination
from ds_select_dst()?
Could not find any way to do this...
Regards, Igor
On Sep 1, 2018, 12:13 AM +0200, Joel Serrano
<joel(a)textplus.com <mailto:joel@textplus.com>>, wrote:
> Sorry, hit sent too soon.
>
> I meant ds_next_dst() or ds_next_domain():
>
>
https://kamailio.org/docs/modules/5.1.x/modules/dispatcher.html#idp44172212
>
> On Fri, Aug 31, 2018 at 3:06 PM, Joel Serrano
> <joel(a)textplus.com <mailto:joel@textplus.com>> wrote:
>
> Try with ds_select_next() in failure_route[]
>
> On Fri, Aug 31, 2018 at 06:17 Igor Olhovskiy
> <igorolhovskiy(a)gmail.com
> <mailto:igorolhovskiy@gmail.com>> wrote:
>
> Tried other way round
> All of this is happening in FAILURE ROUTE.
>
> ds_mark_dst("d");
> ds_select_dst("1", "0")
>
> But ds_select_dst still selecting for me
> gateway already marked with "d" on
> previous step. Seems, it applying states
> after packet sent. And any other way I can
> select new dst from set?
>
> Idea why I'm using ds_select_dst in
> FAILURE_ROUTE and not ds_next_dst() that
> during failover timer dispatcher list
> could change (yes, it could be extensive
> process) and I want to use most fresh version.
>
> 2018-08-31 13:05 GMT+02:00 Igor Olhovskiy
> <igorolhovskiy(a)gmail.com
> <mailto:igorolhovskiy@gmail.com>>:
>
> Made a pv_xavp_print() afrer ds_select_dst
>
> Seems both destinations are there.
>
>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc835288 (level=0)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dsctx_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 1427193258
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc834ed8>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc834ed8 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: cnt
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7279890
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 2
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc834ed8 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dispacher_dst_list_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 508490514
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc834d78>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc834d78 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: grp
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7056653
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 1
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: uri
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 8122237
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 2
> 13(23) INFO: <core> [core/xavp.c:558]:
> xavp_print_list_content(): XAVP
> value: sip:172.28.0.12:5060
> <http://172.28.0.12:5060>
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc834d78 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dispacher_dst_list_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 508490514
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc834f80>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc834f80 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: grp
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7056653
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 1
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: uri
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 8122237
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 2
> 13(23) INFO: <core> [core/xavp.c:558]:
> xavp_print_list_content(): XAVP
> value: sip:172.28.0.19:5060
> <http://172.28.0.19:5060>
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc834f80 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dsctx_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 1427193258
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc833db0>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc833db0 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: cnt
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7279890
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 2
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc833db0 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dispacher_dst_list_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 508490514
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc833b80>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc833b80 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: grp
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7056653
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 1
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: uri
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 8122237
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 2
> 13(23) INFO: <core> [core/xavp.c:558]:
> xavp_print_list_content(): XAVP
> value: sip:172.28.0.19:5060
> <http://172.28.0.19:5060>
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc833b80 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dispacher_dst_list_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 508490514
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc833960>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc833960 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: grp
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7056653
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 1
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: uri
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 8122237
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 2
> 13(23) INFO: <core> [core/xavp.c:558]:
> xavp_print_list_content(): XAVP
> value: sip:172.28.0.12:5060
> <http://172.28.0.12:5060>
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc833960 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dsctx_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 1427193258
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc835670>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc835670 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: cnt
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7279890
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 1
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc835670 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: _dispacher_dst_list_
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 508490514
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 6
> 13(23) INFO: <core> [core/xavp.c:571]:
> xavp_print_list_content(): XAVP
> value: <xavp:0x7f8bfc833580>
> 13(23) INFO: <core> [core/xavp.c:543]:
> xavp_print_list_content(): +++++ start
> XAVP list: 0x7f8bfc833580 (level=1)
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: grp
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 7056653
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 1
> 13(23) INFO: <core> [core/xavp.c:555]:
> xavp_print_list_content(): XAVP
> value: 2
> 13(23) INFO: <core> [core/xavp.c:547]:
> xavp_print_list_content(): ***
> XAVP name: uri
> 13(23) INFO: <core> [core/xavp.c:548]:
> xavp_print_list_content(): XAVP
> id: 8122237
> 13(23) INFO: <core> [core/xavp.c:549]:
> xavp_print_list_content(): XAVP
> value type: 2
> 13(23) INFO: <core> [core/xavp.c:558]:
> xavp_print_list_content(): XAVP
> value: sip:172.28.0.46:5060
> <http://172.28.0.46:5060>
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc833580 (level=1)
> 13(23) INFO: <core> [core/xavp.c:583]:
> xavp_print_list_content(): ----- end
> XAVP list: 0x7f8bfc835288 (level=0)
> …
> call ds_next_dst() here
> …
> 13(23) WARNING: dispatcher
> [dispatch.c:2285]: ds_update_dst(): no
> xavp uri field in next destination record
>
> 2018-08-31 12:33 GMT+02:00 Daniel
> Tryba <d.tryba(a)pocos.nl
> <mailto:d.tryba@pocos.nl>>:
>
> On Fri, Aug 31, 2018 at 12:11:53PM
> +0200, Igor Olhovskiy wrote:
> > Can I somehow dump xavp_dst var
> to check if ds_select_dst is correct?
>
> You could use pv_xavp_print():
>
https://www.kamailio.org/docs/modules/5.1.x/modules/pv.html#pv.f.pv_xavp_pr…
>
> If there is a better way I'd like
> to know myself.
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
> <mailto:sr-users@lists.kamailio.org>
>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
>
> --
> Best regards,
> Igor
>
>
>
>
> --
> Best regards,
> Igor
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
> <mailto:sr-users@lists.kamailio.org>
>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users(a)lists.kamailio.org
> <mailto:sr-users@lists.kamailio.org>
>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org