Sounds like you might be missing some negative ACK handling further upstream. Refer to the
has_totag() / loose_route() block in the stock config.
-- Alex
On Dec 23, 2024, at 11:01 am, Sergio Charrua
<sergio.charrua(a)voip.pt> wrote:
currently I have implemented the script as stateful, using transactions (TM). It works
.... *BUT* ... I get this SIP flow:
10.20.0.1:5060 10.20.20.1:5060 ──────────┬─────────
──────────┬─────────
15:44:20.013645 │ INVITE (SDP) │
+0.002128 │ ──────────────────────────> │
15:44:20.015773 │ 100 trying -- your call is │
+0.007130 │ <────────────────────────── │
15:44:20.022903 │ 300 Multiple Choices │
+0.001481 │ <────────────────────────── │
15:44:20.024384 │ ACK │
+0.467452 │ ──────────────────────────> │
15:44:20.491836 │ 300 Multiple Choices │
+0.999940 │ <<<──────────────────────── │
15:44:21.491776 │ 300 Multiple Choices │
│ <<<──────────────────────── │
│ │
Why is Kamailio sending 300 Multiple Choices after the last ACK when it should have
already "exited" from processing the call?
On the main route, i added:
if (is_method("ACK") ) {
# don't need to bother with ACK!
xlog("L_INFO","New SIP message $rm with call-ID $ci
\n");
exit;
}
and the RELAY route is:
route[RELAY] {
xlog("L_INFO", " ******** RELAY *******");
xlog("L_INFO", "RELAY - $rm to $si responding back to $su");
send_reply("300", "Multiple Choices");
exit;
}
already tried multiple parameters, but no luck...still the same behaviour.... and setting
logs to debug level, doesn't show anything:
Dec 23 15:44:20 kamailio1 kamailio[4050726]: INFO: {1 1 INVITE 1-2589892(a)10.20.0.1}
<script>: RELAY_API - API ASYNC ROUTING REQUEST: {"from":"sipp
<sip:sipp@10.20.0.1:5060>;tag=1","to":"<sip:1@10.20.20.1:5060>","r-uri":"sip:1@10.20.20.1:5060","contact":"sip:sipp@10.20.0.1:5060;transport=UDP>","call-id":"1-2589892@10.20.0.1","request-time":""}
Dec 23 15:44:20 kamailio1 kamailio[4050726]: INFO: {1 1 INVITE 1-2589892(a)10.20.0.1}
<script>: RELAY_API - Calling Async Query to url
http://IP:PORT/URL
Dec 23 15:44:20 kamailio1 kamailio[4050756]: INFO: <script>: RELAY_API_RESPONSE -
RESPONSE: {#012#011"SOME HIDDEN JSON "#012}
Dec 23 15:44:20 kamailio1 kamailio[4050756]: INFO: <script>: ******** RELAY
*******
Dec 23 15:44:20 kamailio1 kamailio[4050756]: INFO: <script>: RELAY - INVITE to
10.20.0.1 from sip:10.20.0.1:5060
Dec 23 15:44:20 kamailio1 kamailio[4050756]: WARNING: <core> [core/dset.c:690]:
print_dset(): no r-uri or branches
Dec 23 15:44:20 kamailio1 kamailio[4050756]: INFO: tm [tm.c:1686]: t_release(): invalid
usage - not in request route
Dec 23 15:44:20 kamailio1 kamailio[4050727]: INFO: {1 1 ACK 1-2589892(a)10.20.0.1}
<script>: New SIP message ACK with call-ID 1-2589892(a)10.20.0.1
and it ends with this last log message.....
any clue any one?
@Alex Balashov ... "How I Learned to Stop Worrying and Love the Stateful"
.... love the title! :)
Atenciosamente / Kind Regards / Cordialement / Un saludo,
Sérgio Charrua
On Mon, Dec 23, 2024 at 4:39 PM Alex Balashov via sr-users
<sr-users(a)lists.kamailio.org> wrote:
There aren't really too many fruitful uses of Kamailio sans TM. Most intentions to go
fully stateless, while understandable and full of noble intentions, end up being abandoned
once it becomes apparent that things like failover aren't possible.
The performance argument for stateless harkens back to a different era in computing and
memory. The argument isn't, strictly speaking, entirely meritless in 2024, and one can
go down academic rabbit holes re: DoS and such. But as a practical matter, just do
stateful if you're relaying anything anywhere, or engaged in asynchronous
complications.
There should be a book: "How I Learned to Stop Worrying and Love the
Stateful"...
-- Alex
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web:
https://evaristesys.com
Tel: +1-706-510-6800
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions --
sr-users(a)lists.kamailio.org
To unsubscribe send an email to sr-users-leave(a)lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!