Hello!
I'm parsing 302 with, most of the time, multi contacts returned.
I do it like this:
get_redirects("*");
t_load_contacts();
and, finally, a test on !t_next_contacts().
This test fails when only one contact is present in 302.
Is it the expected behaviour?
From the documentation I understand that following t_load_contacts we must
use t_next_contacts.
If so, I believe that I shouldn't exit on !t_next_contacts() and do an
additional test to see if there is, at least, one attempt to do toward the
only contact returned?
Thanks for your feedback.
Regards,
Igor.
--
Cet e-mail a été vérifié par le logiciel antivirus d'Avast.
www.avast.com
Hi Community,
Any advice on how to handle a Retry-After header locally without sleeping?
I would like to suspend the transaction, schedule an event, wake up the
transaction after the event timer triggers, and resume the transaction. I
don't believe this is possible though.
Hi List
I want to be able to parallel branch a call to multiple registered
locations / multiple different AOR. So using the registrar lookup()
function can not be used.
I loop through all required AOR with reg_fetch_contacts, those could be
registered via a proxy and therefore require to use Path:
$ulc(aor=>path) in this case, contains the path to that destination.
On all 'additional' branches added with append_branch() I can set the
path using $branch(path).
But i struggle with the main aka first branch on which I directly set:
* $ru
* $fs
* $du
From the documentation, if I would use the registrar lookup() function,
then $du would correctly be set respecting the path for all contacts on
an AOR.
But who do I build $du manually with what I find in $ulc(aor=>path) when
not using lookup()?
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Hello:
I don't know if somebody can successfully run this tutorial for a solution
of open5gs with kamailio using docker. I have the next error after the
command:
docker compose -f 4g-volte-deploy.yaml build
and the output is:
[image: image.png]
[image: image.png]
[image: image.png]
I am running on Ubuntu 22.04, I also don't know if it is the same as Debian
11 (in the link of the download). Or how can I solve it?
Luis
El mié, 18 sept 2024 a las 19:30, LUIS FELIPE RAMOS TORRES (<
luis.ramost(a)pucp.edu.pe>) escribió:
> Hello
>
> Sorry for writing again, I followed your repository on github:
> https://github.com/herlesupreeth/docker_open5gs/tree/master, but I don't
> know how to build srslte:
>
> I have the next error when I build the srslte: docker build --no-cache
> --force-rm -t docker_srslte .
>
> I don't know if it is updated, maybe also I run it on a VM, and
> specifically in the "git checkout ......" I had the error.
>
> [image: image.png]
> Luis
>
> El mar, 17 sept 2024 a las 1:45, Supreeth Herle (<herlesupreeth(a)gmail.com>)
> escribió:
>
>> Hello Luis,
>>
>> When I use the github of RTPEngine, the master branch, when I run the
>>> command dpkg-checkbuildeps
>>
>>
>> I would not recommend installing the master branch of RTPEngine, rather
>> use the tag mr9.4.1 and install on Ubuntu 20.04. You can find all
>> dependencies to install here -
>> https://github.com/herlesupreeth/docker_open5gs/blob/master/rtpengine/Docke…
>>
>> If you just want a working setup of IMS + RTPEngine I would highly
>> recommend using https://github.com/herlesupreeth/docker_open5gs repo.
>> You can get the setup running with few steps.
>>
>> BR,
>> Supreeth
>>
>> On Tue, 17 Sept 2024 at 03:06, LUIS FELIPE RAMOS TORRES <
>> luis.ramost(a)pucp.edu.pe> wrote:
>>
>>> Hello Supreeth:
>>>
>>> Sorry if I reply to the message, but I am trying to install the
>>> tutorials, but I've got the same error. When I use the github of RTPEngine,
>>> the master branch, when I run the command dpkg-checkbuildeps, I get errors.
>>>
>>> If you would have an updated tutorial to run successfully and also
>>> recommend the Ubuntu version to avoid more errors, please it would help me.
>>>
>>> Luis
>>>
>>>
>>>
>>> El lun, 16 sept 2024 a las 10:32, Supreeth Herle (<
>>> herlesupreeth(a)gmail.com>) escribió:
>>>
>>>> Hello Luis,
>>>>
>>>> I am the author of the tutorial here -
>>>> https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/. That
>>>> tutorial is also not up-to-date. However, you can use the latest master
>>>> branch of kamailio, along with instructions here (installing dependencies
>>>> etc) -
>>>> https://github.com/herlesupreeth/docker_open5gs/blob/master/ims_base/Docker…
>>>> and configuration files from master branch of this repo
>>>> https://github.com/herlesupreeth/Kamailio_IMS_Config .
>>>>
>>>> As pointed out earlier, rtpproxy is not needed. It was a step I added
>>>> to test out VoIP (not IMS) calling. All you need is RTPEngine to test out
>>>> IMS.
>>>>
>>>> Hope it helps.
>>>>
>>>> BR,
>>>> Supreeth
>>>>
>>>> On Mon, 16 Sept 2024 at 17:22, LUIS FELIPE RAMOS TORRES via sr-users <
>>>> sr-users(a)lists.kamailio.org> wrote:
>>>>
>>>>> Hello Henning:
>>>>>
>>>>> Is this tutorial updated?
>>>>> https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/
>>>>>
>>>>> I don´t know about it. And also I guess that it is installed on Ubuntu
>>>>> 18 version.
>>>>>
>>>>> Cheers,
>>>>> Luis
>>>>>
>>>>> El lun, 16 sept 2024 a las 1:32, Henning Westerholt (<hw(a)gilawa.com>)
>>>>> escribió:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> the tutorial is using a Kamailio version that its long end of life
>>>>>> (5.3.x).
>>>>>>
>>>>>> Some of the instructions given there are also a bit odd, like first
>>>>>> installing rtpproxy, and then replacing it with rtpengine.
>>>>>>
>>>>>> Maybe you can reach out to the author of the tutorial. You need to
>>>>>> understand how the individual components work together in the end to be
>>>>>> able to debug it. Maybe somebody else figured out on this list how to do it
>>>>>> for an updated Kamailio.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Henning
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Henning Westerholt - https://skalatan.de/blog/
>>>>>> Kamailio services - https://gilawa.com
>>>>>>
>>>>>>
>>>>>>
>>>>>> > -----Original Message-----
>>>>>> > From: luis.ramost--- via sr-users <sr-users(a)lists.kamailio.org>
>>>>>> > Sent: Montag, 16. September 2024 02:14
>>>>>> > To: sr-users(a)lists.kamailio.org
>>>>>> > Cc: luis.ramost(a)pucp.edu.pe
>>>>>> > Subject: [SR-Users] About error running PCSCF
>>>>>> >
>>>>>> > Hi community:
>>>>>> >
>>>>>> > I am trying to run the Kamailio IMS, but I have the next error in
>>>>>> the module
>>>>>> > PCSCF
>>>>>> >
>>>>>> > I installed the Kamailio on a VM Machine, with UBuntu 18.04
>>>>>> >
>>>>>> > Commands:
>>>>>> > $ sudo -i
>>>>>> > # mkdir -p /var/run/kamailio_pcscf
>>>>>> > #kamailio -f /etc/kamailio_pcscf/kamailio_pcscf.cfg -P
>>>>>> /kamailio_pcscf.pid -DD
>>>>>> > -E -e
>>>>>> >
>>>>>> > Output:
>>>>>> > loading modules under config path:
>>>>>> >
>>>>>> /usr/lib64/kamailio/modules_k/:/usr/lib64/kamailio/modules/:/usr/lib/kama
>>>>>> > ilio/modules_k/:/usr/lib/kamailio/modules/:/usr/lib/x86_64-linux-
>>>>>> > gnu/kamailio/modules/:/usr/local/lib64/kamailio/modules
>>>>>> > 0(470) ERROR: <core> [core/modparam.c:164]: set_mod_param_regex():
>>>>>> > parameter <delete_delay> of type <2:int> not found in module
>>>>>> > <ims_registrar_pcscf>
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/kamailio_pcscf.cfg, line 399, column 51:
>>>>>> Can't set
>>>>>> > module parameter
>>>>>> > 0(470) ERROR: <core> [core/modparam.c:164]: set_mod_param_regex():
>>>>>> > parameter <ipsec_preferred_ealg> of type <1:string> not found in
>>>>>> module
>>>>>> > <ims_ipsec_pcscf>
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/kamailio_pcscf.cfg, line 417, column 59:
>>>>>> Can't set
>>>>>> > module parameter
>>>>>> > 0(470) ERROR: <core> [core/modparam.c:164]: set_mod_param_regex():
>>>>>> > parameter <recv_mode> of type <2:int> not found in module <ims_qos>
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/kamailio_pcscf.cfg, line 435, column 35:
>>>>>> Can't set
>>>>>> > module parameter
>>>>>> > 0(470) ERROR: <core> [core/modparam.c:164]: set_mod_param_regex():
>>>>>> > parameter <dialog_direction> of type <2:int> not found in module
>>>>>> <ims_qos>
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/kamailio_pcscf.cfg, line 436, column 42:
>>>>>> Can't set
>>>>>> > module parameter
>>>>>> > 0(470) INFO: pv [pv_shv.c:60]: shvar_init_locks(): locks array
>>>>>> size 16
>>>>>> > 0(470) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser:
>>>>>> failed to find
>>>>>> > command ipsec_forward (params 2)
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/route/register.cfg, line 260, column 42:
>>>>>> unknown
>>>>>> > command, missing loadmodule?
>>>>>> >
>>>>>> > 0(470) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser:
>>>>>> failed to find
>>>>>> > command ipsec_create (params 2)
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/route/register.cfg, line 264, column 77:
>>>>>> unknown
>>>>>> > command, missing loadmodule?
>>>>>> >
>>>>>> > 0(470) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser:
>>>>>> failed to find
>>>>>> > command ipsec_forward (params 2)
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/route/mo.cfg, line 114, column 31: unknown
>>>>>> > command, missing loadmodule?
>>>>>> >
>>>>>> > 0(470) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser:
>>>>>> failed to find
>>>>>> > command ipsec_forward (params 2)
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/route/mo.cfg, line 180, column 33: unknown
>>>>>> > command, missing loadmodule?
>>>>>> >
>>>>>> > 0(470) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser:
>>>>>> failed to find
>>>>>> > command ipsec_forward (params 2)
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/route/mt.cfg, line 11, column 34: unknown
>>>>>> > command, missing loadmodule?
>>>>>> >
>>>>>> > 0(470) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser:
>>>>>> failed to find
>>>>>> > command ipsec_forward (params 2)
>>>>>> > 0(470) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse
>>>>>> error in config
>>>>>> > file /etc/kamailio_pcscf/route/mt.cfg, line 99, column 42: unknown
>>>>>> > command, missing loadmodule?
>>>>>> >
>>>>>> > ERROR: bad config file (10 errors)
>>>>>> > 0(470) WARNING: <core> [core/mem/q_malloc.c:487]: qm_free():
>>>>>> > WARNING: free(0) called from cdp_avp: cdp_avp_mod.c:
>>>>>> > cdp_avp_destroy(226)
>>>>>> > 0(470) INFO: cdp [cdp_mod.c:255]: cdp_exit(): CDiameterPeer child
>>>>>> stopping
>>>>>> > ...
>>>>>> > 0(470) INFO: cdp [cdp_mod.c:257]: cdp_exit(): ... CDiameterPeer
>>>>>> child
>>>>>> > stopped
>>>>>> > 0(470) ERROR: ims_ipsec_pcscf [ims_ipsec_pcscf_mod.c:309]:
>>>>>> > mod_destroy(): Error destroying spi generator
>>>>>> > 0(470) ERROR: ims_ipsec_pcscf [ims_ipsec_pcscf_mod.c:313]:
>>>>>> > mod_destroy(): Error destroying port generator
>>>>>> >
>>>>>> > I guided form this tutorial:
>>>>>> https://ryantheelder.github.io/blog/2023/VoLTE/
>>>>>> >
>>>>>> > Please if somebody would help me, I appreciate it
>>>>>> >
>>>>>> > Finally my objective is to connect with srsRAN and open5GS to have
>>>>>> VoLTE
>>>>>> > service.
>>>>>> >
>>>>>> > Best wishes,
>>>>>> > Luis
>>>>>> > __________________________________________________________
>>>>>> > Kamailio - Users Mailing List - Non Commercial Discussions To
>>>>>> unsubscribe
>>>>>> > send an email to sr-users-leave(a)lists.kamailio.org
>>>>>> > Important: keep the mailing list in the recipients, do not reply
>>>>>> only to the
>>>>>> > sender!
>>>>>> > Edit mailing list options or unsubscribe:
>>>>>>
>>>>> __________________________________________________________
>>>>> Kamailio - Users Mailing List - Non Commercial Discussions
>>>>> To unsubscribe send an email to sr-users-leave(a)lists.kamailio.org
>>>>> Important: keep the mailing list in the recipients, do not reply only
>>>>> to the sender!
>>>>> Edit mailing list options or unsubscribe:
>>>>>
>>>>
Hi all!
got a client with 2 Kamailio servers using Pacemaker/Corosync with a VIP.
Kamailio is setup with dispatcher, and has been working since 2018.
This previous week, client migrated from a Cisco ASA firewall to a Fortinet
F5 firewall.
One of the Kamailio server is, apparently, working fine, receiving SIP
invites and processing them correctly.
When moving the VIP to the second Kamailio node, Kamailio is ignoring any
SIP message that is not OPTIONS, despite configuration (kamailio.cfg) being
exactly the same as in the node #1.
Also, note that using SNGrep, we can see clearly that SIP messages are
reaching the server, but Kamailio is just not processing any INVITE. In
fact, I added an output to log file right at the very beginning of the main
route and the line is added to log file ONLY if the SIP message is OPTIONS.
When the SIP message is INVITE, nothing is processed on Kamailio's side.
The listen parameter is set to 0.0.0.0 port 5060 and advertised IP set to
the Public IP.
Again, the main route is only :
route{
xlog(. ......);
}
Kamailio version is 5.1.6 (old, I know....) but it has been working since
Dec 2018!
What could be the issue?!
Why only OPTIONS are being , somehow, recognized by Kamailio and all other
SIP messages just ignored?
Also, to add some more weirdness to the mess, connecting an Asterisk server
on the same network, and sending a call to Kamailio node #2, it works!! SIP
messages of any kind are processed correctly by Kamailio on node #2.
So, why doesn't it work with SIP messages received via Public IP address,
even though the messages reach the server correctly (confirmed using
SNGrep) ???
I spent 5h this afternoon trying to understand what is wrong, but I'm stuck
.... and no clue so far, apart from suspecting of the new Gateway, which I
have no access to configurations.... but if OPTIONS are received &
processed OK, it wouldn't make sense that received INVITES would be ignored
by Kamailio, right?
Atenciosamente / Kind Regards / Cordialement / Un saludo,
*Sérgio Charrua*
Hello community!
I would like to ask for your help in solving a case. I thank you in advance
for any collaboration.
I have the following setup:
- *Asterisk (internal)* → *Kamailio (Proxy)* → *SIP Provider (PSTN)*
Both Asterisk and Kamailio are under my responsibility.
*Problem:*
When I initiate a call from Asterisk, I use Kamailio as the *outbound proxy*.
The *INVITE* is sent to the SIP provider, and the dialogue proceeds
normally until the provider responds with a *200 OK*, indicating the call
was answered.
However, the *200 OK* received from the provider contains a modification in
the *Contact* header, introducing a new IP address into the dialogue.
Presumably, this new IP is where the subsequent *ACK* should be sent.
The issue arises when Kamailio receives this *200 OK*: it overwrites the
*Contact* field, replacing the received IP with its own LAN IP, used for
communication with Asterisk. As a result, Asterisk sends the *ACK* back to
Kamailio, which, instead of forwarding it to the new IP from the *Contact*
in the *200 OK*, sends it to the SIP provider at the same address used for
the initial *INVITE*.
Since the *ACK* does not reach the IP expected by the provider (the new IP
introduced in the *Contact*), the provider continues to send repeated *200
OK* responses, until the call is disconnected due to a timeout, as a valid
*ACK* was never received.
I looked for conceptual answers in *RFC 3261* to support my conclusions,
but I couldn’t clearly relate the information there to the behavior
observed in this scenario.
*Key Questions:*
1.
*Should Kamailio forward the ACK to the new IP provided in the Contact
header of the 200 OK?*
2.
*Is the SIP provider correct in expecting the ACK to be sent to a
different address from the original one used in the INVITE?*
3.
*How can I configure Kamailio to ensure the dialogue proceeds correctly
and the ACK is sent to the correct IP?*
Hi Community,
Is it a common experience for architects to encounter issues with
active/active registrar designs? Specifically, when clients are the UAS of
a dialog? Some user agents accept INVITEs from any source once registered
while others are not as accepting.
There are ways around this using 302 redirect, but there seem to also be
ways per RFC to signal trusted nodes to clients. RFC 3608 seems to be an
excellent way to address this issue by communicating trustworthy nodes to
the client upon registration. However, the Service-Route header seems to
give options to the client rather than communicate trust.
No where in the RFC does trust seem to be mentioned in its design, however
one could imply it should be deduced by the presence of a Service-Route
header.
Nonetheless, even if it should communicate trust, it doesn't seem to do so
in all cases so the more logical approach to active/active is signal via a
302 redirect where the registration lives, handling INVITE transactions on
the server-side instead of client-side.
I'm curious to hear if there is any advice on from the community overcoming
trust issues with user agents in an active/active registrar design.
Hello Kamailio!
I'm etting up a kamailio server where it will receive STIP TLS connections from Zoom.
kamailio is closing TLS connections with error stating "SSL routines::no shared cipher (sni: unknown)" as below
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) DEBUG: tls [tls_server.c:270]: tls_complete_init(): Using initial TLS domain TLSs<default> (dom 0x7fbcd1e9dac8 ctx 0x7fbcd2229258 sn [])
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) DEBUG: tls [tls_domain.c:1018]: tls_server_name_cb(): SSL_get_servername returned NULL: return SSL_TLSEXT_ERR_NOACK
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) DEBUG: <core> [core/tcp_main.c:2845]: tcpconn_do_send(): sending...
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) DEBUG: <core> [core/tcp_main.c:2881]: tcpconn_do_send(): after real write: c= 0x7fbcd3cb85d0 n=7 fd=8
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) DEBUG: <core> [core/tcp_main.c:2882]: tcpconn_do_send(): buf=
Sep 18 13:28:02 dalia kamailio[18529]: [3B blob data]
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) ERROR: tls [tls_server.c:1312]: tls_h_read_f(): protocol level error
Sep 18 13:28:02 dalia kamailio[18529]: 9(18529) ERROR: tls [tls_util.h:49]: tls_err_ret(): TLS accept:error:0A0000C1:SSL routines::no shared cipher (sni: unknown)
did a tcpdump trace to check the ciphers Zoom are using in the TLS client hello, and there are 4 and are supported by openssl on TLSv1.2, BUT the reis no server_name extension in the client hello.
is this related to kamailio refusing the connection because there is no server_name in the client hello or something else?, if yes can it be forced to accept TLS connection without server_name specified ?
my tls.cfg file is below
[server:default]
method = TLSv1.2
verify_certificate = no
require_certificate = no
private_key = /etc/kamailio/key.pem
certificate = /etc/kamailio/certificate.pem
ca_list = /etc/ssl/certs/ca-certificates.crt
ca_path = /etc/ssl/certs
[client:default]
method = TLSv1.2+
verify_certificate = no
require_certificate = no
Hi Kamailio community.
There are a few fields in the usrloc cache I am interested in accessing at
runtime to influence routing decisions. I can use SQLops to achieve the
same functionality, however I'm interested in minimizing DB operations. I
would like to know if there is a generally accepted approach to
retrieving this information from the memory-hosted usrloc cache rather than
dipping into the database.