Dear all,
we would like to do loadbalancing and failover with SRV in our multi-SER setup.
I.e. ser-1 gets a call and can forward the call to either ser-2 or ser-3.
There's a DNS SRV record that points to both, ser-2 and ser-3 (same weight, same priority).
On ser-1, I use the SRV name to forward calls to.
Now I'd like ser-1 to distribute calls according to weight and priority, i.e.
50% to ser-2 and 50% to ser-3.
But it doesn't, it keeps sending to ser-2 (the first entry in the SRV record's list).
Also, if say ser-2 goes down, I'd like ser-1 to notice that and only ever try to send subsequent
requests to ser-2 until <something> happens (e.g. until the SRV record TTL expires).
I found a one-year old message in the archives stating that neither of this is possible
(unless I use a DNS A record that points to multiple IP addresses, but that's not what I want).
Is it meanwhile possible with the current SER software ?
thanks
Markus
Hey All,
I installed SER 0.9.3 about 3 weeks ago and since then have been getting
core dumps about every 7-8 days consistently. Acts almost like a
progressive memory leak.
So .. I've noticed that release 0.9.4 has also been released about 2 weeks
ago with a few bug fixes (including a memory leak or two). However, the CVS
head is also available with 0.9.5-pre1.
So .. What I really need to know is.. Which version should I use? :)
Thanks,
Darren Nay
Hello,
I'm using the lcr module with prefix capability to make failover. When I use
a "big" IP, the lcr module gives back a wrong IP.
It was very hard for me to compile lcr with prefix capability and
ser-0.9.3... has anyone of you a lcr module with prefix-support for
ser-0.9.3 and without this bug?
Thanks!
Sebastian
Hi
I have a strange looking dialogue, after sending a 200 OK to a quintum
box, and get back an ACK, but the Route field seems to be wrong, can
someone confirm this.
--------
U 2005/09/06 15:23:16.613003 111.222.333.444:5060 -> 10.20.30.40:5060
SIP/2.0 200 OK.
Via: SIP/2.0/UDP 10.20.30.40;branch=z9hG4bK-tenor-c3ac-7b24-0018.
From: <sip:046677@10.20.30.40>;tag=c3ac7b24-a.
To: <sip:123456789@111.222.333.444>;tag=1A4297F4-2C9.
Date: Tue, 06 Sep 2005 14:07:59 gmt.
Call-ID: call-00CC9E9D-4FBE-D311-0207-A(a)10.20.30.40.
Server: Cisco-SIPGateway/IOS-12.x.
CSeq: 1 INVITE.
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, COMET, REFER,
SUBSCRIBE, NOTIFY, INFO.
Allow-Events: telephone-event.
Contact: <sip:0044123456789@212.156.5.134:5060>.
Record-Route:
<sip:212.156.5.135;ftag=c3ac7b24-a;lr=on>,<sip:111.222.333.444;ftag=c3ac7b24-a;lr=on>.
Content-Type: application/sdp.
Content-Length: 206.
.
v=0.
o=CiscoSystemsSIP-GW-UserAgent 7438 1091 IN IP4 212.156.5.134.
s=SIP Call.
c=IN IP4 212.156.5.134.
t=0 0.
m=audio 18590 RTP/AVP 18.
c=IN IP4 212.156.5.134.
a=rtpmap:18 G729/8000.
a=fmtp:18 annexb=yes.
#
U 2005/09/06 15:23:16.726095 10.20.30.40:5060 -> 111.222.333.444:5060
ACK sip:111.222.333.444;ftag=c3ac7b24-a;lr=on SIP/2.0.
CSeq: 1 ACK.
Call-ID: call-00CC9E9D-4FBE-D311-0207-A(a)10.20.30.40.
Contact: <sip:046677@10.20.30.40>.
From: <sip:046677@10.20.30.40>;tag=c3ac7b24-a.
Route: <sip:0044123456789@212.156.5.134:5060>.
Session-GUID: 859321956-876164920-926430820-875782963.
To: <sip:123456789@111.222.333.444>;tag=1A4297F4-2C9.
Via: SIP/2.0/UDP 10.20.30.40;branch=z9hG4bK-tenor-c3ac-7b24-0018.
User-Agent: Quintum/1.0.0.
Quintum:
0c01030b0232360501000715000000000000000d006c0a828180803034363637371301000f0b413031322d313033353941.
Max-Forwards: 70.
----------------
I thought the Route field should have the data which it pulls from the
Record Route headers
tks
iqbal
I am trying to find a way to set my SER caller ID to unknown. What I
trying to accomplish is to not have calls coming with an ANI. It can be
unknown , anonymous, etc. But I do not want the ANI/caller ID number
showing. Can anyone help me answer this question? I think it would be
an rpid setting but not certain.
Hi,
I just wanted to use the parameter use_domain in avpops, but I got the error
"<use_domain> not found in module <avpops>".
A quick check in module avpops.c shows that the variable declaration for
use_domain is not declared as a pointer. Might this be the cause?
Regards
Franz
Hi
We are evaluating SER for our purpose.
We need to use 3GPP SIP call flows.
Is SER compliant ?
Thanks
Ash
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Nils, thank for making me se this.
Despite of this i thin this is starnger, because i maque a REGISTER or
INVITE and this doesn´t happen.
Now I´m sending my ser.cfg files. To see wath is wrong.
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode */
#fork=no
#log_stderror=yes
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
#port=5060
children=4
fifo="/tmp/ser_fifo"
listen=10.22.1.249
alias="10.22.1.249"
alias="213.194.156.186"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/textops.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
#modparam("usrloc", "db_mode", 0)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 1)
# -- auth params --
# Uncomment if you are using auth module
#
modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
modparam("auth_db", "password_column", "password")
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("16")) {
sl_send_reply("483","Too Many Hops");
};
if (msg:len > max_len) {
sl_send_reply("513", "Message too big");
break;
};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
break;
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
break;
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
# if (!www_authorize("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
Thack for all.
Hi all,
I have a problem with using Windows Messenger 5.1, that is, I can't log
in with SER 0.9.3. Everything is working OK with Xlite client. I try to
set up my realm value to equal server name as it says in Admin guide for
SER, but it doesn't help.
If someone had similar problem and solve it, I would be very thankful if
you can share solution with me.
Thanks
This is output from SER when trying to authenticate with WM.
0(22883) parse_headers: flags=-1
0(22883) check_via_address(192.168.0.101, 192.168.0.101, 0)
0(22883) DEBUG:destroy_avp_list: destroying list (nil)
0(22883) receive_msg: cleaning up
0(22883) SIP Request:
0(22883) method: <REGISTER>
0(22883) uri: <sip:debtest.stu.du>
0(22883) version: <SIP/2.0>
0(22883) parse_headers: flags=1
0(22883) end of header reached, state=5
0(22883) parse_headers: Via found, flags=1
0(22883) parse_headers: this is the first via
0(22883) After parse_msg...
0(22883) preparing to run routing scripts...
0(22883) parse_headers: flags=128
0(22883) DEBUG:maxfwd:is_maxfwd_present: value = 70
0(22883) DBG:maxfwd:process_maxfwd_header: value 70 decreased to 16
0(22883) parse_headers: flags=256
0(22883) end of header reached, state=9
0(22883) DEBUG: get_hdr_field: <To> [21]; uri=[sip:admin@debtest.stu.du]
0(22883) DEBUG: to body [<sip:admin@debtest.stu.du>
]
0(22883) get_hdr_field: cseq <CSeq>: <1> <REGISTER>
0(22883) DEBUG: get_hdr_body : content_length=0
0(22883) found end of header
0(22883) find_first_route: No Route headers found
0(22883) loose_route: There is no Route HF
0(22883) grep_sock_info - checking if host==us: 7==12 &&
[debtest.stu.du] == [161.53.0.131]
0(22883) grep_sock_info - checking if port 5060 matches port 5060
0(22883) grep_sock_info - checking if host==us: 7==12 &&
[debtest.stu.du] == [161.53.0.131]
0(22883) grep_sock_info - checking if port 5060 matches port 5060
0(22883) parse_headers: flags=-1
0(22883) check_via_address(192.168.0.101, 192.168.0.101, 0)
0(22883) parse_headers: flags=4096
0(22883) pre_auth(): Credentials with given realm not found
0(22883) build_auth_hf(): 'WWW-Authenticate: Digest
realm="debtest.stu.du", nonce="43390f58ff776ef2b6700bd7e5cb53ea5b79453b"
'
0(22883) parse_headers: flags=-1
0(22883) check_via_address(192.168.0.101, 192.168.0.101, 0)
0(22883) DEBUG:destroy_avp_list: destroying list (nil)
0(22883) receive_msg: cleaning up
Hi,
I installed SER on a new system and now I can't REGISTER anymore. With a
little bit luck, the users can REGISTER after a restart of the system, but
the register expires and the user is unregistered for ever.
SER sends back a Unauthorized, although the user is registerin correctly.
It's a phenomenon that I don't understand. May be the database?
Here's a log of the database:
Sep 26 18:00:22 pbx5 postgres[286]: [13-1] LOG: 00000: statement: BEGIN
Sep 26 18:00:22 pbx5 postgres[286]: [13-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[286]: [14-1] LOG: 00000: statement: select
userpass,rpid from subscriber where username='43750'
Sep 26 18:00:22 pbx5 postgres[286]: [14-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[286]: [15-1] LOG: 00000: statement: COMMIT
Sep 26 18:00:22 pbx5 postgres[286]: [15-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[307]: [25-1] LOG: 00000: statement: BEGIN
Sep 26 18:00:22 pbx5 postgres[307]: [25-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[307]: [26-1] LOG: 00000: statement: select
userpass,rpid from subscriber where username='43750'
Sep 26 18:00:22 pbx5 postgres[307]: [26-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[307]: [27-1] LOG: 00000: statement: COMMIT
Sep 26 18:00:22 pbx5 postgres[307]: [27-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[282]: [10-1] LOG: 00000: statement: BEGIN
Sep 26 18:00:22 pbx5 postgres[282]: [10-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[282]: [11-1] LOG: 00000: statement: select
userpass,rpid from subscriber where username='43750'
Sep 26 18:00:22 pbx5 postgres[282]: [11-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:00:22 pbx5 postgres[282]: [12-1] LOG: 00000: statement: COMMIT
Sep 26 18:00:22 pbx5 postgres[282]: [12-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:01:00 pbx5 postgres[332]: [19-1] LOG: 00000: statement: BEGIN
Sep 26 18:01:00 pbx5 postgres[332]: [19-2] LOCATION: pg_parse_query,
postgres.c:464
Sep 26 18:01:00 pbx5 postgres[332]: [20-1] LOG: 00000: statement: delete
from location where username='43750' AND contact='si
p:43750@xxx.xxx.xxx.xxx:63713' AND
Can anyone of you help me??
Thanks!!!
Sebastian