Hello all,
In my situation, it is possible to call forwarding to registered users
multiple times on same leg. For each forward i have to update To uri and
i am using uac_replace_to to do that.
But on second relaying, To uri was malformed. On below, Im attaching
configuration to illustrate my problem. (version-5.4.9)
First relay - /To: //sip:xyz@192.168.0.51/
Second relay - /To: sip:xyz@192.168.0.51sip:abc@192.168.0.51/
Thanks in advance.
Serdar
/loadmodule "uac.so"//
//modparam("uac","restore_mode","auto")//
//
//
//request_route {//
// ...//
// $avp(x) = "abc";//
// $avp(x) = "xyz";//
// $avp(myip) = "192.168.0.51";//
// $avp(i) = 0;//
// route(SERDAR);//
// ...//
//}//
//
//route[SERDAR] {//
// if ($(avp(x)[$avp(i)])!=$null) {//
// $avp(destination) = $(avp(x)[$avp(i)]);//
// $avp(i) = $avp(i) + 1;//
// $rU=$_s($avp(destination));//
//uac_replace_to("$_s(sip:$avp(destination)@$avp(myip))");//
// route(LOCATION);//
// } else {//
// send_reply("403", "Opps!");//
// exit;//
// }//
//}//
//
//route[LOCATION] {//
// $avp(oexten) = $rU;//
// if (!lookup("location") ) {//
// t_newtran();//
// switch ($var(rc)) {//
// case -1://
// case -3://
// send_reply("480", "Temporarily Unavailable");//
// exit;//
// case -2://
// send_reply("405", "Method Not Allowed");//
// exit;//
// }//
// }//
// t_on_failure("SERDAR_FAILURE");//
// if(!t_relay()) sl_reply_error();//
// exit;//
//}//
//
//failure_route[SERDAR_FAILURE] {//
// route(NATMANAGE);//
// if (t_is_canceled()) //exit;//
// route(SERDAR);//
//}/
Hello!
Is there any possibility to control more-or-less privacy related parameters
of pua_dialoginfo module (like include_localremote) per subscription?
Main idea is I want to show some users full info on the call other user is
making, for a different user - just show fact of the call without any
details.
For now I'm only seeing some manual manipulation over XML based on user who
is receiving NOTIFY, but maybe I'm trying to invent a weel here.
--
Best regards,
Ihor (Igor)
(please keep the list in the communication)
Hello,
you can find the modules for example in the Debian package service:
https://packages.debian.org/bullseye/amd64/kamailio-tls-modules/filelist
Crypto is in TLS module package.
Cheers,
Henning
From: Duarte Rocha <duarterocha91(a)gmail.com>
Sent: Donnerstag, 6. April 2023 15:42
To: Henning Westerholt <hw(a)gilawa.com>
Subject: Re: [SR-Users] Repository for modules
Thanks for the quick answer.
How can I see info regarding which modules are in the combined packages? One of the modules i'm looking into is the crypto module for example.
Otherwise, where can I get a list of modules not included in Debian packages?
Cheers,
Duarte
Henning Westerholt <hw(a)gilawa.com<mailto:hw@gilawa.com>> escreveu no dia quinta, 6/04/2023 à(s) 13:17:
Hello,
the majority of modules should be packaged for Debian. What modules are missing for you? Keep in mind that some modules are combined in some packages.
Some modules can not properly packaged due to missing dependencies, this needs to be installed from source, right.
Cheers,
Henning
From: Duarte Rocha <duarterocha91(a)gmail.com<mailto:duarterocha91@gmail.com>>
Sent: Donnerstag, 6. April 2023 13:55
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org<mailto:sr-users@lists.kamailio.org>>
Subject: [SR-Users] Repository for modules
Hello,
I'm currently testing Kamailio on a Debian 11 machine. In order to install it I used apt with repositories from Kamailio (https://deb.kamailio.org/).
Now I'm trying to add modules and I'm wondering the best way to do it. Using apt install i don't have access to all the modules. Is there another repository for this? Is my only solution downloading and compiling the modules?
Cheers
Hello,
I'm currently testing Kamailio on a Debian 11 machine. In order to install
it I used apt with repositories from Kamailio (https://deb.kamailio.org/).
Now I'm trying to add modules and I'm wondering the best way to do it.
Using apt install i don't have access to all the modules. Is there another
repository for this? Is my only solution downloading and compiling the
modules?
Cheers
Hi,
I had upgraded Kamailio from 5.4.7 to 5.5.5, Then I restarted the Kamailio
service.
After upgradation im getting the below error,
/usr/local/sbin/kamailio[21754]: ERROR: <core> [core/udp_server.c:596]:
udp_send(): sendto(sock, buf: 0x7f7502289200, len: 61012, 0, dst: (
10.122.45.189:5080), tolen: 16) - err: No buffer space available (105)
/usr/local/sbin/kamailio[21754]: ERROR: tm [../../core/forward.h:231]:
msg_send_buffer(): udp_send failed
/usr/local/sbin/kamailio[21754]: ERROR: tm [uac.c:678]:
send_prepared_request_impl(): Attempt to send to precreated request failed
ERROR: tm [../../core/forward.h:231]: msg_send_buffer(): udp_send failed
ERROR: tm [uac.c:678]: send_prepared_request_impl(): Attempt to send to
precreated request failed
Anyone have any idea on this errors.
Hi All,
We currently experience issues where scscf hangs randomly throughout the day. It started hanging once in a month, the issue has gotten worse over time and now it can hang more than 5 times in a day.
I have no prior kamailio experience or experience debugging c applications.
Kamailio version: 4.4.0
Running ps shows scscf processes are running.
Service status also shows scscf is running but it does not respond to sip requests.
Testing with sipsack hangs and print timeout errors.
root@NGVI-PCSCF2:/var/log # service scscf status
* Status of Kamailio SIP Server:
* scscf is running
sipsak -vv -s sip:NGVI-PCSCF2:6060
received ICMP message
received ICMP message** timeout after 500 ms**
Below is the extract from log files
Apr 5 12:04:46 NGVI-PCSCF2 /usr/sbin/kamailio[5102]: {1 1 ACK isbc505ramjjjr3g23cs02r53cms0uxbg2es(a)10.18.5.64} WARNING: tm [t_lookup.c:1476]: t_unref(): WARNING: script writer didn't release transaction
Apr 5 12:04:46 NGVI-PCSCF2 /usr/sbin/kamailio[5104]: {1 3 REGISTER _A9LGREyW2miE7LhPJzv7g..} ERROR: ims_registrar_scscf [save.c:1034]: update_contacts(): Unable to remove contact <sip:+2347020246874@154.66.2.182:5060;rinstance=28bf37d2cce6e4a1;transport=udp>
Apr 5 12:04:47 NGVI-PCSCF2 /usr/sbin/kamailio[5131]: ERROR: rr [rr_mod.c:300]: w_record_route(): Double attempt to record-route
Apr 5 12:04:47 NGVI-PCSCF2 /usr/sbin/kamailio[5144]: ERROR: rr [rr_mod.c:300]: w_record_route(): Double attempt to record-route
Apr 5 12:04:47 NGVI-PCSCF2 /usr/sbin/kamailio[5108]: {1 1 ACK r8ug398d118i8iaaunrouggisntkigkn(a)10.18.5.64} WARNING: tm [t_lookup.c:1476]: t_unref(): WARNING: script writer didn't release transaction
Apr 5 12:04:48 NGVI-PCSCF2 /usr/sbin/kamailio[5190]: CRITICAL: <core> [pass_fd.c:275]: receive_fd(): EOF on 23
Apr 5 12:04:48 NGVI-PCSCF2 /usr/sbin/kamailio[5062]: ALERT: <core> [main.c:741]: handle_sigs(): child process 5103 exited by a signal 11
Apr 5 12:04:48 NGVI-PCSCF2 /usr/sbin/kamailio[5062]: ALERT: <core> [main.c:744]: handle_sigs(): core was generated
Apr 5 12:06:12 NGVI-PCSCF2 kamailio: WARNING: <core> [daemonize.c:348]: daemonize(): pid file contains old pid, replacing pid
Apr 5 12:06:13 NGVI-PCSCF2 /usr/sbin/kamailio[15060]: WARNING: interconnectroute [ported_cache.c:113]: initPortedNumberCount(): Requested records[726049]: Total allocated[871258]: Fat 20% :Total MemUsed [26 MB divided between primary[0x7f22b8667d60] and secondary[0x7f22b93b3390]]
pr 5 04:38:24 NGVI-PCSCF2 /usr/sbin/kamailio[14018]: message repeated 107 times: [ ERROR: ims_usrloc_scscf [subscribe.c:430]: free_subscriber(): record not found in hash table]
Apr 5 12:50:38 NGVI-PCSCF2 /usr/sbin/kamailio[2604]: WARNING: interconnectroute [icncache_eventprocessor.c:76]: icnRefreshProcess(): total size 2147483648 qm_real_used 700707576 qm_used 387064680 1st_frag 0x7fd5f6d6a690 last_frag 0x7fd676d30fd0
Apr 5 13:00:25 NGVI-PCSCF2 /usr/sbin/kamailio[2437]: ERROR: ims_usrloc_scscf [subscribe.c:430]: free_subscriber(): record not found in hash table
Apr 5 13:00:26 NGVI-PCSCF2 /usr/sbin/kamailio[2437]: message repeated 125 times: [ ERROR: ims_usrloc_scscf [subscribe.c:430]: free_subscriber(): record not found in hash table]
Apr 5 13:01:25 NGVI-PCSCF2 /usr/sbin/kamailio[2437]: CRITICAL: <core> [main.c:650]: sig_alarm_abort(): shutdown timeout triggered, dying...
Apr 5 13:02:30 NGVI-PCSCF2 kamailio: WARNING: <core> [daemonize.c:348]: daemonize(): pid file contains old pid, replacing pid
Apr 5 13:02:30 NGVI-PCSCF2 /usr/sbin/kamailio[27629]: WARNING: interconnectroute [ported_cache.c:113]: initPortedNumberCount(): Requested records[726049]: Total allocated[871258]: Fat 20% :Total MemUsed [26 MB divided between primary[0x7f3093a3fd60] and secondary[0x7f309478b390]]
Thank you in advance.
Regards,
Solly Thoobe
Hello,
I'm running a Kamailio instance with some routing logic in it. When a UA sends an INVITE with urn:emergency:service:sos as RURI, Kamailio responds with a 400 Bad Request URI. I have set debug log level and it looks like the problem is in the parse_uri.c when sanity_check("1511", "7") is called:
parse_uri(): bad char ':' in state 3 parsed: <urn:emergency:service> (21) / <urn:emergency:service:sos> (25)
According to RFC8141 (https://www.rfc-editor.org/rfc/rfc8141), this is a correct URN, but maybe I'm missing something.
Is there a way to make Kamailio parse this RURI?
Kamailio version used: 5.6.4
Thank you!
Hello,
It's kamailio 5.6.4.
I can say that there is no segfault in case Identity is OK but bad attempts
sometimes are the reason for segfault. Not sure I can duplicate but it
happens several times per day.
Please look at logs.
in messages:
Apr 3 09:40:02 kam1 kernel: [6381565.762987] kamailio[9141]: segfault at
746c75616665 ip 00007f20c4cab6df sp 00007ffe7ec51470 error 4 in
libcrypto.so.1.1[7f20c4c3b000+19e000]
kamailio.log:
Apr 3 09:40:02 kam1 kamailio[9141]: NOTICE: <script>: it is INVITE with
Identity. Lets check Identity
Apr 3 09:40:02 kam1 kamailio[9141]: CRITICAL: <core>
[core/mem/q_malloc.c:501]: qm_free(): BUG: bad pointer 0x645f6d6574737973
(out of memory block!) called from tls: tls_init.c: ser_free(323) - ignoring
Apr 3 09:40:02 kam1 kamailio[9182]: CRITICAL: <core> [core/pass_fd.c:277]:
receive_fd(): EOF on 53
Apr 3 09:40:02 kam1 kamailio[9100]: ALERT: <core> [main.c:774]:
handle_sigs(): child process 9141 exited by a signal 11
Apr 3 09:40:02 kam1 kamailio[9100]: ALERT: <core> [main.c:777]:
handle_sigs(): core was not generated
Apr 3 09:40:02 kam1 kamailio[9100]: CRITICAL: <core>
[core/mem/q_malloc.c:501]: qm_free(): BUG: bad pointer 0x645f6d6574737973
(out of memory block!) called from tls: tls_init.c: ser_free(323) - ignoring
loadmodule "stirshaken.so"
####### STIRSHAKEN ######
modparam("stirshaken", "vs_verify_x509_cert_path", 1)
modparam("stirshaken", "vs_ca_dir", "/etc/kamailio/stir_CA")
#modparam("stirshaken", "vs_crl_dir", "/etc/kamailio/CRL")
modparam("stirshaken", "as_default_key",
"/etc/kamailio/key/private_key.pem")
modparam("stirshaken", "vs_cache_certificates", 1)
modparam("stirshaken", "vs_cache_dir", "/tmp/cert_cache")
modparam("stirshaken", "vs_cache_expire_s", 100)
if (is_method("INVITE") && is_present_hf("Identity")) {
xlog("L_NOTICE", "it is INVITE with Identity. Lets check
Identity\n");
if (1 == stirshaken_check_identity()) {
xlog("L_NOTICE", "Shaken Identity is OK\n");
} else {
xlog("L_NOTICE", "Shaken Identity is invalid\n");
}
}
Please give me some advice.
Hello all,
How can we handle stateless replies with kemi?
tm has the following param:
modparam("tm", "on_sl_reply", "stateless_replies")
What's the proper way to map the "stateless_reply" onreply_route to a
kemi function.
I'm playing with the app_jsdt module.
Thanks,
Ovidiu
Hi
Running Kamailio Registrar Node + rtpengine without dialog module, only
TRX module.
Situation: Some customer are in ranges to which RTP can directly be
routed, some are not.
So rtpengine shall be engaged only when backhauling of the rtp stream
is required.
On a message from a CPE, this is done by checking $si and on a message
to the CPE by checking $(ulc(aor=>addr)[$T_branch_idx]{uri.host});
On a BYE, rtpengine_delete() is called no matter if RTP was backhauled
or not. If rtpengine does not find the call to delete, no harm happens.
But now I struggle with Session Refresh Re-Invites TO the CPE as they
are routed very early on and do not pass the whole location lookup
stuff, therefore I have no access to the aor=>addr to determine if the
destination needs backhauling or not.
So the obvious solution which came to my mind is to call
rtpengine_query() and see if it is finding the call and if so, call
rtpengine_manage() to keep backhauling traffic on the Re-Invites
refrreshing the session.
Unfortunately, I found no way to check if rtpengine_query finds the
call. Did I miss something?
--
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
______________________________________________________
For immediate release:
ATLANTA, GA (1 April 2023)--The Federal Ministry for Economic Affairs and
Energy of Germany was forced to disclose today that it has been tasked with
assessing whether Germany will be able to operate its Kamailio through the next
winter.
This initiative comes amidst considerable uncertainty, shared in some other EU
member states, about whether the enormous fossil fuel energy footprint of
Kamailio is sustainable after the Russian invasion of Ukraine in early 2022.
Pioneering Atlanta energy market analysts Evariste Systems were tapped to
assist with forecasting whether German strategic natural gas reserves and
liquefied natural gas (LNG) imports could keep Kamailio's enormous turbines
spinning under a variety of stress-test scenarios outlined by regulators,
including SIPP and SIPVicious.
Alex Balashov, Evariste's principal, said in a news conference earlier this
week:
"Simply put, the political leadership wanted a dispassionate, technocratic kind
of analysis, data-driven and the rest, free of the inflection of ideological
bias and tendentious policy angles in charged German domestic
politics. Whether it's the centre-right or the Greens, there are strong ideas
about what to do with energy-greedy megaprojects like Kamailio."
Florida-based energy turnaround vet Fred Posner, parachuted in to assist with
the fast-tracked study, agreed:
"It's well-understood that the German GDP is almost a perfectly linear function
of gross annual SIP packets routed. The Nord Stream 1 shut-off situation in
September only exposed Germany to further Kamailio-related energy
vulnerabilities."
At issue are the basic physics of SIP message routing in Kamailio. Due to a
fixed-size worker process pool, Kamailio routing consumes about 1500 BTUs per
packet-kilometre travelled. While 1500 BTUs/packet-kilometre is efficient in
distance terms as compared to a typical automobile, which consumes roughly 3800
BTUs of fossil fuel energy per passenger-kilometre travelled (at typical load
factors), the dizzying number of SIP packets routed through German territory in
a typical business day greatly outstrips passenger-kilometres travelled.
Balashov noted that sometimes, the activation energy requirement can be higher
than 1500 BTUs when INVITEs with large SDPs are launched toward the next hop,
though this varies with the altitude of the destination above mean sea level,
wind direction, weather and other factors involved in ballistics.
"It's a bit of a fool's errand to play these guessing games with averages. The
energy budget can vary enormously depending on whether there is DTLS, video
codecs, PASSporTs and other stuff. I find it helpful to think in kilowatt-hour
terms: sometimes it's less than half a kWh, so like US $0.20 if you're counting
the beans, and sometimes it's more like $0.38, we just don't know. The
Bundestag always wants these big, round numbers, but if you've ever looked at
the TM module, you know that's not how this works."
A milder-than-expected winter, a 9% year-over-year increase in US LNG exports
(to about 300 million cubic metres per day) in 2022, dependable imports from
Norway and the Netherlands, and other favourable factors gave German SIP
regulators a reprieve. Despite energy market volatility, premium LNG spot
prices, and occasional 408 Request Timed Out scenarios, the country dodged a
widely-feared Kamailio energy crisis. However, it is difficult to say whether
energy market conditions will be as propitious next year.
"Then there's the whole climate change goals thing. Nobody even wants to talk
about that, especially for the WebRTC gateway side," says Posner.
"There's a persistent fantasy that we can just power Kamailio with solar or
wind if we just had enough generating capacity. I think that's really missing
the forest for the trees. The worker processes stay running whether you need
them or not, it all depends on how many listeners you have set and what the
children config value is. Either way, I've got two words for you: base load.
Even if we completely ignore that the energy density is just not there per
hectare of solar or wind installation, how do you provide the constant power to
the child processes?"
Past feasibility studies published jointly by Balashov and Posner support this
assessment. One such study, initiated in 2018 and concluded during the COVID-19
global pandemic, found that an area equivalent to the size of the entire state
of North Rhine-Westphalia would need to be devoted to batteries, even using the
latest lithium ferrous phosphate (LFP) technology.
"But wait, there's more!" says Posner: "Show me the amperage."
"The packet forwarding mechanism is similar to a railgun, at least if you're
doing stateful. Where are you going to get the millions of amps? It's either
setting up huge banks of capacitors god-knows-where, or the pulsed power system
that's undergirded by the original OpenSER turbines. I think we already know
the answer to that."
Balashov noted that, even beyond the political and economic challenges that
Kamailio downtime would introduce, there are other tightropes to walk. As the
most economically dynamic, export-oriented EU member state, Germany is prone to
flirt with SIP proxy privatisation schemes in its national discourse, all while
messaging a stronger Euro to the ECB.
"There is a vocal minority," says Balashov, "who push for research into more
modular, regionally sited SIP gateways. They're always talking about sclerotic,
unresponsive federal regulations and listless, bumbling Brussels bureaucrats
and making it all smaller and leaner. Listen, I'm all for the Invisible Hand,
but setting the Request URI and adding custom headers requires a truly
integrated, national-scale infrastructure. It's the stuff of public-private
partnerships and megaprojects. Even if you're a market zealot who is not sold
on basic INVITEs as a public good, think about Presence or IMS. You really need
the full capacity of a nation-state on deck for that."
If devolution to smaller, more numerous SIP routing sites is not feasible--at
least, at the unit cost and reliability level demanded by advanced
economies--then excessive complexity offers a cautionary tale from the opposite
extreme.
In a particularly notorious example of technical and policy failure, the
Electric Reliability Council of Texas (ERCOT), following the guidance of
northern Californian advisors Unicorn & Moonshot, attempted to scale down
traditional Kamailio turbine blades into newer, so-called Kubernetes "Pod"
chasses to increase exhaust recapture. This made for a much more intricate
installation with an exponential growth of moving parts, telemetry and site
support skill requirements. This proved unmanageable, and the now-famous
explosion that followed the deterioration of the site led to unprecedented
casualties in US history. Furthermore, it also resulted in the long-term
humidification of large expanses of East Texas, Louisiana, Mississippi and
southern Alabama, rendering most of these areas uninhabitable. These events
discredited the Unicorn & Moonshot approach in the eyes of most industry
analysts.
While it will take some months for Evariste to reach a conclusion regarding the
resilience of the German Kamailio through the winter and beyond, and it will
take still longer to issue policy recommendations, one factor is universally
agreed upon already: this prolonged test of Germany's resilience is part of a
Russian strategic calculation.
A conservative MP from the CDU/CSU faction of the Bundestag, speaking on
condition of anonomity, offered this summary: "The Russians think they can wait
this out. They are waiting for us to fold and switch to an OpenSIPS reactor,
knowing full well this will keep us busy with troubleshooting and diminish our
ability to support Ukraine militarily."
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web: https://evaristesys.com
Tel: +1-706-510-6800
Hi all
For rtpengine to correctly distinguish branched calls, the top-most via
branch= parameter should be passed to it.
I have attempted to use $via0 but that does not yet exist in Kamailio
5.4
So I did try to read $hdr(Via) which I guess returns an array and then
access:
but this returns the inbound via, not the one generated on the branched
call.
How can this be accomplished with kamailio 5.4?
--
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 Kamailio users
How can I get a failure route to trigger in timeout-to-CANCEL in
a parallel forking scenario?
Parallel forking test scenario
1. one(the main - 0) branch picks up the call
2. 2nd branch sends CANCEL (expecting 487 etc) - but the callee does not
send any replies
Result:
No failure route handlers are called on timeout of this CANCEL - that is
kamailio attempts the CANCEL 4 times but neither
tm.t_on_failure_route, tm.t_on_branch_failure handlers are called.
Any suggestions on how to resolve this?
Regards
Shih-Ping
I'm looking for documentation//howto/advice/best practices for running
Kamailio under Kubernetes on AWS via Rancher. Specifically, how to manage
the public/Elastic IP. This is a load balancer (dispatcher) scenario with
rtpengine for receiving inbound calls from a DID provider, but a similar
configuration might be used for clients. I'm open to using an AWS load
balancer, and would like to scale with multiple Kamailio pods behind a
single public IP. I'd rather use Rancher-managed EC2 than pay extra for
EKS, unless EKS can cancel out its own cost. This sounds like it should be
a solved problem, just complex. I see blogs and videos out there, but it's
not always obvious if their content is current. Anyone want to help me peel
this onion?
-Calvin
Help is needed. I know I have seen a similar problem either via email or
google search but for the life of me I cannot find it now.
I am using:
Ubuntu:
5.4.0-144-generic #161-Ubuntu SMP Fri Feb 3 14:49:04 UTC 2023 x86_64 x86_64
x86_64 GNU/Linux
Kamailio:
version: kamailio 5.3.9 (x86_64/linux) -- This is a dev platform and I can
update kamailio if needed.
I am trying to query a mongodb collection for the phone number stored under
“did” as an integer and make a decision based on the returned result
(boolean is sufficient for this decision).
I don’t know what I am doing wrong here. Any help will be well appreciated
##### This is the insert statement into the telephone db from a linux script
db.c$coll.insertOne({"did":parseInt($(cut -d_ -f 1 <<< $1)),
"callDesc":$(cut -d_ -f 1 <<< $1)}))" >> $(cut -d_ -f 1 <<< $1).js
did is stored as an integer and the callDesc is stored as presented by $rU
{ "_id" : ObjectId("641580b4863678d0ba38d69a"), "did" : 1XXXXXXXXXX,
"callDesc" : 1XXXXXXXXXXXX }
> db.c234.find()
{ "_id" : ObjectId("641580b4863678d0ba38d69a"), "did" : 2XXXXXXXXXXXX,
"callDesc" : 2XXXXXXXXXXXX }
> db.c234.find()
{ "_id" : ObjectId("641580b4863678d0ba38d69a"), "did" : 3XXXXXXXXXXXX,
"callDesc" : 3XXXXXXXXXXXX }
>
Kamailio config:
.....
.....
# --- mongodb module loaded 202201082322
loadmodule "ndb_mongodb.so"
if (uri==myself)
{
sl_send_reply("100", "Trying to check if uri is myself $rU
$ru");
#return;
#Adding this to test connection to mongodb…. This worked
and the reply was sent to the endpoint
if(*mongodb_cmd_simple*("mongodbsrv1", "telephone", "cXXX”,
"{ \"collStats\": \"cXXX\” }", "mgr1"))
{
sl_send_reply("183", "I got inside this message
loop $rU found in mongodb");
xlog("response from mongodb is
[[$mongodb(mgr1=>value)]]\n");
}
# End of the test
#This is to run the actual db query to test if the phone number is in the
mongodb…. I am not successful at this query even when the number is known
to be in the database
if(*mongodb_find_one*("mongodbsrv1", "telephone", "cXXX”,
"{\"did\" : \"$rU\" }", "mongoResponse1"))
{
# Route to confirmed route here -- 202302212032
sl_send_reply("183", "I got inside this mongodb
message loop");
route(CONFIRMED_ROUTE);
xlog("response from mongodb is
[[$mongodb(mongoResponse1=>value)]]\n");
}
else
{
route(UNCONFIRMED_ROUTE);
}
}
#append_hf("P-hint: outbound\r\n");
route(RELAY);
#exit;
}
Please help.
--
-----
Ekunwe
Tel: 601.497.3932
Hi Kamailians!
A new CVE with a critical severity level was published recently for an almost three year old bug,
which was also fixed and released three years ago (CVE-2020-27507).
The issue was fixed in Kamailio 5.4.2 and is not present in newer releases.
The Kamailio project has unfortunately not been involved in the CVE process or
been informed about this old issue being published at this time.
We take vulnerability handling seriously and our process is documented at:
https://www.kamailio.org/wikidocs/security/policy/
The latest stable branch is 5.6, with v5.6.4 released out of it.
Reference:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=2020-27507
Best regards and thanks for flying Kamailio!
The Kamailio dev team
through
/Olle
Hello,
I am trying to get json RPCs running. simpleequests seem to work, but I can't figure out how to pass parameters. For example
curl --header 'Content-Type: application/json' --data-binary '{"id": 1,"jsonrpc": "2.0", "method": "ul.db_users" }' http://localhost:8081/RPC/
{
"jsonrpc": "2.0",
"error": {
"code": 500,
"message": "Not enough parameters (table to lookup)"
},
"id": 1
}
According to http://www.kamailio.org/docs/docbooks/3.2.x/rpc_api/rpc_api.html#rpc.gettin… parameters dont have names and according to http://www.kamailio.org/docs/modules/devel/modules/usrloc.html#usrloc.r.db_… 1 parameter is required.
I guessed adding "params":"location" => no error anymore, but still no result:
curl --header 'Content-Type: application/json' --data-binary '{"id": 1,"jsonrpc": "2.0", "method": "ul.db_users", "params":"location"}' http://localhost:8081/RPC/
{
"jsonrpc": "2.0",
"result": {
},
"id": 1
}
Same result (no error) if I pass "params":"nonsense", so "params" seems to be kind of ignored ...
What's the correct json syntax here or in general?
Best regards,
Volker
Hello all,
While using KEMI with app_jsdt I noticed the following possible
regression between 5.5 and 5.6.
The following config is working ok on 5.5 but throws an error on 5.6:
ERROR: app_jsdt [app_jsdt_api.c:555]: app_jsdt_run_ex(): js loading
state not initialized (call: ksr_htable_event)
kamailio.cfg:
debug=2
children=1
log_facility=LOG_LOCAL0
log_name="k"
mpath="/home/osas/src/kamailio/src/modules"
loadmodule "htable/htable.so"
modparam("htable", "event_callback", "ksr_htable_event")
modparam("htable", "event_callback_mode", 1)
loadmodule "kemix/kemix.so"
loadmodule "app_jsdt/app_jsdt.so"
modparam("app_jsdt", "load", "/usr/local/etc/kamailio/kamailio.js")
cfgengine "jsdt"
kamailio.js:
function ksr_htable_event(evname) {
KSR.info("ksr_htable_event(" + evname + ")\n");
}
function ksr_request_route() {
KSR.x.exit();
}
If we load the htable module after app_jsdt, then the error is gone.
Is there something new during init in 5.6 that requires specific
module loading order?
-ovidiu
Hi,
I’ve got a situation where I catch a 302 redirect in a failure_route (branch #1), and use the Contact to set a custom header (append_hf()).
This custom header is utilised on the subsequent branch (branch #2), but if that branch fails (e.g. due to 4xx-5xx response), the custom header is not preserved on subsequent branches (branch #3+).
What’s the best way to preserve it across subsequent branches? The documentation for msg_apply_changes() says it cannot be used once the transaction is already created, and in any case, I have other branch-level changes in branch #2 that I _would_ like to revert on subsequent branch attempts (i.e. branch #3).
I can certainly devise a transaction-persistent vehicle for this value which can be checked on every branch, but I wondered if there’s an easier and more best-practical way.
Thanks!
— Alex
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web: https://evaristesys.com
Tel: +1-706-510-6800
Hello,
I am using kamailio to register the webrtc client and routes the calls to
asterisk using pjsip. I am having no voice on both ends. Logs are attached
witht this email.
Mar 24 13:06:58 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Received command 'offer' from 10.13.1.127:59841
Mar 24 13:06:58 debian rtpengine[7345]: NOTICE: [8asmubtpv46ac7nrfk57]:
[core] Creating new call
Mar 24 13:06:58 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Replying to 'offer' from 10.13.1.127:59841 (elapsed time 0.016067
sec)
Mar 24 13:06:58 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Received command 'answer' from 10.13.1.127:52045
Mar 24 13:06:58 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Replying to 'answer' from 10.13.1.127:52045 (elapsed time
0.000997 sec)
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[ice] ICE negotiated: peer for component 1 is 10.13.1.170:15634
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[ice] ICE negotiated: local interface 10.13.1.127
Mar 24 13:06:58 debian rtpengine[7345]: ERR:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] SRTP output wanted, but no crypto suite was negotiated
Mar 24 13:06:58 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Received command 'answer' from 10.13.1.127:52045
Mar 24 13:06:58 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Replying to 'answer' from 10.13.1.127:52045 (elapsed time
0.000786 sec)
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[crypto] DTLS: Peer certificate accepted
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[crypto] DTLS-SRTP successfully negotiated using AES_CM_128_HMAC_SHA1_80
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[crypto] DTLS-SRTP successfully negotiated using AES_CM_128_HMAC_SHA1_80
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[ice] ICE negotiated: peer for component 1 is 10.13.1.170:15634
Mar 24 13:06:58 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[ice] ICE negotiated: local interface 10.13.1.127
Mar 24 13:07:02 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] Confirmed peer address as 10.13.1.170:15634
Mar 24 13:07:02 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] Kernelizing media stream: 10.13.1.170:15634 -> 10.13.1.127:10940 |
10.13.1.127:10960 -> 192.168.30.200:53489
Mar 24 13:07:02 debian rtpengine[7345]: WARNING:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] No support for kernel packet forwarding available (encryption cipher
or HMAC not supported by kernel module)
Mar 24 13:07:02 debian rtpengine[7345]: NOTICE:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] Setting 'non-forwarding' flag for kernel stream due to lack of sinks
Mar 24 13:07:03 debian rtpengine[7345]: ERR:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[rtcp] SRTCP output wanted, but no crypto suite was negotiated
Mar 24 13:07:03 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] Removing media stream from kernel: local 10.13.1.127:10940
Mar 24 13:07:03 debian rtpengine[7345]: INFO:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] Kernelizing media stream: 10.13.1.170:15634 -> 10.13.1.127:10940 |
10.13.1.127:10960 -> 192.168.30.200:53489
Mar 24 13:07:03 debian rtpengine[7345]: WARNING:
[8asmubtpv46ac7nrfk57/223df8fa-8106-48af-844f-33f97530a0d8/1 port 10940]:
[core] No support for kernel packet forwarding available (encryption cipher
or HMAC not supported by kernel module)
Mar 24 13:07:04 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Received command 'delete' from 10.13.1.127:52045
Mar 24 13:07:04 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] Scheduling deletion of call branch '9693uq66f0' (via-branch '') in
30 seconds
Mar 24 13:07:04 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] Scheduling deletion of call branch
'223df8fa-8106-48af-844f-33f97530a0d8' (via-branch '') in 30 seconds
Mar 24 13:07:04 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] Scheduling deletion of entire call in 30 seconds
Mar 24 13:07:04 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[control] Replying to 'delete' from 10.13.1.127:52045 (elapsed time
0.001463 sec)
Mar 24 13:07:17 debian /usr/local/sbin/kamailio[13362]: INFO: <script>:
10.13.1.170 authentication bypassed for sip:developer@10.13.1.127
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] Final packet stats:
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --- Tag '9693uq66f0', created 0:36 ago for branch ''
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --- subscribed to '223df8fa-8106-48af-844f-33f97530a0d8'
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --- subscription for '223df8fa-8106-48af-844f-33f97530a0d8'
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] ------ Media #1 (audio over UDP/TLS/RTP/SAVPF) using unknown codec
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --------- Port 10.13.1.127:10960 <> 192.168.30.200:53489, SSRC
0, in 0 p, 0 b, 292 e, 36 ts, out 0 p, 0 b, 0 e
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --- Tag '223df8fa-8106-48af-844f-33f97530a0d8', created 0:36 ago for
branch ''
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --- subscribed to '9693uq66f0'
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --- subscription for '9693uq66f0'
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] ------ Media #1 (audio over UDP/TLS/RTP/SAVPF) using opus/48000/2
Mar 24 13:07:34 debian rtpengine[7345]: INFO: [8asmubtpv46ac7nrfk57]:
[core] --------- Port 10.13.1.127:10940 <> 10.13.1.170:15634, SSRC
1ada0b2b, in 292 p, 40137 b, 1 e, 30 ts, out 2 p, 1449 b, 0 e
Hi,
I need to use a database that may sometimes timeout and I'd like to give a
conditional sip response based on whether there was a timeout or not. I'm
using sqlops with mysql modules. Does anyone know if that's possible ?
Thanks,
Leon
Hi List
Cisco-SPA112 does reply to an invite containing Record-Route header
with one Route: Header containing a comma separated list of those hops.
It looks like kamailio fails to parse them and correctly route for
example an ACK to a 200 OK.
Is this a known issue? Is there a solution?
--
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,
We have a Kamailio 5.2.7 server with WebRTC enabled. However, a WebRTC
client at https://tryit.jssip.net/ is unable to connect on either Chrome or
Firefox. In the Kamailio log we see the lines below. In tls.cfg we have
"verify_certificate = no" and "require_certificate = no" for both
[server:default] and [client:default]. Would anyone be able to help us with
this?
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:1159]:
tls_lookup_private_key(): Private key lookup for SSL_CTX-0x14baf1cbb090:
(nil)
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:749]:
sr_ssl_ctx_info_callback(): SSL handshake done
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:737]:
sr_ssl_ctx_info_callback(): SSL handshake started
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:741]:
sr_ssl_ctx_info_callback(): SSL renegotiation initiated by client
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:749]:
sr_ssl_ctx_info_callback(): SSL handshake done
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:737]:
sr_ssl_ctx_info_callback(): SSL handshake started
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:741]:
sr_ssl_ctx_info_callback(): SSL renegotiation initiated by client
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_domain.c:749]:
sr_ssl_ctx_info_callback(): SSL handshake done
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_server.c:424]:
tls_accept(): TLS accept successful
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_server.c:431]:
tls_accept(): tls_accept: new connection from xx.xx.xx.xx:39816 using
TLSv1.3 TLS_AES_256_GCM_SHA384 256
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_server.c:434]:
tls_accept(): tls_accept: local socket: yy.yy.yy.yy:8443
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_server.c:445]:
tls_accept(): tls_accept: client did not present a certificate
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: tls [tls_server.c:1189]:
tls_read_f(): Reading on a renegotiation of connection (n:532) (0)
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: <core>
[core/tcp_read.c:1527]: tcp_read_req(): EOF
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: <core>
[core/io_wait.h:602]: io_watch_del(): DBG: io_watch_del (0x562ffde66d00,
17, -1, 0x10) fd_no=4 called
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: <core>
[core/tcp_read.c:1680]: release_tcpconn(): releasing con 0x14baf4cc1ec8,
state -1, fd=17, id=665 ([xx.xx.xx.xx]:39816 -> [xx.xx.xx.xx]:8443)
Mar 22 01:25:28 br /sbin/kamailio[25259]: DEBUG: <core>
[core/tcp_read.c:1684]: release_tcpconn(): extra_data 0x14baf289ea30
Mar 22 01:25:28 br /sbin/kamailio[25291]: DEBUG: <core>
[core/tcp_main.c:3320]: handle_tcp_child(): reader response= 14baf4cc1ec8,
-1 from 1
Mar 22 01:25:28 br /sbin/kamailio[25291]: DEBUG: tls [tls_server.c:683]:
tls_h_close(): Closing SSL connection 0x14baf289ea30
Thanks very much,
--
David Cunningham, Voisonics Limited
http://voisonics.com/
USA: +1 213 221 1092
New Zealand: +64 (0)28 2558 3782
Hi All
I would like to avoid having run away calls as good as possible.
For this, I would like to require timers and set the maximum expires
timer to say 1800
I had a look at the sst module, but I see no way to require timers or
to set a max timers value.
Do my intentions make sense? How did others accomplish this task?
Thanks for any hints!
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Hello, we have faced an issue which appears when TOPOH module is enabled, call is made from WebRTC client, then transferred by callee.
We have WebRTC client behind load balancer. We make call to softphone from WebRTC, call from softphone is transferred to external number using Asterisk.
When call is hanged up on external number side, it doesn't hangs up on WebRTC client side.
If TOPOH is not enabled, this issue doesn't occur.
We have the following TOPOH-related sections of kamailio.cfg:
<...>
#!ifdef WITH_TOPOH
loadmodule "topoh.so"
#!endif
<...>
<...>
#!ifdef WITH_TOPOH
modparam("topoh", "mask_key", "xxxxxxxxxxxxxxxx")
modparam("topoh", "mask_ip", "10.0.0.1")
modparam("topoh", "mask_callid", 0)
modparam("topoh", "sanity_checks", 1)
modparam("topoh", "uparam_prefix", "")
modparam("topoh", "vparam_prefix", "")
modparam("topoh", "callid_prefix", "1337")
#!endif
<...>
<...>
#!ifdef WITH_DIALOG
modparam("dialog", "db_url", DBURL)
modparam("dialog", "db_mode", 1)
modparam("dialog", "db_fetch_rows", 800)
modparam("dialog", "track_cseq_updates", 1)
modparam("dialog", "ka_interval", 30)
modparam("dialog", "ka_timer", 30)
modparam("dialog", "send_bye", 0)
modparam("dialog", "dlg_filter_mode", 1)
#!ifdef WITH_TOPOH
modparam("dialog", "lreq_callee_headers", "TH: dlh\r\n")
#!endif
#!endif
<...>
<...>
#!ifdef WITH_DISPATCHER
event_route[dispatcher:dst-up] {
sql_query("ds_dburl", "select description from dispatcher where destination='$ru'", "ds_dbresult");
xlog("L_WARN", "Destination up: $ru, found name: $dbr(ds_dbresult=>[0,0])\n");
prom_gauge_set("trunk_reachability", "1", "$ru", "$dbr(ds_dbresult=>[0,0])");
}
event_route[dispatcher:dst-down] {
sql_query("ds_dburl", "select description from dispatcher where destination='$ru'", "ds_dbresult");
xlog("L_WARN", "Destination down: $ru, found name: $dbr(ds_dbresult=>[0,0])\n");
prom_gauge_set("trunk_reachability", "0", "$ru", "$dbr(ds_dbresult=>[0,0])");
}
#!endif
#!ifdef WITH_TOPOH
event_route[topoh:msg-sending] {
if(is_reply() and $rs=="302") {
drop;
}
}
#!endif
(can provide the full config, if needed)
We are receiving the following errors:
On transfer:
https://pastebin.com/H3FQ4Kpj
On hangup from external number side:
https://pastebin.com/wgfRzGbd
On hangup from WebRTC client side:
https://pastebin.com/sE0yhBae
There are also differences in SIP traffic when TOPOH is disabled and when it is enabled. With TOPOH enabled, apparently, ACK from Asterisk is not reaching kamailio:
asterisk INVITE -> kamailio -> WebRTC
WebRTC 200 -> kamailio -> asterisk
asterisk ACK -> kamailio -> -> ->
(SIP flows attached - topoh_on.csv, topoh_off.csv)
kamailio -v
version: kamailio 5.6.1 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled on 09:11:15 Nov 15 2022 with gcc 9.3.0
We have dockerized kamailio running on Ubuntu 16.04.3 LTS
Docker version 18.03.1-ce, build 9ee9f40
Please advise where to start looking.
Hello,
It's off-topic, but it was several times discussed here on the list.
It seems that the upcoming 18.17 and 20.2 asterisk version seems to properly support path headers. From the announcement:
* [ASTERISK-30100<https://issues.asterisk.org/jira/browse/ASTERISK-30100>] -
res_pjsip: Path is ignored on INVITE to endpoint
(Reported by Yury Kirsanov)
This bug has been many years open. have not tried it yet, but it looks promising.
Cheers,
Henning
--
Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://gilawa.com<https://gilawa.com/>
Hello everyone,
I am following up on my previous email regarding printing Global Parameter values and logging JSONRPC requests over UDP in Kamailio. I understand that everyone might be busy, but I would greatly appreciate any guidance or suggestions you can provide on these topics.
To recap my questions:
1)Is there a way to print the Global Parameter values, such as debug, children, flags, etc., within the Kamailio configuration file, to ensure they have been changed?
2°How can I log in Kamailio that it has received a JSONRPC request over UDP? I have been successful in logging this information when using HTTP and JSONRPC but am unsure how to do it with UDP.
Any input or advice would be truly valuable. Thank you in advance for your time and assistance.
Best.
Hi,
what can be the reason why usrloc module sometimes can read from database, sometimes not?
Normal operation looks ok, the location table is kept up to date. The problem seems to be related with RPC (kamcmd or jsonrpc). For example,
kamcmd ul.dump # ok
kamcmd ul.lookup location 6351*1 # ok
kamcmd ul.db_users location # error: 500 - Failed to use table
Error 500 correlates with syslog entry: ERROR: <core> [db.c:481]: db_use_table(): invalid connection parameter
Who connects where? In my understanding usrloc via core to mysql. I suppose RPC calls do not fail if usrloc can operate on kamailio memory, does that make sense? If so, what usrloc parameter can I tweak to fix error 500 ? I don't find any usrloc parameter regarding db connection.
(Opening another mysql session as user kamailio is no problem, so we re not running out of connections.)
Thanks in advance!
Volker
[cid:fb71bb9b-ad4f-4110-824b-d6805406bf6a]
Volker Denneberg
Development
Telefon: +49 241 980 986 41
Web: www.m3connect.de<https://mx.scientific.de/owa/redir.aspx?C=RW1TSCipXQC6K0Yw1m69CGqyTwJHXjiiN…>
E-Mail: v.denneberg(a)m3connect.de<https://mx.scientific.de/owa/redir.aspx?C=BjBXIUrD2WCryLRZ2IrAAwEu0b0W0ciUY…>
m3connect GmbH | Pascalstr.18 | 52076 Aachen | DE/Germany | Amtsgericht Aachen | HRB 8773 | USt.- ID: DE219 664 658 | Geschäftsführer/CEO: Emilio Dragas
Hi
We have two registrars.
Today I observed a CPE doing this:
CPE REGISTER (no auth) => Registrar 1 => 407 Challenge NONCE A
CPE REGISTER (auth to NONCE A => Registrar 2 => 407 Challenge NONCE B
CPE REGISTER (auth to NONCE B => Registrar 1 => 407 Challenge NONCE A
and so on.
Time on both registrars is in sync (I tought NONCE was based on time)
Is there a way to sync the NONCE so that both would accept
authentication based on the same NONCE?
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Dear everyone,
I am wondering if there is a way to print the Global Parameter values such as debug, children, flags, etc. just to make sure that they have been changed. I am aware that I can use the `kamcmd cfg.get core debug` command to check the value of the debug parameter for example, but I am wondering if there is a way to do this in the configuration file of Kamailio.
Additionally, I would like to know if there is a way to print in the log of Kamailio that it received a JSONRPC request over UDP. I have been able to print some logs when using HTTP and JSONRPC to know that the server has received a JSONRPC request, but I am unsure how to do this when using UDP.
I would greatly appreciate it if someone could provide some guidance.
Thank you in advance for your time and assistance.
Best regards.
Hello,
Thank you very much! I've used your suggestion to accomplish some amazing things. However, I'm having an issue when calling the procedures over jsonrpc with http. I've noticed that the number of "200" responses gets incremented by 2, which is not the case when using the `*kamcmd*` tool. I suspect that this may be due to jsonrpc using *http/https*, which iscausing Kamailio to treat it as a "200" http responses code as "200" SIP codes. Could you advise on how to avoid this issue?
Is there any further configuration that needs to be done?
Best regards.
Hello everyone,
I'm trying to store the call statistics in my Kamailio server. I'm using SQLite just to understand what type of information i can store.
I'm using the dialog module with the classic parameters:
enable_stats => 1
dlg_flag => 4
hash_size => 4096
db_url => sqlite:///usr/local/etc/kamailio/kamailio.sqlite
db_mode => 1
I'm able to open the DB but everything is empty, am i using the wrong modules? or i didn't configure the server well?
The goal is to store CALL CDR in the DB, so that i can see who called & how many times etc
Hi, is this expected behavior?
I have two target hosts in a dispatcher set, 10.20.20.118 (prio 5) and 10.20.20.252 (prio 10).
When I have 10.20.20.252 turned off, dispatcher still tries to send packets to that host, even when the status flags are IP.
root@vs-rs01:/etc/kamailio# kamcmd dispatcher.list
{
NRSETS: 1
RECORDS: {
SET: {
ID: 1
TARGETS: {
DEST: {
URI: sip:10.20.20.252:5060
FLAGS: IP
PRIORITY: 10
LATENCY: {
AVG: 0.000000
STD: 0.000000
EST: 0.000000
MAX: 0
TIMEOUT: 62
}
}
DEST: {
URI: sip:10.20.20.118:5060
FLAGS: AP
PRIORITY: 5
LATENCY: {
AVG: 3.876000
STD: 2.965000
EST: 5.058000
MAX: 14
TIMEOUT: 0
}
}
}
}
}
}
Hi
I am using advertise in the listen interface for our NATed setup within AWS.
Using following listen statement in kamailio: -
version: kamailio 5.5.1
listen=udp:10.0.1.4:5060 advertise 3X.1XX.1XX.2XX:5060
dispatcher.list
1 sip:10.0.4.23:5060 8 10 weight=11 #FreeSwitch 1
We are seeing that kamailio (10.0.1.4) is sending
two SIP INVITEs via dispatcher to FreeSwitch at 10.0.4.23 which seems strange or is it expected behaviour? (As seen below)
SIP INVITE Request: -
WAN Address >> Kamailio AWS NATed address >> FreeSwitch 1
1X.2X.2X.2X >> 3X.1XX.1XX.2XX
10.0.1.4 >> 10.0.4.23
10.0.1.4 >> 10.0.4.23
Many thanks
Regards
Muhammad Zaka
I am looking to configure Kamailio and RTPEngine to play a wav file for any new calls during a scheduled asterisk server maintenance. I have set up the following within route{} to send the call to a early_media route based on a variable that I can set on the server using kamcmd.
route {
...
if ($sht(config=>maint)=="1") {
if (is_method("INVITE") && !has_totag()) {
xlog ("L_INFO","Ongoing maintenance. Call-ID:$ci | Method: $rm");
route(early_media);
}
}
...
}
route[early_media] {
xlog("Maintenance: handling early_media\n");
rtpengine_manage("direction=external direction=external");
$var(body) = $(rb{re.subst,/(IP4.).*/\1##server IP redacted##/g});
set_reply_body($var(body), "application/sdp");
t_send_reply("183", "Session Progress");
sleep(2);
unblock_dtmf("all");
play_media("file=/etc/kamailio/media/maintenance.wav");
sleep(21);
rtpengine_delete();
t_reply("480","Temporarily Unavailable");
}
This mostly works as I hear the recorded message in place of the ringing tone when a call is processed by kamailio and then a busy signal is heard as part of the 480 reply at the end. The sleep's are in place to match the duration of the recorded message as otherwise the 480 is sent immediately following the start of the play_media. Feel free to let me know if there is a better solution to wait the duration of the media file and then proceed with processing instead of using sleep().
Is there a way to instead send a CANCEL or a BYE instead of a 480 after the wav file is played? I tried using t_cancel_callid("$ci", "$cs", "0") as well as a dlg_bye("all") at the end of the early_media route and neither seemed to send any headers out.
hello,
I have issue of no voice on kamailio configured for webrtc. I have
configured rtpengine with public and private interface. My kamilio has two
interface of pubic and private ip. Somebody has suggested me that there is
no ice trickling happens. I am using jssip webrtc client. Kindly suggest me
or help me with this. I have send another email for same issue to this
group and didnt get any reply. Kindly help me
I need a help on issue with rtpengine configuration and I didn't get any
repy for it. Kindly check about it and help me. If i won't get any help
kindly let me know, so I can stop waiting for your reply
On Mon, Mar 13, 2023 at 12:50 PM <sr-users-bounces(a)lists.kamailio.org>
wrote:
> Your mail to 'sr-users(a)lists.kamailio.org' with the subject
>
> webrtc audio issue
>
> Is being held until the list moderator can review it for approval.
>
> The message is being held because:
>
> The message is larger than the 150 KB maximum size
>
> Either the message will get posted to the list, or you will receive
> notification of the moderator's decision.
>
Hi All
I have setup kamailio using dispatcher to proxy registrations from the UAC to asterisk
but when asterisk sends an incoming call it does not seem to keep the path header and therefore kamailio sends 404
is there anyway around this?
Thanks
Sent with [Proton Mail](https://proton.me/) secure email.
Hi,
I have been working on setting up the database with the Kamailio server.
But facing a problem when my db user has configured with SSL required. But
I learnt that there is no support to enable the SSL in mariadb connector.
So I am thinking of using the MySQL connector instead. Is there anyway I
could configure the kamailio to use MySQL instead of Mariadb?
Thanks and regards,
Suchendra
Hi
We are using advertise in the listen interface for our NATed setup within AWS.
Using following listen statement in kamailio: -
version: kamailio 5.5.1
listen=udp:10.0.1.4:5060 advertise 3X.1XX.1XX.2XX:5060
dispatcher.list
1 sip:10.0.4.23:5060 8 10 weight=11 #FreeSwitch 1
We are seeing that kamailio (10.0.1.4) is sending two SIP INVITEs via dispatcher to FreeSwitch at 10.0.4.23 which seems strange or is it expected behaviour? (As seen below)
SIP INVITE Request: -
WAN Address --> Kamailio AWS NATed address --> FreeSwitch 1
1X.2X.2X.2X --> 3X.1XX.1XX.2XX
10.0.1.4 --> 10.0.4.23
10.0.1.4 --> 10.0.4.23
[cid:image001.png@01D955CE.9F0C2EE0]
Many Thanks
Regards
Muhammad Zaka
Muhammad Zaka
UCaaS Solutions Engineer
Tel: 03330147908
Email: Muhammad.Zaka(a)gamma.co.uk
This is an email from Gamma Telecom Ltd, trading as “Gamma”. The contents of this email are confidential to the ordinary user of the email address to which it was addressed. This email is not intended to create any legal relationship. No one else may place any reliance upon it, or copy or forward all or any of it in any form (unless otherwise notified). If you receive this email in error, please accept our apologies, we would be obliged if you would telephone our postmaster on +44 (0) 808 178 9652 or email postmaster(a)gamma.co.uk
Gamma Telecom Limited, a company incorporated in England and Wales, with limited liability, with registered number 04340834, and whose registered office is at The Scalpel, 18th Floor, 52 Lime Street, London EC3M 7AF and whose principal place of business is at Kings House, Kings Road West, Newbury, Berkshire, RG14 5BY.
Hello
I have an issue with Rx in my VolTE call Flow. Please refer to picture
and pcap in annex.
I am using same rtp engine at origination and termination.
I am sending rtpmanage for invite and 183 session progress at both
origination and termination.
My issue is that Rx is not sending for the proper media flow component to PCRF.
At origination it is considering a media flow between A 50034 and
RTPEngine 49186 (instead of considering RTP Engine Port 49152)
At Termination it is considering a media flow between B 50054 and
RTPEngine 49132 (instead of considering RTP EnginePort 49170)
Any idea why?
Hi,
I had the intention to route calls to some SRV destinations via
dispatcher and to other SRV destinations via DNS lookup and
'use_dns_failover=on'.
Currently in a route block using dispatcher two out of three targets
within the SRV destination are unavailable (by intention).
During my tests to the dispatcher destination I have found that:
A) If I have 'use_dns_failover=on' this setting "overrules" the
dispatcher routing and the unavailable targets are also tried before DNS
failover finds the available target.
B) If I have 'use_dns_failover=off' the dispatcher routing logic works
as expected and the call is always routed to the only available target
directly, making use of the result of the dispatcher OPTIONS pinging.
--
So my conclusion is now that you have to choose: Either use dispatcher
routing, or use DNS failover based routing.
- I'm fine with this, but I just would like to know if my conclusion is
correct, or if there is actually a way to use dispacther for some SRV
destinations and DNS failover for other SRV destinations.
Regards,
Lars
Hi
CPE registering with TCP (or TLS).
2nd leg is UDP.
Within one transaction (INVITE to OK including all ACK and PRACK)
transport is kept as desired for both legs.
But when the B side disconnects (sending BYE, new reverse transaction),
this is sent via UDP to the A CPE which initially talked TCP and thus
ignored.
record_route() is called on each leg.
What could I be missing?
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Hi,
I’m using kamailio’s silo module to store offline messages in it. I set extra_hdrs modparam to e.g. : ‘Resent-from-silo’ so the clients get information that the message has arrived directly (immediatelly) from the sender or it was stored offline and comes from silo.
So the problem is the following:
* if receiver’s socket is broken (e.g. airplane mode on mobile) and kamailio ‘thinks’ it is registered, server tries to send the message
* message will be timed out and based on config it will be stored in silo.
* the next step is to check if receiver is registered or not (since the client can re-register during 30sec until the message has timed out)
* If client is registered, kamailio tries to send the message immediately with m_dump().
* If the receiver’s connection is still broken, the message will be timed out and store in silo.
* In every store, a new ‘resent’ extra_hdrs value is appended.
When extra_hdrs length reaches 1024 bytes, the m_dump will fail and it blocks the dumping of messages to the given receiver.
Question: can extra_hdrs value be removed before store? Or what can be the solution not to duplicate the extra_hdrs value in some bad network situation?
Peter
(adding sr-users)
Hello,
maybe because you're spelling it wrong? Compare e.g., to here:
https://kamailio.org/docs/tutorials/5.6.x/kamailio-kemi-framework/modules/#…
Cheers,
Henning
-----Original Message-----
From: agural5(a)gmail.com <agural5(a)gmail.com>
Sent: Freitag, 10. März 2023 08:32
To: sr-dev(a)lists.kamailio.org
Subject: [sr-dev] KEMI python 'KSR' has no attribute 'sanity'
Hello,
I am trying to use KEMI KSR.sanity in python but got error: AttributeError: module 'KSR' has no attribute 'sanity'
appreciate your help for solve this.
Thanks!
_______________________________________________
Kamailio (SER) - Development Mailing List To unsubscribe send an email to sr-dev-leave(a)lists.kamailio.org