Hi to all,
I've setup FS with dbtext module, and now I'm trying to make a alias_db_lookup(dbaliases) but it doesn't find any alias.Same conf with mysql db works great.
Is it possible to have alias with dbtext engine?
Marino
based on more tests, it appears that tm.t_uac_wait does not use
advertise address (if given on listen line) when it substitutes !!
(SUBST_CHARs) in request headers.
i'll open a bug report on it.
-- juha
hi carlos,
i have a serial forking scenario to several providers as failover. and i
used cnxcc_set_max_credit to control the session credit/time.
just wanted to make sure it does what i think it should do so i made a
little experiment.
the logic goes this way.
1. cnxcc_set_max_credit -> $100, cost per second -> $1
2. call will fail, try the next provider
3. cnxcc_set_max_credit -> $200, cost per second -> $2
what i am expecting to see is, if i do
kamctl kamcmd cnxcc.active_clients
i would see $200 as the max_amount. but in kamailio 4.1.5, i still see
$100, should it
be updated to $200? is there an override in cnxcc_set_max_credit when
called twice or after failure_route?
Kelvin Chua
Hi guys,
I've seen that setting the parameter extra_id_pv, every branch should be hae different callid..
How can i set this parameter? I've tried with :
modparam("rtpproxy", "extra_id_pv", "$avp(extra_id)")
but in the INVITE message the callid is still the same for all branches. Any suggest?
Hello,
I installed kamailio and replaced kamailio.cfg with a customized
kamailio.cfg and replaced kamctlrc file also. And restarted the kamailio
server. Server gets started ok and after a minute or two, I get the error, "
'/usr/local/kamailio/sbin' doesnot belong to any package ". I am facing this
problem for quite some time now.
Any solution to this will be very helpful.
Regards,
Aawaise.
--
View this message in context: http://sip-router.1086192.n5.nabble.com/Kamailio-server-crashing-tp130923.h…
Sent from the Users mailing list archive at Nabble.com.
Hello Guys!
Good news about my tests here!
I found some configurations relative to Outbound proxy and I get this
working. Now, I can have two outbound proxies, one registrar and one
database. I can register one user in the Outbound Proxy1 and one user in
Outbound Proxy 2 and place a call between these users.
But now I'm facing another problem! The ACK messages are not being
delivered, so the session is being dropped after a few seconds. I think
that the problem is in the Contact field. Trying to investigate it now!
I'm not sure about how to change the message to deliver the ACK. Did
someone had this problem before?
In anycase, here is the routing configuration that I'm using in my Oubound
proxy:
request_route {
if (($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)
&& !(proto == WS || proto == WSS)) {
xlog("L_WARN", "SIP request received on $Rp\n");
sl_send_reply("403", "Forbidden");
exit;
}
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|ACK"))
record_route();
if (@via[2] == "") {
# From client so route to registrar...
if ($rU == $null) {
sl_send_reply("484", "Address Incomplete");
exit;
}
remove_hf("Route");
$du = "sip:REGISTRAR_IP:REGISTRAR_PORT";
} else {
# From registrar so route using "Route:" headers...
if (!loose_route()) {
switch($rc) {
case -2:
sl_send_reply("403", "Forbidden");
exit;
default:
xlog("L_ERR", "in request_route\n");
sl_reply_error();
exit;
}
}
t_on_failure("FAIL_OUTBOUND");
}
}
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() ) {
record_route();
route(RELAY);
exit;
} else {
exit;
}
}
sl_send_reply("404","Not Found");
}
} else {
if (is_method("NOTIFY")) {
record_route();
}
route(RELAY);
}
exit;
}
}
onreply_route {
if (($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)
&& !(proto == WS || proto == WSS)) {
xlog("L_WARN", "SIP response received on $Rp\n");
drop;
}
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");
}
}
event_route[xhttp:request] {
set_reply_close();
set_reply_no_connect();
if ($Rp != MY_WS_PORT
#!ifdef WITH_TLS
&& $Rp != MY_WSS_PORT
#!endif
) {
xlog("L_WARN", "HTTP request received on $Rp\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
}
xlog("L_DBG", "HTTP Request Received\n");
if ($hdr(Upgrade)=~"websocket"
&& $hdr(Connection)=~"Upgrade"
&& $rm=~"GET") {
# Validate Host - make sure the client is using the correct
# alias for WebSockets
if ($hdr(Host) == $null || !is_myself("sip:" + $hdr(Host))) {
xlog("L_WARN", "Bad host $hdr(Host)\n");
xhttp_reply("403", "Forbidden", "", "");
exit;
}
# Optional... validate Origin - make sure the client is from an
# authorised website. For example,
#
# if ($hdr(Origin) != "http://communicator.MY_DOMAIN"
# && $hdr(Origin) != "https://communicator.MY_DOMAIN") {
# xlog("L_WARN", "Unauthorised client $hdr(Origin)\n");
# xhttp_reply("403", "Forbidden", "", "");
# exit;
# }
# Optional... perform HTTP authentication
# ws_handle_handshake() exits (no further configuration file
# processing of the request) when complete.
if (ws_handle_handshake())
{
# Optional... cache some information about the
# successful connection
exit;
}
}
xhttp_reply("404", "Not Found", "", "");
}
event_route[websocket:closed] {
xlog("L_INFO", "WebSocket connection from $si:$sp has closed\n");
}
Thanks again!!!
*Bruno Emer*
Mobile: +55 11 96540-0044
email: brunoemer(a)gmail.com
<https://www.facebook.com/bruno.emer.5>
<https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
<https://twitter.com/brunoemer_>
<https://www.flickr.com/photos/122070309@N03/>
<http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
2014-09-22 12:40 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
> Hi, Daniel and Frank!
>
> Thanks for your support!
> Now, I changed my scenario just a lil bit to make it easy to understand
> and deploy. I'm doing the following:
>
> 1. Created a server using the "Outbound" module configuration example,
> but add WebSocket support in it. (IP Address 192.168.1.16)
> 2. Created a server running as Proxy and Registrar with WebSockets
> support. (IP Address 192.168.1.15)
> 3. Registered two users (bob and alice(a)enterprise.com) using WebRTC.
> These users sent they Register requests to the Oubount server
> (192.168.1.16).
> 4. I'm also using an external postgres database to store the user
> informations. In my proxy/registrar server, I've configurated
> "modparam("usrloc", "db_mode", 3)", so it will not store data in memory.
>
>
> After register the users in my scenario, I can see the following
> information stored in my database (output of kamctl db show location):
>
> id | ruid | username | domain |
> contact | received | path |
> expires | q | callid | cseq | last_modified |
> flags | cflags | user_agent | socket | methods |
> instance | reg_id
>
> -----+----------------------+----------+----------------+------------------------------------------------+-----------------------+------+---------------------+----+------------------------+------+---------------------+-------+--------+-------------------+---------------------+---------+-------------------------------------------------+--------
> 277 | uloc-54203f71-10bd-2 | alice | enterprise.com |
> sip:v4s0prah@o35ctmdnnruv.invalid;transport=ws | sip:192.168.1.16:5060 |
> | 2014-09-22 15:31:21 | -1 | udb4shpe4dnm1jsl6016s5 | 82 |
> 2014-09-22 15:26:21 | 0 | 0 | JsSIP 0.4.0-devel | udp:
> 192.168.1.15:80 | 783 |
> <urn:uuid:75c837d1-740a-4c62-baa0-56a06149699e> | 1
> 278 | uloc-54203f71-10bc-2 | bob | enterprise.com |
> sip:lr78s270@0mkf6fgtprlh.invalid;transport=ws | sip:192.168.1.16:5060 |
> | 2014-09-22 15:34:02 | -1 | 5mpl9q4bkuqsnpk8r316j5 | 82 |
> 2014-09-22 15:29:02 | 0 | 0 | JsSIP 0.4.0-devel | udp:
> 192.168.1.15:80 | 783 |
> <urn:uuid:e92ef911-1ae4-45b1-bfc9-b5752b0f2fe1> | 1
>
>
> So, I can assume that both users are registered and ready to start
> sessions.
>
> Now, when I try to start a new session between then (let's say bob calling
> alice) what I get in the endpoint is the following message:
>
> SIP/2.0 500 I'm terribly sorry, server error occurred (1/SL)
> Via: SIP/2.0/WS
> 0mkf6fgtprlh.invalid;rport=33154;received=192.168.1.11;branch=z9hG4bK7711221
> To: <sip:alice@enterprise.com>;tag=94c1b96a0e6eb467885b5057e1e49f9e.1970
> From: <sip:bob@enterprise.com>;tag=on056iipql
> Call-ID: 5e1pmj2fppbgg13doi4k
> CSeq: 3989 INVITE
> Server: kamailio (4.1.5 (x86_64/linux))
> Content-Length: 0
>
> What I understood about this problem is that the Proxy server is trying to
> forward the INVITE to the Outbound server and this server does not know
> that to do with this message - like forward it to alice.
>
> I'm stucked in this step.
>
> Here you can find the configuration files that I'm using:
>
> Outbound Server:
> https://mega.co.nz/#!Wlw2RL7S!G2YOP-1QbSCeNQddaAe3kyQMqz8yteZlZsAUpjZX4v4
>
> Proxy Server:
> https://mega.co.nz/#!qxAXTbbb!4zBjRtmADdl3rPCN2Yidd3xnZEjFahW3GSMb00w41xc
>
>
>
> Thanks again!
>
> Bruno Emer
>
>
>
> *Bruno Emer*
>
> Mobile: +55 11 96540-0044
> email: brunoemer(a)gmail.com
> <https://www.facebook.com/bruno.emer.5>
> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
> <https://twitter.com/brunoemer_>
> <https://www.flickr.com/photos/122070309@N03/>
> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
>
> 2014-09-18 18:04 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
>
> Ok, Daniel!
>>
>> I am trying exactly what you said, but for some reason the proxy server
>> can't forward the message back to the WebSocket server. I am getting
>> "487 Unresolvable destination". Appears that my Proxy Server can't get data
>> from usrloc.
>>
>> When I register an user using WebRTC I can see that the system stores the
>> information in kamailio database and in the field "contact" it puts a
>> string. The Proxy server is looking in database and just find this
>> information. Actually, I'm trying to understand the entire process that
>> envolves passing information from an Edge Server to a Proxy server that
>> sends the Register information to another Registrar server (as I described
>> before). The database is shared between all the servers, and they are in
>> the same network.
>>
>> I just read the information in another topic, as you said, but I think
>> that my case is a lil bit different from it. I you agree, I can post my
>> configuration files here. Maybe this can help another users with the same
>> problem!
>>
>> Thanks again!!!
>>
>>
>>
>> *Bruno Emer*
>>
>> Mobile: +55 11 96540-0044
>> email: brunoemer(a)gmail.com
>> <https://www.facebook.com/bruno.emer.5>
>> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
>> <https://twitter.com/brunoemer_>
>> <https://www.flickr.com/photos/122070309@N03/>
>> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
>>
>> 2014-09-17 9:13 GMT-03:00 Bruno Emer <brunoemer(a)gmail.com>:
>>
>> Hello!
>>>
>>> I am relatively new to Kamailio and I'm trying to create a new
>>> enviroment using it in my company. I am thinking about use Amazon to host
>>> the servers and use OpsWorks to automatically escalate then if necessary.
>>> To accomplish this, my idea is to separate the servers, using one dedicated
>>> server to run as WebSocket, one to run as proxy and one as a Registrar.
>>> I'll be using just one database to store informations to all of my servers.
>>> With this, if I need more resources later, I can just create new servers
>>> with the specific roles (WebSockets, Proxy, Registrar).
>>>
>>> By now, the idea is clear, but the point is that I don't know how to
>>> separate the WebSockets server from the proxy server. Actually, I can do
>>> this, but when I have one agent using a regular softphone and one agent
>>> using WebSockets (with JSSIP) they are not able to establish a session if
>>> the softphone user starts it. Now, I want to know if is there a way to use
>>> two websockets servers, register users using both of then and start
>>> sessions between then, with a separated proxy and registrar.
>>>
>>> Has anyone done this before? Is possible to use kamailio like this?
>>>
>>>
>>> Thanks.
>>>
>>>
>>>
>>> *Bruno Emer*
>>>
>>> Mobile: +55 11 96540-0044
>>> email: brunoemer(a)gmail.com
>>> <https://www.facebook.com/bruno.emer.5>
>>> <https://www.linkedin.com/profile/view?id=86461237&trk=spm_pic>
>>> <https://twitter.com/brunoemer_>
>>> <https://www.flickr.com/photos/122070309@N03/>
>>> <http://google.com/+BrunoEmer> <http://instagram.com/brunoemer_>
>>>
>>
>>
>
Hi guys,
is possible to make a group call with kamailio? Example...i dial 1000 and kamailio make a parallel forking to 1001,1002,1003?
In case of yes...every group member (1001,1002,1003) will be resolved by "location"? Because some member is natted so RTPPROXY should be engaged
Is there any examples?
BRMarino
Hi, you are facing the problem the wrong way.
You could do that easy on the UAC side.
For example, with Asterisk as UAC, you only need to pass a 10s timeout as paran to the dial app.
A sip-proxy its not for what you are trying to acomplish. What you are trying to do it's a UAC or B2BUA task.
Best regards.
El 24/09/2014 09:00, Delifisek Tux <delifisek.tux(a)gmail.com> escribió:
>
> Hello,
>
> Very newbie here. Even I may not know what I'm talking about. Please be patience, thank you :)
>
> I had auto dialer and I have problem with unreachable numbers.
>
> So I wish if I call busy, unavailable, ringing but not answering numbers, system will hangup before the voice mail active.
>
> After some googling I found a sip proxy may solve my problem.
>
> I setup kamailio and manage to work with an example edge proxy setup.
>
> Then what ?
>
> My wish is, after the number dialed, start to filter every sip message, then let say if I do not get 183 session in progress in 10 seconds, or get a 10 trying in 10 seconds hangup line.
>
> Which module should I look after.
>
> My Best Regards.
>
>