Hello all,
I’m having lots of problems when trying to configure Kamailio behind an AWS
tls load balancer to offload tls and receive on tcp on Kamailio. Everything
else inside is UDP.
I found I need to manually add record-route presets every time and invite
comes in. And when trying to forward an ACK to the client via tls/tcp load
balancer Kamailio complaint the socket is not TLS so it fails.
Is there a simpler way of doing this via some parameters I don’t know?
Thanks for helping me with this!
David
--
Regards,
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
Hello,
I'm trying to install latest Kamailio version on RHEL 9.2.
All is good, but I couldn't find kamailio-postgres package related to postgres module, knowing that I have installed Postgresql 15.
Is there a rpm file that I can download to install kamailio-postgres ?
Regards,
Hello!
I am looking into a problem where we have Kamailio forwarding calls to two
or more "recording-clients". I will try my best to describe the problem and
would appreciate it if someone has an idea what to do. Please feel free to
ask if you think I have forgotten to describe something that might be
important or something is unclear in what I have written.
We use use_dns_failover=yes and dns_srv_lb=yes so calls get load balancing
to the "recording-clients". There is also the t_set_fr(60000,1000)
parameter set so that if there is no response within 1 second it would try
the next recording-client. The SRV record points to two or more recording
clients.
It now happens that the recording-clients sometimes have some kind of
temporary problem so it will respond with a 503 after 5 seconds.
What happens is that after the 1 second timeout trying to get the INVITE
through to the first recording-client Kamailio will internally generate a
408. This will cause it to failover to another recording-client which
happily takes care of the INVITE and responds properly with a 200 OK.
Everything would have been just fine except for the fact that the first
recording-client is just slow and finally responds with a 503. This 503 is
not relayed backwards since a 200 has already been forwarded back to the
caller. But when receiving the 503 Kamailio will initiate a new INVITE
which is trying to set up a new call to a recording client. It looks like
it is doing a new failover regardless if it already has done a failover for
this failed transaction.
I don't want Kamailio to send that last INVITE when receiving the 503. How
can I configure Kamailio to disregard the last 503 (except for responding
with an ACK) and not initiate a new INVITE?
I have tried a lot of different changes to the configuration but failed to
achieve this, unfortunately. Do I need to use the dispatcher module to
achieve this?
/Mattis
Hello,
I'm using Kamailio as SIP redirect where SBC sends INVITE packet to kamailio and "302","Multiple Choices" is sent back to SBC.
What I want is to modify the URI part in the To header of the Multiple Choices packet sent from kamailio. I tried to use uac_replace_to("","sip:$var(cdpn)@$td") where $var(cdpn) is already defined in the routing logic, but it's not reflected and the original TO URI is sent instead.
Any help to handle this issue is much appreciated.
Regards,
I receiving INVITE with two Route header (no to tag).
First Route header is my Kamailio host.
Second Route header is next hop after Kamailio.
I need to get value of next hop.
I tried to use "$route_uri" after "loose_route" but his deos works.
"$route_uri" always use top Route header.
But in the INVITE first Route header is Kamailio host.
Is any change to get top Route header after "loose_route"?
Hello,
we work on a mobile softphone which connects to asterisk through kamailio. Almost everything is fine except one thing.
Asterisk allows only one registration to an AOR. In mobile environment network can change, register/unregister can be called frequently in foreground/background cases.
Kamailio forwards every request to asterisk. Until I have only one connection between kamailio – asterisk, everything is fine.
The next situation is problematic:
1. Client A and client B register to asterisk through kamailio. –> there will be one connection between kamailio and asterisk
2. Client A calls client B. • one connection exist still
3. If client A terminates the call -> one connection remains. It is okay.
4. If client B terminates the call -> a new connection appears (kamailio IP with new port)
After case 4 If I try to register again, I got 403 from asterisk, since the setting of asterisk does not allowed to register from different IP:port for the same AOR. (this behaviour cannot be changed now).
The question: is there any setting/config exist in kamailio not to create new connection for a BYE in above case.
Thanks in advance for your reply.
Peter
Hello,
Can one kama process iterate a htable using sht_iterator_start(), sht_iterator_next(), sht_iterator_rm(), sht_iterator_end() while some other kama process call sht_rm(htable, item) ?
I've looked into code and to me it looks like slots are locked ok. The entire linked list(specific to a slot) where the item might be, is locked, so this means there should be no problems, right?
Thank you,
Stefan
Hi
I have a kamailio 5.7.1 running as TLS gateway for PBXs in private LAN
network:
UAC-WAN(sip-tls) <--> kamailio-WAN(sip-tls) - kamailio-LAN(sip) <-->
PBX-LAN(sip)
80.0.0.1 <--> 80.0.0.2 - 10.0.0.1 <--> 10.0.0.2
All communications tested works well except for re-INVITE like when UAC
put the call on hold .
The re-INVITE packet is managed like a new call
and the tm module doesn't match transaction :
matching_3261(): RFC3261 transaction matching failed - via branch
[z9hG4bK-524287-1---5e900485d5ad0faf]
t_lookup_request(): no transaction found
build_cell(): created new cell
t_relay_to(): new INVITE
I try to send the interesting logs and config
call logs and pcap : https://filebin.net/vdezuhyn7wdy3lqc
kamailio config :
...
request_route {
if (is_method("CANCEL")) {
if (t_check_trans()) {
route(RELAY);
}
exit;
}
if (!is_method("ACK")) {
if(t_precheck_trans()) {
t_check_trans();
exit;
}
t_check_trans();
}
route(WITHINDLG);
if ($si=="PBXIP0" || $si=="PBXIP1" || $si=="PBXIP2" ||
$si=="PBXIP3" ) {
if (!loose_route()) {
switch($rc) {
case -2:
sl_send_reply("403", "Forbidden");
exit;
}
}
remove_hf("Route");
force_rport();
record_route();
$fs = "tls:WANIP:5061";
}
if (is_method("INVITE|SUBSCRIBE")){
record_route();
}
t_on_failure("MANAGE_FAILURE");
$fs = "udp:LANIP:5060";
}
route(RELAY);
exit;
}
route[WITHINDLG] {
if (!has_totag()) return;
if ($si=="PBXIP0" || $si=="PBXIP1" || $si=="PBXIP2" ||
$si=="PBXIP3") {
route(RTPMANAGE);
route(RELAY);
exit;
}
if (loose_route()) {
if ( is_method("NOTIFY") ) {
record_route();
}
route(RTPMANAGE);
route(RELAY);
exit;
}
if ( is_method("ACK|BYE") ) {
route(RTPMANAGE);
route(RELAY);
}
sl_send_reply("404","Not here");
exit;
}
How can I solve this ?
Best Regards
Leo
I catched issue with
In the Kamailio logs i see
ssl bug #1491 workaround: not enough memory for safe operation:
shm=10219080 threshold2=11796480
Current stat about shared memory
[root@sbc-a1 ~]# kamctl stats shmem
{
"jsonrpc": "2.0",
"result": [
"shmem:fragments = 528",
"shmem:free_size = 11343104",
"shmem:max_used_size = 124449952",
"shmem:real_used_size = 122874624",
"shmem:total_size = 134217728",
"shmem:used_size = 58728144"
],
"id": 703182
}
But when kamailio started
[root@sbc-a1 ~]# kamctl stats shmem
{
"jsonrpc": "2.0",
"result": [
"shmem:fragments = 122",
"shmem:free_size = 112534264",
"shmem:max_used_size = 22372528",
"shmem:real_used_size = 21683464",
"shmem:total_size = 134217728",
"shmem:used_size = 12833888"
],
"id": 703670
}
What is stange a lot of fragments.
How it can be troubleshooted?
Can memory manager show info about each fragment like when fragment are
created an and which module requested fragment?
Hello everyone!
I had a Kamailio 5.6.4 server using the DB_REDIS module for quite some time without a password on the Redis DB working just fine.
A few days ago I decided to add a password to Redis and modify the Kamailio config file with the following line per the documentation to be able to authenticate:
modparam("db_redis", "db_pass", "r3d1sPass")
Since that moment, I see the following errors in the Kamailio logs:
......
kamailio: ERROR: <core> [core/modparam.c:175]: set_mod_param_regex(): parameter <db_pass> of type <1:string> not found in module <db_redis>
kamailio: CRITICAL: <core> [core/cfg.y:3790]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 556, column 49: Can't set module parameter
......
The documentation I am reading is here:
https://www.kamailio.org/docs/modules/devel/modules/db_redis.html#db_redis.…
Could someone help me figure out what I am doing wrong?
Many thanks,
Nick
Hello,
On 5.6.4, i’m trying to perform mwi pua_json, but cannot get it working.
I have a doubt about my json and spent some time to make variations on json without success.
Does one of you played with it and can tell me if something is wrong about this json ?
{
"Event-Package":"message-summary",
"Event-Name":"update"
"expires":3600,
"From":sip:ccoca@dff.com,
"To":sip:ccoca@dff.com,
"Message-Account":sip:ccoca@dff.com,
"Messages-Waiting":"yes",
"MWI-Voice-Message":"2/8 (0/0)",
"Messages-New":"2",
"Messages-Saved":"8",
"Messages-Urgent":"0",
"Messages-Urgent-Saved":"0",
"From-Realm":"dff.com",
"From-User":"ccoca",
"Call-ID":0_845806535@10.22.22.22<mailto:0_845806535@10.22.22.22>,
}
Regards,
David
Hello,
We are trying to build a lightweight SBC solution for some external peers, but currently there is a mixed environment which is handled by Asterisk.
We have some "peers" with IP based auth, and also some "subscribers" with register.
We have succeded with the subscribers, because we can handle the numbers for those type of users with aliases in Kamailio. So basically we have a subscriber, lets call it "test", and we can add aliases for the subscriber like "3612345678@localhost", then if we are calling the number the routing goes to the contact of "test" subscriber.
Currently the problem is that we dont have any idea about the IP based peers, because those peers not registering, so we cannot create aliases for them as far as i know.
How do you solve this type of problem? Maybe im overcomplicating the situation, but i havent got any solutions in my mind currently.
Thanks for your help and ideas.
With kind regards,
Zoltan
Hi Jakub
Although no direct experience with this exactly as you have described I have used HTTP API out of Kamailio quite a bit and into other services. Which yes some ultimatly end in AWS> Having done our's in KEMI there is some difference however from our experience we did notice some of this didn't fair well under a loads test scenario. We tested Kafka vs Kamailio HTTP API Modules vs Aiohttp (Python in Kemi) and Kafka significantly out perfomed in terms of the load test. We then had to rejig things to account for this instead of HTTP API. If this is ever going to be under intense load. Maybe make sure you do the load testing early on before you ratify your design. Also make sure all your error habndling is in place and working to prevent issues in Kamailio if something API side goes wrong.
Mission Labs Limited is registered in England, company number 10040088. Trading Office: The Old Milk Depot, Bacup Rd, Rossendale, BB4 7FE. Registered office: The Scalpel, 18th Floor 52 Lime Street, London, EC3M 7AF. Email confidentiality notice: This message is private and confidential. If you have received this message in error, please notify us and remove it from your system. Please consider the environment before you print this email.
Hello
I have debian 11 with kamailio 5.6.4 (x86_64/linux).
The kamailio is working fine.
Now I need to setup rtprngine to relay RTP.
I have installed the rtpengine using this guide: https://dfx.at/rtpengine/
Version: 10.5.4.3-1+b1
When I run: systemctl status rtpengine-daemon
I got:
● rtpengine-daemon.service - RTP/media Proxy Daemon
Loaded: loaded (/lib/systemd/system/rtpengine-daemon.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-08-01 20:58:23 -05; 51min ago
Docs: man:rtpengine(8)
Process: 468 ExecStartPre=/usr/sbin/rtpengine-iptables-setup start (code=exited, status=0/SUCCESS)
Main PID: 535 (rtpengine)
Tasks: 22 (limit: 2323)
Memory: 42.1M
CPU: 720ms
CGroup: /system.slice/rtpengine-daemon.service
└─535 /usr/bin/rtpengine -f -E --no-log-timestamps --pidfile /run/rtpengine/rtpengine-daemon.pid --config-file /etc/rtpengine/rtpengine.conf
Aug 01 20:58:22 debian systemd[1]: Starting RTP/media Proxy Daemon...
Aug 01 20:58:23 debian rtpengine[535]: INFO: [crypto] Generating new DTLS certificate
Aug 01 20:58:23 debian rtpengine[535]: INFO: [core] Startup complete, version 10.5.4.3-1+b1
Aug 01 20:58:23 debian systemd[1]: Started RTP/media Proxy Daemon.
Aug 01 20:58:23 debian rtpengine[535]: INFO: [http] Websocket listener thread running
I edited /etc/kamailio/kamailo.cfg with:
#!define WITH_RTPENGINE
#!ifdef WITH_RTPENGINE
loadmodule "rtpengine.so"
modparam("rtpengine", "rtpengine_sock", "udp:127.0.0.1:2223")
systemctl restart kamilio
To check if the rtpengine module is running:
kamcmd core.modules
I got:
permissions
auth_db
auth
counters
acc
cfg_rpc
ctl
sanity
xlog
siputils
textopsx
textops
registrar
usrloc
maxfwd
pv
rr
sl
tmx
tm
corex
kex
jsonrpcs
db_mysql
The point is that I don't see the rtpengine module.
There is another way to check if the rtpengine module is running ?
Regards
Hello,
I am researching how I could communicate from Kamailio (which runs on an AWS EC2 instance) with AWS services (e.g. DynamoDB) using HTTP API.
My Kamailio logic is written in Kamailio configuration files.
I would like to ask you if anyone has some experience with such a setup and if so how did you manage to connect it?
My current options are:
* HTTP connection to DynamoDB API with HTTP module
I would create a Python script that would generate signature headers for the [AWS API request](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-req….
Then I would use the headers in the HTTP request.
(I am using the Kamailio module to keep the connection open to DynamoDB).
* Middleman service
Small service that provides HTTP API to Kamailio and manages the communication with DynamoDB.
Easiest solution but it's harder to maintain it in high availability mode.
* API gateway with VPC endpoint attached to the EC2
API gateway would be a proxy to DynamoDB and we would call the VPC endpoint from the Kamailio.
We would use resource policies to allow requests without auth through the VPC endpoint.
Any help or feedback would be valuable to me.
Thank you very much!
Regards,
Jakub
Hello,
I'm looking to change the A number (from number) to a number selected randomly from a pool of existing numbers (hundreds) and then relay the call to a certain gateway.
What is the best and more efficient way to do it in kamailio?
Thanks in advance
Hello guys,
I have kamailio behind a TLS->TCP Load Balancer. I'm having problems
because the outgoing packets have a record has the correct advertise BUT
kamailio is assuming that because the outgoing socket is TCP, it adds
";transport=tcp"... is it possible to set that parameter to tls?
Thanks!
David
Regards,
David Villasmil
email: david.villasmil.work(a)gmail.com
phone: +34669448337
Hello all, I want to save some credentials for different users I have that are being used in a digest authorization (INVITE),
with different realms (I don't want the credentials to be hardcoded).
I tried to look at how can I read into my kamalio.cfg from yaml/txt file, but haven't found the right module for this.
Thanks in advance,
Max
Hello Alex,
Thank you for your answer, I still don't have sound but the behaviour is
now different.
Is it possible to configure this behaviour on a call by call basis with
flags on the rtpengine_manage() function? Or in alternative having it
consume the "direction=" attribute on the SDP?
Cheers
Hello Alex,
Thank you for your answer, I still don't have sound but the behaviour is
now different.
Is it possible to configure this behaviour on a call by call basis with
flags on the rtpengine_manage() function? Or in alternative having it
consume the "direction=" attribute on the SDP?
Cheers
Hello all,
I'm currently doing some experiments with RTPENGINE and I need some help
configuring it.
First scenario i'm under NAT and Kamailio receives an INVITE with a private
address, rewrites (c) line on SDP with it's own IP address and relays the
message to the destination endpoint. After that the originator receives the
183 Session Progress with kamailio's IP as (c) parameter. After receiving
the first RTP packet from the originator the media streams flow normally
and I have sound on both sides including ringing.
Second scenario I use different equipment that is not under NAT, but the
remaining scenario is the same, except the originator doesn't send an RTP
packet after the 183 Session Progress. However, in this case, no RTP
stream is relayed to the originator and as a consequence it doesn't hear a
ring or voice when the call is answered.
As i see it, it looks like Kamailio is on passive mode to the A-Leg of the
call and waits for a RTP packet to establish its stream. Is this correct?
If so, how do i change this behaviour?
Cheers
This is always a good place to start https://www.fredposner.com/1457/kamailio-behind-nat/
Lewis
Mission Labs Limited is registered in England, company number 10040088. Trading Office: The Old Milk Depot, Bacup Rd, Rossendale, BB4 7FE. Registered office: The Scalpel, 18th Floor 52 Lime Street, London, EC3M 7AF. Email confidentiality notice: This message is private and confidential. If you have received this message in error, please notify us and remove it from your system. Please consider the environment before you print this email.
Dear Kamailio users,
Im new to kamailio so excuse me if the question doesnt make sense. I have an asterisk server with private IP address behind the NAT . Is it possible to have a Kamailio Server with Public IP Address as a proxy server for my asterisk ?
What I want to achieve is that remote users should be able to call internal users who are registered in the Asterisk . The problem here is that Asterisk does not have public IP address and I want the remote users to be registered in my asterisk .
Best WishesJ. sh
Hello, I would appreciate any help you can provide on this matter,
I would like to make an outgoing INVITE request which will have a digest authorization with password and username.
I was wandering around the Auth module to find the most fit method to build this header but hadn't found anything.
Maybe I am missing something really obvious here, thanks for the help in advance
Best regards,
Max.
Hello,
Kamailio SIP Server v5.5.7 stable release is out.
This is a maintenance release of the stable branch 5.5 that includes
fixes since the release of v5.5.6. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.5.x. Deployments running previous v5.5.x
versions are strongly recommended to be upgraded to v5.5.7.
Note that 5.5 is now the third last stable branch, v5.5.7 being the last
planned released in 5.5.x series. The latest two stable branch are 5.6
and 5.7, with v5.7.1 being released a while ago.
For more details about version 5.5.7 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2023/07/kamailio-v5-5-7-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - www.kamailioworld.com
Hello,
I am planning to release v5.5.7 our of branch 5.5 this week, most likely
on Wednesday, July 19, 2023. It will mark the end of official packaging
for release series 5.5.x, currently the latest two stable branches are
5.6 and 5.7.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - www.kamailioworld.com
I wouldn't do a delete in that situation; it might be simpler to just do another rtpengine_offer() on a <Call-ID, From-tag> tuple that RTPEngine already knows about, just as one would in a reinvite. I believe rtpengine_manage() would cover this situation as well.
And yes, then just t_relay() anew!
> On Jul 18, 2023, at 11:41 AM, Barry Flanagan <barry(a)flantel.com> wrote:
>
> On 18/07/2023 16:33, Alex Balashov wrote:
>> Barry,
>>
>> Might it not be simpler to follow Richard's first suggestion in that thread, and simply catch the 488 response in a failure_route and re-issue a non-SRTP offer on another branch?
>
> hi Alex,
>
> Might be. I am just unsure about how to instruct rtpengine to re-send the plain RTP invite. Do I do a rtpengine_delete and then restart with rtpengine_manage() then relay again?
>
> Thanks.
>
> -Barry
>
>
>>
>> -- Alex
>>
>>> On Jul 18, 2023, at 11:05 AM, Barry Flanagan <barry(a)flantel.com> wrote:
>>>
>>> Hi,
>>>
>>> I have implemented a WebRTC proxy using Kamailio and rtpengine, in front
>>> of Asterisk servers. I have an issue where I do not know in advance
>>> whether the Asterisk client is set to use RTP or SRTP.
>>>
>>> My implementation expects the web side to be SRTP and the Asterisk side
>>> plain RTP. However, if the asterisk side requires SRTP I receive a 488
>>> Not Acceptable here. The same is true when an SRTP client from the
>>> Asterisk side dials out to the webrtc client, I need to catch whether
>>> the request is SRTP or RTP and generate rtpengine offer accordingly.
>>>
>>> This was discussed in github, with a description of a solution here:
>>> https://github.com/sipwise/rtpengine/issues/435#issuecomment-391937398 -
>>> however I am unsure how to implement this.
>>>
>>> Does anyone have an example of how I can change the rtpengine SDP in
>>> such a case?
>>>
>>> Thanks
>>> --
>>> -Barry
>>> __________________________________________________________
>>> Kamailio - Users Mailing List - Non Commercial Discussions
>>> 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!
>>> Edit mailing list options or unsubscribe:
>
> --
> -Barry
>
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web: https://evaristesys.com
Tel: +1-706-510-6800
Hi,
I have implemented a WebRTC proxy using Kamailio and rtpengine, in front
of Asterisk servers. I have an issue where I do not know in advance
whether the Asterisk client is set to use RTP or SRTP.
My implementation expects the web side to be SRTP and the Asterisk side
plain RTP. However, if the asterisk side requires SRTP I receive a 488
Not Acceptable here. The same is true when an SRTP client from the
Asterisk side dials out to the webrtc client, I need to catch whether
the request is SRTP or RTP and generate rtpengine offer accordingly.
This was discussed in github, with a description of a solution here:
https://github.com/sipwise/rtpengine/issues/435#issuecomment-391937398
<https://github.com/sipwise/rtpengine/issues/435#issuecomment-391937398>-
however I am unsure how to implement this.
Does anyone have an example of how I can change the rtpengine SDP in
such a case?
Thanks
--
-Barry
Hi Daniel,
thank you for your response.
As you can see in the provided debug output:
kamailio[]: DEBUG: htable [ht_api.c:1046]: ht_table_spec(): htable
[callpush] - dbmode [1]
kamailio[]: DEBUG: htable [ht_api.c:1027]: ht_table_spec(): htable
[callpush] - dbtable [userpush]
kamailio[]: DEBUG: htable [ht_api.c:1036]: ht_table_spec(): htable
[callpush] - expire [86400]
kamailio[]: DEBUG: htable [ht_api.c:1041]: ht_table_spec(): htable
[callpush] - size [10]
dbmode is set to 1 in the config:
modparam("htable", "db_url", "sqlite:////etc/kamailio/htable.sqlite")
...
modparam("htable", "htable", "userpush=>size=3;autoexpire=600;dbtable=userpush;dbmode=1")
If I execute
kamcmd htable.store userpush
I get
Ok. Htable successfully stored to DB.
But the table is still empty!!!
In the log I found:
ERROR: db_sqlite [dbase.c:528]: db_sqlite_commit(): sqlite commit
failed: attempt to write a readonly database
ERROR: db_sqlite [dbase.c:177]: db_sqlite_cleanup_query(): finalize
failed: attempt to write a readonly database
ERROR: htable [ht_db.c:668]: ht_db_delete_records(): failed to delete db
records in [userpush]
ERROR: db_sqlite [dbase.c:528]: db_sqlite_commit(): sqlite commit
failed: attempt to write a readonly database
Ok.
But I can not see this entries if I shutdown kamailio.
And:
-rw-rw-rw- 1 kamailio root 16384 Jul 13 16:14 htable.sqlite
I never used:
modparam("db_sqlite","db_set_readonly" ...
I also restarted kamailio. no difference.
Now more errors then before:
It is not written at shutdown. (no messages)
It is not written (live) (with error messages, but why it is readonly?)
The message of kamcmd is wrong (says Ok but it failed)
Best regards,
Bernd
Am 17.07.2023 um 08:48 schrieb Daniel-Constantin Mierla:
> Hello,
>
> is dbmode=1 in htable definition?
>
> If you run rpc command htable.store for the htable, are the records
> saved to database?
>
> Cheers,
> Daniel
>
> On 13.07.23 17:45, Bernd Krueger-Knauber wrote:
>> Hi,
>>
>> I just tried to use sqlite and htable to load and save the values.
>> At start I can see in the log, that all parameters are correct and
>> that htable want to load the values from the table.
>> No errors.
>>
>> But if I stop kamailio, nothing is written to the tables.
>>
>> At start I can see:
>>
>> kamailio[]: DEBUG: <core> [core/modparam.c:112]:
>> set_mod_param_regex(): 'htable' matches module 'htable'
>> kamailio[]: DEBUG: <core> [core/sr_module.c:814]: find_param_export():
>> found <htable> in module htable
>> [/usr/lib/x86_64-linux-gnu/kamailio/modules/htable.so]
>> kamailio[]: DEBUG: <core> [core/modparam.c:128]:
>> set_mod_param_regex(): found <htable> in module htable
>> [/usr/lib/x86_64-linux-gnu/kamailio/modules/htable.so]
>> kamailio[]: DEBUG: htable [ht_api.c:1046]: ht_table_spec(): htable
>> [callpush] - dbmode [1]
>> kamailio[]: DEBUG: htable [ht_api.c:1027]: ht_table_spec(): htable
>> [callpush] - dbtable [userpush]
>> kamailio[]: DEBUG: htable [ht_api.c:1036]: ht_table_spec(): htable
>> [callpush] - expire [86400]
>> kamailio[]: DEBUG: htable [ht_api.c:1041]: ht_table_spec(): htable
>> [callpush] - size [10]
>>
>>
>>
>> kamailio[]: DEBUG: htable [ht_api.c:1084]: ht_db_load_tables():
>> loading db table [userpush] in ht [userpush]
>> kamailio[]: DEBUG: htable [ht_db.c:232]: ht_db_load_table():
>> =============== loading hash table [userpush] from database [userpush]
>> kamailio[]: DEBUG: db_sqlite [dbase.c:223]: db_sqlite_submit_query():
>> submit_query: select key_name,key_type,value_type,key_value from
>> userpush order by key_name
>> kamailio[]: DEBUG: <core> [db_query.c:72]: db_do_submit_query():
>> submitted query: select key_name,key_type,value_type,key_value from
>> userpush order by key_name, result 0
>> kamailio[]: DEBUG: <core> [db_res.c:119]: db_new_result(): allocate 56
>> bytes for result set at 0x7f4882107938
>> kamailio[]: DEBUG: <core> [db_res.c:79]: db_free_columns(): freeing 0
>> columns
>> kamailio[]: DEBUG: <core> [db_res.c:138]: db_free_result(): freeing
>> result set at 0x7f4882107938
>>
>> Ok, the file is empty, but it tries to load the data from the table.
>>
>> The table looks like:
>>
>> sqlite> .schema userpush
>> CREATE TABLE userpush (
>> key_name TEXT,
>> "key_type" INTEGER,
>> value_type INTEGER,
>> key_value TEXT
>> );
>>
>>
>> I checked the source code and I saw that destroy() should be called.
>> Inside is ht_db_open_con() called before ht_db_sync_tables(), were it
>> happens.
>> But I can even not see the debug message from ht_db_open_con() :
>>
>> LM_DBG("database connection opened successfully\n")
>> and also not
>> LM_ERR("failed to connect to the database\n");
>>
>> For me it looks like, that the destroy() function is not called.
>>
>> Even with debug=3, I can only see:
>>
>>
>> systemd[]: Stopping kamailio.service - Kamailio - the Open Source SIP
>> Server...
>> kamailio[]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
>> systemd[]: kamailio.service: Deactivated successfully.
>> systemd[]: Stopped kamailio.service - Kamailio - the Open Source SIP
>> Server.
>>
>> I stopped kamailio with
>>
>> systemctl stop kamailio
>>
>> I'm sure that something was inside the htable before I stoped kamailio:
>>
>> {
>> entry: 0
>> size: 1
>> slot: {
>> {
>> name:
>> 07db580a6c13e798a5acc0d123d6e957897c8650b43f99d6d5cb9c2cb5ba4fa4
>> value:
>> 3a28dcb73eb65722df5a261983b7692cecdca482bf8725032e46a0c6b89fb355
>> type: str
>> }
>> }
>> }
>>
>> Any further ideas?
>>
>> Best regards,
>>
>> Bernd
>>
>>
>>
>> __________________________________________________________
>> Kamailio - Users Mailing List - Non Commercial Discussions
>> To unsubscribe send an email tosr-users-leave(a)lists.kamailio.org
>> Important: keep the mailing list in the recipients, do not reply only
>> to the sender!
>> Edit mailing list options or unsubscribe:
--
EDNT GmbH
Werner-von-Siemens-Strasse 7
64625 Bensheim
www.ednt.de
Registergericht: Darmstadt
Registernummer: 24972
Geschäftsführer: Karlheinz Knapp
-------- Weitergeleitete Nachricht --------
Betreff: Re: [SR-Users] Kamailio 5.6.4 and htable dbmode=1
Datum: Mon, 17 Jul 2023 09:50:37 +0200
Von: Bernd Krueger-Knauber <bkk(a)ednt.de>
An: miconda(a)gmail.com
Hi Daniel,
thank you for your response.
As you can see in the provided debug output:
kamailio[]: DEBUG: htable [ht_api.c:1046]: ht_table_spec(): htable
[callpush] - dbmode [1]
kamailio[]: DEBUG: htable [ht_api.c:1027]: ht_table_spec(): htable
[callpush] - dbtable [userpush]
kamailio[]: DEBUG: htable [ht_api.c:1036]: ht_table_spec(): htable
[callpush] - expire [86400]
kamailio[]: DEBUG: htable [ht_api.c:1041]: ht_table_spec(): htable
[callpush] - size [10]
dbmode is set to 1 in the config:
modparam("htable", "db_url", "sqlite:////etc/kamailio/htable.sqlite")
...
modparam("htable", "htable", "userpush=>size=3;autoexpire=600;dbtable=userpush;dbmode=1")
If I execute
kamcmd htable.store userpush
I get
Ok. Htable successfully stored to DB.
But the table is still empty!!!
In the log I found:
ERROR: db_sqlite [dbase.c:528]: db_sqlite_commit(): sqlite commit
failed: attempt to write a readonly database
ERROR: db_sqlite [dbase.c:177]: db_sqlite_cleanup_query(): finalize
failed: attempt to write a readonly database
ERROR: htable [ht_db.c:668]: ht_db_delete_records(): failed to delete db
records in [userpush]
ERROR: db_sqlite [dbase.c:528]: db_sqlite_commit(): sqlite commit
failed: attempt to write a readonly database
Ok.
But I can not see this entries if I shutdown kamailio.
And:
-rw-rw-rw- 1 kamailio root 16384 Jul 13 16:14 htable.sqlite
I never used:
modparam("db_sqlite","db_set_readonly" ...
I also restarted kamailio. no difference.
No more errors then before:
It is not written at shutdown. (no messages)
It is not written (live) (with error messages, but why it is readonly?)
The message of kamcmd is wrong (says Ok but it failed)
Best regards,
Bernd
Am 17.07.2023 um 08:48 schrieb Daniel-Constantin Mierla:
> Hello,
>
> is dbmode=1 in htable definition?
>
> If you run rpc command htable.store for the htable, are the records
> saved to database?
>
> Cheers,
> Daniel
>
> On 13.07.23 17:45, Bernd Krueger-Knauber wrote:
>> Hi,
>>
>> I just tried to use sqlite and htable to load and save the values.
>> At start I can see in the log, that all parameters are correct and
>> that htable want to load the values from the table.
>> No errors.
>>
>> But if I stop kamailio, nothing is written to the tables.
>>
>> At start I can see:
>>
>> kamailio[]: DEBUG: <core> [core/modparam.c:112]:
>> set_mod_param_regex(): 'htable' matches module 'htable'
>> kamailio[]: DEBUG: <core> [core/sr_module.c:814]: find_param_export():
>> found <htable> in module htable
>> [/usr/lib/x86_64-linux-gnu/kamailio/modules/htable.so]
>> kamailio[]: DEBUG: <core> [core/modparam.c:128]:
>> set_mod_param_regex(): found <htable> in module htable
>> [/usr/lib/x86_64-linux-gnu/kamailio/modules/htable.so]
>> kamailio[]: DEBUG: htable [ht_api.c:1046]: ht_table_spec(): htable
>> [callpush] - dbmode [1]
>> kamailio[]: DEBUG: htable [ht_api.c:1027]: ht_table_spec(): htable
>> [callpush] - dbtable [userpush]
>> kamailio[]: DEBUG: htable [ht_api.c:1036]: ht_table_spec(): htable
>> [callpush] - expire [86400]
>> kamailio[]: DEBUG: htable [ht_api.c:1041]: ht_table_spec(): htable
>> [callpush] - size [10]
>>
>>
>>
>> kamailio[]: DEBUG: htable [ht_api.c:1084]: ht_db_load_tables():
>> loading db table [userpush] in ht [userpush]
>> kamailio[]: DEBUG: htable [ht_db.c:232]: ht_db_load_table():
>> =============== loading hash table [userpush] from database [userpush]
>> kamailio[]: DEBUG: db_sqlite [dbase.c:223]: db_sqlite_submit_query():
>> submit_query: select key_name,key_type,value_type,key_value from
>> userpush order by key_name
>> kamailio[]: DEBUG: <core> [db_query.c:72]: db_do_submit_query():
>> submitted query: select key_name,key_type,value_type,key_value from
>> userpush order by key_name, result 0
>> kamailio[]: DEBUG: <core> [db_res.c:119]: db_new_result(): allocate 56
>> bytes for result set at 0x7f4882107938
>> kamailio[]: DEBUG: <core> [db_res.c:79]: db_free_columns(): freeing 0
>> columns
>> kamailio[]: DEBUG: <core> [db_res.c:138]: db_free_result(): freeing
>> result set at 0x7f4882107938
>>
>> Ok, the file is empty, but it tries to load the data from the table.
>>
>> The table looks like:
>>
>> sqlite> .schema userpush
>> CREATE TABLE userpush (
>> key_name TEXT,
>> "key_type" INTEGER,
>> value_type INTEGER,
>> key_value TEXT
>> );
>>
>>
>> I checked the source code and I saw that destroy() should be called.
>> Inside is ht_db_open_con() called before ht_db_sync_tables(), were it
>> happens.
>> But I can even not see the debug message from ht_db_open_con() :
>>
>> LM_DBG("database connection opened successfully\n")
>> and also not
>> LM_ERR("failed to connect to the database\n");
>>
>> For me it looks like, that the destroy() function is not called.
>>
>> Even with debug=3, I can only see:
>>
>>
>> systemd[]: Stopping kamailio.service - Kamailio - the Open Source SIP
>> Server...
>> kamailio[]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
>> systemd[]: kamailio.service: Deactivated successfully.
>> systemd[]: Stopped kamailio.service - Kamailio - the Open Source SIP
>> Server.
>>
>> I stopped kamailio with
>>
>> systemctl stop kamailio
>>
>> I'm sure that something was inside the htable before I stoped kamailio:
>>
>> {
>> entry: 0
>> size: 1
>> slot: {
>> {
>> name:
>> 07db580a6c13e798a5acc0d123d6e957897c8650b43f99d6d5cb9c2cb5ba4fa4
>> value:
>> 3a28dcb73eb65722df5a261983b7692cecdca482bf8725032e46a0c6b89fb355
>> type: str
>> }
>> }
>> }
>>
>> Any further ideas?
>>
>> Best regards,
>>
>> Bernd
>>
>>
>>
>> __________________________________________________________
>> Kamailio - Users Mailing List - Non Commercial Discussions
>> To unsubscribe send an email tosr-users-leave(a)lists.kamailio.org
>> Important: keep the mailing list in the recipients, do not reply only
>> to the sender!
>> Edit mailing list options or unsubscribe:
--
EDNT GmbH
Werner-von-Siemens-Strasse 7
64625 Bensheim
www.ednt.de
Registergericht: Darmstadt
Registernummer: 24972
Geschäftsführer: Karlheinz Knapp
Hi,
I just tried to use sqlite and htable to load and save the values.
At start I can see in the log, that all parameters are correct and that
htable want to load the values from the table.
No errors.
But if I stop kamailio, nothing is written to the tables.
At start I can see:
kamailio[]: DEBUG: <core> [core/modparam.c:112]: set_mod_param_regex():
'htable' matches module 'htable'
kamailio[]: DEBUG: <core> [core/sr_module.c:814]: find_param_export():
found <htable> in module htable
[/usr/lib/x86_64-linux-gnu/kamailio/modules/htable.so]
kamailio[]: DEBUG: <core> [core/modparam.c:128]: set_mod_param_regex():
found <htable> in module htable
[/usr/lib/x86_64-linux-gnu/kamailio/modules/htable.so]
kamailio[]: DEBUG: htable [ht_api.c:1046]: ht_table_spec(): htable
[callpush] - dbmode [1]
kamailio[]: DEBUG: htable [ht_api.c:1027]: ht_table_spec(): htable
[callpush] - dbtable [userpush]
kamailio[]: DEBUG: htable [ht_api.c:1036]: ht_table_spec(): htable
[callpush] - expire [86400]
kamailio[]: DEBUG: htable [ht_api.c:1041]: ht_table_spec(): htable
[callpush] - size [10]
kamailio[]: DEBUG: htable [ht_api.c:1084]: ht_db_load_tables(): loading
db table [userpush] in ht [userpush]
kamailio[]: DEBUG: htable [ht_db.c:232]: ht_db_load_table():
=============== loading hash table [userpush] from database [userpush]
kamailio[]: DEBUG: db_sqlite [dbase.c:223]: db_sqlite_submit_query():
submit_query: select key_name,key_type,value_type,key_value from
userpush order by key_name
kamailio[]: DEBUG: <core> [db_query.c:72]: db_do_submit_query():
submitted query: select key_name,key_type,value_type,key_value from
userpush order by key_name, result 0
kamailio[]: DEBUG: <core> [db_res.c:119]: db_new_result(): allocate 56
bytes for result set at 0x7f4882107938
kamailio[]: DEBUG: <core> [db_res.c:79]: db_free_columns(): freeing 0
columns
kamailio[]: DEBUG: <core> [db_res.c:138]: db_free_result(): freeing
result set at 0x7f4882107938
Ok, the file is empty, but it tries to load the data from the table.
The table looks like:
sqlite> .schema userpush
CREATE TABLE userpush (
key_name TEXT,
"key_type" INTEGER,
value_type INTEGER,
key_value TEXT
);
I checked the source code and I saw that destroy() should be called.
Inside is ht_db_open_con() called before ht_db_sync_tables(), were it
happens.
But I can even not see the debug message from ht_db_open_con() :
LM_DBG("database connection opened successfully\n")
and also not
LM_ERR("failed to connect to the database\n");
For me it looks like, that the destroy() function is not called.
Even with debug=3, I can only see:
systemd[]: Stopping kamailio.service - Kamailio - the Open Source SIP
Server...
kamailio[]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
systemd[]: kamailio.service: Deactivated successfully.
systemd[]: Stopped kamailio.service - Kamailio - the Open Source SIP Server.
I stopped kamailio with
systemctl stop kamailio
I'm sure that something was inside the htable before I stoped kamailio:
{
entry: 0
size: 1
slot: {
{
name:
07db580a6c13e798a5acc0d123d6e957897c8650b43f99d6d5cb9c2cb5ba4fa4
value:
3a28dcb73eb65722df5a261983b7692cecdca482bf8725032e46a0c6b89fb355
type: str
}
}
}
Any further ideas?
Best regards,
Bernd
Hello Awesome people,
I have configured Kamailio in front of two Freeswitch servers. I am using the dispatcher module to load and balance the traffic between the two FS boxes. My dispatcher is configured in a round-robin fashion.
If I send a register to my FS servers, the re-register post-challenge (401) message is routed to the second FS server and the registration fails. I want to check with you guys how are you handling this in your setups. I am sure a lot of companies are using Kamailio to load balance traffic toward the FS and Asterisk servers.
UAC --- > Kamailio --- > FS1
REG ---- > REG ---- > REG
401 <---- 401 < ---- 401
re-register with authorization data:
UAC --- > Kamailio --- > FS2
REG --- > REG ---- > REG
401 <---- 401 < ---- 401
it just create this loop and register fails.
Ideally, I want Kamailio to send the re-register (with auth data) to the same FS server that challenged it.
Any ideas or pointers to fix this issue would be highly appreciated, maybe I am missing some very basic configuration. Or maybe there is another simpler way instead of using a dispatcher module.
Thank you!
Regards,
Shah Hussain
Hi
Please find some more before and after, Ip address and number is masked FYI.
INFO: <script>: TIME : TEST - Rewriting To header with Request line so that
vendor prefix is present
INFO: <script>: TIME : TEST2 - tu is sip:+123456789@10.0.77.88 and ru is
sip:10.0.1.47:5060
INFO: <script>: TIME : TEST3 - tu is sip:+123456789@10.0.77.88 and ru is
sip:10.0.1.47:5060
ERROR: tm [tm.c:1752]: _w_t_relay_to(): t_forward_noack failed
ERROR: tm [t_reply.c:1081]: run_failure_handlers(): error running
run_top_route for failure handler
INFO: <script>: TIME : [Mon Jul 10 12:24:14 2023] CALL ID :
[31bca077-99fa-123c-eb84-00219b9e3ef4] [WITHINDIALOG] The request is [ACK]
INFO: <script>: TIME : [Mon Jul 10 12:24:14 2023] CALL ID :
[31bca077-99fa-123c-eb84-00219b9e3ef4] [PROXY_OUTBOUND_HANDLE] [ACK]
INFO: <script>: TIME : [Mon Jul 10 12:24:14 2023] CALL ID : [
205526695_49743609(a)206.147.84.20] [WITHINDIALOG] The request is [ACK]
Here is the code i suspect, Let me know if you can find some thing why the
error usually gets,
*failure_route["serial"] { if (!t_next_contacts()) { exit; }
t_on_failure("serial"); xlog("L_INFO","TIME : [$Tf] CALL ID : [$ci]
[serial]The altered ruri is [$ru] \n"); xlog("L_INFO", "TIME : TEST -
Rewriting To header with Request line so that vendor prefix is present");
xlog("L_INFO","TIME : TEST2 - tu is $tu and ru is $ru \n"); $tu = $ru;
xlog("L_INFO","TIME : TEST3 - tu is $tu and ru is $ru \n");
t_relay();}event_route[tm:branch-failure:REMOVE_OLD_REGISTER] { if
(t_check_status("(404)|(410)")) { xlog("L_INFO","TIME : Received code
[$T(reply_code)] from SBC, need to remove registration \n");
xlog("L_INFO","TIME : [$Tf] CALL ID : [$ci] [REMOVE_OLD_REGISTER] contact
is [$ct]Unregister section is entered [$ru] \n"); unregister("location",
"$tu", "$T_reply_ruid"); }}*
Thank you.
On Tue, Jul 11, 2023 at 3:46 PM <sr-users-request(a)lists.kamailio.org> wrote:
> Send sr-users mailing list submissions to
> sr-users(a)lists.kamailio.org
>
> To subscribe or unsubscribe via email, send a message with subject or
> body 'help' to
> sr-users-request(a)lists.kamailio.org
>
> You can reach the person managing the list at
> sr-users-owner(a)lists.kamailio.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of sr-users digest..."
>
> Today's Topics:
>
> 1. Need an error description (satyaprakash ch)
> 2. Re: Need an error description (Alex Balashov)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 10 Jul 2023 22:25:31 +0530
> From: satyaprakash ch <chiramchetty.satyaprakash(a)gmail.com>
> Subject: [SR-Users] Need an error description
> To: "Kamailio (SER) - Users Mailing List"
> <sr-users(a)lists.kamailio.org>
> Message-ID:
> <
> CAO-xAtGhcDMiPtoGdBeb6qvhOg8u7hxKt-w-5oU4KuOkdRHuqg(a)mail.gmail.com>
> Content-Type: multipart/alternative;
> boundary="0000000000005a4339060024dadd"
>
> Hi,
>
> Can anyone help me with the error why can we get this?
>
> ERROR: tm [tm.c:1752]: _w_t_relay_to(): t_forward_noack failed ERROR: tm
> [t_reply.c:1081]: run_failure_handlers(): error running run_top_route for
> failure handler
>
> Thank you.
>
Hi,
Can anyone help me with the error why can we get this?
ERROR: tm [tm.c:1752]: _w_t_relay_to(): t_forward_noack failed ERROR: tm
[t_reply.c:1081]: run_failure_handlers(): error running run_top_route for
failure handler
Thank you.
Hello,
As per Kamailio documentation, $RANDOM returns a random value from the [0 - 2^31) range. But when testing it it's always returning a random number of 9 or 10 digits.
I'm not sure if it's always the case or if it can also returns numbers with 1 or 2 digits as well.
Another question, how can I force it to return a number of specific digits starting with certain prefix.
Regards,
Hi Gang
We are still having massive issues on how to safely reload kamailio
after config changes when using the dialog module and DMQ.
If there are active dialogues, kamailio corrupts them on a restart even
when using MySQL as dialog backend.
As we use two core nodes for redundancy, I am looking for a way to
gracefully restart kamailio.
I am considering adding some key in a hash table or anything else I
can reload on runtime to indicate to kamailio not to accept any
new calls (effectively rejecting Invites without To-Tag with 503 causing
the registrar or IC peer to hopefully resend the invite to the other
node).
Then wait, until no more dialogues are active, so kamailio can safely be
restarted.
My Issue now: How can I find out, one specific node does not have
any active dialogues?
'kamcmd dlg.stats_active' returns the count of all DMQ synced nodes, not
of the local one.
And suggestions or any other ideas how I can 'reload' the kamailio
config without disrupting active dialogues?
My last resort would be to look into the database:
modparam("dialog", "h_id_start", -1) # Use server_id
modparam("dialog", "h_id_step", 2)
So odd/even H_ID should tell me the number per node. But I see a lot of
orphan dialogues hanging around in the database not being cleaned so I
guess that will not be reliable at all.
Yes, I know I will get the question: 'Why do you need to restart
kamailio that often'.
We have started production on our kamailio based TSP platform. And of
course, despite a LOT of testing beforehand, there is always some issue
that pops up. At the moment, I have to implement a config change about
once or twice a week to fix some new minor issues.
I hope, somewhen in the future we will hopefully have a stable config
which will last for several months, but at the moment this is the
situation.
--
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,
What is the best way to change the calling number to a random number (based on specific pattern, like number of digits for example) in an invite packet without using a database.
So the scenario is :
* receive an invite packet from certain source
* change the calling number
* send back the invite packet including the new calling number to the original source.
Regards,
Ali Taher
Hello All
I am handling 302 response in the failure route and when receiving 302
response in kamailio, it's not going into the failure route , kamailio just
executing the onreply route when 302 response are received.
A few days ago the same code with failure route worked but now it does not.
i dont know why kamailio is not executing a failure route from where we can
redirect calls to another server.
code snippet
route[RELAY]{
t_on_reply("MANAGE_REPLY");
t_on_failure("MANAGE_FAILURE");
t_on_branch("MANAGE_BRANCH");
if (!t_relay()) {
sl_reply_error();
}
exit;
}
failure_route[MANAGE_FAILURE] {
if (t_is_canceled()) {
exit;
}
if (t_check_status("302")){
get_redirects("*");
$ru= $T_rpl($sel(contact.uri));
route(RELAY);
}
}
kamailio version : 5.6.4
Please suggest if I am doing anything wrong.
--
Regards,
*Devang Dhandhalya*
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on
our website, any views or opinions presented in this email are solely those
of the originator and do not necessarily represent those of the Company or
its sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
Just checking to see if this is the designed behavior. The SL module will attempt to match ACKs for stateless replies and handle them (absorb them?).
The question I have is that it looks as though this ACK gets counted as dropped by the core.drop_requests from the KEX module. Tested using this config:
#!KAMAILIO
loadmodule "pv"
loadmodule "sl"
loadmodule "xlog"
loadmodule "kex"
loadmodule "corex"
loadmodule "ctl"
modparam("sl", "bind_tm", 0)
route {
xinfo("[$ci] $rm Request. Src:[$si:$sp] RURI:[$ru] To:[$tu] From:[$fu]\n");
sl_send_reply("404", "Not Found");
}
event_route[sl:filtered-ack] {
xnotice("sl:filtered-ack ACK [$ci] to local reply absorbed\n");
}
Then validate by kamcmd stats.fetch core:drop_requests
Is this the designed and "correct" behavior?
Kaufman
Hello,
Kamailio SIP Server v5.7.1 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.0. 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.1.
For more details about version 5.7.1 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2023/06/kamailio-v5-7-1-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - www.kamailioworld.com
Hi All
I have setup kamailio using websockets(wss) i am trying to forward any registration that comes to kamailio to go to asterisk, so in theory kamailio is a registration proxy
i have set rewritehostport("xxx.xxx.xxx[:5080](http://node3.sipalto.com:5080)");
the registration forwards fine but the contact on asterisk side shows as sip:xxx:kamailioip.xxxx.invalid
so therefore asterisk sees the sip peer as offline
what am i missing :(
Sent with [Proton Mail](https://proton.me/) secure email.
Hello,
I am considering to release Kamailio v5.7.1 (out of branch 5.7) this
week (likely on Wednesday or Thursday, Jun 28/29, 2023). 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 -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - www.kamailioworld.com
Hi Experts,
We wished to used the LCR Module to be able to select the Gateway(s) to
send the calls to based on the From(Caller) Username.
Based on the LCR Documentation, the usage of other fields like request URI
or prefix etc is pretty clear. But for the From Usename I am having certain
trouble understanding the same. It refers to some mtree. Excerpt below:
"A gateway matches a request if user part of Request-URI matches "prefix",
caller URI matches "from_uri" pattern,* caller URI userpart matches mtree
with "mt_value"*, and callee URI matches "request_uri" pattern in a tuple
that is associated with the gateway."
Can someone explain/ share a sample lcr_rule table entries for the From
Username that can be matched against the incoming sip message for gw
selection? Do we need to manually create an mtree by the name "*lcr*".
Asking based on the below section in LCR documentation? Any pointers are
highly appreciated.
3.35. mtree (string)
Name of mtree to which load_gws() matches caller URI userpart.
*Default value is "lcr".*
Regards,
Harneet Singh
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle
Hello,
I'm currently experiencing some odd behaviours when using these functions
and I need some help debugging to find the root of the issue.
I receive a call from a client and do some changes to the To and From
header using auto mode with password. Encrypted info goes on the
Record-Route header parameters (vsf\vst) normally.
1 - On subsequent requests sent by the originating client, domains on To
and From header are different from the ones sent in the first INVITE. In
this scenario, somehow the automatic modifying has errors on the end
result. Can the different domains affect the end result of the automatic
modifying or only the vsf\vst parameters and password are needed to the
auto replace\restore?
2 - How can I decrypt the info on vsf and vst parameters in order to verify
the info sent and the encryption?
Cheers,
Duarte Rocha
Hello,
I have some questions regarding uac_replace methods.
When I receive the first INVITE from someone I change To and From using
uac_replace_to() and uac_replace_from(). I do this only on first INVITES.
In order to restore them I use the "auto" so the changes are restored
automatically in replies or requests sent to the call originator..
In the case of subsequent requests from the originator kamailio still
changes To and From without me using uac_replace functions. Is this caused
by the auto restore? Does it work for both sides and is this is the
intended behaviour?
Cheers