Hi All,
I think I have a problem with topoh, but I can't identify it.
Kamailio 5.6.6, used as a stateless proxy, receives a 487 from a phone and
propagates it correctly.
Next comes the ack that should be forwarded back to the phone, but instead
it doesn't forward it and produces the following error "pv_get_ruri():
failed to parse the R-URI"
The error is generated by xlog("...$ru from $fu...\n"") as first line of
request_route.
If I disable topoh everything works perfectly.Topoh is only configured with
mask_key only.
Furthermore, not all phones generate this problem, at the moment there are
some snoms.
ACK sip:user@phone_ip:2048;line=kkqgarrj SIP/2.0
Via: SIP/2.0/UDP
proxy_sip_ip;branch=z9hG4bK2ec.e7126a3134bef9d974f57dd43ebd4ea2.0
Route: <sip:kamailio_ip:5060;lr;received=sip:phone_ip:2048>
Max-Forwards: 66
From: <sip:111111111@sip.example.com>;tag=pDc1BQ0B57Ujj
To: <sip:user@sip.example.com>;tag=vslvowy4y2
Call-ID: 40a6c905-c0c8-4c20-b3f7-397b3fce58b6
CSeq: 90285584 ACK
Content Length: 0
There is no difference between the ACK of the snom and other phones that
work.
The only difference I noticed is that the snom 487 contains Contact field
in the header.
Any suggestions? Thank you
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.