******************* AUTOREPLY VON yufei.tao(a)redembedded.com *****************************
Vielen Dank für Ihre Nachricht.
Leider bin ich in der Zeit vom 17.09.2012 bis einschließlich 21.09.2012 nicht im Haus.
Ihre E-Mail wird in meiner Abwesenheit nicht weitergeleitet.
Bitte wenden Sie sich in dringenden Fällen an meine Kollegen Herrn Künzel oder Herrn Schrenk.
eMail: technik(a)hfo-telecom.de
Phone: +49 9281 / 1448 - 100
Fax: +49 9281 / 1448 - 123
Mit freundlichen Grüßen,
Rainer Strobel
Network Management
HFO Telecom AG
Bahnhofstr. 18
D-95028 Hof / Saale
Hi
I have a strange problem on forking calls to a group of users. For
example I have two users y2 and y3 in dbaliases, both with
alias_username 'group'. And y2 and y3 both registers with Kamailio fine.
When I make a call to 'group' from a third client y1, what my
kamailio.cfg does is: do an alias_db_lookup("dbaliases"), and goes to
BRANCH_ALIASDB, where a lookup location will be done for each of the
username resulting from lookup of dbaliases, something like this:
y1--INVITE 'group'-->lookup dbaliase-->[BRANCH_ALIASDB]--->'y2'-->lookup
location---¬
| |-->relay
---->[BRANCH_ALIASDB]--->'y3'-->lookup
location----
The all works well as long as all clients are NAT'ed. However when they
are not NAT'ed, e.g. all on the same LAN with Kamailio, the call only
goes to one of the group members, e.g. y2 only. When checking the log,
it seemed to have done the dbaliases lookup fine, and each location
lookup successfully. But Kamailio only relayed y2's IP, e.g. to the
client, while y3's to itself.
When comparing the location table when clients are NAT'ed or not, I find
that the 'received' column is only populated when I do
fix_nated_register. And group calls only works when 'received' column is
populated. That explains why when clients are NAT'ed group calls work,
as I only do fix_nated_register if nat_uac_test returns true.
But if this is the only reason, if two clients register using the same
username, e.g. both as y3, and when 'received' column of location table
is empty (no fix_nated_register done), I would expect a call to y3
should also only make 1 client ring. But in fact both of them rang! The
flow is like:
y1--INVITE 'y3'-->lookup location for 'y3'----> IP of 1st client
registered as 'y3'
|
---> IP of 2nd client
registered as 'y3'
While a call to 'group' (thus dbaliases lookup took place) under such
un-NAT'ed set up made only 1 client ring.
So I can make it work by always doing fix_nated_register. But I'm not
clear about these things:
- why does a lookup of dbaliases before lookup of location make such
difference?
- does lookup location work differently depending on whether it is
called from trunk or from a route called from a branch route?
Following is relevant parts from my config file:
#############################################################
route[LOCATION]
{
if ( alias_db_lookup("dbaliases") )
{
t_on_branch("BRANCH_ALIASDB"); # in branch_route[BRANCH_ALIASDB],
# call another route that looks up
location,
# if not existent, call drop()
}
else
{
xlog("L_DBG","LOCATION: not alias - go to lookup location trunk\n");
route(LOCATION_TRUNK); # normal look up location and sending of 404 etc
}
... ...
}
#############################################################
branch_route[BRANCH_ALIASDB]
{
xlog("L_DBG", "BRANCH_ALIASDB: $fU@$fd -> $rU@$rd; Method:$rm\n");
route(LOCATION_BRANCH);
}
route[LOCATION_BRANCH]
{
if (!lookup("location"))
{
# Drop this branch - it's going nowhere
drop();
}
}
#############################################################
route[RELAY] {
xlog("L_DBG","RELAY: method=$rm, callid=$ci, cseq=$cs\n");
#!ifdef WITH_NAT
if (check_route_param("nat=yes")) {
setbflag(FLB_NATB);
}
if (isflagset(FLT_NATS) || isbflagset(FLB_NATB)) {
xlog("L_DBG", "RELAY: about to call RTPPROXY\n");
route(RTPPROXY);
}
#!endif
/* example how to enable some additional event routes */
if (is_method("INVITE")) {
t_on_reply("REPLY_ONE");
t_on_failure("FAIL_ONE");
}
if (!t_relay()) {
sl_reply_error();
}
exit;
}
############################################################
route[NAT] {
#!ifdef WITH_NAT
xlog("L_DBG","NAT: method=$rm, callid=$ci, cseq=$cs\n");
force_rport();
if (nat_uac_test("2")) {
if (method=="REGISTER") {
fix_nated_register();
xlog("L_DBG","NAT: Just done fix_nated_register in REGISTER
message in NAT route\n");
} else {
xlog("L_DBG","NAT: fix_nated_contact\n");
fix_nated_contact();
}
setflag(FLT_NATS);
}
# setflag(FLT_NATS); ## -- YT: set NAT flag for all, so will force
media relay
#!endif
return;
}
#############################################################
And in the main route, route LOCATION and RELAY are the last two routes:
route {
...
route(NAT);
... ...
# user location service
route(LOCATION);
route(RELAY);
}
Hope I have made it clear. Thanks very much!
Yufei
--
Yufei Tao
Red Embedded
This E-mail and any attachments hereto are strictly confidential and intended solely for the addressee. If you are not the intended addressee please notify the sender by return and delete the message.
You must not disclose, forward or copy this E-mail or attachments to any third party without the prior consent of the sender.
Red Embedded Design, Company Number 06688253 Registered in England: The Waterfront, Salts Mill Rd, Saltaire, BD17 7EZ
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
rr readme on record_route_advertised_address function tells:
Note: A second Record-Route will be inserted if the transport used on
the inbound and outbound interfaces changes.
that is not the case. i made call
record_route_advertised_address("192.98.103.10:5060");
when request came over udp and went out over tcp and only one rr header
was inserted:
incoming:
U 2012/09/17 17:30:17.467079 192.98.103.10:5060 -> 192.98.103.2:5070
INVITE sip:test@test.fi SIP/2.0.
...
outgoing:
T 2012/09/17 17:30:17.504631 192.98.103.10:5060 -> 192.98.103.10:38078 [AP]
INVITE sip:0x20b7580@192.98.103.10:5050;transport=tcp SIP/2.0.
Record-Route: <sip:192.98.103.10:5060;ftag=wumod;lr>.
...
i have not set enable_double_rr param and default is 1.
is this a bug that i should report on the tracker?
-- juha
All Experts,
I want to change my SIP port from 5060 for other one. Before making any
change in my live server (Kamailio 3.2.1, i want to be sure.
Kindly suggest me that where should i make changes to implement it. This
is a security measure for kamailio from port scanning.
With thanks in advance.
Vijay Thakur
Hi,
For load testing I would like to setup rsyslog so Kamailio logs are written
asynchronously
Would the following configuration be enough for that purpose in *
rsyslog.conf*?
#
# Write log file in asynchronous mode and use an IO Buffer of 64 Kb
# IO buffer config http://www.rsyslog.com/doc/rsyslog_conf_global.html
# #
$OMFileAsyncWriting on
$OMFileFlushOnTXEnd off
$OMFileFlushInterval 60
$OMFileIOBufferSize 128k
#----------------------------------------------------------------------
## kamailio
##----------------------------------------------------------------------
$outchannel
kamailio_log_rotation,/var/log/pocserverplatform/kamailio.log,524288000,/usr/local/bin/kamailio_log_rotation_script
:programname, contains, "kamailio" $kamailio_log_rotation
local0.* $kamailio_log_rotation
Apart of that is there a way to completely disable completely any logs of
Kamailio to discard they're causing any performance issue?
Thanks
Albert
Htable is another popular method for those disposed less favourably to the dialog module.
-- Alex
--
Sent from my Samsung mobile, and thus lacking in the refinement one might expect from a proper keyboard.
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Suite 106
Decatur, GA 30030
Tel: +1-678-954-0670
Web: http://www.evaristesys.com/Uri Shacked <ushacked(a)gmail.com> wrote:in a few words -
you can set avp's as the profile params in the dialog module (that module works great for me) that way you wont need to set more than one profile. and for every call use it.
or just use $shv() and +1 or -1 every INVITE, CANCEL, BYE or failure reply.
hope it helps,
Uri
Hi,
I need to limit the number of concurrent calls go through kamailio.
Its a simple set up(Not per user basis, a global limit will suffice).
I know i need to employ dialog module. But i'm a little confused about
profiles. I thought for simple application like this, i may be able to
use profile altogether.
Any code snippet to limit number of concurrent calls will be very helpful.
Thanks in advance.
--
-aft
in a few words -
you can set avp's as the profile params in the dialog module (that module
works great for me) that way you wont need to set more than one profile.
and for every call use it.
or just use $shv() and +1 or -1 every INVITE, CANCEL, BYE or failure reply.
hope it helps,
Uri
> Hi,
> I need to limit the number of concurrent calls go through kamailio.
> Its a simple set up(Not per user basis, a global limit will suffice).
>
> I know i need to employ dialog module. But i'm a little confused about
> profiles. I thought for simple application like this, i may be able to
> use profile altogether.
>
> Any code snippet to limit number of concurrent calls will be very helpful.
>
> Thanks in advance.
> --
> -aft
Hi,
I have registered my (Fritz!Box) ATA successfully registered on my
account 8305234(a)iptl.org but what is tried I never received a call?
Here is what I can see on 'my' web-page with you:
> "C.A. Schreiber" <sip:17772184364@callcentric.com> non-local 2012-09-14 14:59 500 Server Internal Error
> "C.A. Schreiber" <sip:17772184364@callcentric.com> non-local 2012-09-14 14:59 500 Server Internal Error
> "C.A. Schreiber" <sip:17772184364@callcentric.com> non-local 2012-09-14 14:59 500 Server Internal Error
> "C.A. Schreiber" <sip:17772184364@callcentric.com> non-local 2012-09-14 14:58 500 Server Internal Error
> "C.A. Schreiber" <sip:17772184364@callcentric.com> non-local 2012-09-14 14:56 500 Server Internal Error
> "alles" <sip:192.168.0.201:5070@188.26.245.223:5060> non-local 2012-09-10 13:45 500 Server Internal Error
> "alles" <sip:192.168.0.201:5070@188.26.245.223:5060> non-local 2012-09-10 13:45 500 Server Internal Error
> "C.A. Schreiber" <sip:8305234@iptel.org> on line 2012-09-10 13:43 500 Server Internal Error
> "C.A. Schreiber" <sip:8305234@iptel.org> on line 2012-09-10 13:43 500 Server Internal Error
> "alles" <sip:192.168.0.201:5070@188.26.245.223:5060> non-local 2012-09-10 13:40 500 Server Internal Error
> "alles" <sip:192.168.0.201:5070@188.26.245.223:5060> non-local 2012-09-10 13:40 500 Server Internal Error
> "alles" <sip:192.168.0.201:5070@188.26.245.223:5060> non-local 2012-09-10 13:39 500 Server Internal Error
> "alles" <sip:192.168.0.201:5070@188.26.245.223:5060> non-local 2012-09-10 13:39 500 Server Internal Error
> "C.A. Schreiber" <sip:8305234@iptel.org> on line 2012-08-22 00:20 500 Server Internal Error
> "C.A. Schreiber" <sip:8305234@iptel.org> on line 2012-08-22 00:19 500 Server Internal Error
Please can you tell me what I have to do to be able to receive Voip-Calls?
Regards,
Carl
Hi,
I need to limit the number of concurrent calls go through kamailio.
Its a simple set up(Not per user basis, a global limit will suffice).
I know i need to employ dialog module. But i'm a little confused about
profiles. I thought for simple application like this, i may be able to
use profile altogether.
Any code snippet to limit number of concurrent calls will be very helpful.
Thanks in advance.
--
-aft