Hello,
I'm using Kamailio in stateless mode to send redirect responses.
I've noticed that the responses are sent to the packet source IP address, and to the port found in the Via header.
I'm a bit confused. I was expecting the response to be sent to the address and port found in the Via header.
Is it the expected behaviour ?
I'm using Kamailio 5.5.2.
Thanks for your help !
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
Hello,
After upgrading kamailio 5.6.1 to 5.6.2 (from source)
debug 3 doesn't print messages related to calls to the log file.
I only see OPTIONS transactions in debug.
Does anyone have the same problem?
Best regards,
Julia.
Hi Sir/Madam,
I'm trying to set a Fresswitch as the Voicemail server.
I set the #!define WITH_VOICEMAIL in the kamailio.cfg file to enable the default VoiceMail configuration.
Set the voicemail server address as following :
voicemail.srv_ip = "10.120.100.179" desc "VoiceMail IP Address"
voicemail.srv_port = "5060" desc "VoiceMail Port"
And the kamailio server address is 10.120.100.180.
Here face the issue, the Subscribe message could NOT be authorized. The SUBSCRIBER message with token could NOT be forworded to Freeswitch.
The log is also attached.
It's resllay strange. Please help check. Thanks!
BR,
Sparkle Zou
Hello,
I'm wondering if ims_auth is tested with actual SIM-card/AKAv1-MD5
authentication? Bit concerned with that since as per authorize.c source
code can see for AUTH_AKAV1_MD5/AUTH_AKAV2_MD5/AUTH_MD5 response is counted
in the same way, though algorithms are different.
--
obelousov.tel
Hi Community,
I am using scscf from Kamailio and I need that scscf sent a REGISTER to a third party AS during the registration phase.
When scscf received a new registration, no REGISTER is sent to the AS.
SAR-SAA is well processed but only 200 OK is sent for the REGISTER to the pcscf.
REGISTER is well sent to the AS only for Re-Registration or De-registration.
Do you have any idea to handle this case?
Regards
Anthony
Hi
Using the dialog module to generate CDR for billing.
We have this situation:
Kamailio 'routing' instance, where dialog is used and billing happens.
Kamailio 'register' instance.
IC is connected to the routing instance. Customers register to the
register instance.
Call originates from 'A' via IC through routing instance to register
instance and rings customer 'B'. This times out and 'call forwarding' is
engaged by sending the call back to the routing instance with a new RURI
containing the call forwarding destination 'C'. An appropriate
'no-answer' Diversion Header is added.
Now we need two different CDR for this scenario (add more CDR if the
call is forwarded multiple times)
One from the A to B leg to bill termination fee to the IC carrier.
One from B to C to bill the forwarded call with destination 'C' to
customer B.
The issue I now face is that I only get the kamailio routing instance
to generates one dialogue from B to C despite handling two
separate connections.
How could that challenge be solved?
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 everyone,
I'm using Kamailio as TLS gateway/filter for an internal Asterisk server
the network schema is :
UAC (tls) --- INTERNET --- (tls) KAMAILIO (sip udp) --- LAN --- (sip udp)
ASTERISK
with kamailio in multi-homed mode
WAN network interface for sip tls
LAN network interface for sip udp to asterisk server
UAC address 80.0.0.1
KAMAILIO Wan address 80.0.0.2
KAMAILIO Lan address 172.16.0.2
ASTERISK Lan address 172.16.0.3
SIP-TLS call example
If the UAC use tls(sip) all works good
[image: sip-ok-small.jpeg]
SIPS call example
If the same UAC use his default settings tls(sips) , there are problems
with ACK and BYE packet
[image: sip-ko-small.jpeg]
the SIP OK SDP packet from kamailio to UAC is
2022/10/10 09:28:47.854721 80.0.0.2:5061 -> 80.0.0.1:49992
SIP/2.0 200 OK
Via: SIP/2.0/TLS 192.168.0.1:49992
;rport=49992;received=80.0.0.1;branch=z9hG4bKM01j360VrBdH5VSV
Record-Route: <sip:172.16.0.1:5060
;lr;r2=on;ftag=F798336AA08EF9FCFA89D3BDFE0C8C8F>
Record-Route: <sip:80.0.0.2:5061
;transport=tls;lr;r2=on;ftag=F798336AA08EF9FCFA89D3BDFE0C8C8F>
Call-ID: 1EC2AB679C1EA1BAB60FD03B09F878020B12D3E7
From: <sips:200@pbx.voip.com>;tag=F798336AA08EF9FCFA89D3BDFE0C8C8F
To: <sips:*43@pbx.voip.com>;tag=961d0e22-a4f0-453c-9870-6a41578afc96
CSeq: 2 INVITE
Contact: <sip:172.16.0.2:5060>
P-Asserted-Identity: "xxxxxxxxx" <sips:*43@pbx.voip.com>
Content-Type: application/sdp
and the UAC send the ACK and BYE from a different tcp port and to:
sips:172.16.0.2:5060;transport=tcp
2022/10/10 09:28:48.495365 80.0.0.1:49996 -> 80.0.0.2:5061
ACK sips:172.16.0.2:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TLS 192.168.0.1:49996;branch=z9hG4bKppftdQze20lnwT41;rport
Route: <sip:80.0.0.2:5061
;transport=tls;lr;r2=on;ftag=F798336AA08EF9FCFA89D3BDFE0C8C8F>
Route: <sip:172.16.0.1:5060;lr;r2=on;ftag=F798336AA08EF9FCFA89D3BDFE0C8C8F>
Max-Forwards: 70
To: <sips:*43@pbx.voip.com>;tag=961d0e22-a4f0-453c-9870-6a41578afc96
From: <sips:200@pbx.voip.com>;tag=F798336AA08EF9FCFA89D3BDFE0C8C8F
Call-ID: 1EC2AB679C1EA1BAB60FD03B09F878020B12D3E7
CSeq: 2 ACK
kamailio error log
WARNING: <core> [core/forward.c:229]: get_send_socket2(): protocol/port
mismatch (forced udp:172.16.0.2:5060, to tls:172.16.0.3:5060)
How can I solve this ?
Best Regards
Leo
Hello guys, after changing instance type from t2 to t3a for kamailio server
in aws log(/var/log/kamailio.log) file and some other files are corrupted
and I can not touch,delete,create or anything and when kamailio start
receiving traffic it crashed.
Is there any particular reason for this? Basically on t2, they are under
/dev/sda1 and /dev/xvda. Under t3 they are nvme disks (biggest part of the
speed increase), so they are under /dev/nvme1n1.
Note: once I rollback to t2 everything is working as expected.
Hello,
I am trying to configure kamailio to use external antifraud protection using so called "traffic loop" when call is forwarded to external SIP proxy that would response even with same INVITE back or with error message if number is fraud.
schema: PBX -> kamailio -> traffic loop -> kamailio -> carrier
Kamailio in second and fourth step is the same.
Issue is that if kamailio receives same INVITE back to I would like to forward to next carrier it is possible, but kamailio struggles with transaction handling.
If ACK message come from PBX, kamailio will correctly forward it to traffic loop but when it comes back, function t_check_trans is failed and I cant relay it. Only workaround is to use send() message, but that causes deny of BYE message from carrier.
My question is following:
Is it possible to register two different transactions states for same message? If yes how? If no, would it help to send and receive messages on another network port or not?
Thank you,
Michal
Hello!
Due to I still experience irregular Kamailio 5.4 crashes (like 1/month)
related to SSL (using websockets and SIPS) I'm wondering, could openSSL
upgrade change the situation?
As of now in CentOS 7 I have 1.0.2k version.
Does anyone have experience to fix crash-related to TLS problems with
openSSL upgrade?
Or maye some tuneup of TCP parameters can help here?My current setup is
quite simple:
children=4
enable_tls=yes
tcp_accept_no_cl=yes
tcp_connection_lifetime=600
tcp_max_connections=998976 # 1000000 - 1024, so we're leaving 1k for system
reserve
tls_max_connections=998976
Number of clients ~ 200 constantly connected to websocket.
--
Best regards,
Igor
HI,
I am facing a problem related to the IMC module.
I have installed kamailio 5.2.x and I tried to list the members of a
room-qsipchat.
In my test environment the kamailio.cfg file it is very basic, the
kamailio server listen on
tcp=192.168.100.192:15006
the client run on a PC with IP address 192.168.100.156
the imc outbound_proxy is set
modparam("imc", "db_url", DBURL)
modparam("imc", "imc_cmd_start_char", "#")
modparam("imc", "outbound_proxy",
"sip:sip-test.quintetto.it:15006;transport=tcp")
The client start by sending a #join message to kamailio and looking the
log file I can see that the room-qsipchat has been create, and also I
received the message 200 OK.
By using the tcpdump I can see the join message from the Client to
kamailio server and the reply from kamailio to the client.
When I send the #list message to the room-qsipchat , I expecting to
receive the message relate to room's members and the 200 OK message.
When I tcp dumping I saw the following messages
********************************************************************
Request from client to list the members - from client to server
********************************************************************
TX 538 bytes Request msg MESSAGE/cseq=57652 (tdta0x77b26460a8) to TCP
192.168.100.192:15006:
MESSAGE sip:room-qsipchat@sip-test.quintetto.it SIP/2.0
Via: SIP/2.0/TCP
192.168.100.156:48129;rport;branch=z9hG4bKPjRzgOBgY6vfKZ8Fh8GA4CWheCO840Xzud;alias
Max-Forwards: 70
From:
<sip:quintetto00@sip-test.quintetto.it>;tag=1is.Ng6ZKJmCT1uAJ9WuJhe3hiQysj9f
To: <sip:room-qsipchat@sip-test.quintetto.it>
Call-ID: GwOQMLFfIq7o7jvF4OQlJ-jBb2OBaAKY
CSeq: 57652 MESSAGE
Accept: text/plain, application/im-iscomposing+xml
Route: <sip:sip-test.quintetto.it:15006;transport=tcp;lr>
Content-Type: text/plain
Content-Length: 5
#list
********************************************************************
The server ask for the authentication - from server to client
********************************************************************
2022-10-17 15:45:25.837 4700-10610/it.quintetto.qsipchat
D/pjlib(pjsua_1): RX 574 bytes Response msg 407/MESSAGE/cseq=57652
(rdata0x77b3337330) from TCP 192.168.100.192:15006:
SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/TCP
192.168.100.156:48129;rport=48129;branch=z9hG4bKPjRzgOBgY6vfKZ8Fh8GA4CWheCO840Xzud;alias;received=192.168.100.156
From:
<sip:quintetto00@sip-test.quintetto.it>;tag=1is.Ng6ZKJmCT1uAJ9WuJhe3hiQysj9f
To:
<sip:room-qsipchat@sip-test.quintetto.it>;tag=1e5fbdd4b14eff95c400342f4634da91.e417
Call-ID: GwOQMLFfIq7o7jvF4OQlJ-jBb2OBaAKY
CSeq: 57652 MESSAGE
Proxy-Authenticate: Digest realm="sip-test.quintetto.it",
nonce="Y01doWNNXHVEyRtiAyN28xJdMjNIG8Ju"
Server: kamailio (5.2.8 (x86_64/linux))
Content-Length: 0
*********************************************************************
The client send the authenticated request - from client to server
********************************************************************
TX 755 bytes Request msg MESSAGE/cseq=57653 (tdta0x77b26460a8) to TCP
192.168.100.192:15006:
MESSAGE sip:room-qsipchat@sip-test.quintetto.it SIP/2.0
Via: SIP/2.0/TCP
192.168.100.156:48129;rport;branch=z9hG4bKPjj6uuy25r0kKlnICHKQWEaIweOex-sNyq;alias
Max-Forwards: 70
From:
<sip:quintetto00@sip-test.quintetto.it>;tag=1is.Ng6ZKJmCT1uAJ9WuJhe3hiQysj9f
To: <sip:room-qsipchat@sip-test.quintetto.it>
Call-ID: GwOQMLFfIq7o7jvF4OQlJ-jBb2OBaAKY
CSeq: 57653 MESSAGE
Accept: text/plain, application/im-iscomposing+xml
Route: <sip:sip-test.quintetto.it:15006;transport=tcp;lr>
Proxy-Authorization: Digest username="quintetto00",
realm="sip-test.quintetto.it", nonce="Y01doWNNXHVEyRtiAyN28xJdMjNIG8Ju",
uri="sip:room-qsipchat@sip-test.quintetto.it",
response="d495ec20cb1be8f1b605d4e5b1a4c357"
Content-Type: text/plain
Content-Length: 5
#list
**************************************************************************
The server send the 200 OK message - from server to client
********************************************************************
RX 447 bytes Response msg 200/MESSAGE/cseq=57653 (rdata0x77b3337330)
from TCP 192.168.100.192:15006:
SIP/2.0 200 ok
Via: SIP/2.0/TCP
192.168.100.156:48129;rport=48129;branch=z9hG4bKPjj6uuy25r0kKlnICHKQWEaIweOex-sNyq;alias;received=192.168.100.156
From:
<sip:quintetto00@sip-test.quintetto.it>;tag=1is.Ng6ZKJmCT1uAJ9WuJhe3hiQysj9f
To:
<sip:room-qsipchat@sip-test.quintetto.it>;tag=1e5fbdd4b14eff95c400342f4634da91.365f
Call-ID: GwOQMLFfIq7o7jvF4OQlJ-jBb2OBaAKY
CSeq: 57653 MESSAGE
Server: kamailio (5.2.8 (x86_64/linux))
Content-Length: 0
*********************************************************************************
Till here everything is OK.
But regarding the members when a TCP dumping I saw a message with the
room's members
that go from the kamailio server to the kamailio server
*********************************************************************************
MESSAGE sip:quintetto00@sip-test.quintetto.it SIP/2.0
Via: SIP/2.0/TCP
192.168.100.192:15006;branch=z9hG4bKf20a.be253b92000000000000000000000000.0
To: <sip:quintetto00@sip-test.quintetto.it>
From:
<sip:room-qsipchat@sip-test.quintetto.it>;tag=03e4c67b0f95c0aeb1f633479b4aa5cd-72f2
CSeq: 10 MESSAGE
Call-ID: 37db44aa523ea24a-6567(a)192.168.100.192
Max-Forwards:.70
Content-Length: 47
User-Agent: kamailio (5.2.8 (x86_64/linux))
Content-Type: text/plain
Members:
*sip:quintetto00@sip-test.quintetto.it
**************************************************************************************
a reply from the kamailio server to the kamailio server, with an
authenticated request
**************************************************************************************
SIP/2.0.407.Proxy Authentication.Required
Via: SIP/2.0/TCP
192.168.100.192:15006;branch=z9hG4bKf20a.be253b92000000000000000000000000.0
To:
<sip:quintetto00@sip-test.quintetto.it>;tag=1e5fbdd4b14eff95c400342f4634da91.cfc3
From:
<sip:room-qsipchat@sip-test.quintetto.it>;tag=03e4c67b0f95c0aeb1f633479b4aa5cd-72f2
CSeq: 10 MESSAGE
Call-ID: 37db44aa523ea24a-6567(a)192.168.100.192
Proxy-Authenticate: Digest realm="sip-test.quintetto.it",
nonce="Y01fQmNNXhbsHdM1THmENyJn1MH/VD/8"
Server: kamailio (5.2.8 (x86_64/linux))
Content-Length:.0
**************************************************************************************
bottom of line the outbound_proxy request for an authenticated request,
but kamailio do not reply to this request.
Could you please point me in the right direction?
Thanks a lot for any help.
Bye
--
------------------------------------------------------------------------
Ing. Giovanni Iamonte
Developments and technologies area
Quintetto Srl
Via Monte Navale, 1
10015 - Ivrea (TO)
mobile: +39 393 9196310
tel: +39 0165 1845290
e-mail: giovanni.iamonte(a)quintetto.it
web: www.quintetto.it
Hi sr-users,
Since ClueCon is going on right now, and some Kamailio community members
are involved I hope you will forgive a little promo here: I have a RHEL8
build of the just released 1.10.8 on Copr:
https://copr.fedorainfracloud.org/coprs/beaveryoga/FreeSWITCH-1.10.8/
Hope you will find it useful in your kamailio + Class 5 scenarios!
Cheers
Shih-Ping
Hello,
as I am not a user of dialog variables, I am turning to community to ask
for help testing the current master branch with configurations that make
use of dialog variables and acc dialog-based cdr generation.
With a few reports of issues related to dialog modules and unexpected
crashes, I looked over the code and noticed that the access of the value
for dialog variables was not protected, making them vulnerable of
invalid memory access in case of the variable was updated by another
process or dialog was terminated.
I introduced a couple of new functions to try to cover different use
cases of getting the dlg variable values, dialog management code was not
affected, but given that these commits need to be backported to stable
branch (5.6), I want to get proper feedback from community that things
work fine.
A previous attempt of a simpler fix was not enough, having side effects
to acc module for dialog-based cdr generation, because it was keeping
referenced to many dlg variables at the same time.
In short, it would be appreciated any feedback on testing dialog and acc
with dialog-based cdr generation using git master branch.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Nov 7-10, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hi
Looking for advise if anyone could point out where im going wrong.
My setup is Kamailio Ver 5.6.0 running in azure , rtpengine Version: git-master-dc395d5, behind kamailio I have asterisk ver 18.12.1
Kamailio conf I have interface set as below
listen=udp:10.3.1.6:5060 advertise WANIP:5060
and rtpengine.conf set as below
interface = eth0/10.3.1.5
but when I can make a call I don't get any audio, rtpengine.log extract below shows that rtp is going to the private IP rather that the Public IP of the phone that initiated the call, do I need to set rtpengine_manage() to fix this?
Oct 7 09:38:58 kamailio-proxy rtpengine[8127]: INFO: [NmE0MjdhMzA4NjUzYWVjMmRjYzIxNGJjMTY4ZTc2MWE. port 30278]: [core] Confirmed peer address as 10.3.1.5:12890
Oct 7 09:38:58 kamailio-proxy rtpengine[8127]: INFO: [NmE0MjdhMzA4NjUzYWVjMmRjYzIxNGJjMTY4ZTc2MWE. port 30278]: [core] Kernelizing media stream: 10.3.1.5:12890 -> 10.3.1.6:30278 | 10.3.1.6:30298 -> 192.168.0.123:40042
Oct 7 09:39:00 kamailio-proxy rtpengine[8127]: INFO: [NmE0MjdhMzA4NjUzYWVjMmRjYzIxNGJjMTY4ZTc2MWE. port 30279]: [core] Confirmed peer address as 10.3.1.5:12891
Kind regards
gerry
Gerry Kernan | Technical Director
Mobile: +353(0)86-170 9790
[Graphical user interface, website Description automatically generated]<https://www.infinityit.ie/>
[A picture containing text, clipart Description automatically generated,Icon Description automatically generated]
Since on the topic of tsilo:
1. I watched Federico’s presentation on it from 2015, and his examples insinuate that it is necessary to store the index and label of a suspended transaction in some external vehicle, e.g. htable, for use with ts_append_to(). Why would one do this when it is possible to call ts_append() based on R-URI alone?
2. The appropriate pattern of interaction between tsilo and http_async_client — which I imagine to be a rather common use-case — is rather unclear.
If I use http_async_query() to call out to a PN service, with $http_req(suspend) = 1, what should happen to the current instance of SIP request processing?
That is to say:
request_route {
. . .
t_check_trans();
if(is_method(“REGISTER”)) {
. . .
save(“location”, “0x06”);
if(ts_append(“location”, “$tu”)) {
xlog(“success”);
}
return;
}
else if(is_method(“INVITE”)) {
# PN stuff.
ts_store(“$var(uri)”);
http_async_query(“http://url”, “PUSH_REPLY”);
return; # <— ???
}
}
route[HTTP_PUSH_REPLY] {
. . .
if(!t_relay())
sl_reply_error();
}
I should add that this proxy front-ends a registrar, but is not in itself a registrar. It contains a shadow registrar - hence the save() calls - in order to be able to take advantage of the ’tsilo’ module, given its dependency on registrar/usrloc.
This leads to the difference that the gateway receives requests with RURIs that have already been resolved to a contact binding elsewhere, so there are no lookup() calls. How should this play into the http_async_client workflow?
Appreciate any help!
— Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Hi,
When there are no stored transactions for an AOR, it logs this error:
Oct 13 07:48:18 gw1 /usr/sbin/kamailio[14758]: ERROR: tsilo [ts_append.c:64]: ts_append(): failed to retrieve record for sip:abalashov@sip.evaristesys.com
But not having transactions ts_store()’d is a rather normal occurrence, right? It is the expected case the vast majority of the time that someone registers.
Does that mean one is simply destined to have this scary-looking error, to the syslog ERROR facility, for a normal runtime condition? Is there not some principle against using attention-grabbing error messages this way? Would a patch to fix be welcome?
— Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Hi Sir/Mada,
I'm trying to integrate kamailio + freeswitch, according to the manual http://kb.asipto.com/freeswitch:kamailio-3.3.x-freeswitch-1.2.x-sbc on Kamailio v5.6
modified the kamailio.cfg file, add WITH_FREESWITCH parts, then kamailio could NOT start up.
Could you please help check, what should be modified to fit the version 5.6?
Thanks!
BR,
Sparkle Zou
> The duration of the media playback is returned from the play_media()
> command (see `media_duration` modparam). You could use some sort of
> timer to invoke media unblocking after media playback ends. Sadly my
> Kamailio-Fu isn't strong enough to be able to tell you how to run this
> sort of timer. :)
>
> Cheers
Thank you for the hint.
I was thinking about timers, but rtimer cannot be triggered in an event
route. I used a "timer" module, it could trigger another route from the
event route but when a new route is triggered unblock_media() is not
aware of the call-id and if i assign call-id to a variable in the event
route, that variable is unavailable at new route. Hope that make sense.
here is my peace of code:
loadmodule "timer.so"
modparam("timer", "declare_timer", "PB_TIMER=START,5000");
route[START]{
xlog("current call id at event route is $ci, but call-id avp is
$avp(call_id)");
unblock_media("all");
timer_enable("PB_TIMER",0); #we need to disable timer or it will be
triggered over and over again
}
event_route[dialog:start]{
xlog("L_INFO", "dialog started, received 200OK");
#block_media();
play_media("all file=/usr/local/src/myfile.wav");
$avp(call_id)=$ci;
timer_enable("PB_TIMER",1);
}
Hi,
I'm using latest kamailio 5.6.2 and rtpengine.
I need to play announcement to both parties when call is answered by
callee. Now I run play_media in event route but when audio start
announcement sounds like we have a 50% packet loss. After it is
completed there is no problem with audio both sides. I figured out that
if i do block_media() my announcement play perfectly but i dont
understand how to do unblock_audio() after announcement ends.
Appriciate any help!
here is my code:
event_route[dialog:start]{
xlog("L_INFO", "dialog started, received 200OK");
block_media();
play_media("all file=/usr/local/src/myfile.mp3");
#unblock_media();
}
--
Best Regards
Stepan Kislovich
Hi everyone,
I am using Kamailio as an IMS server. The UE first sends its SIP REGISTER
over TCP and gets a 401 in response. Then the UE starts sending its packets
over ESP. These ESP packets reach P-CSCF but are not delivered to its
process by the kernel. We can see ESP packets in P-CSCF using wireshark.
The ports used are correct (both client and server) based on
their prior negotiations. We have also checked xfrm policies using the
command `ip xfrm policy list` and seems right regarding prior negotiations.
Our Linux kernel version is 5.4 and the OS is Ubuntu 20.04. Has anyone any
clue of the root cause of this problem? Any ideas are appreciated.
Thanks,
Aliakbar
hello,
I'm not very familiar with PHP, so this may be a stupid question.
I'm following https://github.com/kamailio/kamcli to install kamcli. Now i am at
$ pip3 install -r requirements/requirements.txt
which i should "run inside kamcli folder".
So far, I don't have a kamcli folder, so i assume i have to create it. Any recommendations where ?
Thanks in advance,
Volker
So I have a very odd situation that requires me to suppress retransmissions when using t_reply() to send a response back to a UAC that is horribly broken but I'm stuck with for the time being. In the previous iteration of this platform it was fine since I was using a stateless reply, so even though it wasn't "right" it still worked out. I need to replicate this behavior in the event route for http_async_client(), which prevents me from being able to use t_release().
Anyone have any clever ideas?
Brooks Bridges
1200 S. Rogers Circle, Unit 6
Boca Raton, FL 33487
Office: 916-235-2097 Main: 888-444-1111
email: bbridges(a)call48.com | web: www.call48.com
Confidentiality Notice: This e-mail, and any attachment to it, contains privileged and confidential information intended only for the use of the individual(s) or entity named on the e-mail. If the reader of this e-mail is not the intended recipient, or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that reading this e-mail is strictly prohibited. If you have received this e-mail in error, please immediately return it to the sender and delete it from your system.
Hi everyone,
I have some troubles using acc_json module. I can't load it and I don't
understand why it fails.
The configuration is quite basic: Debian 10 and Kamailio (fails in 5.5
and 5.6) installed using APT repository.
Here is parts of my config:
loadmodule "kex.so"
loadmodule "corex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "dialog.so"
loadmodule "acc.so"
loadmodule "acc_json.so"
modparam("acc_json", "cdr_enable", 1)
I also tried with those 4 additionnal settings with no success:
modparam("acc_json", "cdr_output_syslog", 1)
modparam("acc_json", "cdr_log_facility", "LOG_LOCAL3")
modparam("acc_json", "cdr_enable", 1)
modparam("acc_json", "cdr_expired_dlg_enable", 1)
As soon as I set cdr_enable to 1, it displays the "*cannot register ACC
CDR JSON engine*".
Here is logs:
0(2488) DEBUG: <core> [core/sr_module.c:969]: init_mod(): acc_json
0(2488) DEBUG: <core> [core/sr_module.c:722]: find_mod_export_record(): found export of <bind_acc> in module acc [/usr/lib/x86_64-linux-gnu/kamailio/modules/acc.so]
0(2488) INFO: acc_json [acc_json_mod.c:159]: mod_init(): janson version : 2.12
0(2488) DEBUG: <core> [core/mem/q_malloc.c:374]: qm_malloc(): qm_malloc(0x7f0a6b154010, 56) called from acc: acc_mod.c: acc_register_engine(725)
0(2488) DEBUG: <core> [core/mem/q_malloc.c:419]: qm_malloc(): qm_malloc(0x7f0a6b154010, 56) returns address 0x7f0a6b220b40 frag. 0x7f0a6b220b08 (size=56) on 1 -th hit
0(2488) DEBUG: acc_json [acc_json_mod.c:269]: acc_json_init(): init ...
0(2488) DEBUG: acc [acc_mod.c:741]: acc_register_engine(): new acc engine registered: json
0(2488) DEBUG: <core> [core/sr_module.c:722]: find_mod_export_record(): found export of <load_dlg> in module dialog [/usr/lib/x86_64-linux-gnu/kamailio/modules/dialog.so]
0(2488) ERROR: acc_json [acc_json_mod.c:245]: mod_init(): cannot register ACC CDR JSON engine
0(2488) ERROR: <core> [core/sr_module.c:974]: init_mod(): Error while initializing module acc_json (/usr/lib/x86_64-linux-gnu/kamailio/modules/acc_json.so)
ERROR: error while initializing modules
May it be related to the Jansson version ? I use the native one from
Debian 10, v2.12.
Do you have any advice, or some tips to debug my issue ?
I don't really want to use acc module and parse CDRs manually from
syslog, json is far easiest for this job.
Thank you
--
Alexis
R&D
Sewan
Apparently, the emails are received on the fr unisys dot com address.
So maybe there is a need to clean the sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org> and
sr-users-bounces(a)lists.kamailio.org
<mailto:sr-users-bounces@lists.kamailio.org> list.
If this is the case, thanks to keep only the fr unisys dot com.
Cordialement.
Patrick GINHOUX
Unisys | +33 1 46 69 52 12 | +33 6 60 32 24 74 | patrick.ginhoux(a)unisys.com
De : Henning Westerholt <hw(a)gilawa.com>
Envoyé : lundi 10 octobre 2022 09:32
À : Ginhoux, Patrick <patrick.ginhoux(a)fr.unisys.com>
Objet : RE: Mails received twice in my Inbox
EXTERNAL EMAIL - Be cautious of all links and attachments.
Hello,
Ive checked last week directly on the list server. Maybe one subscription
is old and and does not send mails anymore, and the mails are doubled from
your side? Just guessing obviously, have not checked it yet. You should be
able to check the email headers to see which address is actually used and
maybe some forwarding is done from your side.
If you like I can remove one subscription, let me know which one.
Cheers,
Henning
From: Ginhoux, Patrick <patrick.ginhoux(a)fr.unisys.com
<mailto:patrick.ginhoux@fr.unisys.com> >
Sent: Monday, October 10, 2022 8:39 AM
To: Henning Westerholt <hw(a)gilawa.com <mailto:hw@gilawa.com> >
Subject: RE: Mails received twice in my Inbox
Im back again.
After having removed the address with fr unisys dot com, I received these
2 emails on my last one for approval :
And later, still 2 copies of each emails :
Same for yesterday :
Except you see something wrong for the address, Im going to investigate
internally.
Cordialement.
Patrick GINHOUX
De : Ginhoux, Patrick
Envoyé : jeudi 6 octobre 2022 14:10
À : Henning Westerholt <hw(a)gilawa.com <mailto:hw@gilawa.com> >
Cc : Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org> >
Objet : RE: Mails received twice in my Inbox
Thanks for the list. I have now removed the one with fr unisys dot com and
will wait for new emails on the other address.
But it is still strange this problem happened recently.
Cordialement.
Patrick GINHOUX
Unisys | +33 1 46 69 52 12 | +33 6 60 32 24 74 |
<mailto:patrick.ginhoux@unisys.com> patrick.ginhoux(a)unisys.com
De : Henning Westerholt <hw(a)gilawa.com <mailto:hw@gilawa.com> >
Envoyé : jeudi 6 octobre 2022 13:32
À : Ginhoux, Patrick <patrick.ginhoux(a)fr.unisys.com
<mailto:patrick.ginhoux@fr.unisys.com> >
Cc : Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org> >
Objet : RE: Mails received twice in my Inbox
EXTERNAL EMAIL - Be cautious of all links and attachments.
Hello,
you are subscribed with two addresses, only list the domains below:
at fr unisys dot com
at unisys dot com
You can change your subscription with the URL: <https://lists.kamailio.org>
https://lists.kamailio.org
Cheers,
Henning
From: Ginhoux, Patrick < <mailto:patrick.ginhoux@fr.unisys.com>
patrick.ginhoux(a)fr.unisys.com>
Sent: Thursday, October 6, 2022 1:25 PM
To: Henning Westerholt < <mailto:hw@gilawa.com> hw(a)gilawa.com>
Cc: Kamailio (SER) - Users Mailing List <
<mailto:sr-users@lists.kamailio.org> sr-users(a)lists.kamailio.org>
Subject: RE: Mails received twice in my Inbox
Hi,
Im sure Im not registered with different account, but who can check that
in the mailing list to be sure ?
Actually, I registered in 2017 and this issue occurs recently but I cant
tell exactly since when.
Cordialement.
Patrick GINHOUX
Unisys | +33 1 46 69 52 12 | +33 6 60 32 24 74 |
<mailto:patrick.ginhoux@unisys.com> patrick.ginhoux(a)unisys.com
De : Henning Westerholt <hw(a)gilawa.com <mailto:hw@gilawa.com> >
Envoyé : jeudi 6 octobre 2022 11:06
À : Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org
<mailto:sr-users@lists.kamailio.org> >
Cc : Ginhoux, Patrick <patrick.ginhoux(a)fr.unisys.com
<mailto:patrick.ginhoux@fr.unisys.com> >
Objet : RE: Mails received twice in my Inbox
EXTERNAL EMAIL - Be cautious of all links and attachments.
Hello,
Strange issue. Stupid question, but you are not registered two times to the
mailing list, maybe with different accounts?
Cheers,
Henning
--
Henning Westerholt <https://skalatan.de/blog/> https://skalatan.de/blog/
Kamailio services <https://gilawa.com/> https://gilawa.com
From: sr-users < <mailto:sr-users-bounces@lists.kamailio.org>
sr-users-bounces(a)lists.kamailio.org> On Behalf Of Ginhoux, Patrick
Sent: Wednesday, October 5, 2022 10:04 AM
To: <mailto:sr-users@lists.kamailio.org> sr-users(a)lists.kamailio.org
Subject: [SR-Users] Mails received twice in my Inbox
Hi,
Since several weeks, I received the same mails twice in my Inbox.
Examples :
Is there anybody else that has the same thing ?
Thanks in advance for your help.
Cordialement.
Patrick GINHOUX
Hello,
Kamailio SIP Server v5.6.2 stable release is out.
This is a maintenance release of the latest stable branch, 5.6, that
includes fixes since the release of v5.6.1. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.6.x. Deployments running previous v5.6.x
versions are strongly recommended to be upgraded to v5.6.2.
For more details about version 5.6.2 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2022/10/kamailio-v5-6-2-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Please see my output and see if you can help me resolve the error
● kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server
Loaded: loaded (/usr/lib/systemd/system/kamailio.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Thu 2022-10-06 23:42:33 CDT; 10min ago
Process: 9931 ExecStart=/usr/sbin/kamailio -DD -P /var/run/kamailio/kamailio.pid -f $CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY (code=exited, status=255)
Main PID: 9931 (code=exited, status=255)
Oct 06 23:42:32 s181866.wholesaleinternet.net systemd[1]: Unit kamailio.service entered failed state.
Oct 06 23:42:32 s181866.wholesaleinternet.net systemd[1]: kamailio.service failed.
Oct 06 23:42:33 s181866.wholesaleinternet.net systemd[1]: kamailio.service holdoff time over, scheduling restart.
Oct 06 23:42:33 s181866.wholesaleinternet.net systemd[1]: Stopped Kamailio (OpenSER) - the Open Source SIP Server.
Oct 06 23:42:33 s181866.wholesaleinternet.net systemd[1]: start request repeated too quickly for kamailio.service
Oct 06 23:42:33 s181866.wholesaleinternet.net systemd[1]: Failed to start Kamailio (OpenSER) - the Open Source SIP Server.
Oct 06 23:42:33 s181866.wholesaleinternet.net systemd[1]: Unit kamailio.service entered failed state.
Oct 06 23:42:33 s181866.wholesaleinternet.net systemd[1]: kamailio.service failed.
Thank you
Hello,
Kamailio SIP Server project is organizing another meeting of its
developers during November 16-17, 2022, hosted again by sipgate.de in
Dusseldorf, Germany.
The event is intended to facilitate the interaction between Kamailio
developers and to offer a convenient environment for working together on
several topics of high interest for the project, including writing code
for Kamailio and its tools, improving documentation, or discuss about
future development.
Everyone from the community is welcome to join. Please note we have a
limited capacity of seats in the meeting room, the main policy for
accepting participants being first come first server. Also, very
important to be aware that this is not an event to learn how to use
Kamailio.
More details about the event, the venue, how to register, are available at:
* https://www.kamailio.org/w/developers-meeting/
Looking forward to those two intensive hacking Kamailio days in Dusseldorf!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Oct 10-13, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hi,
Since several weeks, I received the same mails twice in my Inbox.
Examples :
Is there anybody else that has the same thing ?
Thanks in advance for your help.
Cordialement.
Patrick GINHOUX
Hi all, regarding KEMI with python3, how to specify the python instance
we're going to use instead of the system's? i.e: virtual environment or
alternative installation of python3.
Asking as I'm having existing code running on a version which does not
match the system's, and upgrading system's to the specific version is not
feasible.
I tried specifying the python3 instance in src/modules/app_python3/Makefile
but it seems only to help with the build, later the system python is used
when kamailio starts.
Any help would be appreciated.
rgds,
Loi Dang Thanh
Phone : +84. 774.735.448
Email : loi.dangthanh(a)gmail.com
Hello,
Is there a way to set a default reply message for the xhttp module, or at
least drop the TCP connection when 'url_match' parameter is used? For
example, if used:
modparam("xhttp", "url_match", "^/rpc/")
which should handle only HTTP requests to this endpoint:
http://127.0.0.1:5060/rpc, now if HTTP requests are sent to another
endpoint (http://127.0.0.1:5060/v2) - then the TCP connection just stays
established even nobody process it. I know I can ignore this parameter and
filter all requests in the event_route, but dropping them before calling
event_route will make more sense for me, or at least add another
parameter to this module that can control that.
Thanks
I have installed RTPENGINE on debian 11 and on starting it I am getting the
following errors.
Oct 04 12:14:39 ip-172-31-26-106 systemd[1]: Starting NGCP RTP/media Proxy
Daemon...
Oct 04 12:14:39 ip-172-31-26-106 ngcp-rtpengine-iptables-setup[4655]:
/usr/sbin/ngcp-rtpengine-iptables-setup: 15:
/usr/libexec/rtpengine/rtpengine-get-table: not found
Oct 04 12:14:39 ip-172-31-26-106 rtpengine[4659]: INFO: [crypto] Generating
new DTLS certificate
Oct 04 12:14:39 ip-172-31-26-106 rtpengine[4659]: ERR: [core] FAILED TO
CREATE KERNEL TABLE 0 (No such file or directory), KERNEL FORWARDING
DISABLED
Oct 04 12:14:39 ip-172-31-26-106 rtpengine[4659]: INFO: [core] Startup
complete, version 11.1.0.0+0~mr11.1.0.0 git-master-c53f213f
Oct 04 12:14:39 ip-172-31-26-106 systemd[1]: Started NGCP RTP/media Proxy
Daemon.
Oct 04 12:14:39 ip-172-31-26-106 rtpengine[4659]: INFO: [http] Websocket
listener thread running
How do I solve this.
Best Regards,
Palany Chakadya
Dear All,
Thanks in advance for your help.
kamailio installed on debain 9, sometime kamailio failed to generate any
log in syslog files i.e messages/ syslog , not even generate a single line
against complete dialog or generate partial logs.
It's a random behaviour, as i am using syslog with the acc module, kamailio
also failed to write acc logs on file which is a very critical matter for
me.
In a script using xinfo, xnotice, xerr function, no output from these
functions in log file.
Please suggest a way to fix this issue.
modparam("xlog", "log_facility", "LOG_LOCAL1")
version: kamailio 5.5.4 (x86_64/linux) 9d039b
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: 9d039b
--
Regards
M Arqum
Hey All,
I always struggle with loose_route() and I implemented workarounds in the
past. But, I want to get a better understanding.
I have a SIP Endpoint -> Kamailio -> FreeSWITCH
The domain and alias is set to the ip address of the Kamailio server
(137.184.130.206)
When I get the ACK back from the SIP Endpoint it looks like this
ACK sip:18889072085@137.184.72.42:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.1.10.140:1052
;branch=z9hG4bK-524287-1---740db0025fa217ce;rport
Max-Forwards: 70
*Route: <sip:137.184.130.206;lr>*
Contact: <sip:1000@50.192.97.226:53790;transport=UDP>
To: <sip:18889072085@dsiptest.dsiprouter.net>;tag=5gv4etZ8tUUcH
From: <sip:1000@dsiptest.dsiprouter.net;transport=UDP>;tag=0af5b751
Call-ID: fWido7VIUKIEI6f6kf4vkQ..
CSeq: 1 ACK
User-Agent: Z 5.5.8 v2.10.17.2
Content-Length: 0
Kamailio will then remove the ACK and change the RURI to itself, which
causes an ACK loop. This is what is look like
*ACK sip:137.184.130.206;lr* SIP/2.0
Via: SIP/2.0/UDP
137.184.130.206;branch=z9hG4bK3fd.0cf34b683f0627ee2455594ea6cb2517.0
Via: SIP/2.0/UDP 10.1.10.140:1052
;received=50.192.97.226;branch=z9hG4bK-524287-1---740db0025fa217ce;rport=1052
Max-Forwards: 69
Contact: <sip:1000@50.192.97.226:1052;transport=UDP>
To: <sip:18889072085@dsiptest.dsiprouter.net>;tag=5gv4etZ8tUUcH
From: <sip:1000@dsiptest.dsiprouter.net;transport=UDP>;tag=0af5b751
Call-ID: fWido7VIUKIEI6f6kf4vkQ..
CSeq: 1 ACK
User-Agent: Z 5.5.8 v2.10.17.2
Content-Length: 0
*Question:*
What am I missing here? We have the alias set and we even set it in the
domain module (with the register_myself flag). We have workarounds for
this, but I would prefer to figure out how to have Kamailio handle this
natively via the loose_route or tm module.
Thanks in advance,
Hello!
In order to keep the SIP/TCP connection alive for some specific clients
(more precisely, specific firewalls) in long calls, I use periodic SIP
OPTIONS probes through the dialog module.
I noticed that when subscribers are using the SIP/TLS protocol, such
keepalives are not sent (with SIP/UDP and SIP/TCP working well).
I did not detect any obvious errors in the debug mode.
Are there any ideas why the messages are not being sent for SIP/TLS leg?
----
loadmodule "dialog.so"
modparam("dialog", "db_url", "DBURL")
modparam("dialog", "db_mode", 1)
modparam("dialog", "ka_timer", 5)
modparam("dialog", "ka_interval", 30)
modparam("dialog", "ka_failed_limit", 2)
modparam("dialog", "send_bye", 1)
modparam("dialog", "track_cseq_updates", 1)
modparam("dialog", "default_timeout", 7205)
-----
dlg_manage();
dlg_set_property("ka-src");
dlg_set_property("ka-dst");
--
BR,
Denys Pozniak
Hi,
With Kamailio 5.5.3 (with KEMI/Lua) I noticed it apparently had stopped
responding to OPTIONS in my test system. It can cause problems if a similar
issue appears in production.
Only thing i could observe it was apparently responding to INVITE and
CANCEL etc randomly , its pretty strange as it was not dead completely.
There was no core dump, I restarted and it started functioning again.
Any clues please?
--
Muhammad Danish Moosa
" The core of mans' spirit comes from new experiences. "___ Christopher
McCandless
Running into an issue where I can't access certain functions inside the response route or "route_name" for handling the asynchronous reply from an http_async_query() that's being run. Does anyone know what type of route that is considered to be? I know it's not a request route or a failure route based on the errors I'm getting, but I can't find anything that outlines what that route actually is.
Thanks!
Brooks Bridges
1200 S. Rogers Circle, Unit 6
Boca Raton, FL 33487
Office: 916-235-2097 Main: 888-444-1111
email: bbridges(a)call48.com | web: www.call48.com
Confidentiality Notice: This e-mail, and any attachment to it, contains privileged and confidential information intended only for the use of the individual(s) or entity named on the e-mail. If the reader of this e-mail is not the intended recipient, or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that reading this e-mail is strictly prohibited. If you have received this e-mail in error, please immediately return it to the sender and delete it from your system.
Hi,
Are there any known contraindications for replicating contacts using dmq/dmq_usrloc, and injecting those contacts into a database on one of the nodes using usrloc with `db_mode` 1 or 2?
Predictably, this is being done to support the use-case of getting registration status from database. If you think this should be done with JSONRPC, I am in complete agreement with you, but it’s not up to me. :-)
I am doing this with `db_mode` 2 now, and finding that, for a small number of AORs, one can find instances where they are consistently stored in memory but not present in the `location` table. The overall proportion of these AORs, out of thousands, seems to be quite small. It was initially somewhat higher, and it went down once I increased usrloc `timer_processes` and increased the sync interval from 30 to 60 seconds.
Nevertheless, it is still non-zero, and I am getting intermittent reports. I wonder if there are some prior experiences with this and anything to watch out, or if `db_mode` 1 might be a superior choice. I personally cannot see how that would be; it seems to have all the performance downsides of mode 3. But perhaps if something about it is more “problem-free” vis-a-vis DMQ, it’s worth a shot?
— Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Hello,
following the recent new feature of #!ifexp based on snexpr
(https://www.kamailio.org/w/2022/09/ifexp-conditional-preprocessor-blocks/),
another preprocessor directive was added which allows defining IDs with
a value computed from the evaluation of an expression, respectively:
#!defexp ID EXP
The EXP can be any expression supported by snexpr, including the
previously defined IDs. For example:
#!define IPADDR 1.2.3.4
#!define PORT 5060
#!defexp SIPURI "sip:" + IPADDR + ":" + PORT
The result is that SIPURI is defined to sip:1.2.3.4:5060.
Another variant is available as #!defexps, which encloses the result of
the expression in double quotes, making it suitable to be used further
as string value:
#!defexps SIPURI "sip:" + IPADDR + ":" + PORT
The result is that SIPURI is defined to “sip:1.2.3.4:5060”.
More details at:
- https://www.kamailio.org/wikidocs/cookbooks/devel/core/#defexp
- https://www.kamailio.org/wikidocs/cookbooks/devel/core/#defexps
Testing would be appreciated, feedback can be addressed to sr-users
mailing list!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Nov 7-10, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hello everyone!
I'm testing calls with STIR/SHAKEN with a Secsipid module on a Kamailio
version 5.6.1 and ran into a problem. Outbound calls work fine when the
function *secsipid_add_identity* with appropriate parameters is called. But
as soon as I add function *secsipid_check_identity* to my configuration,
Kamilio would not start. Here is an error message I get:
*kamailio: CRITICAL: <core> [core/cfg.y:3791]: yyerror_at(): parse error in
config file /etc/kamailio/include/registrar.cfg, line 47, column 39:
unknown command, missing loadmodule?*
*loadmodule "secsipid.so"* is present and is above the function
*secsipid_check_identity* call. Both secsipid.so and secsipid_proc.so
module files are the correct version and present on the system.
Another question is related to the rpm package build. How do you build
additional modules? I made adjustment to the pkg/kamailio/Makefile file. In
the *cfg* section changed *$(MAKE) -C ../../src cfg* with *$(MAKE)
FLAVOUR=kamailio include_modules="secsipid secsipid_proc" -C ../../src cfg*.
Required modules appeared in the modules.lst file but their rpm packages
were not built.
Thank you very much!
Hi Community,
I'm experimenting with dmq to do dialog sync between two instances of
Kamailio. This works great so far. When I did my first experiments I
even could create a CDR when there was a failover. Since some Versions
(we are now on Version 5.6.1) I just get a acc-request in log but no
acc-cdr. In former versions this worked. Both server have the same
configuration and both server writes cdrs when theres no failover.
In case of a failover everything is fine, the dialogs are clean and
thanks to dmq all needed variables are replicated between the server.
There's just no cdr.
I found nothing on the issue-page on github but maybe somebody knows
something about it.
BR
Björn
--
Björn Klasen, Senior Specialist (VoIP)
TNG Stadtnetz GmbH, TNG-Technik
Projensdorfer Str. 324
24106 Kiel・Deutschland
T +49 431 7097-10
F +49 431 7097-555
bklasen(a)tng.de
www.tng.de <http://www.tng.de>
Executive board (Geschäftsführer):
Dr. Sven Willert (CEO/Vorsitz), Helmut Gertz,
Moritz Meis, Gunnar Peter, Sven Schade,
Carsten Tolkmit
Amtsgericht Kiel HRB 6002 KI
USt-ID: DE225201428
Die Information über die Verarbeitung Ihrer Daten
gemäß Artikel 12 DSGVO können Siehier <https://tng.de/privatkunden/datenschutz/>abrufen.
Hi Jerry,
I just joined so am unsure if you are good to go now but thought I would post my config as I also have a Freeswitch environment which I have placed Kamailio in front of to act as a load-balancing proxy. I also managed to get RTPEngine proxying through it too.
Here is the config, which I have created from Daniel’s default kamailio config. I have omitted the top portions of loading the modules and their settings. My dispatcher list is just a text file. I have two groups. One for registrations and outbound calls, and one for calls inbound coming from the FreeSwitch server.
In the NATMANAGE route, I currently have RTP proxying disabled as my free switch servers have external IPs and I let them handle the rtp stream.
On Freeswitch, I made the following changes to accomodate user/pass and IPAuth reg:
Changes to the Freeswitch servers listed in the dispatcher file
Edit /usr/local/freeswitch/conf/autoload_configs/acl.conf
<list name="proxy" default="deny">
<node type="allow" cidr=“IP address of Kamailio/32"/>
</list>
Edit /usr/local/freeswitch/conf/sip-profiles/internal-private.xml (or the sip-profile you need to edit in your instance)
<param name="apply-proxy-acl" value="proxy"/> #Add this line above the one below. This tells Freeswitch to look at the X-Auth-IP header which was inserted by Kamailio.
<param name="apply-inbound-acl" value="domains"/>
Then, restart freeswitch (with no active calls),
service freeswitch restart # or rescan the profile / reloadxml
I am not proxying RTP, however, I can un-comment out the stanza in the NATMANAGE route to get it to work.
The biggest gotcha for me was I was trying to use fix_nated_register when handling NAT for registrations instead of:
Fix_nated_contact() or the better set_contact_alias().
Using add_path_received(); in the Dispatcher just before sending to Freeswitch ensured all traffic returned to Kamailio too.
I am unsure of the SUBSCRIBE/PRESENCE stuff for you but the route should go out via the Kamailio proxy with this.
----------------------------
# main request routing logic
request_route {
xlog("L_WARN", "--- Going to <$ru>. src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si\n");
# per request initial checks
route(REQINIT);
# NAT detection
route(NATDETECT);
if(ds_is_from_list("33")) {
setflag(FLT_FS);
#xlog("L_WARN", "This source $si is from the dispatcher list.\n");
}
# CANCEL processing
if (is_method("CANCEL")) {
if (t_check_trans()) {
route(RELAY);
}
exit;
}
# handle retransmissions
if (!is_method("ACK")) {
if(t_precheck_trans()) {
t_check_trans();
exit;
}
t_check_trans();
}
# handle requests within SIP dialogs
route(WITHINDLG);
# record routing for dialog forming requests (in case they are routed)
# - remove preloaded route headers
remove_hf("Route");
if (is_method("INVITE|SUBSCRIBE")) {
xlog("L_WARN", "--- Going to <$ru>. src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si\n");
xlog("L_ALERT", "Marker 1\n");
record_route();
}
# account only INVITEs
if (is_method("INVITE")) {
setflag(FLT_ACC); # do accounting
}
if (isflagset(FLT_FS)) {
##t_on_reply("EXTERNAL_REPLY");
route(FROM_FS);
exit;
}
# handle presence related requests
route(PRESENCE);
# handle registrations
route(REGISTRAR);
if ($rU==$null) {
# request with no Username in RURI
sl_send_reply("484","Address Incomplete");
exit;
}
# dispatch destinations
route(DISPATCH);
return;
}
route[FROM_FS]
{
#record_route();
#loose_route_preloaded();
route(DLGURI);
route(RELAY);
exit;
}
route[RELAY] {
# enable additional event routes for forwarded requests
# - serial forking, RTP relaying handling, a.s.o.
if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {
if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");
}
if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");
}
if (is_method("INVITE")) {
if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");
}
if (!t_relay()) {
sl_reply_error();
}
exit;
}
#reply_route {
# if(status == 403) {
# xlog("L_WARN", "Forbidden from $si:$sp blah...\n");
# xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");
# }
#}
onreply_route[LOGRPL] {
if(status == 403) {
xlog("L_ALERT", "$rs response. Consider banning AVP \"ipbancandidate\" is $avp(ipbancandidate) ");
}
}
# Per SIP request initial checks
route[REQINIT] {
# no connect for sending replies
# Enable tracing for SNGREP
##sip_trace();
##setflag(24);
#
set_reply_no_connect();
# enforce symmetric signaling
# - send back replies to the source address of request
force_rport();
#!ifdef WITH_ANTIFLOOD
# flood detection from same IP and traffic ban for a while
# be sure you exclude checking trusted peers, such as pstn gateways
# - local host excluded (e.g., loop to self)
if(src_ip!=myself) {
if($sht(ipban=>$si)!=$null) {
# ip is already blocked
xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n");
exit;
}
if (!pike_check_req()) {
xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");
$sht(ipban=>$si) = 1;
exit;
}
}
#!endif
if($ua =~ "friendly|scanner|sipcli|sipvicious|VaxSIPUserAgent|pplsip|Hello\ SIP\ Automated") {
# silent drop for scanners - uncomment next line if want to reply
# sl_send_reply("200", "OK");
xlog("User agent is: $ua\n");
exit;
}
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if(is_method("OPTIONS") && uri==myself && $rU==$null) {
sl_send_reply("200","Keepalive");
exit;
}
if(!sanity_check("17895", "7")) {
xlog("Malformed SIP message from $si:$sp\n");
exit;
}
}
# Handle requests within SIP dialogs
route[WITHINDLG] {
if (!has_totag()) return;
# sequential request withing a dialog should
# take the path determined by record-routing
if (loose_route()) {
xlog("L_INFO", "Routing before DLGURI\n");
route(DLGURI);
if (is_method("BYE")) {
setflag(FLT_ACC); # do accounting ...
setflag(FLT_ACCFAILED); # ... even if the transaction fails
} else if ( is_method("ACK") ) {
# ACK is forwarded statelessly
route(NATMANAGE);
} else if ( is_method("NOTIFY") ) {
# Add Record-Route for in-dialog NOTIFY as per RFC 6665.
record_route();
}
route(RELAY);
exit;
}
if (is_method("SUBSCRIBE") && uri == myself) {
# in-dialog subscribe requests
route(PRESENCE);
exit;
}
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
# no loose-route, but stateful ACK;
# must be an ACK after a 487
# or e.g. 404 from upstream server
route(RELAY);
exit;
} else {
# ACK without matching transaction ... ignore and discard
exit;
}
}
sl_send_reply("404","Not here");
exit;
}
# Handle SIP registrations
route[REGISTRAR] {
if(!is_method("REGISTER"))
return;
xlog("L_WARN", "--- Going to <$ru>. src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si\n");
add_path_received();
$avp(ipbancandidate) = $si;
if(isflagset(FLT_NATS)) {
setbflag(FLB_NATB);
#!ifdef WITH_NATSIPPING
# do SIP NAT pinging
setbflag(FLB_NATSIPPING);
#!endif
}
route(DISPATCH);
if (!save("location")) {
sl_reply_error();
}
exit;
}
# Presence server route
route[PRESENCE] {
if(!is_method("PUBLISH|SUBSCRIBE"))
return;
sl_send_reply("404", "Not here");
exit;
}
# Caller NAT detection
route[NATDETECT] {
#!ifdef WITH_NAT
if (nat_uac_test("19")) {
if (is_method("REGISTER")) {
#fix_nated_register(); Disabled as we proxy registrations
#fix_nated_contact();
set_contact_alias();
##add_contact_alias();
#fix_nated_sdp("3");
xlog("L_ALERT", "Nat Registration nat fixed.\n");
} else {
if(is_first_hop()) {
set_contact_alias();
xlog("L_ALERT", "Contact NAT fixed\n");
}
}
setflag(FLT_NATS);
xlog("L_ALERT", "FLT_NATS flag set\n");
}
#!endif
return;
}
# RTPProxy control and signaling updates for NAT traversal
route[NATMANAGE] {
#!ifdef WITH_NAT
if (is_request()) {
if(has_totag()) {
if(check_route_param("nat=yes")) {
setbflag(FLB_NATB);
}
}
}
if (nat_uac_test("3")) {
#fix_nated_contact();
set_contact_alias();
##add_contact_alias();
force_rport();
}
if (has_body("application/sdp") && nat_uac_test("8")) {
fix_nated_sdp("11");
}
if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return;
###!ifdef WITH_RTPENGINE
## xlog("RTPEngine enabled\n");
## if(nat_uac_test("8")) {
## xlog("RTP 1\n");
## rtpengine_manage("SIP-source-address replace-origin replace-session-connection");
## } else {
## rtpengine_manage("replace-origin replace-session-connection");
## }
###!else
## if(nat_uac_test("8")) {
## rtpproxy_manage("co");
## } else {
## rtpproxy_manage("cor");
## }
###!endif
if (is_request()) {
if (!has_totag()) {
if(t_is_branch_route()) {
add_rr_param(";nat=yes");
xlog("Nat notation added!\n");
}
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
if(is_first_hop())
#fix_nated_contact();
set_contact_alias();
#add_contact_alias();
}
}
if(isbflagset(FLB_NATB)) {
# no connect message in a dialog involving NAT traversal
if (is_request()) {
if(has_totag()) {
set_forward_no_connect();
}
}
}
#!endif
return;
}
# URI update for dialog requests
route[DLGURI] {
#!ifdef WITH_NAT
if(!isdsturiset()) {
handle_ruri_alias();
xlog("L_INFO", "Routing in-dialog $rm from $fu to $du\n");
}
#!endif
return;
}
# Dispatch requests
route[DISPATCH] {
# round robin dispatching on gateways group '1'
remove_hf_re("Subject|P-.*|X-.*");
append_hf("X-Auth-IP: $si\r\n");
#add_rr_param(";nat=yes");
t_on_reply("LOGRPL");
if(!ds_select_dst("1", "0")) {
send_reply("404", "No destination");
exit;
}
#xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs: $xavp(_dsdst_=>attrs))\n");
xlog("L_WARN", "--- Going to <$ru>. src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si; $RAi; $Ri;\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
}
# Try next destionations in failure route
failure_route[RTF_DISPATCH] {
if (t_is_canceled()) {
exit;
}
# next DST - only for 500 or local timeout
if (t_check_status("500")
or (t_branch_timeout() and !t_branch_replied())) {
if(ds_next_dst()) {
xdbg("--- SCRIPT: retrying to <$ru> via <$du> (attrs: $xavp(_dsdst_=>attrs))\n");
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
}
# Manage outgoing branches
branch_route[MANAGE_BRANCH] {
xdbg("new branch [$T_branch_idx] to $ru\n");
xlog("L_ALERT", "Marker 20\n");
route(NATMANAGE);
return;
}
# Manage incoming replies
reply_route {
if(!sanity_check("17604", "6")) {
xlog("Malformed SIP response from $si:$sp\n");
drop;
}
return;
}
# Manage incoming replies in transaction context
onreply_route[MANAGE_REPLY] {
xdbg("incoming reply\n");
xlog("L_ALERT", "Marker 21\n");
if(status=~"[12][0-9][0-9]") {
route(NATMANAGE);
}
# if (has_body("application/sdp")) {
# rtpengine_manage();
# }
return;
}
# Manage failure routing cases
failure_route[MANAGE_FAILURE] {
xlog("L_ALERT", "Marker 23\n");
route(NATMANAGE);
if (t_is_canceled()) exit;
#!ifdef WITH_BLOCK3XX
# block call redirect based on 3xx replies.
if (t_check_status("3[0-9][0-9]")) {
t_reply("404","Not found");
exit;
}
#!endif
#!ifdef WITH_BLOCK401407
# block call redirect based on 401, 407 replies.
if (t_check_status("401|407")) {
t_reply("404","Not found");
exit;
}
#!endif
#!ifdef WITH_VOICEMAIL
# serial forking
# - route to voicemail on busy or no answer (timeout)
if (t_check_status("486|408")) {
$du = $null;
route(TOVOICEMAIL);
exit;
}
#!endif
return;
}
Hi all
On calls with privacy enabled to customers, I want to ensure no
information is disclosed. Not even if one would capture packets.
A PRACK and the 200 OK to a PRACK therefore may need the To and From
Header changed.
Unfortunately I seem not to be able to catch the 200 OK REPLY sent to a
PRACK with t_on_reply. It looks like they somehow pass completely
unprocessed through Kamailio (not completely Via Header are removed
accordingly)
Am I missing 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
______________________________________________________
Dear List,
I’m new to Kamailio and would like to set it up as a standalone general purpose SBC.
I’m having a hard time finding a guide specific for this. What can you recommend?
Thank you so much
With best wishes,
Unai Rodriguez
Hi,
Some exceptions generated in Python script cause a harmless traceback in the logs, while others cause Kamailio to crash:
Sep 22 06:28:34 proxy /usr/sbin/kamailio[3984]: CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 11
Sep 22 06:28:34 proxy /usr/sbin/kamailio[3957]: ALERT: <core> [main.c:783]: handle_sigs(): child process 3965 exited by a signal 11
Sep 22 06:28:34 proxy /usr/sbin/kamailio[3957]: ALERT: <core> [main.c:786]: handle_sigs(): core was generated
(gdb) where
#0 0x00007fdaea729079 in vfprintf () from /lib64/libc.so.6
#1 0x00007fdaea754179 in vsnprintf () from /lib64/libc.so.6
#2 0x00007fdac45e9afd in make_message () from /usr/lib64/kamailio/modules/app_python3.so
#3 0x00007fdac45e5bc9 in python_handle_exception ()
from /usr/lib64/kamailio/modules/app_python3.so
#4 0x00007fdac45ebfde in apy_exec () from /usr/lib64/kamailio/modules/app_python3.so
#5 0x00007fdac45ecef1 in python_exec2 () from /usr/lib64/kamailio/modules/app_python3.so
#6 0x0000000000474ee0 in do_action ()
#7 0x000000000048217d in run_actions ()
#8 0x0000000000474d39 in do_action ()
#9 0x000000000048217d in run_actions ()
#10 0x0000000000474d39 in do_action ()
#11 0x000000000048217d in run_actions ()
#12 0x0000000000474d87 in do_action ()
#13 0x000000000048217d in run_actions ()
#14 0x00000000004828c1 in run_top_route ()
#15 0x00000000005e8044 in receive_msg ()
#16 0x00000000004df772 in udp_rcv_loop ()
#17 0x0000000000429f5b in main_loop ()
#18 0x000000000043423e in main ()
Is there a reasonable way to try to prevent this type of mid-air explosion?
— Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
Hi,
I'm looking at a kamailio config where all substdef have the syntax
"!regexp!subst!flags", "!DB_URL!db.example.com!g" but i can't find this
syntax in the documentation. It's currently running on a fairly modern 5.x
version and as far as i know it has never been on 4.x or older.
Does anyone know where this syntax is from and if it's possible/recommended
to simply replace it with "/regexp/subst"?
*Fredrik* *Dahlgren* | Senior SIP/VoIP Engineer
fredrik.dahlgren(a)freespee.com | LinkedIn
<https://www.linkedin.com/company/freespee/> | Twitter
<https://twitter.com/freespee>