Hi Team
I'm still hunting down DMQ dialog issues.
https://www.kamailio.org/docs/modules/devel/modules/dialog.html#dialog.p.enable_dmq
Quote:
"Notably, it is not possible to send in-dialog requests on any but the
original proxy instance."
I make sure, that if a procied call (with same callID)
Hi Gang
While still hunting DMQ issues, I noticed that the OS is reporting UDP
drops. Maybe DMQ packets? Would DMQ re-send a lost packet?
I increased OS UDP RX buffers times 10 and monitoring counters.
I also found that DMQ can use tcp or tls as transport.
Could this help to prevent loosing
Hi
Further trying to eliminate every possible cause of UDP drops...
We use Homer as HEP server in conjunction with the siptrace module.
So to prevent DQM traffic to be sent to Homer I added:
event_route[siptrace:msg] {
if(is_method("KDMQ")) {
drop();
}
}
And had a closer look
Hi Anthony
You were spot on. Not a single crash occurred anymore after setting:
modparam( "db_mysql", "opt_ssl_mode", 1 )
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G-Leiter Commerce Kunden
__
Hi Karsten
> how are you measure the traffic you don't want to your Homer? Print stuff
> in that Kamailio event route or something else?
Basically, I want to mirror sip messages to homer, only sip messages
relevant to calls, not anything else which might be processed by
kamailio.
Hi
> I have a scenario on wich requires sequential fork (up to 30 possible
> destinations) with different
> Call-ID for each leg. I am using topoh module enabled, but it always puts the
> same Call-ID.
> Someone have a solution for this scenario?
AFAIK that is not possible as Kamailio, being a
Hi Daniel
> there is no automatic reload, be sure you do not have some timer routine
> (inside kamailio.cfg or cron.d) that does it, or an external application
> (e.g., management application).
Thank you, that was the cause. We have a cronjob which downloads rules
from a spit call blocklist
Hi all
I had a mistake in the branch routes, which caused the AVP not to get
added to the stack in a case. That's why I had such a hard time with
the indexes being all over the place.
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G-Leiter Commerce Kunden
Hi Bastian
> you can add a Record Route parameter to the initial INVITE [1] and for that
> parameter after loose_route() for in-dialog INVITE [2]
Thank you, that looks promising.
But now I face another issue with parallel branching.
On the branch route I do add_rr_param(";rtp=yes") if I need
Hi List
avp stacking is starting to drive me crazy... Somehow I don't
understand what is going on in this situation:
I have a main branch, and add two more branches with append_branch()
I use a on_branch_route trigger:
branch_route[BR_TO_CPE]
{
[Here, some code setting $var(needbh)]
Hi
We have reached 2 registered CPE and start facing issues.
Am I observing correctly that when ka_mode 4 is enabled, OPTIONS are
send simultaneously to all registered CPE and not spread over the
interval?
They could be the cause very high pps peaks on network equipment?
If so, is there a
Hi Alex
> Perhaps it is helpful to ask a more basic question: why are you using
> server-side keepalives?
Because of a *stupid* cloud hosted PBX vendor solution.
That vendor is hosting his PBX behind a NAT without SIP ALG.
NAT UDP Timeout 90 seconds!
That vendor refused to send any kind of
Hi
Just a guess:
https://www.kamailio.org/docs/modules/devel/modules/sqlops.html#idm85
If you define 'localhost' then the default socket (probably somewhere
in your MySQL config) ist taken.
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G-Leiter Commerce Kunden
> Is there a way to trigger a branch route for only some of the
> destinations added with append_branch? Or to trigger different
> branch routes for different destinations in one set added with
> append_branch?
Always the same, when the email is sent and I start thinking
Hi List
Imagine the following situation:
Two Kamailio registrar proxies handling the same domain. Location
Information synced via DMQ.
So if a device registers we don't know on which of the two registrar
proxies.
Core proxy is dispatching calls to either one of those registrars.
Core also
Hi List
Two Kamailio Nodes situation.
Node A: Routing Instance.
Node B: Registrar Instance.
An invite is sent from Node A to B.
Customer registered on B is 'busy' as example.
B initiates Call Forwarding by adding a Diversion Header and sending
the Invite back to A with a new R-URI towards the
Hi Alex
> If you're having to think about how to do things that break basic SIP
> semantics, it may be time to rethink your design.
:-) We went into production far down that rabbit hole now. It would be
quite hard to pull out from that far in.
> More particularly, passing requests from A to B
Hi Daniel
> the B should not do record_route() when forwards back INVITE to A.
Right, moving record_route() from the beginning of request_route{} to
the branch routes requiring this, solved this for the RR header on my
registrar node.
> Via is for routing back replies, if you remove it, node B
Hi List
Kamailio 5.5
# kamcmd stats.get_statistics dialog:
dialog:active_dialogs = 17
dialog:early_dialogs = 18446744073709551615
dialog:expired_dialogs = 0
dialog:failed_dialogs = 31198
dialog:processed_dialogs = 107519
Where could this early_dialog value come from?
Mit freundlichen Grüssen
> Is there a way to crank up debug output in the dialog and/or dmq module?
debug=3 is what I was looking for.
And that looks good:
DEBUG: dialog [dlg_dmq.c:142]: dlg_dmq_handle_msg(): body:
{"action":2,"h_entry":3217,"h_id":4523,"state":4,"start_ts":1700748833,"lifetime":43265,
...
That is
Hi
I'm opening an issue on github as I consider this a bug.
This fixes the issue:
route[DMQ_CAPTURE]
{
if(is_method("KDMQ"))
{
if(has_body("application/json") && $fU == 'dialog')
{
if (jansson_get("lifetime", $rb,
Hi
I'm trying to change the lifetime timer on a KDMQ dialog message before
handing it with dmq_handle_message();
if(has_body("application/json") && $fU == 'dialog')
{
if (jansson_get("lifetime", $rb, "$var(lifetime)"))
{
Hi List
I want to find a way to check how many users are regsitered.
https://www.kamailio.org/docs/modules/devel/modules/usrloc.html#usrloc.r.db_users
But no matter how I try, I get a 500 error...
# kamcmd ul.db_users location
And yes, the table is called 'location'.
I did try to find out
Hi
> But no matter how I try, I get a 500 error...
>
> # kamcmd ul.db_users location
Still curious why this does not work.
> Or would I need to query this directly from the database?
Solved my requirement:
snmpget -Oqv -v 2c -c NotActualCommunity localhost
Hi List
Via sql_xquery I get a stacked xavp aka array.
I would like to store that stacked xavp into a hash table for later usage in
other transactions. Is this
possible?
Via xarp_parameters explode or implode does not work as that would stringy the
same key multiple times.
Mit freundlichen
Hi Gang
I would like to set a variable specific to the branch. Is there a way?
append_branch($var(aor1));
$(branch(dst_uri)[-1]) = $var($dst1)
$(branch(want_plus)[-1]) = 1;
append_branch($var(aor2));
$(branch(dst_uri)[-1]) = $var($dst2)
$(branch(want_plus)[-1]) = 0;
t_on_branch("BR_T");
Hi Henning
> somehow the usrloc internal record id got duplicated. Are you seeing this
> error frequently or just on some occasions, like the restart you mentioned?
> You can try to activate this parameter:
> https://kamailio.org/docs/modules/5.7.x/modules/usrloc.html#usrloc.p.db_insert_update
Hi gang
location database contains multiple contacts for an AOR
The invite therefore is parallel branched to those multiple contacts.
Each reply from each branch is handled by MANAGE_REPLY.
rtpengine_manage() is called in MANAGE_REPLY to stop rtpengine
processing a failed call.
Unfortunately,
Hi Unai
> It looks like now I have all pieces configured and I can see output when I
> run "kamctl dialog show”. Is there a way to verify that the load balancing is
> working as expected (aside from reproducing the production scenario)? Is
> there any log to enable and/or look at? Any stats or
Hi Alex
Only drawback I have with this is, when cycling through registered
contacts and adding branches. I can only have one trigger.
> request_route {
>...
>
>if(jittery)
>t_on_branch("BRANCH_DECAF");
>else
>t_on_branch("BRANCH_REGULAR");
Hi Alex
> As is often the case, there is a useful opportunity here to step back, switch
> to decaf, and ask why you want to call 'exit' from a branch_route in the
> first place.
:-)
Actually I intended to call 'return(1)' to stop processing that actual
route and continue in the calling route
Hi
I was wondering what exactly happens with parallel branching in this
situation:
branch_route[BR_T]
{
if (condition)
{
# Stuff below not required
exit or return
}
do other stuff before relaying
}
Will this break, stop
Hi
I'm still looking for a better way to tell Kamailio that we want to
enter 'maintenance' and STAY in maintenance after a restart.
Maintenance is: Reject all messages without totag with 503 to prevent
creating new dialogues.
I could use a shared pv and the use kamcmd pv.shvSet to toggle it.
Ciao Christian
Unless you use rtpengine or similar, Kamailio won't do anything with
RTP.
So I fear, you have to sniff the INVITE + DSP and 200 OK + SDP of one
of those calls without audio. (tcpdump -nvs0 port 5060 on the kamailio
host for example)
Look at the
c=IN and m=audio lines in the SDP
Ciao Christian
> I set up a Kamailio SIP server in a virtual machine on a private network and
> i connect to this with a WireGuard VPN.
Maybe, provide more insight
Your Kamailio-Server also acts as the WireGuard Server?
All your SIP clients connect using WireGuard?
Can you ping from one
Ciao Christian
PCAP file would be easier to read. But let's see..
1st Leg:
Linode Client1 IP: 93.189.137.22 => Kamailio Server: 44.3.44.40
(73 from HB9EUE :-) )
That Linode Client has RTP on: 192.168.1.21
2nd Leg:
Kamailio (44.3.44.40) => Client2 (88.116.10.134) Grandstream
RTP Side 1:
Hi Bernd
I also use dual-stack.
When the destination has an ipv6 and ipv4 address in the DNS, then
kamailio should be able to use either of those protocols to reach it.
So:
CPE => ipv4 => Kamailio => ipv6 => CPE
should work, if the involved CPE play along!
Example: Cisco SPA112 don't know
Hi Christian
> this is interesting but when i install the package all start automatically.
> How can i disable this function (compilation for kernel module)?
> Maybe i need to install a different packege?
To disalbe kernel module usage:
rtpengine.conf
### for userspace forwarding only:
table =
Hi List
I have stumbled over this challenge:
I have a kamailio server without dialog module. Only tmx module, acting
as registrar / rtpengine host.
If the call is routed over that server once, this works fine.
If the call is routed more than once (call from one location to another
on same
Hi Gang
Somehow I don't get my head around NAT Flags and the nathelper module
https://www.kamailio.org/docs/modules/5.7.x/modules/nathelper.html
In the examples I found, there is: FLT_NATS and FLB_NATB
If I got it right, FLB_NATB is a branch flag, which shall indicate that
the device is
Hi Alex
> I wouldn't worry too much about these. They're kind of an anachronism.
I just stumbled over your article:
https://www.cnblogs.com/shunzh/p/14360712.html
This helps a bit. After looking again at the issue I observe, I think I
have narrowed it down on the alias not being set on the
Hi Calvin
> I'm trying to add something simple like the following:
>
> append_hf("X-testheader: True\r\n", "From");
>
> However, I don't see my X-testheader in a packet capture. Are there
> any common pitfalls that would prevent append_hf from working as
> expected?
Weird, I use this a lot and
Hi List
I am just wondering...
When I am sending the initial INVITE to a customer CPE, this goes
throug the whole location lookup and through a branch route in which I
make some last adjustments to the headers, like removing header the
customer shall not get (like P-Asserted-Identity which would
Hi Matthew
> However in my scenario I wish to first try one endpoint and then if it gets
> a 4XX response forward it to another UAC, and update the TO accordingly.
>
> Currently trying to call uac_replace_to twice shows an error and corrupts
> the TO header. Is there a work around for this?
I
Hi Omar
> Thanks for your replay. Lookup is depending on pseudo-variables and in my
> case I want to lookup for a static user "test" which is not included in the
> R-uri or not even the request SIP message.
>
> So is there any another way to do it?
Not sure what you exactly want to do. You
Hi John
> Those 5 vias remind me an old firmware of Cisco equipment. I think I found
> that
> once and solved with sems or something else acting as b2bua.
It's not a Cisco. It's an ARRIS CPE which used to be operated as
PacketCable CPE but for which also a SIP Firmware is available.
I would
Hi Karsten
> did you use some kind of db backend for topos like redis or mysql?
Well, you have to, to be able to store the route and via sets :-)
MySQL in use.
We might have figured out a possible cause.
This is the topology:
CPE <=> Kamailio Registrar <=> Kamailio Core <=> Interconnections.
Hi
By setting: branch_expire to the same value as dialog_expire which is
12 hours, now my headers get correctly restored on UPDATE and BYE.
But in this UPDATE scenario:
CPE A => Registrar A (topos) => Core => Registrar B (topos) => CPE B
I now have the phenomena that the Contact Header is
Good morning Henning
> one really effective way is the topos module. If you can not use this, you
> could switch to compact sip header. This way you save some bytes per
> header-field. But this is something that needs to be supported from the user
> agent as well. You could remove not needed
Hi
I'm having another go at topos trying to solve an issue of sip messages
getting to big for certain clients to process.
Unfortunately some methods (ACK/PRACK/BYE probably CANCEL) do not
contain a contact header, therefore the topology is still revealed (and
potentially a lot of via header
Hi Alex
> Not really a great answer for you, but I think you should reconsider using
> `topos` to reduce SIP message size.
>
> `topos` is complex and I'm not sure the added complexity pays off in this
> case, from a purely thermodynamic point of view.
So, any idea how to solve the issue?
At
Hi Alex
> There are lots of strategies for reducing message size, although the
> RFC-recommended (better said, mandated :-) approach is just to switch to TCP
> whenever your message sizes come within 200 bytes of the MTU, if I'm not
> mistaken.
Those CPE do not support TCP.
> Otherwise:
>
>
Hi
https://lists.kamailio.org/pipermail/sr-users/2020-July/109801.html
I have the exact same issue.
When the B side is starting a new transaction (UPDATE to refresh the
session in my case) without topos enabled, that transaction contains
one or multiple route header and a to_tag.
Therefore
Hi Gang
To process spiraling calls without the dialog module. I'm trying to use
a rr param to identify in which iteration I am.
So when I have a call spiraling through the same instance 3 times,
every time I process an invite I would do something like:
add_rr_param(";sp-count=$avp(sp-count)");
Hi
To determine, if rtpengine was engaged during an invite or not, I make
use of rr params for all messages in following transactions and I set
an avp for all messages in the current transaction.
When the call is canceled, I would need to call rtpengine_delete to
make sure rtpengine stops
Hi all
I have found another solution:
Don't use: setflag(FLT_DLG);
call dlg_manage() on every message entering request_route before trying
to set dlg_vars.
On a 422 reply I now get two CDR, but that is OK as long as I have
correct dlg_vars on the second almost identical call (endpoint
56 matches
Mail list logo