hello,
as we are all aware kamailio create a lot of processes for many tasks.
im using kamailio in kubernetes and i would like to monitor only sip processes with top command.
i only need a way to get only kamailio sip processes id (udp receiver that handle sip request) .
but i dont knwo how to get it.
top -c -p id1,id2,id3,id4
Thanks
Hello im using kamailio and rtpengine to build a custom SBC.
i was using freeswitch as my b2bua but i noticed a lot of issues when cps and simultaneous increased so i tried sems and i have better results.
But i do not really understand sems license so i want to know if i can use it.
i read from sems github
"It is licensed under dual
license terms, the GPL (v2+) and proprietary license. This
program is released under the GPL with the additional exemption
that compiling, linking, and/or using OpenSSL is allowed.
For a license to use SEMS under non-GPL terms, please contact
FRAFOS GmbH at info(a)frafos.com"
so my question is if i want to use sems as b2bua with kamailio and rtpengine and make profit of it do i need to purchase a license each time i want to sell it to a customer ?
Thanks.
Hi all
I'm wondering what is best practice to configure kamailio for a setup shown
below. Carriers only support interconnection over a private network so I
need to terminate every separate network on kamailio machine (and on
RTPEngine) . That will turn very quickly into an administration nightmare
as we add more and more carriers.
My plan is to terminate carrier private networks on a router and NAT the
traffic to kamailio where it leads me to a kamailio behind NAT setup. Well,
in theory set_advertised_address and set_advertised_port per message can do
the trick... at least I hope.
Also, some carriers require a SIP registration to activate SIP trunks. I do
that using UAC module (remote registration) but here again I got a problem
with contact address as you can set only one contact address
(modparam("uac", "reg_contact_addr", "10.1.1.11:5060")).
/--RTP 10000-19999-- RTPEngine1 -----RTP------+-- IPPBX1
carrier1 --- NAT ---| | |
| | |
carrier2 --- NAT ---+-----SIP 5060------ kamailio ----SIP---- Dispatcher
| | |
carrier3 --- NAT ---| | |
\--RTP 20000-29999-- RTPEngine2 -----RTP------+-- IPPBX2
So bottom line, I'm wondering what would be the best practice for such a
scenario ?
That would spare me from hitting many pitfalls.
Would really appreciate a hint.
Regards,
Tihomir.
Hello,
I have been trying to find documentation on Kamailio IMS and Vo5G support for open5gs. I wanted to ask you directly if Kamailio IMS does support Vo5G with open5gs?
Thank you
Hi,
I trying to use smsops module as SMSC.
When I sending message from UE I see re-sending same message after each
RP-ACK(~10 attempt).
What could be the problem?
Thanks!
pcap in attach.
kamailio 5.3.2
--
*Yours faithfully,*
*Eugene B.*
Were looking to test a kamilio on Open5gs 5g stand alone ( non lte, non NSA) can you conform or provide documents or install instructions on how this is accomplished. I can not find much of any details if Kamilio support Open5Gs 5g SA and what features it does support on a 5g SA core.
Seth Sandland
Wireless Communications IT Engineer
Pacific Northwest National Laboratory
Tel: (509) 375-6842
Email: seth.sandland(a)pnnl.gov<mailto:seth.sandland@pnnl.gov>
www.pnnl.gov<http://www.pnnl.gov/>
[A close up of a logo Description automatically generated]
Hello,
I'm trying to get state of endpoint from PUBLISH message in a most
simple way using xmlops module
Trying to make this
$xml(body=>doc) = $rb;
log("L_ERR", "$rU is now in state $xml(body=>xpath:/dialog-info/dialog/state)\n");
XML in PUBLISH itself
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" version="0" state="full" entity="sip:88881@dev.company">
<dialog id="v6qmEYf5yI" direction="initiator">
<state>confirmed</state>
</dialog>
</dialog-info>
Actual text in log is
... <script>: 88881 is now in state
Means it's empty. xmlops module is loaded with no parameters. Tried also
string
$xml(body=>xpath:/dialog-info/dialog/state/text())
-> same result
What am I missing here?
kamailio 5.4.6
--
Thanks in advance,
Igor
Hi,
I'm trying to use the async module from a python3 Kemi script but it
conflicts with the keyword async. Any suggestions on how it can be used? Is
there an alternative to KSR.async.route()?
Thanks,
Ahmed
Hi,
I've enabled ACC and CDR logging and it's working fine for the logging but
I noticed something wrong in the CDR table , the call source and
destinations are depending on the BYE message not the initial invite dialog
ACC table
+-----+--------+--------------------------------------+---------------------+---------------+---------------------------+--------------+--------------+--------------------------------------+
| id | method | callid | time
| src_ip | src_domain | src_user | dst_ouser
| dst_domain |
+-----+--------+--------------------------------------+---------------------+---------------+---------------------------+--------------+--------------+--------------------------------------+
| 216 | BYE | 81fa79a0-3deb-47b6-80ab-831a78a5d46e | 2022-02-09 06:57:51
| x.x.x.x | domain.com | DST_CLID | SRC_CLID | domain.com
|
| 215 | INVITE | 81fa79a0-3deb-47b6-80ab-831a78a5d46e | 2022-02-09 06:55:17
| x.x.x.x | domain.com | SRC_CLID | DST_CLID |
dst_domain.com |
The INVITE is the correct one with SRCIP x.x.x.x and domain.com but the BYE
reversed the order since the the DST_CLID who sent the BYE so it's now
logged as the source
and the final CDR log looks like
+--------+--------------+---------------------------+--------------+--------------------------------------+---------------------+---------------------+----------+-----+-------+--------+-------+---------+
| cdr_id | src_username | src_domain | dst_username |
dst_domain | call_start_time | call_end_time
+--------+--------------+---------------------------+--------------+--------------------------------------+---------------------+---------------------+----------+-----+-------+--------+-------+---------+
| 195 | DST_CLID | domain.com | SRC_CLID | domain.com
| 2022-02-09 06:55:12 | 2022-02-09 06:57:51 |
the CDR as shown is reversed regarding the source/dst username
I tried to enable the direction ACC direction flag but didn't help and here
is my current paramters
modparam("acc", "early_media", 0)
modparam("acc", "report_ack", 0)
modparam("acc", "report_cancels", 0)
modparam("acc", "detect_direction", 0)
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "log_missed_flag", FLT_ACCMISSED)
modparam("acc", "cdr_enable", 1)
modparam("acc", "cdrs_table", "cdrs")
Can you please advise how to configure ACC/CDR to log the CDR with the
correct initial INVITE call flow regardless of the BYE direction ?
Hi there,
I have a weird issue with kamailio (latest docker
image kamailio-ci:5.5.2-alpine) and http_async_client.
Before posting a lot of logs, let me describe what I want to achieve.
I have a Kamailio and a SIP Phone.
The SIP phone sends a REGISTER to kamailio, then in my routing block, I
check if I have an Authorization header.
Since I don't have an Authorization (first message), I
use "www_challenge()".
This replies to the SIP phone, and then the SIP phone sends a new REGISTER
with the correct Authorization header.
So far so good.
Now, when I get the REGISTER with Authorization header, I want to ask an
HTTP endpoint if this user is allowed to connect and check the password
using http_async_query().
The problem is that when the transaction resumes, the tmx module is unhappy
and throws this error :
30(36) CRITICAL: tmx [t_var.c:546]: pv_get_tm_reply_code(): no picked
branch (-1) for a final response in MODE_ONFAILURE
And a 500 error is sent back to the sip phone.
The AUTH_REPLY route is still called and I can use the $http* values.
Do you see something that I am doing wrong or missing in my logic?
Is pausing/resuming to use the async http client is allowed if I'm handling
a REGISTER transaction?
Here's a simplified version of my routing block (not far from reality):
##### SNIP
request_route{
route(AUTH);
route[AUTH]{
if (is_method("REGISTER"){
if(no_auth_header){
www_challenge("$td","1");
exit;
}
else{
t_newtran();
http_async_query("http://xxx.xxx.xxx.xxx:9000/auth?foo=bar",
"AUTH_REPLY");
}
}
}
route[AUTH_REPLY]{
xlog("L_INFO", "route[HTTP_REPLY]: status $http_rs\n");
}
}
##### END SNIP
Best regards!
Hey, I am trying to make a re-transmission mechanism from the failure route,
I've tried to use $dp and $du as a relay, but variables are not accepted in t_relay(),
When using ip and port straight forward t_relay("144.0.0.0", "1111"), I am getting:
[t_fwd.c:1752]: t_forward_nonack(): no branches for forwarding
[tm.c:1753]: _w_t_relay_to(): t_forward_noack failed
Is there a way to re-transmit the call to the same carrier again?
Thanks in advance, and have a great day,
Max Kemel
Hey, I would like to use a failure route with a retry mechanism, which provides a MAX_NUM_OF_RETRIES (max number of times reaching the failure route),
Which can be achieved by a simple global counter, from what I've seen, the Counters module doesn't provide a GET function in script,
What is the easiest solution for this kind of behavior?
Thanks a lot,
Max Kemel
Hi all,
I'm using Kamailio timers to execute a series of calls with a certain
delay. I have found out that from time to time, the timers are triggered
too soon, sometimes they are triggered 2/3 seconds before they should.
I have read in the documentation that it is normal to have a bit of delay
in some of the timers, but it doesn't mention anything about this behavior.
Is this normal?
Thank you.
By comparing pkg/kamailio/deb/bullseye dir kamailio.init and
kamailio.service files, it appears to me that they are not equal
alternatives. Is this correct interpretation?
-- Juha
Hi to all,
We have a Kamailio 5.3 that sends all traffic to a homer7 using siptrace
module with parameters force_send_sock and hep_mode_on,1 and hep_version,3
and trace_mode,1. Everything works fine getting all traffic to Homer7 but,
in case Homer7 is not reachable, Kamailio then no longer accepts traffic or
registrations and it is like it crashes. When we revive Homer7 and is it
again reachable accepting traffic, Kamailio then works again fine without
any restart or actions.
Any ideas why this may be happening? Is there anything we need to add to
the config to avoid this behavior as having Homer7 now is a single point of
failure for Kamailio?
Thank you!
Kind Regards,
Angelo
we have been running 5.3.4 with the uac_auth_mode() function ans it has
been working
we have upgraded to 5.3.8 and with the same script we are getting an
error with the uac module saying it was unable to find the cmd auc_auth_mode
I have tried this with uac_auth as well with the same result.
it looks like the uac module is not loaded or is not loading but running
a core.modules reports the uac module
can anyone shed any light on this problem? is it a version pecific problem?
Hello all,
I tried to update $du for REGISTERs sent by the uac module in event_route[tm:local-request]. (I want to overwrite the auth_proxy under some conditions.)
However, the requests are still sent to the auth_proxy defined in uacreg. Am I missing something here, why doesn't it work?
It's basically just:
event_route[tm:local-request] {
if (is_method("REGISTER")) {
# ...
$du = "sip:PROXY_IP:PROXY_PORT";
}
}
My Kamailio version is 5.5.2.
With kind regards,
Raffaella Seuß
foncloud GmbH & Co KG
Hahlweg 2a
36093 Künzell
Tel: /
Fax: +49 661 968990-99
Email: raffaella.seuss(a)foncloud.net
Web: www.foncloud.net
P.S.: Wussten Sie schon?
Unter https://www.foncloud.net/wissen finden Sie zahlreiche Informationen und hilfreiche Artikel rund um unsere Produkte und Services.
Registergericht: Amtsgericht Fulda, Persönlich haftende Gesellschafterin der foncloud GmbH&Co.KG: Global Brain Network GmbHGeschäftsführer der Global Brain Network GmbH: Peter Krug Sitz der Gesellschaft: Künzell.
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
Hi,
I am using Siremis v 5.3 with kamailio. My users can log into the Siremis site just fine but the field to enter their email address is not appearing. My sql queries seem to be working besides that. Does this feature need to be enabled? I would like to use email to confirm the user login with a confirmation code.
(mysql Ver 15.1 Distrib 10.1.48-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2)
Thank you,
[cid:image001.png@01D81830.52C21EA0]<http://www.vikingelectronics.com/>
TIM MASTARONE
Associate Engineer
715-386-8861 x208
vikingelectronics.com<http://www.vikingelectronics.com/>
hello,
we are using kamailio 5.3 . while establishing a call the tel uri is
getting converted into sip uri sometimes incorrectly . In the sip uri some
extra characters are getting appended in the invite message. Can somebody
please provide some guidance on this, attaching the pcap for
reference(packet no. 8).
Thanks,
*Jyoti Bansal*
Software Engineer .
Great Software Laboratory | www.gslab.com
--
Confidentiality Notice and Disclaimer: This email (including any
attachments) contains information that may be confidential, privileged
and/or copyrighted. If you are not the intended recipient, please notify
the sender immediately and destroy this email. Any unauthorized use of the
contents of this email in any manner whatsoever, is strictly prohibited. If
improper activity is suspected, all available information may be used by
the sender for possible disciplinary action, prosecution, civil claim or
any remedy or lawful purpose. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, lost, arrive
late, or contain viruses. The sender is not liable whatsoever for damage
resulting from the opening of this message and/or the use of the
information contained in this message and/or attachments. Expressions in
this email cannot be treated as opined by the sender company management –
they are solely expressed by the sender unless authorized.
hi,
is it possible create log of SIP dialog like
https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging ?
it looks like its possible like this
xlog("L_INFO", "D$dlg(h_id) something to log \n");
but i must copy $dlg(h_id) in every xlog
tried this
modparam("xlog", "prefix", "D$dlg(h_id)")
but it not works with variables
any other tips/ideas?
goal is to correlate logs for one dialog (call)
thanks
Marek
Hi there,
I have a weird issue with kamailio (latest docker
image kamailio-ci:5.5.2-alpine) and http_async_client.
Before posting a lot of logs, let me describe what I want to achieve.
I have a Kamailio and a SIP Phone.
The SIP phone sends a REGISTER to kamailio, then in my routing block, I
check if I have an Authorization header.
Since I don't have an Authorization (first message), I
use "www_challenge()".
This replies to the SIP phone, and then the SIP phone sends a new REGISTER
with the correct Authorization header.
So far so good.
Now, when I get the REGISTER with Authorization header, I want to ask an
HTTP endpoint if this user is allowed to connect and check the password
using http_async_query().
The problem is that when the transaction resumes, the tmx module is unhappy
and throws this error :
30(36) CRITICAL: tmx [t_var.c:546]: pv_get_tm_reply_code(): no picked
branch (-1) for a final response in MODE_ONFAILURE
And a 500 error is sent back to the sip phone.
The AUTH_REPLY route is still called and I can use the $http* values.
It seems that my AUTH_REPLY route is called but considered as a
"failure_route"
19(27) exec: *** cfgtrace:dbg_cfg_trace(): failure_route=[AUTH_REPLY]
c=[/etc/kamailio/kamailio.cfg] l=665 a=16 n=if
17(23) NOTICE: <script>: [AUTH_REPLY] FAILURE ROUTE
If I remove the http_async_client and try with route(AUTH_REPLY) then it is
considered as request_route (but this is not a solution since I need to do
this http request)
Do you see something that I am doing wrong or missing in my logic?
Is pausing/resuming to use the async http client is allowed if I'm handling
a REGISTER transaction?
Here's a simplified version of my routing block (not far from reality):
##### SNIP
request_route{
route(AUTH);
route[AUTH]{
if (is_method("REGISTER"){
if(no_auth_header){
www_challenge("$td","1");
exit;
}
else{
t_newtran();
http_async_query("http://xxx.xxx.xxx.xxx:9000/auth?foo=bar",
"AUTH_REPLY");
}
}
}
route[AUTH_REPLY]{
xlog("L_INFO", "route[HTTP_REPLY]: status $http_rs\n");
if(t_is_failure_route()) {
xlog("L_NOTICE", "[AUTH_REPLY] FAILURE ROUTE \n\n");
}
}
}
##### END SNIP
Best regards!
Hi,
I have a requirement to specify a REGISTER max_expires based on the
User-Agent.
I checked the docs and it seems there is no pseudo-variable or something
like that would permit this.
I would like to be able to do something like this:
if($ua ~= "Some-UA") {
$max_expires=100;
} else {
$max_expires=150;
}
save("location");
Is there some way to achieve this?
I tried to check if message body contains a string using function call
str_find("$rb", "string"))
but it failed like this:
Jan 29 17:37:03 siika /usr/bin/sip-proxy[2577003]: ERROR: <core> [core/pvapi.c:1491]: pv_printf_mode(): no more space for spec value - printed:0 token:6880 buffer:4096
Jan 29 17:37:03 siika /usr/bin/sip-proxy[2577003]: ERROR: <core> [core/pvapi.c:1503]: pv_printf_mode(): buffer overflow -- increase the buffer size...
Jan 29 17:37:03 siika /usr/bin/sip-proxy[2577003]: ERROR: <core> [core/sr_module.c:1698]: get_str_fparam(): Could not convert the PV-formated string to str
Jan 29 17:37:03 siika /usr/bin/sip-proxy[2577003]: ERROR: textops [textops.c:4457]: str_find_f(): cannot get first parameter
Any suggestions on how to get it done properly?
-- Juha
Hello List,
I observe an interesting behavior. We use siptrace as an active capture
agent for QXIP HOMER/HEPIC installations.
The destination port and the source port in the HEPv3 Header are not
correct if you use transport tcp for example.
My Question: is that intended or a bug and i should fill up an issue?
On udp, it's filled with 5060 or whatever your listening directive says.
I tested that with kamailio 5.5 and kamailio master.
I attached an HEPv3 capture from two kamailios (master) speaking with each
other.
You need the https://github.com/sipcapture/hep-wireshark lua dissector to
read the capture.
10.0.2.15 (kamailio with uacreg and sipcapture/HEPv3 mode)
192.168.50.4 (kamailio as registrar)
Frame 1 shows an tcp transport register Request from 10.0.2.15 to
192.168.50.4 in HEPv3.
The Source Port in the HEP3 Protocol is not correct (its an highport /
45419).
Frame 4 shows the 401 answer and the Destination port is 0.
Frame 7 also had this behavior.
----- params (nearly at the end):
modparam("siptrace", "duplicate_uri", "MY_HOMER_CAPTURE")
modparam("siptrace", "hep_mode_on", 1)
modparam("siptrace", "hep_version", 3)
modparam("siptrace", "hep_capture_id", MY_HOMER_CAPTURE_ID) # capture agent
id Limitation: 32-bit for HEPv3.
modparam("siptrace", "trace_to_database", 0)
modparam("siptrace", "trace_on", 1)
modparam("siptrace", "trace_mode", 1) # default 0, if 1 then you dont need
call siptrace flag or sip_trace()
--
Mit freundlichen Grüßen / Kind Regards
*Karsten Horsmann*
Hello all,
I am using kamailio code to establish calls with the real ue's. Our calls
are getting established with an issue , whenever invite is send from A
party to B party with teluri
that tel uri is converted to sip uri. While converting to sip uri some
extra bytes are getting added after user=phone and the call ends.
Can someone help us on this issue of getting some extra bytes added in the
sip uri? for example :-
sip:405874112224411@ims.mnc123.mcc456.3gppnetwork.org;user=phone��
Thanks,
*Jyoti Bansal*
Software Engineer .
Great Software Laboratory | www.gslab.com
--
Confidentiality Notice and Disclaimer: This email (including any
attachments) contains information that may be confidential, privileged
and/or copyrighted. If you are not the intended recipient, please notify
the sender immediately and destroy this email. Any unauthorized use of the
contents of this email in any manner whatsoever, is strictly prohibited. If
improper activity is suspected, all available information may be used by
the sender for possible disciplinary action, prosecution, civil claim or
any remedy or lawful purpose. Email transmission cannot be guaranteed to be
secure or error-free, as information could be intercepted, lost, arrive
late, or contain viruses. The sender is not liable whatsoever for damage
resulting from the opening of this message and/or the use of the
information contained in this message and/or attachments. Expressions in
this email cannot be treated as opined by the sender company management –
they are solely expressed by the sender unless authorized.
I'm trying to configure Kamailio to permit communication between devices:
some use TLS and SRTP
some UDP and RTP
with RTPEngine in the middle.
A priori I don't know if the device support SRTP or RTP so in the
routing I have to detect on the fly how to act. The problem is this:
Call from RTP to SRTP device: 488 Not Acceptable here
Call from SRTP to RTP device: 415 Unsupported Media Type
Any hint?
Thank you
Regards
--
---
I'm SoCIaL, MayBe
First of all I should start by saying this is my first post so go easy on me!! : ) and thank for everyone's efforts to share knowledge it has been invaluable for my kamailio learning.
Build Details
Version: kamailio 5.5.3 (x86_64/linux)
Kamailio kemi python
Scenario
Relevant config
def ksr_route_api_query(self, msg):
KSR.log("info", "SUBSCRIBE API Query Starts")
# Create new Transaction
KSR.tm.t_newtran()
async def main():
url = 'https://api.hidingtheurl.com/subscribe'
payload = {
"ruri": KSR.pv.get("$ru"),
"from": KSR.pv.get("$fu"),
"from_tag": KSR.pv.gete("$ft"),
"to": KSR.pv.get("$tu"),
"callid": KSR.pv.get("$ci"),
"cseq": KSR.pv.get("$cs"),
"contact": KSR.pv.gete("$ct"),
"supported": KSR.pv.get("$hdr(Supported)"),
"event": KSR.pv.get("$hdr(Event)"),
"expires": KSR.pv.get("$hdr(Expires)"),
"diversion": KSR.pv.get("$di"),
"body": KSR.pv.get("$rb")
}
async with aiohttp.ClientSession() as session:
async with session.post(url, json=payload) as response:
if response.status == 0:
KSR.xlog.xinfo(f"SUB Manager Timeout: {response.status}")
KSR.tm.t_reply(408, "SUB Manager Timeout")
elif response.status >= 500:
KSR.xlog.xinfo(f"SUB Manager Down: {response.status}")
KSR.tm.t_reply(500, "SUB Manager Down")
elif response.status >= 400:
KSR.xlog.xinfo(f"SUB Manager Error: {response.status}")
KSR.tm.t_reply(400, "SUB Manager Error")
else:
if response.status == 200:
KSR.xlog.xinfo(f"SUB Manager Success: {response.status}")
KSR.tm.t_reply(200, "OK")
KSR.log("info", "SUBSCRIBE API Query Ends")
asyncio.run(main())
# API Query Ends
Scenario
Initial SUBSCRIBE >>> hits Kamailio >>> send payload in JSON to API get receive 200OK response from API and send a 200OK on to Device
SUBSCRIBE -------->
<------------ 200 OK
After Subscription Expiry
re-SUBSCRIBE >>> hits Kamailio >>> send payload in JSON to API get 200OK response from API and send a 200OK on to Device but also another 200OK a fraction of a second later...
SUBSCRIBE -------->
<------------ 200 OK
<<<--------- 200 OK
This happens for all following re-SUBSCRIBE's
The 200 OK are identical, and it is a re transmission, but I can't work out why..
Relevant DEBUG is below
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: INFO: <script>: SUB Manager Success: 200
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: app_python3 [apy_kemi.c:232]: sr_apy_kemi_exec_func_ex(): execution of method: t_reply
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: app_python3 [apy_kemi.c:287]: sr_apy_kemi_exec_func_ex(): params[2] for: t_reply are int-str: [200] [OK]
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_lookup.c:1034]: t_check_msg(): msg (0x7eff0cd4e828) id=2/11234 global id=2/11234 T start=0x7eff0918d7d8
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_lookup.c:1108]: t_check_msg(): T (0x7eff0918d7d8) already found for msg (0x7eff0cd4e828)!
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: <core> [core/msg_translator.c:162]: check_via_address(): (80.111.111.111, 80.111.111.111, 0)
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_reply.c:1763]: cleanup_uac_timers(): RETR/FR timers reset
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_reply.c:637]: _reply_light(): reply sent out - buf=0x7eff0cd50938: SIP/2.0 200 OK#015#012Via:... shmem=0x7eff09190ca8: SIP/2.0 200 OK#015#012Via:
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_reply.c:648]: _reply_light(): finished
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: app_python3 [apy_kemi.c:232]: sr_apy_kemi_exec_func_ex(): execution of method: t_precheck_trans
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: app_python3 [apy_kemi.c:232]: sr_apy_kemi_exec_func_ex(): execution of method: t_check_trans
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_lookup.c:1034]: t_check_msg(): msg (0x7eff0cd4e828) id=2/11234 global id=2/11234 T start=0x7eff0918d7d8
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_lookup.c:1108]: t_check_msg(): T (0x7eff0918d7d8) already found for msg (0x7eff0cd4e828)!
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: tm [t_reply.c:1703]: t_retransmit_reply(): reply retransmitted. buf=0x7eff0cb18220: SIP/2.0 2..., shmem=0x7eff09190ca8: SIP/2.0 2
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: app_python3 [apy_kemi.c:112]: sr_kemi_config_engine_python(): execution of route type 1 with no name returned 1
Jan 26 12:31:17 ip-172-20-46-39 kamailio[11234]: DEBUG: <core> [core/receive.c:514]: receive_msg(): request-route executed in: 38258 usec
Everything works well as is but I want to clean up this issue or at least understand what is causing it.
Lewis
Hi,
I'm trying to use siptrace to getting copy of my SIP transactions,
especially in TLS.
Here's my configuration :
*loadmodule "siptrace.so" modparam("siptrace", "trace_mode", 1)
modparam("siptrace", "trace_to_database", 0) modparam("siptrace",
"trace_on", 1) modparam("siptrace", "duplicate_uri", "sip:MY_IP:5065")
modparam("siptrace", "trace_local_ip", "MY_IP:5061") modparam("siptrace",
"hep_mode_on", 1) modparam("siptrace", "hep_version", 2)
modparam("siptrace", "hep_capture_id", 1) modparam("siptrace",
"trace_flag",22); *
And in my Routing Logic :
*request_route {*
*sip_trace();setflag(22);*
*(...)*
But I didn't receive anything on my listening port 5065 according my
TCPDUMP.
Status confirm me siptrace is working :
*root@debian:/# kamcmd siptrace.status checkEnabled*
I think I made a mistake in the configuration, but I don't know where.
My second question is when I try to use sip_trace_mode("t"); I getting :
failed to find command sip_trace_mode.
Is it in an other module ?
Many thanks for your help.
Regards,
Arnaud
Hi Aditya,
There are 2 options to achieve this:
Option-1 use below param in auth_db module and while doing authentication
change table name to your table
user_column (string)
<https://www.kamailio.org/docs/modules/devel/modules/auth_db.html#auth_db.p.…>
domain_column (string)
<https://www.kamailio.org/docs/modules/devel/modules/auth_db.html#auth_db.p.…>
password_column (string)
<https://www.kamailio.org/docs/modules/devel/modules/auth_db.html#auth_db.p.…>
Option-2 create a new http service that will connect to kamailio via evapi
and will be responsible for authentication and location service.
On Wed, 26 Jan 2022 at 16:31, <sr-users-request(a)lists.kamailio.org> wrote:
> Send sr-users mailing list submissions to
> sr-users(a)lists.kamailio.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> or, via email, send a message with subject or body 'help' to
> sr-users-request(a)lists.kamailio.org
>
> You can reach the person managing the list at
> sr-users-owner(a)lists.kamailio.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of sr-users digest..."
>
>
> Today's Topics:
>
> 1. Kamailio as a SIP registrar (Aditya Uppuluri)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 26 Jan 2022 16:21:33 +0530
> From: Aditya Uppuluri <uppuluriaditya(a)gmail.com>
> To: sr-users(a)lists.kamailio.org
> Subject: [SR-Users] Kamailio as a SIP registrar
> Message-ID:
> <CAKWpYb=
> 9EABvpmbPhvCyt-roQaOkiJnZSh17vVu6Wk26PiBbeg(a)mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hello Team,
> Thank you for the amazing product. I am a newbie to kamailio and currently
> trying to use kamailio as a SIP Registrar (for a multidomain). Here is the
> requirement
>
> 1. We already have a mysql database (name: VOIP) with a table named
> VoipSubscribers which contains the userid, password and domain information
> of all the users.
> 2. We want the ability in kamailio to use the same VoipSubscribers table
> for user registrations and also store the location information in the same
> database (VOIP)
>
> May I know how to achieve this without altering the table schema?
> Thank you in advance.
>
> Regards,
> Aditya Uppuluri
>
Hello Team,
Thank you for the amazing product. I am a newbie to kamailio and currently
trying to use kamailio as a SIP Registrar (for a multidomain). Here is the
requirement
1. We already have a mysql database (name: VOIP) with a table named
VoipSubscribers which contains the userid, password and domain information
of all the users.
2. We want the ability in kamailio to use the same VoipSubscribers table
for user registrations and also store the location information in the same
database (VOIP)
May I know how to achieve this without altering the table schema?
Thank you in advance.
Regards,
Aditya Uppuluri
Hello,
I'm trying to connect kamailio to Microsoft Teams.
Dispatch is correctly configured and sended.
Following this tutorial : https://skalatan.de/en/blog/kamailio-sbc-teams, I
added an Event_Route to add contact header to SIP OPTION from dispath to MS
:
event_route[tm:local-request] {
xlog("*** tm:local-request *** ");
if(is_method("OPTIONS") && $ru =~ "pstnhub.microsoft.com") {
xlog("L_INFO", "Append new contact !\n");
append_hf("Contact: <sip:MY_SBC_NAME.COM:5061
;transport=tls>\r\n");
}
xlog("L_INFO", "Sent out tm request: $mb\n");
}
When I check the log to see my sended frame, I don't see a contact header
field :
INFO: <script>: Append new contact !
INFO: <script>: Sent out tm request :
OPTIONS sip:sip.pstnhub.microsoft.com;transport=tls SIP/2.0
Via: SIP/2.0/TLS MY_SBC_NAME.COM:5061
;branch=z9hG4bK4497.f3e5e754000000000000000000000000.0
To: <sip:sip.pstnhub.microsoft.com;transport=tls>
From: <sip:MY_SBC_NAME.COM.fr>;tag=a76e006ace3802951ed860e08df964af-7971
CSeq: 10 OPTIONS
Call-ID: 2e1278ea77796160-9837@MY_SBC_IP
Max-Forwards: 70
Content-Length: 0
User-Agent: kamailio (5.2.1 (x86_64/linux))
According the documentation about textop, append_hf(txt[, hdr]) :
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE,
BRANCH_ROUTE.
So my question is append HF can be used in Event_route ?
Is there any other way to add contact header ?
Regards,
Arnaud
Hi,
I am running stress tests on kamalilio , at times i see this on screen
(process:30959): GLib-CRITICAL **: 21:43:56.961:
g_hash_table_insert_internal: assertion 'hash_table != NULL' failed
version: kamailio 5.5.3
Kamailio does not crash and keeps accepting calls though. Is it anything
alarming.
--
Muhammad Danish Moosa
" The core of mans' spirit comes from new experiences. "___ Christopher
McCandless
Hello,
has anyone experienced issues with Kamailio running on Debian 11 Bullseye?
It's now more than 2 months since Debian 11 release and I wonder if
people started to migrate to it for production systems.
So far I did only basic tests on it, although I have a Debian Testing
that I used for compilation and simple tests during the past several
months before Debian 11 release.
If someone discovers issues or changes in behaviour with various
libraries or applications/database servers, report them to the tracker
to try to address them as soon as possible.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Nov 08-11, 2021 (Europe Timezone) - Nov 22-25, 2021 (America Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hi Guys,
I am trying to do following code
KSR.ndb_redis.redis_cmd("srvN", "SET var " .. testvar, "r");
it works fine but if testvar has special character like SPACE or % , it
does not work. For example when testvar="asdsada%Dasda"; it starts
considering %D as place holder and does not add key to redis (does not
raise error as well)
With Space I tried to use delimeters like "" or '' but none of them work.
For now I have got it working through , search and replace but thats not a
clean solution.
Any suggestions?
--
Muhammad Danish Moosa
" The core of mans' spirit comes from new experiences. "___ Christopher
McCandless
Hi, it seems execution of usleep eventually reaches this code:
https://github.com/kamailio/kamailio/blob/master/src/core/ut.h#L508
so it seems it would block the process and so it might cause delay of
packet processing if many processes do this at the same time.
Can someone confirm this?
Hello im using kamailio 5.5.3
and im trying to use pseudo vars in ds_list_exists and ds_select function but it does not work.
ds_list_exists return -2
with ds_list_exists("6") it works
$var(dset)=6 or $avp(dset)=6 it does not work
ds_list_exists("$var(dset)") --> return -2
ds_list_exists("$avp(dset)") --> return -2
Thanks.
Forwarding my reply to the list, using gmail's reply button set Henning as
the sole recipient :-\
---------- Forwarded message ---------
From: George Diamantopoulos <georgediam(a)gmail.com>
Date: Sat, 26 Jun 2021 at 02:25
Subject: Re: [SR-Users] Possible memory leak on 5.5.x (new)?
To: Henning Westerholt <hw(a)skalatan.de>
Hello Henning,
Thanks for your reply. Here's what has come up after a few hours:
shm55: https://pastebin.com/h9JCePmc
shm54: https://pastebin.com/Nx5xEEnA
It seems to me htable is the culprit? Are you seeing anything different? 54
has been running for 77020 seconds, 55 for 28521 (significantly less).
I'm going to turn it off until we figure something out...
BR,
George
On Fri, 25 Jun 2021 at 18:17, Henning Westerholt <hw(a)skalatan.de> wrote:
> Hello,
>
>
>
> Good observation. Please run the memory statistics CLI commands to get
> more hints about the module that might cause it (as per below link). Then
> please report more details. If you can point to a particular module, you
> can also open an issue on our tracker.
>
>
>
> https://www.kamailio.org/wiki/tutorials/troubleshooting/memory
>
>
>
> Cheers,
>
>
>
> Henning
>
>
>
> *From:* sr-users <sr-users-bounces(a)lists.kamailio.org> *On Behalf Of *George
> Diamantopoulos
> *Sent:* Friday, June 25, 2021 4:53 PM
> *To:* Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org>
> *Subject:* [SR-Users] Possible memory leak on 5.5.x (new)?
>
>
>
> Hello all,
>
>
>
> I'm still investigating the (most likely non-kamailio-related) memory leak
> of my previous message to the list, there have been no developments so far.
> I'll update if anything changes.
>
>
>
> This concerns a new finding which seems to affect kamailio 5.5.x. I have
> two kamailio instances receiving the same traffic via round-robin. I
> upgraded only one of them to 5.5.1 and left the other to 5.4.6 as I feared
> of any issues arising. I was lucky to do so, because with identical
> configuration, 5.5.x seems to run out of SHM very quickly. Here are links
> to graphs produced by our monitoring system:
>
>
>
> Old kamailio (no memory leak): https://pasteboard.co/K8fVBiD.png
>
> New kamailio (possible leak): https://pasteboard.co/K8fVS9N.png
>
>
>
> The configuration uses mtree, htable, vars and vns extensively. Has anyone
> come across anything similar? Let me know if I can provide any further
> information to help disect this. Thanks!
>
>
>
> BR,
>
> George
>
Hi All,
Please help!
I am getting an error when trying to start kamailio after making some
changes to the configuration file.
Error is :
*rse error in config file /etc/kamailio/kamailio.cfg, line 878, column
47-57: '('')' expected (function call)*
*rse error in config file /etc/kamailio/kamailio.cfg, line 878, column
102: bad expression*
*rse error in config file /etc/kamailio/kamailio.cfg, line 878, column
102: bad command*
*atus=255/EXCEPTION*
*rse error in config file /etc/kamailio/kamailio.cfg, line 878, column
103: bad command*
*rse error in config file /etc/kamailio/kamailio.cfg, line 878, column
105: bad command*
* used inside params of another function: xlog*
*rse error in config file /etc/kamailio/kamailio.cfg, line 879, column
28: use of function execution inside params not allowed*
*Server.*
Changes made is :
# Routing to foreign domains
route[SIPOUT] {
if (uri==myself) return;
#Start of change
if (mongodb_find_one("mongodbsrv1", “telephone", “cXXX", " {
\'did\': \'2XXXXXXXXXXXXXXXXX\' } ", "mgr1")) {
xlog("response from mongodb is
[[$mongodb(mgr1=>value)]]\n");
}
#End of change
append_hf("P-hint: outbound\r\n");
route(RELAY);
exit;
}
Please can someone tell me what I am doing wrong. Error says syntax but I
have tried many permutations of the suggested syntax with no luck.
Please help
Thanks
--
-----
Ekunwe
EDO Network Services, Inc.
Tel: 601.497.3932
Hello Everyone,
First of all, this is my first ever e-mail to the group so I'd like to thank all the developers who built this great product and thank everyone for the kind and helpful community. I've been using Kamailio for the past 8 months, I've had lots of fun with it.
My issue is I'm trying to set-up JS Kemi interpreter for my Kamailio-Asterisk box. I translated the config file to JS kemi, which wasn't too bad but I'm getting a type error for the "KSR.kx.ifdef("WITH_ASTERISK")" statement that I used.
Jan 17 15:11:26 anayurt kamailio[8261]: 0(8261) DEBUG: app_jsdt [app_jsdt_api.c:1478]: dukopen_KSR(): module 'KSR' has been initialized
Jan 17 15:11:26 anayurt kamailio[8261]: 0(8261) DEBUG: app_jsdt [app_jsdt_api.c:473]: jsdt_sr_init_child(): loading js script file: /usr/local/etc/kamailio/kamailio-basic-kemi-jsdt.js
Jan 17 15:11:26 anayurt kamailio[8261]: 0(8261) ERROR: app_jsdt [app_jsdt_api.c:447]: jsdt_kemi_load_script(): failed running: TypeError: undefined not callable (property 'ifdef' of [object Object])
Jan 17 15:11:26 anayurt kamailio[8261]: 0(8261) ERROR: <core> [core/sr_module.c:865]: init_mod_child(): error while initializing module app_jsdt (/usr/local/lib64/kamailio/modules/app_jsdt.so) (idx: 0 rank: -127 desc: [main])
Jan 17 15:11:26 anayurt kamailio[8261]: 0(8261) ERROR: <core> [main.c:1671]: main_loop(): error in init_child(PROC_INT) -- exiting
In syslog I can see that kex.so module is loaded successfully and 'KSR' has been initialized. I don't know what I'm doing wrong. A few sample JS Kemi code that I could find did not use the kx.ifdef function. Was this a new addition to the interpreter? Perhaps my Kamailio version (kamailio 5.5.0 x86_64/linux) does not support it?
Thank you all in advance.
Kaan.
We are looking for some help (possibly a paid consultant) to help us with our Kamailio setup.
To keep this as short as possible: we use Kamailio as a NAT proxy to bridge our external IP and our private IP asterisk
servers (via dispatcher).
However both the external IP and the internal IP that the Kamailio server uses are virtual IPs created by keepalived.
Because of that neither mhomed nor fix_nated_contact work, and we use force_send_socket to direct the traffic.
We run linux Debian 10 for the OS.
Also we do not use a DB at all, everything is done with local config files.
The problem is that when traffic goes out the Contact header has a private IP in it, like:
Contact: <sip:##########@10.10.10.###]:5060>
There are 2 possible solutions to this:
1. Make changes to linux, keepalived and/or Kamailio so that Kamailio recognize the virtual IPs so that mhomed and
fix_nated_contact work as usual.
2. Create a manual header rewrite system.
If solution #2:
What we need to do is create a way to rewrite the contact header to the external IP on the way out, and on the way back
rewrite it back to the internal server that the call is already connected to.
Not sure if we will need to store those paths on the server or if we can do some kind of cheat with another persistant
header like P-Preferred-Identity or P-Asserted-Identity (i.e. store the internal IP in the name field or something).
If anyone out there know of a way to do this or wants to give it a try please reach out to me.
Thank you all for your time.
--
^C
Chad
Hello,
We are attempting to setup an instance of Kamailio to serve as an IMS
for a test setup of 4G/5G NSA with Open5GS.
The instructions on the Kamailio wiki and provided by Open5GS
currently specify to use FoHSS as the HSS solution for Kamailio IMS. As
this HSS solution has not seen significant development in a few years
we are reticent to deploy it on our implementation.
Is there an alternative open source HSS which can be deployed to serve
as the HSS for Kamailio instead of FoHSS, and would there need to be
any adjustments to Kamailio to reflect the deployment of this HSS
instead of FoHSS?
Thank you,
Benjamin Simon
Research Assistant
Florida Institute for Cybersecurity Research, University of Florida
Email: bsimon4(a)ufl.edu
Disclaimer: Florida has a very broad public records law. As a result,
any written communication created or received by the University of
Florida will be made available to the public and media, upon request,
unless otherwise exempt. Under Florida law, e-mail addresses are public
records. If you do not want your e-mail address released in response to
a public records request, do not send electronic mail to this address.
Instead, contact by phone or in writing.
Hi,
I have a pair of kamailio stateful proxies and am trying to achieve
Active-Passive failover model with DMQ dialog replication. Primary Proxy is
working in the middle of 2 SBCs and all nodes are within the same network
so NATing is NOT involved ;secondary proxy is accessible through VPN. It's
pretty simple configuration, proxy is just adding and removing headers in
the middle.
So if I stop the kamailio service on primary IP , SBCs blacklist that and
start sending new invites to secondary IP. That's all good.
But if I reproduce this failover during a connected session , SBCs do not
send mid-dialog requests/responses to failover IP. I can see they still try
to send messages to primary SBC which obviously end up with timeout. I
understand the most natural solution is HA with Virual IP but it's not
possible because secondary IP is accessible through VPN.
I tried to use DNS SRV record with priorities but that also does not work
with mid-dialog messages, I also have tried to change record-route/via
header to fqdn through advertise_address. Its not changing record-route but
via only but I am still not getting expected results.
Any guidance of possible solution(s) here will be appreciated.
--
Muhammad Danish Moosa
" The core of mans' spirit comes from new experiences. "___ Christopher
McCandless
Hello!
I need help uploading a list of aliases through a dbtext to use them via
myself.
It is likely that there is some configuration problem:
*loadmodule "db_text.so"*
*modparam("db_text", "db_mode", 1)modparam("db_text", "emptystring", 1)*
*loadmodule "alias_db.so"modparam("alias_db", "db_url",
"text:///etc/kamailio/dbtext")*
*[root@kamailio]$ cat dbtext/dbaliasesid(int,auto) alias_username(string)
alias_domain(string) username(string) domain(string)1::sip.test.local::*
*[root@kamailio]$ kamcmd core.aliases_list{ myself_callbacks: yes
aliases: { }}*
If done through a script (alias=sip.test.local), then everything works fine:
*[root@kamailio]$ kamcmd core.aliases_list{ myself_callbacks: yes
aliases: { alias: { proto: *
address: sip.test.local port: *
} }}*
--
BR,
Denys Pozniak
Hi All,
I have tried couple of methods to retrieve last via IP of SIP message but failed to retrieve it, trying to retrieve the source
- @hf_value.via[-1].host,
it simply prints the exact text back @hf_value.via[-1].host
- $sel((a)hf_value.via[-1])
it doest give the IP but the entire via value
SIP/2.0/TCP 172.31.30.144;branch=z9hG4bKf8bd.753341d2000000000000000000000000.0.host
@via[-1].host
it also simply prints the exact text back @via[-1].host
Regards,
Adarsh Chauha