Hi List
To correctly route ACK belonging to a transaction (totag) the example
code does:
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
route(RELAY);
exit;
} else {
xlog("L_INFO", "$cfg(route): $rm NOT loose route NO transaction found DROP\n");
exit;
}
}
Unfortunatels I fear that in a parallell forking scenario, the
transaction is remove from memory as soon as the first 'negative' ACK
is being processed so that the end 2 end ACK to the 200 OK of the
branch that connected the call, never makes it through.
I attempted to increase wt_timer to 10000 to have the transaction stay
around 10 seconds but that does not solve the issue.
I read that t_check_trans()'s result shall be considered more as a hint
than as a confirmation of an existing transaction.
Is there a clean / secure way to process e2e ACK and make sure they
belong to a transaction? Or can I just safely remove the
t_check_trans() call and route any ACK with a totag?
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Hi,
I was going through some old company tickets that I am assigned to and
found a case when possibly an attacker flooded our kamailio server with
invalid sip messages like this:
2019-04-27T20:14:05.533554+09:00 IPX051
/usr/local/src/git/sip-router/kamailio[1732]: ERROR: <core>
[parser/msg_parser.c:714]: ERROR: parse_msg:
message=<[F#016sD#026Z<8D>97<F8><B5>;<A9><E7>-<D2>(<E2><F6>
v;/#021k\<CC>8<B1>λ<F4>#004M<B6><BE><EC>#035#003<94><E1>=<A0><FF><E3><AF>Kwzr<8B>A#036B<D7>#027#023cu<82>Y<D4>#037<FB><AC>S_<C4>Qg<AB><DE>F<88>I#006<8C><FA><F4>~#y3G<C7>H<80>b<BC><AD>#035<89>#002<DB><C8>#001U<9E>#007<CB><F9>nT<E5><EE><8E><F1>#0144>
At that time we manually banned the IP.
But it would be helpful to have this done automatically by fail2ban.
So I was thinking this log should include the src IP address.
I looked at the latest kamailio commit and core/parser/msg_parser.c does
this log the same way so I was thinking in opening an issue for this.
But maybe this should be dealt with differently.
Any ideas?
Hi,
I'm encountering an issue while trying to retrieve Kamailio statistics on
the server using the command kamctl stats. Instead of the expected output,
I am receiving the following errors:
kamctl stats:
-e \E[37;31mERROR: Error opening Kamailio's FIFO
/run/kamailio/kamailio_rpc.fifo
-e \E[37;31mERROR: Make sure you have loaded the jsonrpcs module and set
FIFO transport parameters
Additionally, the file /run/kamailio/kamailio_rpc.fifo does not exist.
Could you please provide suggestions ?
Hello,
I have a question about the rtpengine module and how to use it via KEMI/python.
Will processing of the native script stop when rtpengine_manage returns with an error?
Or will it continue and will the SDP be forwarded unchanged?
#!ifdef WITH_RTPENGINE
if(nat_uac_test("8")) {
rtpengine_manage("SIP-source-address replace-origin replace-session-connection");
} else {
rtpengine_manage("replace-origin replace-session-connection");
}
#!else
Regards,
Wolter
Hi Gang
Parallel forking situation.
A => B
A => C
A invites with g711,g722 which is forked to B and C
B reports ringing by sending 183 + SDP g711
C report 180 ringing.
C establishes connection 200 OK + SDP g722
https://www.rfc-editor.org/rfc/rfc3261.html#page-78
o If the initial offer is in an INVITE, the answer MUST be in a
reliable non-failure message from UAS back to UAC which is
correlated to that INVITE. For this specification, that is
only the final 2xx response to that INVITE. That same exact
answer MAY also be placed in any provisional responses sent
prior to the answer. The UAC MUST treat the first session
description it receives as the answer, and MUST ignore any
session descriptions in subsequent responses to the initial
INVITE.
Now we run into the situation in which A received the 183 g711 and
being RFC compliant, dropped the 2nd SDP from the 200 OK.
=> No audio!
Has anyone encountered this situation and found a nice solution? Like
generating an UPDATE or RE-INVITE towards A to change the codec in
an RFC compliant way after the call is established?
Or is the only solution to remove all codecs except the required g711a
one when more than one contact are registered on an AOR?
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Hello, I am trying to compile Kamailio with all its modules statically
linked. How should I go about this?
I followed through the installation documentation but could not find any
information.
I tried passing all the modules I want to statically link in the
"static_modules" argument of `make` but it seems that definitions of
modules clash as such.
```
make static_modules="siputils rr"
```
```
/usr/bin/ld:
modules/rr/rr_mod.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/rr/rr_mod.c:69:
multiple definition of `module_version';
modules/siputils/siputils.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/siputils/siputils.c:78:
first defined here
/usr/bin/ld:
modules/rr/rr_mod.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/rr/rr_mod.c:69:
multiple definition of `module_flags';
modules/siputils/siputils.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/siputils/siputils.c:78:
first defined here
/usr/bin/ld:
modules/rr/rr_mod.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/rr/rr_mod.c:69:
multiple definition of `module_interface_ver';
modules/siputils/siputils.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/siputils/siputils.c:78:
first defined here
/usr/bin/ld:
modules/rr/rr_mod.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/rr/rr_mod.c:166:
multiple definition of `exports';
modules/siputils/siputils.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/siputils/siputils.c:241:
first defined here
/usr/bin/ld: modules/rr/rr_mod.o: in function `mod_register':
/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/rr/rr_mod.c:926:
multiple definition of `mod_register';
modules/siputils/siputils.o:/playground/fuzzing-targets/sip/kamailio-dfsan/src/modules/siputils/siputils.c:817:
first defined here
```
Any help would be appreciated. Thank you.
hi,
i'm trying setup kamailio for simple CDR logging
versions - kamailio 5.7, rocky 9.4
i have configured and populate sqlite with "kamdbctl create"
kamailio.cfg
#CDR
loadmodule "db_sqlite.so"
loadmodule "acc.so"
modparam("acc", "cdr_enable", 1)
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)
modparam("acc", "db_url", "sqlite:///var/log/kamailio-cdr.sqlite")
modparam("acc", "time_mode", 3)
but i have this error
ERROR: db_sqlite [dbase.c:232]: db_sqlite_submit_query(): failed to
prepare statement: table acc has no column named time_attr
any ideas where can i find acc schema update for time_attr column?
bash# grep -Rni time_attr /usr/share/kamailio/db_sqlite/ shows nothing
Marek