Hi
I have a setup where Kamailio is connected to several telephony providers using different IP addresses to communicate with them.
I am using the dispatcher module to route calls to the different providers.
My question is if there is a way to get the advertised address of the socket chosen by dispatcher?
I have a socket pointer in the XAVP but I can't figure out if it is possible to get the advertised address from it somehow.
Thanks in advance.
Tor
Hello,
Is there any way to advertise a different IP Address in the Record-Route
header individually per branch?
I have a setup here - where Kamailio is listening on 2 different
interfaces: Local IP and External IP. At the moment if the packet is coming
through the internal interface - I'm checking where is it going to and
based on that I'm setting the Record-Route header accordingly - and
everything works well, except when I have multiple branches: one going
through the internal interface and another one through the external one, so
in this case, I have to add a different record-route header per branch, by
doing this in the branch_route - it's not working and getting the
error: w_record_route_advertised_address(): Double attempt to record-route.
What would be another way to accomplish this?
HI all,
Just a quick heads up that RTPengine is now available in Debian
sid/unstable mainline repositories. Big thanks to our own Victor Seva
and Guillem Jover for making this possible.
Cheers
Playing around with WSS support:
if (nat_uac_test(64)) {
force_rport();
......
if (!add_contact_alias()) {
xinfo("Error aliasing contact <$ct>\n");
sl_send_reply("400", "Bad Request");
exit;
}
set_contact_alias() throws this error on ACK without Contact,
add_contact_alias() doesn't (and thats OK). Is this the expected behavior?
I will try this, thanks a lot for your help.
regards.
On Wed, Jun 15, 2022 at 5:43 PM Alex Balashov <abalashov(a)evaristesys.com>
wrote:
> Setting t_on_failure("FAILURE_ROUTE") before t_relay(), given a route
> block failure_route[FAILURE_ROUTE], as you are doing, should work.
>
> --
> 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/
>
>
> --
> 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/
>
>
> On Wed, Jun 15, 2022 at 8:34 AM Antonio Couto <couto.a(a)gmail.com> wrote:
>
>> Thanks for your support, I am trying to do this but to be honest I don't
>> know
>> how to arm the failure route for this case of "fr_inv_timer".
>>
>> When I received reply 183 I use t_set_fr() function to set the new value
>> for "fr_inv_timer",
>> do far so good, but I never received failure_route[0] when Kamailio
>> terminate the call sending 408,
>> even calling like this:
>>
>> t_on_failure("0");
>> t_relay();
>>
>> I can't find on documentation how to do this.
>> Thanks a lot
>>
>>
>>
>>
Someone know how to terminate a call on TM module from a external
application, http, websocket, udp or using other modules when the call on
183 state? I am making a answering machine detection analising audio from
RTPEngine recording daemon , but i need to disconnect the call before is
anwered byt remote side.
Kamailio INVITE >> Destination
<< 100 trying
<< 183 session progress
I need to comand Kamailio to drop this call from a external application in
this point.
I searched on each module but I can not find any solution.
Thanks in advance
Thanks for your support, I am trying to do this but to be honest I don't
know
how to arm the failure route for this case of "fr_inv_timer".
When I received reply 183 I use t_set_fr() function to set the new value
for "fr_inv_timer",
do far so good, but I never received failure_route[0] when Kamailio
terminate the call sending 408,
even calling like this:
t_on_failure("0");
t_relay();
I can't find on documentation how to do this.
Thanks a lot
There some way to set a callback route for TM´s "fr_inv_timer" ?
I want to receive this callback when its fires and before Kamailio send 408
Request Timeout to the caller ?
I tryed every callback available but I think I missing something or I will
need to implement on TM module.
Thanks in advance
Hi,
I think I have not yet understood how jsonrpc needs to be configured. In
kamcli I can issue the cmd "ul show" and I get a valid reply. When I
print "domain list" I get
error:
code: 500
message: Method Not Found
id: 6897
jsonrpc: '2.0'
The same applies to JSONRPC Commands with Siremis. Some commands work,
others are not found.
Do I need some special configuration?
Hi,
we have some Kamailio instances running (currently latest 5.4 release), and we need to restart it from time to time. We have a grafana graph showing the pkg memory usage of one random tcp listener, and it increases slowly over time. Config is pure python KEMI.
A mem dump directly after restarting Kamailio says this:
SipSeppBook22:tmp sdamm$ grep alloc pkgmem_before.log | awk '{ print substr( $0, 16, length($0) ) }' | sort | uniq -c | sort -k1n | tail -10
16 sipproxy qm_status(): alloc'd from core: core/re.c: subst_parser(301)
31 sipproxy qm_status(): alloc'd from core: core/sr_module.c: load_module(436)
31 sipproxy qm_status(): alloc'd from core: core/sr_module.c: register_module(236)
31 sipproxy qm_status(): alloc'd from core: core/sr_module.c: register_module(253)
40 sipproxy qm_status(): alloc'd from core: core/pvapi.c: pv_init_buffer(2139)
58 sipproxy qm_status(): alloc'd from core: core/cfg.lex: pp_define(1827)
133 sipproxy qm_status(): alloc'd from core: core/rpc_lookup.c: rpc_hash_add(101)
162 sipproxy qm_status(): alloc'd from core: core/counters.c: cnt_hash_add(339)
211 sipproxy qm_status(): alloc'd from core: core/cfg.lex: addstr(1448)
265 sipproxy qm_status(): alloc'd from core: core/pvapi.c: pv_table_add(236)
And after running for some weeks, the same dump looks like this:
SipSeppBook22:tmp sdamm$ grep alloc prod_pkgmem.log | awk '{ print substr( $0, 16, length($0) ) }' | sort | uniq -c | sort -k1n | tail -10
31 ifens5 qm_status(): alloc'd from core: core/sr_module.c: register_module(253)
40 ifens5 qm_status(): alloc'd from core: core/pvapi.c: pv_init_buffer(2139)
59 ifens5 qm_status(): alloc'd from core: core/cfg.lex: pp_define(1827)
133 ifens5 qm_status(): alloc'd from core: core/rpc_lookup.c: rpc_hash_add(101)
161 ifens5 qm_status(): alloc'd from core: core/counters.c: cnt_hash_add(339)
203 ifens5 qm_status(): alloc'd from core: core/cfg.lex: addstr(1448)
265 ifens5 qm_status(): alloc'd from core: core/pvapi.c: pv_table_add(236)
686 ifens5 qm_status(): alloc'd from core: core/pvapi.c: pv_parse_format(1173)
694 ifens5 qm_status(): alloc'd from htable: ht_var.c: pv_parse_ht_name(158)
707 ifens5 qm_status(): alloc'd from core: core/pvapi.c: pv_cache_add(349)
I know, currently there are a few lines in the code which look like this:
self.instance_name = KSR.pv.get("$sht(pbxdata=>ip.%s)" % (ip,))
This has been an issue in the past and I have replaced the code with something like this:
KSR.pv.sets("$var(tmpInstanceIp)", ip)
self.instance_name = KSR.pv.get("$sht(pbxdata=>ip.$var(tmpInstanceIp))")
However, even after changing this, the memory still grows slowly but steadily.
The usage scenario is TLS-only on one side (clients) and TCP-only on the other side (pbxes).
Does anybody have a hint for me how to debug this? Looks like there's a lot of pv stuff in the memory, but I don't really know where.
Thanks for any hints,
Sebastian