Hello Daniel,
Here's the requested info, unedited.
Kamailio's config:
(I added that `if($du==$null){` because when $du it's not set kamailio just sends it to itself creating a loop) ``` route[DISPATCH] { #!ifdef WITH_DISPATCHER
dp_match("1", "$ru");
if(ds_select_routes("1=10;11=9", "d", "0")) { xlog("L_ERR", "[DISPATCH] $ci: ds_select_routes was succesful (ruri: $ru - du: <$du> xavp_dsdst: <$xavp(_dsdst_=>attr)>)\n"); pv_xavp_print(); if($du==$null){ send_reply("404", "No destination - failed"); exit; } } else { xlog("L_ERR", "[DISPATCH] $ci: did NOT find a gateway to use!\n"); send_reply("404", "No destination"); exit; } xlog("L_DBG", "[DISPATCH] $ci: going to <$ru> via <$du>\n"); t_on_failure("RTF_DISPATCH"); route(RELAY); exit; } ```
rpc command output: ``` kamctl rpc dispatcher.list { "jsonrpc": "2.0", "result": { "NRSETS": 5, "RECORDS": [{ "SET": { "ID": 1, "TARGETS": [{ "DEST": { "URI": "sip:54.209.229.198:5080", "FLAGS": "AP", "PRIORITY": 0, "ATTRS": { "BODY": "weight=100;maxload=2;duid=cuore_2", "DUID": "cuore_2", "MAXLOAD": 2, "WEIGHT": 100, "RWEIGHT": 0, "SOCKET": "" }, "RUNTIME": { "DLGLOAD": 0 } } }, { "DEST": { "URI": "sip:34.201.28.49:5080", "FLAGS": "AP", "PRIORITY": 0, "ATTRS": { "BODY": "weight=100;maxload=2;duid=cuore_1", "DUID": "cuore_1", "MAXLOAD": 2, "WEIGHT": 100, "RWEIGHT": 0, "SOCKET": "" }, "RUNTIME": { "DLGLOAD": 0 } } }] } }, { "SET": { "ID": 11, "TARGETS": [{ "DEST": { "URI": "sip:35.170.67.206:5080", "FLAGS": "AP", "PRIORITY": 0, "ATTRS": { "BODY": "weight=100;maxload=2;duid=cuore_3", "DUID": "cuore_3", "MAXLOAD": 2, "WEIGHT": 100, "RWEIGHT": 0, "SOCKET": "" }, "RUNTIME": { "DLGLOAD": 0 } } }] } }] }, "id": 9046 } ```
Scenario:
I'm sending exactly 5 calls to kamailio, it should do the following according to the config:
- call 1: Send to setid 1 node A (maxload=2) - call 2: Send to setid 1 node B (maxload=2) - call 3: Send to setid 1 node A (maxload=2) - call 4: Send to setid 1 node B (maxload=2) - call 5: Send to setid 11 node A
The logs:
I'm pasting the logs for call 4 (in which the destination is set properly on $du) and call 5 where $du is not set:
Call 4: ``` ERROR: <script>: [DISPATCH] 4-7723@192.168.1.201: ds_select_routes was succesful (ruri: sip:*TESTCALL@cuore-proxy.sandbox-sngl.com - du: sip:34.201.28.49:5080 xavp_dsdst: <<null>>) exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1070 a=24 n=pv_xavp_print INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d441b4358 ((nil)) (level=0) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:0 - 0x7f1d441b4358) XAVP name: _dsctx_ INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1427193258 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 6 INFO: <core> [core/xavp.c:571]: xavp_print_list_content(): XAVP value: xavp:0x7f1d441b42b0 INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d441b42b0 (0x7f1d441b4378) (level=1) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441b42b0) XAVP name: cnt INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 7279890 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 1 INFO: <core> [core/xavp.c:555]: xavp_print_list_content(): XAVP value (int): 2 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441b42b0) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d441b42b0 (level=1) INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:0 - 0x7f1d441b4358) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:0 - 0x7f1d441c0cf0) XAVP name: _dsdst_ INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1427333496 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 6 INFO: <core> [core/xavp.c:571]: xavp_print_list_content(): XAVP value: xavp:0x7f1d441ec258 INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d441ec258 (0x7f1d441c0d10) (level=1) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441ec258) XAVP name: dstid INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1762493352 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): cuore_1 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441ec258) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441b4650) XAVP name: attrs INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1835799177 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): weight=100;maxload=2;duid=cuore_1 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441b4650) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441edb50) XAVP name: grp INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 7056653 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 1 INFO: <core> [core/xavp.c:555]: xavp_print_list_content(): XAVP value (int): 1 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441edb50) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d44202b88) XAVP name: uri INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 8122237 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): sip:34.201.28.49:5080 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d44202b88) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d441ec258 (level=1) INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:0 - 0x7f1d441c0cf0) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:0 - 0x7f1d441bcbb0) XAVP name: _dsdst_ INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1427333496 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 6 INFO: <core> [core/xavp.c:571]: xavp_print_list_content(): XAVP value: xavp:0x7f1d441ebed8 INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d441ebed8 (0x7f1d441bcbd0) (level=1) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441ebed8) XAVP name: attrs INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1835799177 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): weight=100;maxload=2;duid=cuore_3 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441ebed8) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441bcb08) XAVP name: grp INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 7056653 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 1 INFO: <core> [core/xavp.c:555]: xavp_print_list_content(): XAVP value (int): 11 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441bcb08) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d441f08a8) XAVP name: uri INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 8122237 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): sip:35.170.67.206:5080 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d441f08a8) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d441ebed8 (level=1) INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:0 - 0x7f1d441bcbb0) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d441b4358 (level=0) exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1075 a=16 n=if exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1080 a=26 n=xlog DEBUG: <script>: [DISPATCH] 4-7723@192.168.1.201: going to sip:*TESTCALL@cuore-proxy.sandbox-sngl.com via sip:34.201.28.49:5080 ```
Call 5 ``` ERROR: <script>: [DISPATCH] 5-7723@192.168.1.201: ds_select_routes was succesful (ruri: sip:*TESTCALL@cuore-proxy.sandbox-sngl.com - du: <<null>> xavp_dsdst: <<null>>) exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1070 a=24 n=pv_xavp_print INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d44226d88 ((nil)) (level=0) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:0 - 0x7f1d44226d88) XAVP name: _dsctx_ INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1427193258 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 6 INFO: <core> [core/xavp.c:571]: xavp_print_list_content(): XAVP value: xavp:0x7f1d44226ce0 INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d44226ce0 (0x7f1d44226da8) (level=1) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226ce0) XAVP name: cnt INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 7279890 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 1 INFO: <core> [core/xavp.c:555]: xavp_print_list_content(): XAVP value (int): 1 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226ce0) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d44226ce0 (level=1) INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:0 - 0x7f1d44226d88) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:0 - 0x7f1d44226c38) XAVP name: _dsdst_ INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1427333496 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 6 INFO: <core> [core/xavp.c:571]: xavp_print_list_content(): XAVP value: xavp:0x7f1d44226b70 INFO: <core> [core/xavp.c:543]: xavp_print_list_content(): +++++ start XAVP list: 0x7f1d44226b70 (0x7f1d44226c58) (level=1) INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226b70) XAVP name: attrs INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 1835799177 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): weight=100;maxload=2;duid=cuore_3 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226b70) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226ac8) XAVP name: grp INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 7056653 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 1 INFO: <core> [core/xavp.c:555]: xavp_print_list_content(): XAVP value (int): 11 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226ac8) end INFO: <core> [core/xavp.c:547]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226a08) XAVP name: uri INFO: <core> [core/xavp.c:548]: xavp_print_list_content(): XAVP id: 8122237 INFO: <core> [core/xavp.c:549]: xavp_print_list_content(): XAVP value type: 2 INFO: <core> [core/xavp.c:558]: xavp_print_list_content(): XAVP value (str): sip:35.170.67.206:5080 INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:1 - 0x7f1d44226a08) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d44226b70 (level=1) INFO: <core> [core/xavp.c:581]: xavp_print_list_content(): *** (l:0 - 0x7f1d44226c38) end INFO: <core> [core/xavp.c:584]: xavp_print_list_content(): ----- end XAVP list: 0x7f1d44226d88 (level=0) exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1075 a=16 n=if exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1072 a=26 n=send_reply exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1073 a=2 n=exit exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1062 a=26 n=dp_match exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1079 a=16 n=if exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1064 a=27 n=ds_select_routes exec: *** cfgtrace:request_route=[DISPATCH] c=[/usr/local/kamailio5/etc/kamailio/kamailio.cfg] l=1069 a=26 n=xlog ERROR: <script>: [DISPATCH] 6-7723@192.168.1.201: ds_select_routes was succesful (ruri: sip:*TESTCALL@cuore-proxy.sandbox-sngl.com - du: <<null>> xavp_dsdst: <<null>>) ```