Hi all,
We have a working Kamailio setup, lets call it a transparent proxy for Asterisk boxes. Its based on domain and dispatcher modules and everything is working as expected with the test clients (more or less microsip, softphone for ios, etc). We are tried to register with a Grandstream deskphone today, and we see that the phone sending sips:xxx in the Reg Contact field for example. Because the sips schema, the register is working, but we cannot initiate calls from this phone. If we are turning SIP scheme to sip from sips in the phone, then everything is working as expected.
I think we can transform those requests from sips to sip with Kamailio, but currently we dont know where can we start.
Has anybody a suggestion about this issue? I know that we can transform ruri, contact, etc with textops, nathelper and a lot of other modules, but what is the best for this sips->sip translation?
Thanks for your help.
With kind regards,
Zoltan
Hello,
I have 2 clients. 1 using websocket and 1 mobile using TLS.
Both can call each other perfectly. After 24-48 hours calls from mobile to
websocket failed with an error message: TCP/TLS connection (id: 0) for
WebSocket could not be found.
At the same time I can make calls from the websocket client to the mobile.
I know that the search of the connection is done by target address so I
printed the addresses + ports and they are matched to the ones that appear
on the ul.dump and ws.dump.
*kamcmd ul.dump output:*
Info: {
AoR: usrmt63ly_1040
HashID: 1830036546
Contacts: {
Contact: {
Address: sip:usrmt63ly_1040@example.com;transport=ws
Expires: 283
Q: -1
Call-ID: tvne1pskgkm2a01pnqm677
CSeq: 1060
User-Agent: JsSIP 3.9.0
Received: sip:*10.218.51.86:24061 <http://10.218.51.86:24061>*;transport=ws
Path: <sip:10.218.154.228:50443;transport=ws;received=sip:*10.218.51.86:24061
<http://10.218.51.86:24061>*;transport=ws;lr>
State: CS_NEW
Flags: 0
CFlags: 64
Socket: tls:10.218.154.228:50443
Methods: 7071
Ruid: uloc-61ebba84-64242101-89ba-1
Instance: <urn:uuid:7573726d-7436-116c-915f-313034304077>
Reg-Id: 1
Server-Id: 1642838660
Tcpconn-Id: 100420
Keepalive: 1
Last-Keepalive: 1680417282
KA-Roundtrip: 0
Last-Modified: 1680417282
}
}
}
*kamcmd ws.dump*
{
connections: {
100420: wss:*10.218.51.86:24061 <http://10.218.51.86:24061>* -> wss:
10.218.154.228:50443 (state: OPEN, last used 14s ago, sub-protocol: sip)
}
info: {
wscounter: 1
truncated: no
}
}
*Call from mobile (TLS) to websocket: Failed with error message: TCP/TLS
connection (id: 0) for WebSocket could not be found*
30(35263) INFO: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88}
<script>: request_route: method [INVITE] from [
sip:usrrcv4o4_1040@example.com] socket [sip:10.218.51.86:50909;transport=tls]
to [sip:usrmt63ly_1040@example.com]
30(35263) INFO: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88}
<script>: [RELAY]: method [INVITE] from [sip:usrrcv4o4_1040@example.com]
socket [sip:10.218.51.86:50909;transport=tls] to [
sip:usrmt63ly_1040@example.com] socket [sip:*10.218.51.86:24061
<http://10.218.51.86:24061>*;transport=ws]
30(35263) WARNING: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88}
<core> [core/msg_translator.c:2863]: *via_builder(): TCP/TLS connection
(id: 0) for WebSocket could not be found*
30(35263) ERROR: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88}
<core> [core/msg_translator.c:2040]: build_req_buf_from_sip_req(): could
not create Via header
30(35263) ERROR: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88} tm
[t_fwd.c:479]: prepare_new_uac(): could not build request
30(35263) ERROR: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88} tm
[t_fwd.c:1759]: t_forward_nonack(): failure to add branches
30(35263) ERROR: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88} sl
[sl_funcs.c:418]: sl_reply_error(): stateless error reply used: No error
(2/SL)
30(35263) NOTICE: {1 2563 INVITE 4248c155-cd92-49b8-b68a-eef5f2cb3e88} acc
[acc.c:287]: acc_log_request(): ACC: call missed:
timestamp=1680417920;method=INVITE;from_tag=e168ffa6-e577-48ec-b9c9-a73f5be318e8;to_tag=0c3e625e9f223a7ee2b093e8e31b2526-b7165bcb;call_id=4248c155-cd92-49b8-b68a-eef5f2cb3e88;code=500;reason=Server
Internal Error;src_user=usrrcv4o4_1040;src_domain=example.com
;src_ip=10.218.51.86;dst_ouser=usrmt63ly_1040;dst_user=usrmt63ly_1040;dst_domain=
example.com
*Call from websocket to mobile (TLS):*
38(35271) INFO: {1 7488 INVITE urcnete8r71dpkhmngd8} <script>:
request_route: method [INVITE] from [sip:usrmt63ly_1040@example.com] socket
[sip:*10.218.51.86:24061 <http://10.218.51.86:24061>*;transport=ws] to [
sip:usrrcv4o4_1040@example.com]
38(35271) INFO: {1 7488 INVITE urcnete8r71dpkhmngd8} <script>: [RELAY]:
method [INVITE] from [sip:usrmt63ly_1040@example.com] socket
[sip:*10.218.51.86:24061
<http://10.218.51.86:24061>*;transport=ws] to [
sip:usrrcv4o4_1040@example.com] socket [sip:10.218.51.86:20674
;transport=tls]
39(35272) INFO: {2 7488 INVITE urcnete8r71dpkhmngd8} <script>:
onreply_route[MANAGE_REPLY] method [INVITE] code [100] from [
sip:usrmt63ly_1040@example.com] to [sip:usrrcv4o4_1040@example.com]
39(35272) INFO: {2 7488 INVITE urcnete8r71dpkhmngd8} <script>:
onreply_route[MANAGE_REPLY] method [INVITE] code [200] from [
sip:usrmt63ly_1040@example.com] to [sip:usrrcv4o4_1040@example.com]
39(35272) NOTICE: {2 7488 INVITE urcnete8r71dpkhmngd8} acc [acc.c:287]:
acc_log_request(): ACC: transaction answered:
timestamp=1680417926;method=INVITE;from_tag=18q0p37nfo;to_tag=a88272a0-25ca-43c2-8ce9-8615831b7e9a;call_id=urcnete8r71dpkhmngd8;code=200;reason=OK;src_user=usrmt63ly_1040;src_domain=
example.com
;src_ip=10.218.51.86;dst_ouser=usrrcv4o4_1040;dst_user=usrrcv4o4_1040;dst_domain=10.218.51.86
38(35271) INFO: {1 7488 ACK urcnete8r71dpkhmngd8} <script>: request_route:
method [ACK] from [sip:usrmt63ly_1040@example.com] socket
[sip:*10.218.51.86:24061
<http://10.218.51.86:24061>*;transport=ws] to [
sip:usrrcv4o4_1040@example.com]
38(35271) INFO: {1 7488 ACK urcnete8r71dpkhmngd8} <script>: [RELAY]: method
[ACK] from [sip:usrmt63ly_1040@example.com] socket [sip:*10.218.51.86:24061
<http://10.218.51.86:24061>*;transport=ws] to [
sip:usrrcv4o4_1040@example.com] socket [sip:10.218.51.86:20674
;transport=tls]
*Version: kamailio 5.6.2 (x86_64/linux)*
What could be the reason for that?
Your help would be much appreciated.
Thanks,
Joey.
Hi alle
I think I have an issue with the dialogue and session timer module with
Kamailio 5.4
I sync the Session Expire Timer with the dialogue timeout via a common
AVP.
When I check a dialogue via kamcmd dlg.list
start_ts: 1682066352
init_ts: 1682066346
end_ts: 0
timeout: 1682066952
lifetime: 600
Timeout is increased on the first session refreshing re-invite, as
expected (in this case after 300 seconds). But it looks like the
dialogue just disappears (from kamcmd dlg.list, not from the backing
database) when the lifetime ist reached, leaving an orphan database
entry.
I would like to digg deeper into this. Is there a way to log more
details from the dialogue module like when it triggers dialogue expiry?
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
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,
it is time to make the roadmap to the next major release series v5.7.x.
In my opinion, I would try to freeze the development during the first
part of April 2023, tentatively proposing April 14 as freezing date,
being like 4 weeks from now. Then testing phase and first release
(v5.7.0) sometime during May 2023. Alternative timelines can be
proposed, of course.
If anyone wants to add new features/modules, they have to be published
till freezing date, either pushed in the git repository or proposed as
pull request.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - June 5-7, 2023 - www.kamailioworld.com
Kamailio Advanced Training - Online - March 27-30, 2023 - www.asipto.com
Hello,
I am proxying all RTP through RTPEngine. Everything works fine until about
5 seconds into the call, when rtpengine enters kernelization, after which
all RTP forwarding ceases. I've checked the required iptables entries, and
all looks good.
Here is a description of my environment:
# cat os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# kamailio -v
version: kamailio 5.6.2 (x86_64/linux) 54a9c1
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE,
USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, 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: 54a9c1
compiled on 16:02:49 Dec 1 2022 with gcc 10.2.1
# rtpengine -v
Version: 11.1.1.3-1~bpo11+1
Michel Pelletier
Hi,
I was using the kamailio/kamailio docker repository in one of my projects,
and now the image is not available as the repo has been removed. Is the
"kamailio-ci" repo a replacement for it?
Thanks!
--
Manel Villar
Steegerstr. 59
13359 Berlin
Germany
Tel: (+49) (0)162 6574604
skype: manel.villar
manelvf(a)gmail.com
*"Ars longa, vita brevis"*
Hello,
the formal notification that the development for the next major version
5.7.0 is now frozen. The focus has to be on testing the master branch.
Also, the master branch should not get commits with new features till
the branch 5.7 is created, expected to happen in 2-4 weeks, a matter of
how testing goes on. Meanwhile, the commits with new features in the C
code can be pushed to personal branches, new pull requests can still be
done, but they will be merged after branching 5.7.
Can still be done commits with documentation improvements, enhancements
to related tools (e.g., kamctl, kamcmd), merging exiting pull requests
at this moment, exporting missing KEMI functions and completing the
functionality of the new modules added for 5.7.
Once the branch 5.7 is created, new features can be pushed again to
master branch as usual. From that moment, the v5.7.0 should be out very
soon, time used for further testing but also preparing the release of
packages.
If someone is not sure if a commit brings a new feature, just make a
pull request and it can be discussed there on github portal or via
sr-dev mailing list.
A summary of what is new in upcoming 5.7 is going to be built at:
* https://www.kamailio.org/wikidocs/features/new-in-5.7.x/
Upgrade guidelines will be collected at:
* https://www.kamailio.org/wikidocs/install/upgrade/5.6.x-to-5.7.0/
Everyone is more than welcome to contribute to the above wiki pages,
especially to the upgrade guidelines, to help everyone else during the
migration process from v5.6.x to 5.7.x.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hello,
I am trying to implement RTPEngine failover, where if a selected RTPEngine node fails in the middle of the call (and not responding NG requests), I want to select an alternative node. However, when I call rtpengine_manage(), it does not seem to select an alternative node in case of a failure. To address this, I have attempted to check if $avp(RTP_INSTANCE) is null after calling rtpengine_manage(), and then use rtpengine_delete() to forget the selected RTPEngine node for the specific call, with the expectation that Kamailio would assign a new RTPEngine node for subsequent SIP message retries. However, it appears that rtpengine_delete() does not have the desired effect in this regard.
Here is an excerpt of my code for reference:
```
route[RTP] {
#!ifdef WITH_RTPENGINE
if (has_body("application/sdp")) {
if ($avp(x_source) == "INTERNAL") {
rtpengine_manage("replace-session-connection replace-origin direction=internal direction=external");
}
else if ($avp(x_source) == "EXTERNAL") {
rtpengine_manage("replace-session-connection replace-origin direction=external direction=internal");
}
if ($avp(RTP_INSTANCE) == $null) {
rtpengine_delete();
drop();
}
}
#!endif
}
```
Can you please advise on how I can achieve the desired failover behavior? Is there another function similar to `rtpengine_reset_call` that can make Kamailio forget the RTPEngine node for a specific call?
Thank you!
Hi,
I'd like to build an LCR solution that routes on both CLI & destination e.g.
CLI matches ^\+49*, destinations matches ^\+44* => route to gateway 5
for a large rule set (~ tens of thousands). Any recommendations for which modules to use? Can kamailio perform this particular task well or should I look at another solution? I'd be very grateful to hear about any experience of doing this. Many Thanks.
Regards,
John
Hello everyone,
I'm trying to connect Kamailio 5.5.5 to my PostgreSQL 14.
They are on two different servers.
I have created the Kamailio DB on the Postgre with the help of the command "kamdbctl create"
I'm able to connect to the database with no problem.
The problem is in the kamailio.cfg file, i have added this so far:
#!define WITH_PGSQL
#!ifdef WITH_PGSQL
#!define DBURL "postgres://USER:PASSWORD@IP:POPT/kamailio"
#!endif
#!ifdef WITH_PGSQL
loadmodule "db_postgres.so"
#!endif
modparam("db_postgres", "retries", 3)
modparam("db_postgres", "timeout", 10)
modparam("db_postgres", "tcp_keepalive", 600)
modparam("db_postgres", "lockset", 6)
modparam("db_postgres", "bytea_output_escape", 0)
But my kamailio doenst like this configuration, can someone help me find the problem?
Thank you in advance!
Best Regards!