Hi team,
I am Agalya and I work for Comcast. We are trying to use kamailio as proxy
server for our project.
I have a query regarding the same. We are trying to use REST API calls
asynchronously from the config file.
I see that there is a module "http_async_client" which is used to handle
REST services asynchronously.
Found that libcurl is used to perform these operations.
My question is:
1) How much time kamailio is taking to send the HTTP request out after TCP
port is opened?
Is there any time dependency we need to wait on libcurl to send HTTP
request out?
B'coz in opensips I see a delay time and libcurl is used in-turn.
I found kamailio doing similar to opensips and hence am posting this
question.
2) We can also use PUT service by using http_set_method(PUT)?
Should we add code to support PUT service?
Thanks in advance.
Regards,
Agalya
Hi is there any way to use pike and htable to mitigate ddos or flood
attack from trusted trunks.
I need help to build it the same way kamailio control registrations.
Case a carrier trunk star calling several users from the system to more
than 50 CPS(calls per second), it will affect the system but cannot block
the trunk since it is pstn traffic coming from a sip provider, therefore we
need to find a way to identify this traffic based on ANI or DNIS or any
other header and then blocked for a time just like pike does with
registrations, then start the cycle all over.
in less words make kamailio be aware of invite request rate, then verify
that is from the same source means ani or dnis then tagged as bad traffic
them star dropping it for a specified time, while normal traffic still
flowing unaffected.
any recommendations will be highly appreciated.
thank you
Hello,
I have the following scenario:
Kamailio is suspending an INVITE then generates a SUBSCRIBE msg to an
external server with UAC module, and only resume the suspended INVITE when
receives an NOTIFY(this NOTIFY "belongs" to the SUBSCRIBE dialog) from the
external server.
The issue is that sometimes kamailio doesn't receive a NOTIFY and the
transaction is not resumed, any one have an idea how can i implement a
solution to resume the suspended invite after x seconds without receiving
NOTIFY msg?
Best Regards
--
José Seabra
Hello,
I want to refine the instant message handling in our application. It works really fine in most cases. I use the msilo module to store offline messages if the user is not registered with sending PUSH notification.
But, there is a situation when I have problems:
When I send a message to a user whose phone is in airplane mode. In this case his location record exists but the communication on the socket is not possible and the client timed out the request.
Is it possible to check the socket towards the receiver user at the moment when the message arrives at Kamailio? I think if I would check that if the socket is not fine, I could send the message to the msilo directly and the client would not have wait for timeout to resend.
Thanks.
Peter
I have configured Kamailio to pass a registration request to another VoIP
provider. The reason I am doing this is to provide a sip port for users
where the ISP is blocking SIP. I am able to pass the registrations to the
VoIP provider but I'd like to have inbound calls working as well. I see the
inbound invites coming into the Kamailio server but it appears that the
server does not 'know' about the UA that is registered 'through' the server
to the VoIP provider. Can anyone tell me how to fix this problem? Below is
my config.
Thank you,
Mike
#!KAMAILIO
#
# Edge proxy configuration
#
#!subst "/REGISTRAR_IP/xxxxxxxxxx/" #IP address of voip provider
#!subst "/REGISTRAR_PORT/5060/"
#!substdef "/FLOW_TIMER/20/"
debug=2
log_stderror=no
log_facility=LOG_LOCAL0
fork=yes
children=4
alias="example.com"
#mpath="/usr/lib64/kamailio/modules"
mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules"
tcp_connection_lifetime=30 # FLOW_TIMER + 10
auto_aliases=no
mhomed=0
listen=udp:X.X.X.X:531 advertise X.X.X.X:531
alias="X.X.X.X:531"
alias=X.X.X.X:531
alias="X.X.X.X:531"
alias=X.X.X.X:531
port=531
####### Modules Section ########
loadmodule "tm.so"
loadmodule "sl.so"
#loadmodule "outbound.so"
loadmodule "rr.so"
loadmodule "path.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "mi_rpc.so"
loadmodule "mi_fifo.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "rtimer.so"
loadmodule "sqlops.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")
# ----- tm params -----
modparam("tm", "failure_reply_mode", 3)
# ----- rr params -----
modparam("rr", "append_fromtag", 0)
####### Routing Logic ########
request_route {
route(REQINIT);
if (is_method("CANCEL")) {
if (t_check_trans()) {
route(RELAY);
}
exit;
}
route(WITHINDLG);
t_check_trans();
if (is_method("REGISTER")) {
remove_hf("Route");
add_path();
$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";
} else {
if (is_method("INVITE|SUBSCRIBE"))
record_route();
if ($si == "REGISTRAR_IP" && $sp == "REGISTRAR_PORT") {
if (!loose_route()) {
switch($rc) {
case -2:
sl_send_reply("403", "Forbidden");
exit;
default:
sl_reply_error();
exit;
}
}
t_on_failure("FAIL_OUTBOUND");
} else {
if ($rU == $null) {
sl_send_reply("484", "Address Incomplete");
exit;
}
remove_hf("Route");
$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";
}
}
route(RELAY);
}
route[RELAY] {
if (!t_relay()) {
sl_reply_error();
}
exit;
}
route[REQINIT] {
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if(!sanity_check("1511", "7"))
{
xlog("Malformed SIP message from $si:$sp\n");
exit;
}
}
route[WITHINDLG] {
if (has_totag()) {
if (!loose_route()) {
switch($rc) {
case -2:
sl_send_reply("403", "Forbidden");
exit;
default:
if (is_method("ACK")) {
if ( t_check_trans() ) {
route(RELAY);
exit;
} else {
exit;
}
}
sl_send_reply("404","Not Found");
}
} else {
if (is_method("NOTIFY")) {
record_route();
}
route(RELAY);
}
exit;
}
}
onreply_route {
if (!t_check_trans()) {
drop;
}
if ($rm == "REGISTER" && $rs >= 200 && $rs <= 299) {
remove_hf("Flow-Timer");
if ($(hdr(Require)[*])=~"outbound")
insert_hf("Flow-Timer: FLOW_TIMER\r\n", "Call-ID");
}
}
failure_route[FAIL_OUTBOUND]{
if (t_branch_timeout() || !t_branch_replied()) {
send_reply("430", "Flow Failed");
}
}
Hello,
on September 3, 2001, the first line of code was committed to SIP
Express Router (SER) project, since 2008 turning into Kamailio project.
>From pioneering large scale deployments of using SIP for Voice over IP
in early 2000s, the project impacted the evolution of real time
communications, disrupted the telecom vendors with its open source model
and enabled many businesses to grow and innovate.
Let's get together to a VUC session later this week, on Friday, Sep2,
2016, to share the good or bad stories while using SER or Kamailio
during the past 15 years. If it made your life easy or a nightmare, it's
time to tell it. If you have a funny photo or video, no matter is old or
recent, join us and show it.
More details about VUC and how one can join or watch the session are
available at:
- https://vuc.me
If you want to actively participate during the session, email me shortly
to coordinate a bit. If you cannot participate but you have something
interesting to share (story, media files, etc...) email me as well and I
will present it.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com - http://www.kamailio.orghttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda