Hello,
I am currently working on a scenario where I need to use Kamailio in the failure_route to process SIP responses, specifically handling negative SIP replies (e.g., 486 Busy Here) that Kamailio may receive.
Here is the topology:
##B2BUA (acts as a UAC with the Kamailio, because it sends the INVITE) -> Kamailio -> Callee##
In my setup, Kamailio needs to extract all Via headers from the received SIP response in the failure_route, focusing particularly on the bottom Via header (from the B2BUA' UAC part). However, I am encountering difficulties in achieving this. Here is what I have tried so far:
1. To extract the Via headers, I used the following line of code in the failure_route:
```$var(viaHeaderValues) = $T_rpl($hdr(Via));```
However, this only returns the topmost Via header.
2. I attempted to get the first and last Via headers values with:
```$var(viaHeaderValueFirst) = $T_rpl($hdr(Via)[0]);
$var(viaHeaderValueLast) = $T_rpl($hdr(Via)[1]);```
Unfortunately, this also only returns the topmost Via header, which contains the address of Kamailio.
My goal is to make sure that when Kamailio sends the SIP reply to the UAC with send_reply method on the failure_route, it uses the extracted *Via header* of the incoming SIP response (only the bottom one). Here is an example scenario:
- Received SIP Response in kamailio:
```
SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP 200.200.200.4;branch=z9hG4bK9157.090080a91105c0ec6279bb56882d1dc8.0
Via: SIP/2.0/UDP 200.200.200.3;received=200.200.200.3;rport=5060;branch=z9hG4bKF1aaZ7ea7yc2m
From: <sip:caller@200.200.200.3>;tag=222222
To: <sip:callee@200.200.200.4:5060>;tag=4545454
Call-ID: 65695DSQ(a)200.200.200.3
CSeq: 1 INVITE
Content-Length: 0
```
- Desired SIP Response from kamailio:
```
SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP 200.200.200.3;received=200.200.200.3;rport=5060;branch=z9hG4bKF1aaZ7ea7yc2m
From: <sip:caller@200.200.200.3>;tag=222222
To: <sip:callee@200.200.200.4:5060>;tag=4545454
Call-ID: 65695DSQ(a)200.200.200.3
CSeq: 1 INVITE
Content-Length: 0
```
The current issue is that Kamailio modifies the Via header when sending the reply with send_reply method, resulting in:
```
SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP 200.200.200.3;rport=5060;branch=z9hG4bKF1aaZ7ea7yc2m;received=200.200.200.3
From: <sip:caller@200.200.200.3>;tag=222222
To: <sip:callee@200.200.200.4:5060>;tag=4545454
Call-ID: 65695DSQ(a)200.200.200.3
CSeq: 1 INVITE
Content-Length: 0
```
Due to this change, the UAC does not correctly react to or understand the SIP response "SIP Reply follows the RFC standards, but my current UAC waits for a Via that looks like Via of the previous SIP messages in the structure of parameters.". It is crucial for the Via header to maintain the same important order such as the branch, received, and rport values as the previous exchanged SIP messages.
Could you please provide guidance on how to force Kamailio to send the SIP reply using send_reply method with the extracted bottom Via header from the incoming SIP response? Any advice or examples on handling this situation would be greatly appreciated.
Thank you for your time and assistance.
Hello,
Kamailio SIP Server v5.7.6 stable release is out.
This is a maintenance release of the latest stable branch, 5.7, that
includes fixes since the release of v5.7.5. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.7.x. Deployments running previous v5.7.x
versions are strongly recommended to be upgraded to v5.7.6.
For more details about version 5.7.6 (including links and guidelines to
download the tarball or from GIT repository), visit:
 * https://www.kamailio.org/w/2024/07/kamailio-v5-7-6-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Note that 5.7.x is currently the previous stable release series, the
latest is 5.8.x and v5.8.2 was released on June 12, 2024.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Hello,
I am considering to release Kamailio v5.7.6 (out of branch 5.7) on
Tuesday, July 2, 2024. If anyone is aware of issues not yet on the bug
tracker, report them there asap in order to have a better chance to be
fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Hello guys,
I'm trying to use an SRV as an advertised address but kamailio fails to
start. Is this not possible?
Thanks,
David Villasmil
email: david.villasmil.work(a)gmail.com
Hi everyone. Wanting to see if someone could point me in the right
direction. Still very knew to Kamailio but I am beginning to understand it
better. I'm making an outbound proxy and have everything working well
besides stir/shaken. I'm looking at the module page and have went back and
forth with chatGPT and can't seem to figure this part out. I keep getting
errors on the modparam lines.
Obviously this is a self signed cert because I'm just testing. I am able to
reach and download the cert from the Web server.
Thank you for any assistance.
# SECSIPID for Stir/Shaken
modparam("secsipid", "private_key", "/etc/kamailio/secsipid/private.key")
modparam("secsipid", "certificate", "/etc/kamailio/secsipid/cert.crt")
modparam("secsipid", "authority_cert", "/etc/kamailio/secsipid/ca.crt")
modparam("secsipid", "expire", 600) modparam("secsipid", "timeout", 2)
route[STIRSHAKEN] {
if (is_method("INVITE")) {
if (!secsipid_add_identity("$fU", "$rU", "A", "", "
http://myIPaddress.com/stir_shaken_cert.crt
<http://myipaddress.com/stir_shaken_cert.crt>",
"/etc/kamailio/secsipid/private.key")) {
xlog("L_ERR", "Failed to sign call with ID: $ci - From: $fU\n");
send_reply("500", "Internal Server Error");
exit;
} else {
xlog("L_INFO", "Successfully signed call with ID: $ci - From:
$fU\n");
}
}
# Relay the call after signing
route(RELAY);
}
Hello All,
I am trying to build a simple proxy that forwards SIP requests to a remote
portaone server. But, kamailio is adding a Via header with received=@IP to
replies got from portaone.
How to disable this behavior as Asterisk (client in my setup) is not
accepting this header.
Thank you.
Hello,
how do i get misctest module in debian packages ? it seems not included in a package.
is compilation the only way to get it ?
im using kamailio 5.7.5 on debian (bullseye) 11.8
version: kamailio 5.7.5 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled with gcc 10.2.1
Thanks.
Any news on regarding the availability and status of Kamailio packages for Ubuntu 24.04 on the official Kamailio repository at deb.kamailio.org. Are there any plans to support this version of Ubuntu with updated packages? If so, is there an estimated timeline for when these packages might become available?
Thanks,
Xenofon
________________________________
From: Xenofon Karamanos via sr-dev <sr-dev(a)lists.kamailio.org>
Sent: Wednesday, June 19, 2024 11:51
To: sr-dev(a)lists.kamailio.org
Cc: Xenofon Karamanos <xk(a)gilawa.com>
Subject: [sr-dev] Ubuntu 24.04 Packages for Kamailio 5.8 on deb.kamailio.org
Hey everybody,
While attempting to use the official Ubuntu package for Kamailio version 5.7.4 on Ubunut 24.04, we encountered an issue where TLS functionality does not seem to work as expected but 5.8 branch does.
Given this, I am inquiring about the availability and status of Kamailio packages for Ubuntu 24.04 on the official Kamailio repository at deb.kamailio.org. Are there any plans to support this version of Ubuntu with updated packages? If so, is there an estimated timeline for when these packages might become available?
Thank you in advance for your assistance.
Best regards,
Xenofon
I am extremely new at this, but trying to set up TLS with a carrier. TLS connection is good, Invite goes out, we get the 100 and the 200, but subsequent messages (ACK and BYE) are being sent with UDP and I cannot figure out how to get them to maintain the TLS transport. Any suggestions? I think this is the section I'm looking for.
# Manage incoming replies in transaction context
onreply_route[MANAGE_REPLY] {
xdbg("incoming reply\n");
if(status=~"[12][0-9][0-9]") {
route(NATMANAGE);
}
if (has_body("application/sdp")) {
xdbg("rtpengine_manage loop-protect MANAGE_REPLY");
#rtpengine_manage("loop-protect");
}
}
Hi all,
I face a problem when trying to forward an UPDATE request to the IMS which
communicates with UDP transport protocol on one side UDP and SCTP on other
side. When I try to send UPDATE towards the UDP side of IMs I see following
error on kamailio side and request cannot be forwarded
Jun 25 16:19:18 prashant-0lk-sbc-1 /usr/sbin/kamailio[1223341]: ERROR:
<core> [core/udp_server.c:597]: udp_send(): sendto(sock, buf:
0x7fc180deb5f0, len: 1509, 0, dst: (172.18.0.20:5060), tolen: 16) - err:
Invalid argument (22)
Jun 25 16:19:18 prashant-0lk-sbc-1 /usr/sbin/kamailio[1223341]: CRITICAL:
<core> [core/udp_server.c:603]: udp_send(): invalid sendtoparameters#012one
possible reason is the server is bound to localhost and#012attempts to send
to the net
The UPDATE message which is tried to be forwarded is as follow:
Here there are double rr one is UDP and one is sctp (Route: <
sip:mt@172.18.0.20;lr;did=6aa.aaa;ftag=49IZjY2irfb;r2=on>, <
sip:mt@172.18.0.20;lr;transport=sctp;did=6aa.aaa;ftag=49IZjY2irfb;r2=on>)
)
That would be great if you can help why this UPDATE cannot be forwarded.
By the way double rr is on on kamailio config
Jun 25 16:19:18 prashant-0lk-sbc-1 /usr/sbin/kamailio[1223341]: DEBUG:
<core> [core/forward.c:577]: forward_request(): Sending:#012UPDATE
sip:alice@10.10.141.188;ob;sbc-id=xpllrk47odqh4pb2ofpib6vsym
SIP/2.0#015#012Via: SIP/2.0/UDP
127.0.0.1:50601;branch=z9hG4bKddab.3554948ce3cfe321729448a2b082c2f3.0#015#012Via:
SIP/2.0/UDP 127.0.0.1:7060;branch=z9hG4bKnHN8Q3ya#015#012To: <
sip:alice@ims.wingcon.com>;tag=49IZjY2irfb#015#012From: <
sip:bob@ims.wingcon.com>;tag=hfdqjj2pmui#015#012Call-Id:
3mzzecWt3Cbgvy#015#012CSeq: 1 UPDATE#015#012Max-Forwards:
70#015#012Contact:
<sip:bob@10.10.141.188;ob;sbc-id=o7dpxe7qu2r34zwzio5pis2vqi>#015#012Content-Type:
application/sdp#015#012Route:
<sip:mt@172.18.0.20;lr;did=6aa.aaa;ftag=49IZjY2irfb;r2=on>,
<sip:mt@172.18.0.20;lr;transport=sctp;did=6aa.aaa;ftag=49IZjY2irfb;r2=on>, <
sip:mo@172.18.0.20;lr;did=6aa.9aa;ftag=49IZjY2irfb;r2=on>, <
sip:mo@172.18.0.20;lr;transport=sctp;did=6aa.9aa;ftag=49IZjY2irfb;r2=on>, <
sip:mo@172.18.0.120;lr>#015#012Session-Expires:
180;refresher=uas#015#012Supported: replaces, 100rel, timer,
norefersub#015#012Min-SE: 90#015#012P-Charging-Vector:
icid-value=e277783432fd11efba03fa163eed425f;icid-generated-at=172.18.0.120;orig-ioi=172.18.0.120;term-ioi=172.18.0.120#015#012User-Agent:
PJSUA v2.14 Linux-5.4.0.172/x86_64/glibc-2.35#015#012Content-Length:
409#015#012#015#012v=0#015#012o=- 3928313948 3928313950 IN IP4
172.18.0.120#015#012s=pjmedia#015#012b=AS:84#015#012t=0
0#015#012a=X-nat:0#015#012m=audio 30106 RTP/AVP 8 96 97 121 120#015#012c=IN
IP4 172.18.0.120#015#012b=TIAS:64000#015#012a=ssrc:1986855169
cname:1fca52e812ced466#015#012a=rtpmap:8 PCMA/8000#015#012a=rtpmap:96
AMR/8000#015#012a=rtpmap:97 AMR-WB/16000#015#012a=rtpmap:121
telephone-event/16000#015#012a=fmtp:121 0-16#015#012a=rtpmap:120
telephone-event/8000#015#012a=fmtp:120
0-16#015#012a=sendrecv#015#012a=rtcp:30107#015#012.
Regards
Serkan