Hello all, little and fast context, we have 8 docker swarm clusters (4 nodes each) where there are deployed as global service 4 kamailio per cluster. Each cluster runs 8 replicas of a call processing service/app (for the sake of this question we’ll assume the performance of this app is ok, no problems on what it does and how much it consumes in cpu/memory).
kamailio is configured to use http_client module to query the processing app (those queries are load balanced by the docker swarm cluster) in a very simple way, added below in this email.
Everything goes well, there’s an average of ~450 caps on each kamailio on peak hours.
Question and reason of this email is: Is this the best approach i can take? (the http_client) or maybe there’s a more efficient one for this scenario? maybe kemi, or other?
The processing app is written in golang.
We’re planning to add more traffic (significantly more) to this instances and i would like to know if there’s a better scenario, to explore it before this migration.
Thanks, regards
—
request_route {
route(AF_SL);
}
route[AF_SL] {
if(is_method("ACK")){
exit;
}
if(is_method("REGISTER")){
sl_reply("200", "OK");
exit;
}
if(is_method("OPTIONS")){
sl_reply("200", "OK");
exit;
}
if(is_method("CANCEL")){
sl_reply("200","OK");
sl_reply("487","Request Terminated");
exit;
}
if(is_method("INVITE")){
if ($hdr(X-Carrier-In)!="" && $hdr(Organization)!="" && $hdr(X-SBC-Type)!="") {
sl_reply("100","Trying");
$var(retCode) = http_client_query("http://cbrcre:3001/cbrcre/v1/callHandler",'xsbct=$(hdr(X-SBC-Type){s.escape.param})&org=$(hdr(Organization){s.escape.param})&xci=$(hdr(X-Carrier-In){s.escape.param})&fu=$(fu{s.escape.param})&ru=$(ru{s.escape.param})&rU=$(rU{s.escape.param})&fU=$(fU{s.escape.param})&ci=$(ci{s.escape.param})&cin=$(hdr(Call-Info){s.escape.param})&ih=$hdr(Identity)&tag=$(ft{s.escape.param})&ct=$(ct{s.escape.param})&via=$(hdr(Via)[0]{s.escape.param})', "$var(result)");
xlog("L_INFO", "*************** RESULT: $var(result)\n\n");
jansson_get("response_code", "$var(result)", "$var(rc)");
switch($var(rc)){
case "200":
if jansson_get("contact", "$var(result)", "$var(ct)") == true {
append_branch("$var(ct)");
}
if jansson_get("callinfo", "$var(result)", "$var(cinfo)") == true {
append_to_reply("Call-Info: $var(cinfo)\r\n");
}
if jansson_get("pai", "$var(result)", "$var(pai)") ==true {
append_to_reply("P-Asserted-Identity: $var(pai)\r\n");
}
if jansson_get("xfrom", "$var(result)", "$var(xfrom)") ==true {
append_to_reply("X-From: $var(xfrom)\r\n");
}
if jansson_get("identity", "$var(result)", "$var(identity)") ==true {
append_to_reply("Identity: $var(identity)\r\n");
}
append_to_reply("X-Handled: ServiceBroker\r\n");
sl_send_reply("302", "Redirect");
break;
default:
jansson_get("reason","$var(result)","$var(reason)");
jansson_get("sbReason","$var(result)","$var(sbreason)");
append_to_reply("X-SBReason: $var(sbreason)\r\n");
sl_send_reply("$var(rc)", "$var(reason)");
}
exit;
}
xlog("L_ERR","missing xci or org or sbct");
sl_send_reply("608", "SBK Rejected");
}
}
Hi,
There are two proxy servers and two registrar servers with DMQ enabled, and
we have upgraded the proxy servers to 5.7.4 and the registrar servers to
5.5.5.
Kamailio proxy version 5.7.4
Kamailio registrar version: 5.5.5
Following the upgrade of the proxy server to 5.7.4, calls are not working
and no response is received.
Once again, we have reverted the proxy server to 5.5.5, so that the proxy
server and the registrar server version are now the same.The calls are now
working as expected.
We suspect it could be an DMQ issue.
I would appreciate your suggestions on this matter of compatibility between
proxy and registry servers.
Thanks.
Hi,
I set up a transparent kamailo proxy for IPv4 and IPv6.
The PBX which should be reached can handle both.
Now I have the case that the phone comes in on IPv6, but kamailio sends
it out via IPv4.
If I ping the PBX on the kamailio server (debian) I get the IPv6
address, since it is preferred.
Why does kamailio send to the IPv4 address of the PBX?
And how can I change this?
There are only A and AAAA records in the DNS
dns_try_ipv6=yes
is set.
Debian 12.5
Kamailio 5.6.5
Any hint is welcome.
Best regards
Bernd
Hi all,
I am using Kamailio 5.7.4 on a Debian 12 machine. I used ansible to
template some files, and a newline was omitted at the end of the uacreg
table due to a templating issue.
This caused kamailio to crash on start up, with the error:
20(27) CRITICAL: <core> [core/pass_fd.c:281]: receive_fd(): EOF on 24
Even with debug enabled it still wasn't clear the issue was caused by the
uac module. I had to do a gdb backtrace to figure it out.
Whilst the mistake was on my part, I wondered if this should be handled
more cleanly?
Cheers
Matthew
I am trying to build Kamailio with repo tags/5.6.4 to get my hands on the stirshaken module that was not part of apt repositories, however it results in a build error:
root@ip-fobby:/usr/src/kamailio# make modules modules=modules/stirshaken
make -C src/ modules
make[1]: Entering directory '/usr/src/kamailio/src'
CC (gcc) [M stirshaken.so] stirshaken_mod.o
stirshaken_mod.c:28:10: fatal error: stir_shaken.h: No such file or directory
28 | #include <stir_shaken.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [../../Makefile.rules:100: stirshaken_mod.o] Error 1
make[1]: *** [Makefile:511: modules] Error 1
make[1]: Leaving directory '/usr/src/kamailio/src'
make: *** [Makefile:34: modules] Error 2
Obviously there’s no stir_shaken.h file withib the directory src/modules/stirshaken, but I cannot see why, or how I proceed? Is this a likely symptom of faulty libstirshaken installation?
/M
Hi, I'm trying to capture the content of an AVP from the LCR module and assign it to another variable to make use of what is obtained by the regex. For this, I have used the avp_subst.
The content of $avp(i:709):
1|sip:|0|||2416027840||5061||;transport=udp|11|1
I need to extract the index that indicates the port "5061" at position 8.
I haven't been able to achieve this by trying several regex patterns.
Has anyone experienced something similar?
Thanks!
Hi,
The kamailio version we are using is "5.5.5", We are facing a kamailio
crash issue recently and it has generated the core-dump. Based on the
core-dump analysis we could see that "*si_desc = "udp receiver
child=3" *getting
crashed. We could see the below error in the core-dump trace,
#22 0x0000562c33524750 in udp_rcv_loop () at core/udp_server.c:543
tmp = 0x1150955ff0 <error: Cannot access memory at address 0x1150955ff0>
Please suggest how to fix this and your inputs will be appreciated.
Note: Due to confidentiality, I'm not able to share the core-dump trace.
Thanks.
Currently digest authentication hash algorithm (MD5 or SHA-256) is
selected when auth module is loaded. How about allowing to select it
also dynamically using the function flags?
-- Juha
Hi all,
i set up a simple Kamailio SIP server with the latest stable versione.
Than, by following the documntation, i tried to set up a file log instead of the standard syslog log, so i changed the syslog.conf by adding this lines:
# don't log messages with LOG_LOCAL0 in /var/log/syslog anymore
*.*;auth,authpriv.none,local0.none -/var/log/syslog
#
# log messages with LOG_LOCAL0 in /var/log/kamailio.log
local0.* -/var/log/kamailio.log
Then, i created a kamailio file in /etc/logrotate.d with this content to manage the log rotation:
/var/log/kamailio.log {
su root root
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 syslog adm
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
I found all these information in https://www.kamailio.org/wikidocs/tutorials/3.2.x/syslog/
Unfortunatly, in my Ubuntu 22.04 server there isn't a syslogd.pid file in that path so the logrotation doesn't work.
Can anyone help me to understand the problem?
Thank you so much in advance
Christian
Hello,
I'm new to Kamailio and considering its use for our inbound/outbound proxy,
call rating, and billing system. I'd like to get your feedback on my
current approach and understand the best practices for this scenario.
Currently, I'm using SQL queries within my Kamailio configuration to handle
authorization and rating. Here's a simplified example:
# Call authorization
route[DISPATCH] {
if (is_method("INVITE") && isbflagset(FLB_SRC_CARRIER)) {
if ($au == $null) {
$var(acc_query) = $_s(SELECT ct.tag as tag,
ct.customer_id as customer_id, cast(cb.nobal_amt as integer) as
nobal_amount, cast(cb.cash as integer) as cash, ct.digits,
cast(ct.retail_rate as varchar) as retail_rate, cast(ct.wholesale_rate as
varchar) as wholesale_rate, ct.dispatcher_group, cast(ct.cps as integer) as
cps from customer_ip ip INNER JOIN customer_balance cb ON (ip.customer_id =
cb.customer_id) INNER JOIN customer_tariff ct ON (ip.customer_id =
ct.customer_id) INNER JOIN customers cust ON (ip.customer_id =
cust.customer_id) WHERE ip_address = '$si' AND '$rU' LIKE ct.digits || '%'
order by ct.digits desc limit 1;);
} else {
$var(acc_query) = $_s(SELECT ct.tag as tag,
ct.customer_id as customer_id, cast(cb.nobal_amt as integer) as
nobal_amount,cast(cb.cash as integer) as cash, ct.digits,
cast(ct.retail_rate as varchar) as retail_rate, cast(ct.wholesale_rate as
varchar) as wholesale_rate, ct.dispatcher_group, cast(ct.cps as integer) as
cps from customer_auth auth INNER JOIN customer_balance cb ON
(auth.customer_id = cb.customer_id) INNER JOIN customer_tariff ct ON
(auth.customer_id = ct.customer_id) INNER JOIN customers cust ON
(auth.customer_id = cust.customer_id) WHERE auth.subcriber = '$au' AND
'$rU' LIKE ct.digits || '%' order by ct.digits desc limit 1;);
$dlg_var(auth) = "1";
}
xalert("query is $var(acc_query)");
if (sql_xquery("dbh", "$var(acc_query)", "row") == 1) {
$dlg_var(account) = $xavp(row[0]=>customer_id);
$dlg_var(dispatcher_group) =
$xavp(row[0]=>dispatcher_group);
$dlg_var(retail_rate) = $xavp(row[0]=>retail_rate);
$dlg_var(wholesale_rate) =
$xavp(row[0]=>wholesale_rate);
$dlg_var(cps) = $xavp(row[0]=>cps);
$dlg_var(service_plan) = $xavp(row[0]=>tag);
# $var(cash) = $xavp(row[0]=>cash);
xalert("account: $xavp(row[0]=>customer_id) cash:
$xavp(row[0]=>cash) retail_rate: $xavp(row[0]=>retail_rate) wholesale rate:
$xavp(row[0]=>wholesale_rate) group: $xavp(row[0]=>dispatcher_group) cps:
$xavp(row[0]=>cps) tag: $xavp(row[0]=>tag) \n");
if ($xavp(row[0]=>cash) <=
$xavp(row[0]=>nobal_amount)) {
sl_send_reply("403", "Insufficient
balance");
exit;
}
append_hf("X-Account:
$dlg_var(account),$dlg_var(retail_rate),$dlg_var(wholesale_rate)\r\n");
} else {
sl_send_reply("500", "Server Error!");
exit;
}
#!ifdef WITH_CPSLIMIT
# perform pipe match for INVITE
if (is_method("INVITE")) {
$var(invlimit) = $(dlg_var(cps){s.int});
if ($var(invlimit) > 0) {
if
(!pl_check("$si-$dlg_var(dispatcher_group)", "TAILDROP", "$var(invlimit)"))
{
pl_drop("5");
exit;
}
}
}
#!endif
# round robin dispatching on gateways group '1'
if(!ds_select_dst("$dlg_var(dispatcher_group)", "4")) {
send_reply("404", "No destination");
exit;
}
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
……
…….
……
# Billing and Rating using acc_cdrs and a customer_balance table
event_route[dialog:end] {
$var(call_duration) = $DLG_lifetime; # Fetch call duration
$avp(originator) = $dlg_var(originator);
$avp(accountcode) = $dlg_var(account);
$avp(caller) = $dlg_var(caller);
$avp(callee) = $dlg_var(callee);
$avp(pdd) = $dlg_var(pdd);
$avp(service_plan) = $dlg_var(service_plan);
$avp(hangup_source) = 'CALLEE';
$avp(hangup_code) = '200';
$avp(hangup_reason) = 'Normal Clearing';
$avp(elapsed) = ( $TV(s) - $dlg_var(init_timestamp) );
if ($dlg_var(auth) != $null) {
setbflag(FLB_SRC_CARRIER);
}
if (isbflagset(FLB_SRC_CARRIER) && $dlg_var(originator) ==
"CUSTOMER") {
$avp(hangup_source) = 'CALLER';
}
if (isbflagset(FLB_SRC_PBX) && $dlg_var(originator) ==
"SYSTEM") {
$avp(hangup_source) = 'CALLER';
}
# Calculate billed amount using postgres query
$var(bill_query) = $_s(select
cast(round($dlg_var(retail_rate)/60::numeric * $var(call_duration), 4) as
varchar) as bill;);
if (sql_xquery("dbh", "$var(bill_query)", "row") == 1) {
$avp(billed) = $xavp(row[0]=>bill);
}
if (isbflagset(FLB_SRC_CARRIER)) {
$var(query) = "UPDATE customer_balance set cash =
cash - (" + $dlg_var(retail_rate) + " / 60 * " + $var(call_duration) + ")
WHERE customer_id = " + $dlg_var(account) + ";";
sql_xquery("dbh", "$var(query)", "ra");
}
# xalert("~~~~~ Call ended (duration: $var(call_duration))
total_billed: $avp(billed) ~ $avp(hangup_source) ~ $T(reply_code) ~
$T(reply_reason) ~ $T_reply_code ~ \n");
}
My questions are:
• Is this a sustainable approach for a Kamailio billing/rating setup?
Are there performance or scalability concerns?
• Would it be better to handle rating and billing directly on our
FreeSWITCH B2BUA? What are the advantages and disadvantages of each
approach?
• Are there best practices or alternative solutions I should consider?
Thank you in advance for sharing your experience and insights!
HI
I currently have two proxy servers running in my environment, and I want to
upgrade Kamailio from version 5.4.7 to 5.6.
Can I recompile the Kamailio service before restarting it without downtime
? Will there be any impact on my production environment if I recompile
Kamailio to the newer version? If there is no impact, I expect
approximately 2 minutes of downtime during the service restart.
Here's the scenario:
*No Downtime:*
Clone the Kamailio repository with git clone
https://github.com/kamailio/kamailio.git
Navigate to the Kamailio directory with cd kamailio
Update the modules.lst file with any necessary additions
Compile with make
Install with make install
*Downtime:*Restart the Kamailio service.
Please advise on this.
Thanks.
Hello,
I would like to build some additional modules to the standard by following this guide (old) https://www.kamailio.org/wikidocs/install/4.0.x/debian/ and I don't get these additional .deb packages.
Could someone please help.
Thanks,
Victor
Hey Folks,
What a great conversation, really enjoyed all the insight and feedback, other than what's already been said, which I agree with whole heartedly, I want to add some personal reflection.
FOSS is exceptional for putting tools in your hands to build what your business can use to succeed. You will spend upfront $$ investment with man-hours learning, deploying, managing then cost trails off to realize the return on investment which is usually exponential compared to commercial drop-in voice switches. A key consideration is expected/targeted growth of the solution and operational expediency, how big with the subscriber base get, voice service is a high touch point for customer support. Once you (as in personally) deploy a FOSS solution in production, you are tied to that solution for its foreseeable existence, good luck finding competent and like-minded staff that see your vision and can support the solution as you do. Deployment guys will always have a deeper understanding/knowledge of the solution, architecture, configuration, pitfalls and work around than the operations support folks. If you don't have staff resources, having consultants you can rely on is crucial for success.
I can't say enough about Kamailio for building call routing solutions, mature, stable, reliable, continued improvements, phenomenal developer and community base for support.
Good luck whichever direction you go in!
JR Richardson
On Apr 14, 2024, at 12:25 PM, Alex Balashov <abalashov(a)evaristesys.com> wrote:
> Medium to large organisations, in particular, tend to extract labour from consistent (if unextraordinary) output of everyday do-gooders, and not the more stochastic and volatile heroics of open-source superstars.
Sorry, I meant to say "extract value" here, not "extract labour".
But the larger point is that any successful formula heavily reliant on open-source is going to be a lot more dependent on culture, and on the strengths of individual people and their specific skills, than a formula reliant on a third-party vendor, all other things being equal.
-- Alex
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web: https://evaristesys.com
Tel: +1-706-510-6800
End of sr-users Digest, Vol 227, Issue 36
*****************************************
Hi
Using Kamailio 5.6 and trying to get Teams integration working. Failing at the first step! I receive no reply from MS to my OPTIONS ping. AFAIK it is correect, here is the OPTIONs sent:
OPTIONS sip:sip.pstnhub.microsoft.com;transport=tls SIP/2.0
Via: SIP/2.0/TLS msteams.domain.com:5061;branch=z9hG4bK0c2b.da69f3c3000000000000000000000000.0
To: <sip:sip.pstnhub.microsoft.com;transport=tls>
From: <sip:msteams.domain.com>;tag=6d9effc2a8ec7e0b16377e93bd9e71e2-470e3c71
CSeq: 10 OPTIONS
Call-ID: 6ea8091201db565b-605531(a)159.65.196.10
Max-Forwards: 70
Content-Length: 0
User-Agent: ABC SBC
Contact: <sip:msteams.domain.com:5061;transport=tls>
From the logs (below) I can see that w are accepting the MS cert OK but get no response and ends with a 408. The domain is configured in Teams, and a user with a license was added. MY Cert is issued by GeoTrust TLS RSA CA G1.
Any idea if the issue might be on my side?
024-04-15T14:53:19.302610+00:00 msteams /usr/sbin/kamailio[605600]: DEBUG: tls [tls_domain.c:798]: sr_ssl_ctx_info_callback(): SSL handshake done
2024-04-15T14:53:19.302692+00:00 msteams /usr/sbin/kamailio[605600]: DEBUG: tls [tls_server.c:542]: tls_connect(): TLS connect successful
2024-04-15T14:53:19.302762+00:00 msteams /usr/sbin/kamailio[605600]: DEBUG: tls [tls_server.c:545]: tls_connect(): tls_connect: new connection to 52.114.14.70:5061 using TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256
2024-04-15T14:53:19.302824+00:00 msteams /usr/sbin/kamailio[605600]: DEBUG: tls [tls_server.c:550]: tls_connect(): tls_connect: sending socket: 159.65.196.10:0
2024-04-15T14:53:19.302868+00:00 msteams /usr/sbin/kamailio[605600]: DEBUG: tls [tls_server.c:418]: tls_dump_cert_info(): tls_connect: server certificate subject:/C=US/ST=WA/L=Redmond/O=Microsoft Corporation/CN=sip.pstnhub.microsoft.com
2024-04-15T14:53:19.302917+00:00 msteams /usr/sbin/kamailio[605600]: DEBUG: tls [tls_server.c:422]: tls_dump_cert_info(): tls_connect: server certificate issuer:/C=US/O=Microsoft Corporation/CN=Microsoft Azure RSA TLS Issuing CA 03
2024-04-15T14:53:19.470476+00:00 msteams /usr/sbin/kamailio[605606]: DEBUG: tls [tls_server.c:729]: tls_h_tcpconn_close_f(): Closing SSL connection 0x7fd3c77639c8
2024-04-15T14:53:28.770710+00:00 msteams /usr/sbin/kamailio[605591]: DEBUG: dispatcher [dispatch.c:3617]: ds_options_callback(): OPTIONS-Request was finished with code 408 (to sip:sip.pstnhub.microsoft.com;transport=tls, group 1)
-Barry
Hi,
I am using kamailio with KEMI Lua. The script has some medium level
complexity as it stores some information from the invite in redis
cache during the call and uses that information during the call transfers
(REFER and Invite triggered by REFER).
Lua script itself creates/sets some variables, and
sends/retrieves information during the flow for example
KSR.ndb_redis.redis_cmd("srvN", "SET coreCI-" .. varCI .. " " ..
KSR.pv.getw("$ci") .. " EX 3600", "r");
KSR.ndb_redis.redis_cmd("srvN", "GET refvar-" .. cid, "r");
reft=KSR.pv.getw("$redis(r=>value)");
I made a test call and disconnected, what I am observing is that even if
the call is finished the used memory is slightly increased.
before:
< real_used: 844240
< real_used: 844088
< real_used: 844088
< real_used: 844088
< real_used: 844088
< real_used: 844088
< real_used: 844088
< real_used: 844088
after:
> real_used: 846080
> real_used: 845864
> real_used: 846584
> real_used: 846304
> real_used: 846200
> real_used: 846120
> real_used: 845248
> real_used: 846168
My assumption is after finishing the call, memory used by variables and
redis ops is released and should be back to original values but its not
happening. In production this issue is causing some problems as I have to
restart the kamailio process after every 3-4 weeks so that it starts
breathing with more available memory.
Initially I thought its Kamailio version issue as in my last posts in this
forum people advised me to upgrade to the latest kamailio version (original
one was 5.4.0) but the same issue is happening on 5.7.0.
Can someone explain how to debug/troubleshoot this situation . I have a
parallel lab environment, I do not see anything interesting in syslogs.
--
Muhammad Danish Moosa
" The core of mans' spirit comes from new experiences. "___ Christopher
McCandless
Hello,
there is some planned work on the data center infrastructure hosting
kamailio.org server that is going to affect briefly the web server (web
site, wiki) and the mailing lists.
The downtime is expected to be 10-15 minutes around 1:00am Western
Europe time (CEST / GMT+2), but if it takes longer or repeats, be
patient for a while.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Kamailio World Conference, April 18-19, 2024, Berlin -- kamailioworld.com
Hi Everyone,
I would like to hear some stories about moving away from proprietary telephony services whether on premises or on cloud to FOSS solutions and how much stable, secure, efficient and cost effective it was.
I would like to present to my managers such cases to convince them to move away from proprietary telephony as it is just huge amount of cost and technical debt.
Thanks everyone and really appreciate any insights, also I am sorry if this is not the place to ask for such!
hi,
i have kamailio with TLS
i dont have homer and voipmonitor with TLS decryption doesnt work
how can i check final SIP INVITE (after all rewrites/modifications)
before is send to the peer?
tried
onsend_route {
if ($rm == "INVITE") {
xlog("L_INFO", "Final SIP Message before
Sending: $mbu\n");
}
}
but record-route/via are different than reality (checked with sngrep
with TLS disabled)
kamailio log
Record-Route: <sip:;r2=on;lr;ftag=b0d1d4ce-...
Record-Route: <sip:10.10.10.10;r2=on;lr;ftag=b0d1d4..
Via: SIP/2.0/UDP 30.30.30.30:5080;TH=div;rport;branch=z9hG4bK
sngrep
Record-Route: <sip:9.9.9.9;r2=on;lr;ftag=246bdf1c...
Record-Route: <sip:9.9.9.9;line=sr-Jf7BrWSBdWSzrD
Via: SIP/2.0/UDP 9.9.9.9;branch=z9hG4bKdb73.0735168f3e5f....
Via: SIP/2.0/UDP
9.9.9.9;branch=z9hG4bKsr-2y7Ud3XCMD4N6Vi8M-iCM-XGdWSBMDGzuhJZu-iGMh9ztEu7q.....
10.10.10.10 - private kamailio ip (fictional)
30.30.30.30 - ip of SIP PBX (caller)
9.9.9.9 - public kamailio ip
Marek
Hi All,
My requirement is when incoming call comes from internal user in i want to put kamailio ip and port in Contact header and forward or dispatch request to sip trunk carrier but i am unable to do so using KEMI frame work LUA. Can someone please give some pointer please?
KSR.textops.remove_hf("Contact");
KSR.textopsx.assign_hf_value("Contact","<sip:1234@4.5.6.7>");
KSR.rtpengine.rtpengine_manage0();
if KSR.tm.t_relay()<0 then
KSR.sl.sl_reply_error();
end
Hello,
We're using kamailio, with rtpengine for RTP encryption/decryption. It
works fine but I would like to understand the integration better.
How does rtpengine get the TLS certificates, and what crypto library does
it use (openssl?).
Thank you in advance,
--
David Cunningham, Voisonics Limited
http://voisonics.com/
USA: +1 213 221 1092
New Zealand: +64 (0)28 2558 3782
Hi Gang
I have a strange issue after upgrading to 5.7
I use dlg_vars to keep some information until the end of the call to
write them in a CDR.
One of those variables records the timestamp of the first invite to
determine how long it took from the invite to the 'connection
established' if at all.
The CDR is written when the BYE is being processed by the dialog module.
Strangely, since updating to 5.7 (used to work with 5.5 and 5.6 I
think, but I could be mistaking as other changes were made to the
config) my dialog variables are null when BYE is being processed.
reading the docs, I learned that that dlg_var are only polulated after
loose_route() has been called.
So I added some logging statement to track if the BYE in question is
processed by loose_route().
Yes, it is, loose_route() returns success on the BYE in question. But
when I log the content of my dlg_var after loose_route() it is still
null.
Any idea what the cause could be?
--
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
______________________________________________________
Hi,
We're encountering a CPU load of approximately 90% on the Kamailio proxy
server. Additionally, there's an error logged indicating a lost connection
to MySQL. Could this indicate a problem with the configuration file or is
it related to MySQL itself? Your guidance would be appreciated.
MySQL version: Ver 14.14 Distrib 5.5.47
Kamailio version: 5.5.5
Error in logs:
/usr/local/sbin/kamailio[24933]: ERROR: db_mysql [km_dbase.c:122]:
db_mysql_submit_query(): driver error on query: Lost connection to MySQL
server during query (2013)
Hi All,
I'm new to Kamailio but have been running dozens of Freepbx systems for the
last 10 years. We are an Education Service District and service K-12
schools. Many of these we provide dial tone to, the rest we have
connections to to provide for toll avoidance and backup outbound calling
when the LEC fails. Our main focus is to save schools money
that can be used for education instead of infrastructure.
Right now I have a single freepbx machine that is using inbound routes to
send calls to the proper school district. I would like to replace this with
a Kamailio server instead but can't seem to get my mind around the best way
to do this.
I have 119 inbound routes in my current system with 22 trunks to the other
districts. This may increase in the future as we try to migrate districts
off of the expensive systems to a more open source way of calling.
Currently calls between districts take the route out of the system just to
come right back in to be routed to a different district. I would like to
avoid that if possible.
I've been trying to educate myself on the best practice in this type of
structure but can't seem to figure out the best way to make this work. Most
of the videos and websites assume a pretty intimate knowledge of Kamailio.
That and the database structure doesn't make sense to me.
I would like to keep each freepbx as its own registrar as we have lots of
crossover with extensions and a few of the districts have their own staff
that manage that aspect of the machines. .
Any suggestions would be appreciated. Please ask questions if this just
looks like I'm rambling.
--
Wayne Wenthin
Wide Area Network Administrator | CTA@MESD
503.257.1562 Phone/Fax
www.cascadetech.org
Hi community,
I am preparing a setup of Kamailio with radius accounting on a docker-compose environment. When configuring the acc_radius module I had to navigate through some old doc by Daniel and inspecting the code itself. The thing is that it seems working, but not. And, yes, I already trying without docker :)
Context: two containers, host newtork, to keep it simple
- one with kamailio + modules (acc, acc_radius with rad_cli) + radius client configuration
- another with freeradius + radius client configuration.
I ensure that all data correspond and radius config is fine and spin them up. Run some radius commands to test and let's try some accounting...
Executing a failed call and triggering the account flag method, I receive an opaque -1 error from the module:
```
kamailio-1 | 1(20) INFO: {1 22 INVITE yutncivdtflvzga@PT-96} <script>: Initial requests
kamailio-1 | 1(20) INFO: {1 22 INVITE yutncivdtflvzga@PT-96} <script>: FLAG FLT_ACC set
kamailio-1 | 1(20) NOTICE: {1 22 INVITE yutncivdtflvzga@PT-96} acc [acc.c:286]: acc_log_request(): ACC: call missed: timestamp=1709746392;method=INVITE;from_tag=wvaqi;to_tag=1a86669fc745788378faa461e7993953-78550000;call_id=yutncivdtflvzga@PT-96;code=404;reason=Not Found;src_user=1000;src_domain=kamailio-local;src_ip=172.20.0.1;dst_ouser=1001;dst_user=1001;dst_domain=kamailio-local
kamailio-1 | 1(20) ERROR: {1 22 INVITE yutncivdtflvzga@PT-96} acc_radius [acc_radius_mod.c:497]: acc_radius_send_request(): Radius accounting - ERROR - result: -1
```
Log accounting is working ok, but radius accounting not. Time for troubleshooting.
I tried to enable client debugging, but the module does not respond. So I modify the source directly... tested with `radclient` , `radtest`, `radsniff`... all seems to work when trying manually... I also used an internal radcli fuction `rc_check()` and it works. Meanwhile, I was unable to make it work with the module and the radcli library.
So another log output using internal functions to debug the configuration:
```
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: nas-identifier, Valor: radius-wac
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: authserver, Valor: radius
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: acctserver, Valor: radius
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:306]: check_cfg(): Clave: servers, Valor: /usr/local/etc/radcli/servers - OK file found
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:306]: check_cfg(): Clave: dictionary, Valor: /usr/local/etc/radcli/dictionary - OK file found
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:300]: check_cfg(): Clave: default_realm, Valor: -- not set --
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: radius_timeout, Valor: 10
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: radius_retries, Valor: 3
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: bindaddr, Valor: *
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:312]: check_cfg(): Clave: clientdebug, Valor: 1
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:369]: init_acc_rad(): RC_ACCT_INIT: rc_test_config looks good
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:375]: init_acc_rad(): RC_ACCT_INIT: Config applyed ok
```
The configuration seems ok, accepted by the library and seems to be applied properly, but when trying to parse its values... all seems like rubish...
```
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:401]: init_acc_rad(): RC_ACCT_INIT: Name: P�y:^
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:402]: init_acc_rad(): RC_ACCT_INIT: Max 1
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:403]: init_acc_rad(): RC_ACCT_INIT: Port: 125489528
kamailio-1 | 0(18) INFO: acc_radius [acc_radius_mod.c:404]: init_acc_rad(): RC_ACCT_INIT: Secret:
kamailio-1 | 0(18) ERROR: acc_radius [acc_radius_mod.c:410]: init_acc_rad(): RC_CLIENTDEBUG: No clientdebug specified
```
I'm using `libradcli4 1.2.11-1+b2` for running on the container and `libradcli-dev 1.2.11-1build1` for compiling.
Open to hear ideas, somebody using it actively on latest 5.7 release?
Some updated documentation flying around?
I was thinking to open a GitHub issue to handle the documentation issue.
Thanks in advance!
Hello,
I have remote users registering/ routing calls through my server. When calls do pass through the server, the server updates the from name, to uri and from uri via updating the pseudovariables $fn, $tu, and $fu respectively. While this is has been working, I do occasionally see calls failing to process as the remote gateway fails the call with a "400 Bad From header". Inspecting the A-leg INVITE and the B-leg INVITE after updating the pseudovariables, I see the following:
A-leg INVITE:
INVITE sip:15551112222@example.com SIP/2.0
Via: SIP/2.0/UDP 79..xx.xx.xx:61379;rport;branch=z9hG4bKPj2b8935f4460447538d0176dcfb5c74a1
Max-Forwards: 70
From: sip:12223334444@example.com;tag=dff3c585a6154f23898e1121918f1752
To: sip:15551112222@example.com
Contact: <sip:12223334444@79..xx.xx.xx:61379;ob>
Call-ID: d793331e066f47bdafc0ad957cb506cc
CSeq: 30770 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
Proxy-Authorization: Digest username="12223334444", realm="example.com", nonce="ZhUw02YVL6cdi51KMymTxGpzCZCZhd8G", [uri="sip:15551112222@example.com](mailto:uri=)", response="3a25b4ea0b1154e31caee1184a92f12b"
Content-Type: application/sdp
Content-Length: 627
v=0
o=- 3921660487 3921660487 IN IP4 79..xx.xx.xx
s=pjmedia
b=AS:84
t=0 0
a=X-nat:0
m=audio 4006 RTP/AVP 96 97 98 99 3 0 8 9 120 121 122
c=IN IP4 79..xx.xx.xx
b=TIAS:64000
a=rtcp:4007 IN IP4 79..xx.xx.xx
a=sendrecv
a=rtpmap:96 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:98 speex/32000
a=rtpmap:99 iLBC/8000
a=fmtp:99 mode=30
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:120 telephone-event/16000
a=fmtp:120 0-16
a=rtpmap:121 telephone-event/8000
a=fmtp:121 0-16
a=rtpmap:122 telephone-event/32000
a=fmtp:122 0-16
a=ssrc:63772004 cname:3ff849bd611036a7
----------------------------------
B-leg INVITE:
INVITE sip:15551112222@togateway.com SIP/2.0
Record-Route: <sip:10.64.54.207;lr;ftag=dff3c585a6154f23898e1121918f1752;did=e21.65c1>
Via: SIP/2.0/UDP 10.64.54.207:5060;branch=z9hG4bK919d.5ca83e030c0879093169546cd80591a6.0
Via: SIP/2.0/UDP 79..xx.xx.xx:61379;received=79..xx.xx.xx;rport=61379;branch=z9hG4bKPj2b8935f4460447538d0176dcfb5c74a1
Max-Forwards: 15
From: sip:12125557777@example.com"Updated Name" ;tag=dff3c585a6154f23898e1121918f1752
To: sip:15551112222@togateway.com
Contact: <sip:12125557777@79..xx.xx.xx:61379;ob>
Call-ID: d793331e066f47bdafc0ad957cb506cc
CSeq: 30770 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800
Min-SE: 90
Content-Type: application/sdp
Content-Length: 609
v=0
o=- 3921660487 3921660487 IN IP4 10.64.54.207
s=pjmedia
b=AS:84
t=0 0
a=X-nat:0
m=audio 18400 RTP/AVP 96 97 98 99 3 0 8 9 120 121 122
c=IN IP4 10.64.54.207
b=TIAS:64000
a=ssrc:63772004 cname:3ff849bd611036a7
a=rtpmap:96 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:98 speex/32000
a=rtpmap:99 iLBC/8000
a=fmtp:99 mode=30
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:120 telephone-event/16000
a=fmtp:120 0-16
a=rtpmap:121 telephone-event/8000
a=fmtp:121 0-16
a=rtpmap:122 telephone-event/32000
a=fmtp:122 0-16
a=sendrecv
a=rtcp:18401
Note that I've updated the following on the B-leg:
$fn = "Updated Name" // originally nothing
$fu = sip:12125557777@example.com // originally sip:12223334444@example.com
$tu = sip:15551112222@togateway.com // originally sip:15551112222@example.com
While the from uri, and to uri do get updated, the from name is injected in the wrong place of the from header. This only seems to happen when the A-leg is missing the "<" and ">" characters enclosing the from headers.
Should I not be updating the pseudo variables in this manner to update the from name, to uri and from uri; is there another way to update these attributes of the header without malforming it?
Thank you.
Hello,
Last week, I submitted a request on the Asipto website to purchase the Kamailio Admin Book and received an automatic confirmation email. However, I have not received any further instructions on how to complete the purchase. I replied to the automatic email to follow up, but still, there has been no response. I need to get the book as soon as possible.
Please note, I am writing from a different email address than the one I used to make the request on Asipto's site. If there are any issues with their contact email, or if further verification is needed, please let me know how to proceed securely without sharing personal details publicly on this list.
Regards,
Mohamed.
Hi,
I have one question about dispatcher module in kamailio V.5.3.1.
Why the ds_ping_interval parameter is only global value? Is it possible introduce the customization value for single destination?
Customization from destination is already possible for ds_ping_from parameter using special attributes in destination list file or db table, is it possible introduce the same management for ds_ping_interval?
Thanks,
Giuseppe
________________________________
NOTA BENE: Le informazioni contenute nel presente messaggio, compresi gli eventuali allegati, sono strettamente confidenziali ed indirizzate unicamente al destinatario indicato. Qualora non foste il destinatario Vi invitiamo a cancellare il messaggio, ed ogni eventuale documento allegato, non divulgare il contenuto a terze persone ed a volerci avvisare a mezzo posta elettronica. Grazie. A TLC S.r.l. tratta i vostri dati personali nel rispetto della normativa vigente in materia di Privacy (D.Lgs.196/2003 modificato dal D.Lgs.101/2018 e GDPR Regolamento UE n.679/2016). Per consultare l’Informativa completa la invitiamo a visitare il nostro sito web “www.aethra.com<http://www.aethra.com/>”
PLEASE NOTE: This message and any attachments are confidential and may contain privileged information. If you are not the intended recipient, you are kindly requested to cancel it, not to disclose the contents to any other person and to notify the sender immediately by return e-mail. Thanks. A TLC S.r.l. collects your personal data in compliance with applicable data protection laws (D.Lgs. 196/2003 amended by Legislative Decree 101/018 and GDPR EU Regulation n. 679/2016). Please visit our website ”www.aethra.com<http://www.aethra.com>” to consult the complete Policy.
Hello all,
The xhttp_module can export all stats under "stats.get_statistics" RPC command.
I was thinking of adding an optional "uptime" stat that will return
the kamailio server uptime (like the "core.uptime" RPC command). This
will make it easier to add an uptime panel in grafana.
The new stat would be controlled by a module parameter (by default disabled).
Something like:
modparam("xhttp_prom", "xhttp_prom_uptime_stat" 1)
And this will generate something like:
kam_uptime 671 1712249054631
This can be already implemented in the script using the
"prom_gauge_set()" and retrieving the uptime via "jsonrpc_exec()", but
it would be nicer and faster to implement it in the module itself.
Comments?
-ovidiu
For immediate release:
HAZARD, Kentucky (1 April 2024)--Evariste Systems LLC, Georgia-based veteran
brokers of international charity partnerships, are pleased to announce the
conclusion of lengthy trilateral negotiations among Taylor Swift, the Public
Investment Fund (the sovereign wealth fund of the Kingdom of Saudi Arabia), and
the Kamailio open-source community to bring Kamailio to underserved areas of
the US Appalachia region.
In a concert in Lexington, Kentucky last Sunday evening, and in her signature
style of mystical "reveals" through equivocal song lyrics, Swift auspiciously
inaugurated to her Swifties, as die-hard fans of the pop star are known, the
beginning of Kamailio Visions 2030.
(Editorial note: Swift's agent has threatened copyright litigation in the event
that our press agency were to reproduce her meaning-rich lyrics directly,
driven by the contention that fair use considerations do not apply to lyrics so
"deep" as Swift's. At press time, the matter is being reviewed by our
counsel.)
Alex Balashov, principal of Evariste, praised Kamailio Visions 2030 as a
continuation of Swift's long-standing commitment to forward thinking and
innovation:
"Taylor has been the driving force behind the use of sustainable, plant-based
materials in her 'merch. Today, aided by the internationalisation of Saudi
capital, she is helping to bring that same kind of ethical prosperity to
Eastern Kentucky, West Virginia and the wider Appalachian coal country."
Continued Balashov:
"Between Alan Maimon and J.D. Vance, and the revelations of the Purdue Pharma
litigation, it's fair to say that the plight of Appalachia, with its high
structural unemployment, declining economic base, and the ravages of the opioid
epidemic and deaths of despair, has been exposed to a broader audience than
ever before. And with that knowledge comes responsibility, because we live with
that knowledge now, and we can no longer turn a blind eye. The SIP and VoIP
industries have always been a force of conscientious capitalism, and Kamailio a
beacon of rectitude in a jaded, amoral, cynical world. A world in which
Appalachian children are denied the SIP proxy is not a just world, and we
cannot any longer live in such a world."
Fred Posner, a deputy Evariste negotiator who was said to have thrived in the
pressure of high-stakes negotiations with PIF governor Yasir Al-Rumayyan over
the exact implementational modalities of the deal, reviewed the high notes of
the landmark economic development accord:
"It was a good start to defund the police. But with the unique social
challenges of Appalachia, what every struggling family in the ruins of coal
country really needs is access to clean, ethically sourced, fair-trade SIP
proxies. That is why I am uplifted to say that we will be dropping, through a
coordinated, large-scale airlift operation, a Raspberry Pi with Kamailio
pre-installed, to every household with an income at or below 250% of the Federal
Poverty Level (FPL) in the Appalachian region. The Pi chassis will be dye-free,
BPA-free, and will be held together with a plant-based, biodegradable, non-toxic
glue that does not produce intoxicating effects when sniffed. By 2030, every
child alive in Appalachia today will have had several years to benefit from the
power of a miniaturised SIP proxy appliance, and that is why we are calling it
Kamailio Visions 2030."
When pressed by us, Balashov noted that the prosocial objectives and economic
development potential of Kamailio Visions 2030 has drawn scepticism from some
quarters.
"These are those people who think that Rasperry Pi devices preloaded with
Kamailio are not what Appalachia most needs today. Those people would be wrong.
As any metaphysicist can tell you, causes do not necessarily resemble their
effects."
"Taylor and her people know that Kamailio Visions 2030 draws on a long
history of highly effective technological and app-based interventions in
economically underprivileged areas, such as Nicholas Negroponte's One Laptop
per Child (OLPC) scheme, and the famous carpet-bombing of Eritrea with
second-generation iPads by Selena Gomez. All of this had tremendous results."
"Salutary results", added a representative of the PIF.
Balashov pointed us to the foundational problem statement of Kamailio Visions
2030, which cited the concept of "Technik", as developed in "Hybrid Reality", a
technocratic manifesto (in e-book form) by much-loved TED visionaries Parag and
Ayesha Khanna. There, the authors declared:
"Good Technik requires a combination of the attributes that deliver
high human development, economic growth, political inclusiveness,
and technology preparedness.”
"In short", said Balashov, "Taylor, with some help from the efficient deployment
of Saudi capital, will bring good technik to Appalachia. The tide of technik
lifts all ships."
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web: https://evaristesys.com
Tel: +1-706-510-6800
Hi all!
I have been doing some performance tests with Kamailio 5.7.4 and SIPp.
The infrastructure is as follows:3 VMs running on VMWare ESXi running:
UAC on 10.20.0.1 with SIPP-> Kamailio on 10.20.0.5 -> UAS on 10.20.0.3
The Kamailio VM has 6 dedicated vCPU of type Intel(R) Xeon(R) Silver 4216
CPU @ 2.10GHz and, 2 NICs and 4Gb RAM and MariaDB 10.6 as DB Backend., all
running on a HP G380 host with a gazillion CPUs and a googol disk space!
I currently have 3 scripts:
- script #1 stateful with RTJson and simulating requests to routing engine
and accounting
- script #2 stateful but with just a simple routing to UAS, no rules, no
DB,
- script #3 stateless with a forward to UAS
With script #3 I can go up to 2000CPS without issues with CPU at 37%! Above
that value, I get retransmissions everywhere.
On both scripts #1 and #2, the limit is 330CPS max after which I get a lot
of retransmissions, while CPU/Core usage on Kamailio server stays below 10%.
So I do not expect this to be a CPU issue.
I could not understand why such (low) results, so I followed this article
found at
https://www.kamailio.org/docs/openser-performance-tests/#tm-tests-c
<https://www.kamailio.org/docs/openser-performance-tests/#tm-tests-c>
and created exact same scenarios, with kamailio script and SIPP templates
available on the article, hoping for better results.
But I get the same results: between 300 and 330CPS which is far, very far
from the 7000CPS found in the article!
I understand that I'm using VMs and probably the tests made for the
article, which is pretty old already, were made on physical servers. Still,
I would not expect 95% of lower performance!
Any clue what could be the issue? I suspect NICs, but....
Any tips anyone could share?
Thanks in advance!
*Sérgio Charrua*
I am using Kamailio versions 5.5.7 and 5.8.0 as a stateful proxy (with tm
module) and I want to have metrics for all
the SIP messages received and sent. I am using the statistics module for
counting messages.
I have in configuration file the following routes to capture events and
count them: onsend_route, onreply_route and event ( corex:reply-out,
tn:local_response, sl:local-response, tm:local-request, sl:filtered-ack and
network:msg)
I have found the following problems that I need some hints how to solve
them:
1) When a response is received to a request, I can count the response
received in the reply_route
but I don't find a way that works to count the reply being forwarded to the
other side. onsend_route works fine
for requests being forwarded. Is there any event_route or any trick that
can be used to count the reply being
forwarded similar to the onsend_route for requests?
2) When Kamailio receives a CANCEL it generates and sends automatically the
200 OK for the CANCEL
and a 487 for the INVITE which started that dialog which is being
cancelled, but I don't find a way that works to count those two responses
Kamailio generates.
3) After having cancelled a dialog on one direction due to receipt of a
CANCEL, kamailio generates local requests on the other direction,
a CANCEL and an ACK also when it receives a 487 for the INVITE being
cancelled.
I don't find the way to count those. onsend_route does not work for
locally generated CANCEL and ACK requests and the
event_route[tm:local-request] only works for
requests created outside of the tm module but not those created by the tm
module itself (the CANCEL
and the ACKs) since the tm module is not using its own function
t_uac_prepare to create those requests
(that function is the one that calls the event_route). Is there any
statistic generated by the tm
module or elsewhere or any other trick so I can count those requests?
4) When Kamailio generates retransmissions how can I count those?
onsend_route, onreply_route and event ( corex:reply-out, tn:local_response,
sl:local-response) doesn't work for retransmissions. Are there statistics
generated somewhere in the tm module for retransmissions? Is there any
other way to count those.
--
El contenido de este mensaje puede contener
información confidencial
sometida a secreto profesional. Si usted ha
recibido este correo por error,
no está permitida su distribución.
Por favor elimine cualquier copia,
archivo adjunto e infórmenos por
esta vía.
Los datos personales
contenidos en este correo y que han
sido facilitados por usted o provienen
de fuentes de acceso público
serán utilizados por Future Space, S.A., para
gestionar nuestra
relación contractual o pre-contractual, resolver su
solicitud y
mantenerle informado sobre los productos o servicios
solicitados o
similares. Se conservarán mientras exista un interés mutuo
para ello, no se oponga al tratamiento o solicite su supresión. Los
datos
no serán comunicados a terceros, salvo obligación legal.
Puede ejercitar
sus derechos de acceso, rectificación, supresión,
limitación del
tratamiento, portabilidad de los datos y oposición
mediante escrito
dirigido a Future Space, S.A. Avenida de Tenerife
2, Edificio 2, Planta
1ª, 28703 San Sebastián de los Reyes, Madrid
o mediante correo electrónico
a dpo(a)futurespace.com <mailto:dpo@futurespace.com>.
Si consideras que se
han infringido tus derechos puedes presentar una
reclamación ante la
www.agpd.es <http://www.agpd.es>.
The contents of this
electronic mail may be
confidential or privileged. If you have received
this message by
mistake, please do not send it to anyone. We ask you to
delete any
existing copies, attached files and to notify us accordingly.
The
personal data provided or obtained from publicly accessible resources
will be processed by Future Space, S.A. in order to manage our
contractual
or pre-contractual relationship, solve your request and
keep you informed
about activities or products requested by you or
similar. Personal data
will be stored while a mutual interest exist
or either erasure or objection
to process them is requested. Data
will not be disclosed to third parties
unless there is a legal
obligation to do so. You have the rights to access,
rectify, erasure,
restriction of processing, data portability and oppose
any processing
of your personal data held by Future Space, S.A. To make
effective
use of your rights, please contact us at Future
Space, S.A.
Avenida de Tenerife 2, Edificio 2, Planta 1ª, 28703
San Sebastián de los
Reyes, Madrid or by
email at dpo(a)futurespace.com
<mailto:dpo@futurespace.com>.
If you consider processing of your personal
data infringes data
protection regulations you can file a claim with
www.agpd.es <http://www.agpd.es>
Hello Brothers,
I've installed kamailio throw "apt install" on Debian and it's installed version: kamailio 5.6.3 (x86_64/linux).
Now I've a big problem that kamailio cannot running with TLSv1 and it has to be TLSv1.2+ as tls.cfg doc said:
# We do not enable anything else than TLSv1.2+
# over the public internet. Clients do not have
# to present client certificates by default.
How could I avoid this restriction please to enable TLSv1?
Thank you,
Hello,
Kamailio SIP Server v5.8.1 stable release is out.
This is a maintenance release of the latest stable branch, 5.8, that
includes fixes since the release of v5.8.0. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.8.x. Deployments running previous v5.8.x
versions are strongly recommended to be upgraded to v5.8.1.
For more details about version 5.8.1 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2024/04/kamailio-v5-8-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 (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Kamailio World Conference, April 18-19, 2024, Berlin -- kamailioworld.com
Hello,
with many countries having public holidays around Catholic Easter, I am
considering to release Kamailio v5.8.1 (out of branch 5.8) on Wednesday,
April 3, 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
Kamailio World Conference, April 18-19, 2024, Berlin -- kamailioworld.com
Hi
I am testing rtpengine recording with kamailio in lab. I have 1 endpoint
registered to Kamailio. My kamailio and rtpengine are running on same box.
I have another kamailio2 instance with 2nd endpoint to make a call to 1st
endpoint.
I have observed that Response dump for 'offer'/'answer' but further start
recording didn't invoke.
root@ip-kamailio:/etc/kamailio# rtpengine-ctl list sessions all
callid: J0WtgYIKd0Kwj1iL6BiFOg.. |
deletionmark: no | created: 1712120753 | proxy:127.0.0.1:52642 |
redis_keyspace:0 | foreign:no
callid: uH_ozKj18Nafshsm_sTElQ.. |
deletionmark: no | created: 1712120730 | proxy:127.0.0.1:52642 |
redis_keyspace:0 | foreign:no
callid: VYIw791dJska8PiIFspy8w.. |
deletionmark: no | created: 1712120716 | proxy:127.0.0.1:54804 |
redis_keyspace:0 | foreign:no
callid: nP89gWwjhsg_TSZrqu16nQ.. |
deletionmark: no | created: 1712120716 | proxy:127.0.0.1:56207 |
redis_keyspace:0 | foreign:no
root@ip-kamailio:/etc/kamailio#
I am new to kamailio and missing configuration. Suggest me the correct
configuration to invoke recording. attached config and logs
Regards,
Pawan
Hello guys,
I'm recently new player in Kamailio SIP server and want to use it as SIP
proxy server to Asterisk PBX server.
first of all, I've successfully registered my Asterisk to Kamailio as user
"test" to get its "location" because my Asterisk is behind NAT.
Simply now I want to relay SIP messages to this user's location to receive
them all in Asterisk. After I searched, I found this function rewritehost()
but it needs to be a host or IP address, but in my case I want some way or
function to relay to user "test" and then it well get the user location from
Kamailio datebase automatically?
I hope it's clear XD
I tried to find a way to do MSQL query in kamalio.cfg to get the user
contact from "location" table and then relay to the result but it did not
work. I guess that I did it in wrong way but finally the Kamailio tutorials
are so rare on google.
Thanks in advance,
Omar
This question digs into the heart of Kamailio's functionality. It asks about:
Routing Logic: How Kamailio decides where to send SIP messages (calls, registrations, etc.) based on various factors like caller ID, destination number, or custom rules.
Customization: How you can modify this built-in logic to fit your specific needs. This could involve using scripting languages, manipulating SIP messages, or defining custom routing rules.
The discussion would be for developers who want to unlock Kamailio's full potential and tailor it for their unique VoIP deployments.
Visit us for More Info : https://inextrix.com/services/kamailio-development/
Hi,
I am wondering why callee info is not visible in dialog details:
Here is the case:
client-1 > kamailio > two asterisks > kamailio > client-2
registration is on asterisk.
dialog module is enabled and I want to see the asterisk IP that is determined by dispatcher module.
I have tried to put dlg_manage function even after dispatch function, but did not help.
I have also tried to update to header before dlg_manage function, it didn't help either.
Any way to have asterisk IP in dialog details.
It shows only this:
{
h_entry: 483
h_id: 8644
ref: 1
call-id: v489LdfOFD5mnlHupQHOvw..
from_uri: sip:1515@12.12.12.12;transport=UDP
to_uri: sip:2222@12.12.12.12
state: 5
start_ts: 0
init_ts: xxxx
end_ts: xxxx
duration: xxxx
timeout: 0
lifetime: 3600
dflags: 512
sflags: 0
iflags: 0
caller: {
tag: d0283007
contact: sip:1515@1.1.1.1:64966;transport=UDP
cseq: 1
route_set:
socket: udp:172.22.10.10:5060
}
callee: {
tag: <null string>
contact: <null string>
cseq: <null string>
route_set: <null string>
socket: <null string>
}
profiles: {
}
variables: {
}
}
Regards
Get Outlook for Android<https://aka.ms/AAb9ysg>
Hello!
In my architecture, SIP SUBSCRIBE messages can reach the Kamailio
Presence server in several ways.
And I noticed that re-SUBSCRIBEs messages do not update the record_route
field in the active_watchers table (MySQL), so subsequent SIP NOTIFY
messages do not inherit it and have the routes set of the initial SIP
SUBSCRIBE message.
Is there any way to change this behavior?
modparam("presence", "db_url", DBURL)
modparam("presence", "subs_db_mode", 3)
modparam("presence", "timeout_rm_subs", 0)
modparam("presence", "expires_offset", 0)
modparam("presence", "max_expires", 1800)
modparam("presence", "db_update_period", 30)
modparam("presence", "clean_period", 180)
modparam("presence", "send_fast_notify", 1)
modparam("presence", "pres_htable_size", 32)
modparam("presence", "subs_htable_size", 32)
modparam("presence", "publ_cache", 0)
modparam("presence", "notifier_processes", 0)
# kamailio -v
version: kamailio 5.1.2 (x86_64/linux)
--
BR,
Denys Pozniak
Hi,
I would like to move app_lua_sr to kamailio-archive but I would like to hear if anyone out there has a solid reason not to do it. Since we have app_lua as KEMI for a long time I think is time to retire the old remains of app_lua
Cheers
--
-----------------------------------------------------------------
| ,''`. Victor Seva |
| : :' : linuxmaniac(a)torreviejawireless.org |
| `. `' PGP: 8F19 CADC D42A 42D4 5563 730C 51A0 9B18 CF5A 5068 |
| `- Debian Developer |
-----------------------------------------------------------------
Hi everybody,
I'm just testing Kamailio 5.4.1 with dialog replication over DMQ. This
seems to work very good. Dialogs are replicated without problems.
When I'm restarting one node I would have expected, that all dialogs are
synced again, just like in dmq_usrloc.
But this does not happen. After a restart the nodes dialog-list is empty.
Did I miss somethin? Is there a special parameter that I have to set?
BR, Björn
--
Björn Klasen, Specialist
TNG Stadtnetz GmbH, Network Management (VoIP)
Projensdorfer Straße 324
24106 Kiel
Germany
T +49 431/ 530530
F +49 431/ 7097-555
mailto: bklasen(a)tng.de
http://www.tng.de
Register: Amtsgericht Kiel HRB 6002 KI
Executive board (Geschäftsführung): Dr.-Ing. Volkmar Hausberg,
Sven Schade, Carsten Tolkmit, Dr. Sven Willert
Tax-Id (Steuernr.): 2029047020, VAT-Id (USt-Id): DE225201428
Hello Everyone.
I am looking for documentation to have multiple RTP Engine servers
connected with kamailio using db url and balance the load accordingly.
Thanks
I need to move a few dozen FreePBXen with some commercial modules running in individual VMs to a new data center.
I’m trying to work out a plan to move the PBXes to the new data center in a way that will be transparent to the endpoints, or at the very least with the absolute minimum of downtime.
Some of the installations are rather old, and there’s a handful of peculiarities on each, so the typical FreePBX backup/restore process hasn’t gone smoothly, at least in our tests.
My current train of thought is to put a clone the VMs in the new data center and use Kamailio to route the SIP traffic to the new servers/IPs. I’ve never used it before, so I may be barking up the wrong tree, but it /appears/ to do what I’m suggesting.
If so, I’m thinking I can install Kamailio on each VM, point it to the local asterisk/FreePBX initially, and clone the VM. Then, after the new instance is up and running, point Kamailio on the original VM to the cloned VM's asterisk, after which I can make appropriate DNS changes.
Another option would be to stand up a single Kamailio server and redirect SIP traffic destined for individual asterisk servers to it at the router.
Endpoints are mostly Yealink, and I’m not sure if they’ll feel the need to restart when the registration/SIP server’s IP changes, but a quick bounce when not in use isn’t the end of the world. I’d very much like to avoid having to send an update to each phone manually, but I can script a SIP NOTIFY if required.
Anything stupid, wrong, ignorant, or just smelly about this tactic?
Or, for that matter, any other suggestions?