On Mon, May 07, 2018 at 04:44:14PM +0200, Daniel Tryba wrote:
> Sure. Attached. Problem appears to be that the topos query can't find
> callid-totag (from the response).
>
> I'll try the same scenario with the mysql backend to see if it behaves
> different.
Config works fine with mysql as topos backend. So the bug is restricted
to topos-redis.
Hi All,
Can someone point to a sample as to how we can *load the LCR Module tables*
namely the following at startup from a csv file or any other mechanism.
* lcr_gw_table
* lcr_rule_table
* lcr_rule_target_table
The idea is to not need to manually feed in the entries into the table but
instead add these in the beginning through either a *wrapper script
*OR *through
the kamailio cfg file* if possible.
Any pointers are much appreciated.
Thanks & Regards,
Harneet Singh
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle
Hi Experts,
I believe the loose_route() in kamailio can be used for initial Out of the
dialog INVITE processing as well. Is that the correct understanding?
If so, the request will be forwarded ahead to the destination corresponding
to the Route Header remaining (if any) after Kamailio has stripped off it's
own Address(es) from the Route Header(s). Is that correct?
Regards,
Harneet Singh
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle
Hello,
We have a transparent proxy in front of Asterisk boxes. The media is handled by rtpengine, and the "manage" work is done by Kamailio in the route[NATMANAGE] section like this:
if(nat_uac_test("8")) {
# Packet from backend server
if(ds_is_from_list()){
if (rtpengine_manage("replace-origin replace-session-connection direction=internal direction=pub")) {
xdbg("NATMANAGE --- Success rtpengine_manage() RTP from INTERNAL to EXTERNAL $ru");
}
}
else
{
if (rtpengine_manage("replace-origin replace-session-connection direction=pub direction=internal")) {
xdbg("NATMANAGE --- Success rtpengine_manage() RTP from EXTERNAL to INTERNAL $ru");
}
}
} else {
# Packet from backend server
if(ds_is_from_list()){
if (rtpengine_manage("replace-origin replace-session-connection trust-address direction=internal direction=pub")) {
xdbg("NATMANAGE --- Success rtpengine_manage() RTP from INTERNAL to EXTERNAL $ru");
}
}
else
{
if (rtpengine_manage("replace-origin replace-session-connection trust-address direction=pub direction=internal")) {
xdbg("NATMANAGE --- Success rtpengine_manage() RTP from EXTERNAL to INTERNAL $ru");
}
}
}
Everything is working fine, but with some clients (like Grandstream phone) the RTCP session wants to go tot he private address of the phone. Here is the log of one of these strange calls:
Apr 27 16:54:38 rtp1 rtpengine[2273]: INFO: [312ed76c31f21b71452e91e5184ad25b@172.16.2.210:5060]: [core] --------- Port 178.238.213.14:11088 <> 81.183.216.3:5068 , SSRC 77c19488, 625 p, 107500 b, 0 e, 29 ts
Apr 27 16:54:38 rtp1 rtpengine[2273]: INFO: [312ed76c31f21b71452e91e5184ad25b@172.16.2.210:5060]: [core] --------- Port 178.238.213.14:11089 <> 10.0.5.192:5069 (RTCP), SSRC 0, 0 p, 0 b, 0 e, 43 ts
As you can see the RTP itself is okay, but the RTCP will somehow go to the private address. If we tracing the sdp messages in sngrep, then we can see that Kamailio transforming IP addresses for the backend servers to the public (and the private address of the rtpengine) addresses.
We are missing something?
Thank you!
With kind regards,
Zoltan
Hi
Before I go too deep into try and error, I guess others have been there
too.
What are sensible value you use for the pike module to detect /
mitigate abusive behavior, especially dictionary attacks?
Are there better solutions that the pike module?
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 Benoît
We use pike in combination with fail2ban.
Log a message -> create a fail2ban rule to block the ip for xxx time.
example:
if ($ua =~ "(friendly-scanner|sipvicious)") {
sl_send_reply("488", "Go away.");
xlog("L_INFO","$ci Blocking traffic from $si\n");
exit;
}
Cool thing is, you can write a log entry from every part in your
kamailio-config, and then fail2ban does the rest.
Regards
Stefan
Am 27.04.23 um 16:07 schrieb Benoit Panizzon:
> Hi
>
> Before I go too deep into try and error, I guess others have been there
> too.
>
> What are sensible value you use for the pike module to detect /
> mitigate abusive behavior, especially dictionary attacks?
>
> Are there better solutions that the pike module?
>
> Mit freundlichen Grüssen
>
> -Benoît Panizzon-
Dear all,
I am looking for some hooking mechanism for user defined routing blocks.
Is something like this already available?
1) a common part of the routing configuration shall not (or only slightly) be changed, after some hooks have been implemented
Something like a function "engage_hooks()" of some "hook_module"?
:
Routing config that should not be changed by application developers
engage_hooks(HOOK_TYPE);
Routing config that should not be changed by application developers
:
2) one application developer may "hook" new parts of the routing configuration into this, by
modparam("hook_module", "hook", "name=MY_RB;type=HOOK_TYPE;prio=50);
:
:
Route [MY_RB] {
Do something at hook HOOK_TYPE;
}
:
:
3) another application developer might want to "hook" into the same HOOK_TYPE with a higher priority
modparam("hook_module", "hook", "name=ANOTHER_RB;type=HOOK_TYPE;prio=20);
:
:
Route [ANOTHER_RB] {
Do another thing with higher priority at hook HOOK_TYPE
}
:
:
Kr,
Christoph
Hello All, new subscriber here.
I've been reading kamailio documentation to check if kamailio has a use case on the architecture for the solution for my company's software, here an small architecture diagram of our solution.
sipclient <----> [ Middleware ] <-----> SBC
Our middle ware is both a sip proxy and media proxy. we have a large number of sip clients but a small calling number,
our current bottleneck is that the middleware can't handle a high number of registration, i would like to deploy Kamailio as a load balancer for registrations, making sure it is statefull so registrations and calls are hashed into the same middleware server.
sipclients < ----> [ kamailio ] <------> [ middleware1, middleware2,...,middleware N] <-----> SBC
Any thoughts or pointers?
Hi all
I wonder, if there is a documentation on what action is performed by
rtpengine_manage() on which kind reply.
Am I right, that rtpengine_manage(), on any 4XX reply causes a delete?
So if there is a re-invite (for example to switch to T.38) and the
other party replies with 488 which in turn is passed through
rtpengine_manage() the existing RTP stream is deleted from rtpengine
instead of being left running with the previously agreed codec?
Has anyone already figured out a list of what reply codes should be
exempt from calling rtpengine_manage()?
--
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
______________________________________________________
Hi Experts,
We have been using Kamailio as a sip proxy for a fair bit of time
now(version 5.3.2 though) and do understand the native routing mechanism
that can be instrumented through the kamailio cfg scripts.
We initially had only two sides, where the traffic could come from into
Kamailio and it just passed through to the other side(ie Traffic from A was
routed to B and that from B was routed to A). Off late, a few more sip
elements have been introduced in the deployment and now there is a need for
a more formal/robust mechanism to select the intended destination to
forward an initial SIP INVITE to.
I believe that we could still keep all the logic in the native kamailio
script and do the routing(for example, an incoming call where the *From URI*
contains *sip.elementA.com <http://sip.elementA.com>* should be routed to
destination *sip.elementB.com <http://sip.elementB.com>*, where as if the*
To URI *contains *sip.elementC.com <http://sip.elementC.com>*, the request
should be routed to *sip.elementC.com <http://sip.elementC.com>)**. *Since
we have many sip elements like A,B.C,D,E etc where the requests might have
to be routed to, based on certain different criteria, this logic would
become cumbersome. *What would be the best way to accommodate this?*
*Would it be possible to rewire this routing logic at runtime(*like in some
csv file that can be reloaded*) without a Kamailio restart? *
Regards,
Harneet Singh
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle