Hi,
I'm getting some CRITICAL logs when accessing the content of the $mbu
pseudovariable in a "onsend_route" function. The log lines look like this:
```
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:893 FIXME: null send_sock
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:1479 FIXME: null bind_address
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:493 null send socket
CRITICAL core 35847:core/msg_translator.c:493 null send socket
```
I've checked the msg_translator.c source file and there are many of
`LM_CRIT("FIXME: {message}\n");` calls, and I wonder if the "FIXME" tag
relates to the location of the error: a Kamailio error or there is an issue
in the user code.
Could I have more information about the "FIXME" tag?
Thanks in advance!
rtpengine module README tells this about module dependencies:
3.1. Kamailio Modules
The following modules must be loaded before this module:
tm module - (optional) if you want to have rtpengine_manage() fully functional
Looks like this is not correct. If Kamailio connects to rtpengine over
websocket protocol, then there is dependency on lwsc module.
I haven't checked if lwsc module works without tls module when wss is
used.
-- Juha
Hello,
I have an issue with filtering on the asterisk side, my requests are:
UsersPhones(bria) -> Kamailio -> Asterisk -> Sip Trunk Out.
The goal is to manage a new layer of protection ( IP filtering / Whitelisting ).
When I try to compile a list of Whitelisted IP in sip.conf I get this error:
NOTICE[205]: acl.c:748 ast_apply_acl: SIP contact ACL: Rejecting
'145.72.23.45' due to a failure to pass ACL '(BASELINE)'
WARNING[205]: chan_sip.c:17061 parse_register_contact: Domain
'5.12.16.2:48669' disallowed by contact ACL (violating IP
145.72.23.45)
WARNING[205]: chan_sip.c:17933 register_verify: Registration denied
because of contact ACL
The IP 145.72.23.45, is the proxy kamailio and if I added it to
sip.conf it works, but so does every ip afterwards.
I tried with contactpermit also with permit, the result is the same as
long as I permit the proxy ip it works. Is there something that I can
do on the asterisk side to activate this filtering Or there is
something that I can do in Kamailio so it will forward the realip ?
contactdeny=0.0.0.0/0.0.0.0
contactpermit=145.72.23.45/32
contactpermit=5.12.16.2/32
Thanks in advance,
Hi,
I would like to monitor kamailio via our nagios. Is there any working
plugin available for nagios nrpe to monitor shared memory and some other
config variables for kamailio 5.x that someone has used and could suggest?
Kind regards,
Angelo
It is possible to update value of max_while_loops dynamically in config
file?
For example, there could be a need to increase the max in some while
loop, but after the loop is done, decrease it again for other loops.
There exists an rpc command to do that, but I haven't found how to do it
in config file.
I tried
@cfg_seti.core.max_while_loops = 200;
but got syntax error.
-- Juha
Hi,
I try to modify the kamailio configuration to work between ipv4 and ipv6 clients. Clients are mobile sofphones, so they are mostly in background without registration.
1. When an INVITE arrives from IPV4 address, transaction is suspended and a push notification is sent to callee.
2. Callee gets push notification and registers to kamailio.
3. INVITE transaction continues.
My kamailio config is based on this article: https://kb.asipto.com/kamailio:kamailio-mixed-ipv4-ipv6 using rtpengine.
If clients are in foreground it works fine.
But, when a client is in background, kamailio knows nothing about the callee’s IP address (ipv4 or ipv6). The problematic case is the call from IPV4 to IPV6.
In this case the FLB_V4V6 flag is missing at continue, since in IPV4V6 route it cannot be set and the rtpengine tries the IPV4->IPV4 case. From the other side IPV6->IPV6. It is understandable, since FLB_V4V6 flag is missing in this case.
My question is: where and when should I set this flag?
Thanks.
Peter
I think I’ve found an edge case with the string transformations for line.count:
In pv_trans.c, the following code does not appear to consider the last line if there are multiple lines and the last one is not terminated with \n.
case TR_LINE_COUNT:
n=0;
for(i=0; i<val->rs.len; i++)
if(val->rs.s[i]=='\n')
n++;
if(n==0 && val->rs.len>0)
n = 1;
val->flags = PV_TYPE_INT|PV_VAL_INT|PV_VAL_STR;
val->ri = n;
val->rs.s = int2str(val->ri, &val->rs.len);
break;
This means that my count is always one off unless I force a blank line at the end of my string.
Also, this code does not cater for cases where there is a different line terminator, such as CR or CRLF as is the case when the string comes from a Mac or windows system, respectively; it might be useful to have a transformation for doing that as I’ve had to hack it using s.replace with hexadecimal escape codes (\r and \n do not work) in a variable.
With every blessing,
—
Daniel Donoghue
Hi Team,
Greetings!
I am trying to use Timer Module of Kamailio to keep calling particular route at particular time interval.
Here is the snippet of my config:
loadmodule "timer.so"
modparam("timer", "declare_timer", "MYTIMER=SHUTDOWN,5000,slow,enable");
route[SHUTDOWN] {
xlog("system shutdown: $sht(graceful_shutdown=>shutdown)\n");
}
But after restarting the Kamailio, I keep on getting parsing errors in every 5 sec and my route "SHUTDOWN" never get called.
Which means timer is getting called in every 5 sec but not able to call the route.
Could you please help me with this why these parsing errors coming?
am I missing some arguments here?
Kamailio Version: 5.5.X.
Errors:
Sep 23 15:29:31 N1VL-PA-SIP01 /usr/local/kamailio-5.5/sbin/kamailio[9907]: ERROR: <core> [core/parser/msg_parser.c:748]: parse_msg(): ERROR: parse_msg: message=<GET /timer HTTP/0.9#012#012>
Sep 23 15:29:31 N1VL-PA-SIP01 /usr/local/kamailio-5.5/sbin/kamailio[9907]: ERROR: timer [timer.c:204]: timer_handler(): parse msg failed
Sep 23 15:29:36 N1VL-PA-SIP01 /usr/local/kamailio-5.5/sbin/kamailio[9907]: ERROR: <core> [core/parser/msg_parser.c:748]: parse_msg(): ERROR: parse_msg: message=<GET /timer HTTP/0.9#012#012>
Sep 23 15:29:36 N1VL-PA-SIP01 /usr/local/kamailio-5.5/sbin/kamailio[9907]: ERROR: timer [timer.c:204]: timer_handler(): parse msg failed
Also, in place of timer module I tried using rtimer module as well which is also giving me similar results as per my requirement.
But Could you please help me with the pros and cons of both the modules timer and rtimer. Any thoughts on this would be appreciated
Surabhi Garg
Mobile - 91 783 888 7523
Hi Team,
According with the RFC3312 (https://datatracker.ietf.org/doc/html/rfc3312)
The SDP parameters are the following
We define the following media level SDP attributes:
current-status = "a=curr:" precondition-type
SP status-type SP direction-tag
desired-status = "a=des:" precondition-type
SP strength-tag SP status-type
SP direction-tag
confirm-status = "a=conf:" precondition-type
SP status-type SP direction-tag
**precondition-type = "qos" | token
strength-tag = ("mandatory" | "optional" | "none"
= | "failure" | "unknown")**
status-type = ("e2e" | "local" | "remote")
direction-tag = ("none" | "send" | "recv" | "sendrecv")
Which one should be the equivalent in the Kamailio?, is the a specific
module?
Br,
Joel Borrego (joel.borrego)