Hey Andrei,
Sorry, I should have mentioned in original post - I'm using 0.8.12
-----Original Message-----
From: Andrei Pelinescu-Onciul
[mailto:pelinescu-onciul@fokus.fraunhofer.de]
Sent: 14 July 2004 21:57
To: Dave Bath
Cc: serusers(a)lists.iptel.org
Subject: Re: [Serusers] Aliasing problem
On Jul 14, 2004 at 20:45, Dave Bath <dave(a)fuuz.com> wrote:
> Hey thanks, that did fix it. Now if I do a serctl show alias 1000 I
see
> Admin listed, and it's listed under the "Your Aliases" section of
> serweb. I still don't understand why there wasn't an error thrown
back
> by serctl. Does anyone know which field from the database is needed,
as
> conceivably someone might have a phone number for longer than a year,
> and I don't want to have to renew all the aliases...
What version of ser are you using?
There was a bug related to the alias expiration time, but AFAIK it was
fixed long time ago.
Andrei
In my system I have exec that check database for aliases, check my GW
for availability and return to SER right URI to send the call. It is
pretty easy script on perl so far (it connect mssql server for LCR and
working together with nagios to check if GW up/down/full (I know.. it is
slow but so far ok for me))
I can not give u my script because it is meaningless without whole
infrastructure, but can answer your questions
-----Original Message-----
From: serusers-bounces(a)iptel.org [mailto:serusers-bounces@lists.iptel.org] On
Behalf Of Andres
Sent: Wednesday, July 14, 2004 4:43 PM
To: Jan Janak
Cc: serusers(a)lists.iptel.org
Subject: Re: [Serusers] route managment
>>approach is completely impractical for a large network. Just imagine
a
>>network with 20 Gateways...100 Gateways...
>>
>>
>
> You can use m4 (or any other) preprocessor to generate the
> configuration file. It is not the best solution but it certainly
> helps. A sample file for m4 can be found in sip_router/etc/rules.m4,
> sample config file using this approach is in
> sip_router/etc/ser.cfg.m4 (in unstable cvs branch).
>
> Jan.
>
>
Hi Jan,
Maybe I am missing something here but I thought ser.cfg had a limit of
20 route blocks. Even if we use m4 wouldn't we have this limit? If so
then how can we implement 100 gateway routes elegantly in their own
route block? Must we stuff 5 per route block or all in one huge PSTN
route block?
Thanks,
--
Andres
Network Admin
http://www.telesip.net
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
Hey Ezequiel,
Many thanks for the quick response! Yeah, sorry, I should have
mentioned I already have persistent storage for the user tables -
they're all stored using mode2, I was just checking with all the
references to "aliases stored in cache" that they were actually written
to the db as well.
Could you explain what the FOREVER_REL value is? Why would the value be
too high? Too large a number of the type of storage in the mysql table?
Also, does anyone know why the serctl script says the alias was added,
but it doesn't seem to have been..?
Many thanks again everyone,
D
________________________________
From: Ezequiel Colombo [mailto:ecolombo@arcotel.net]
Sent: 14 July 2004 19:54
To: Dave Bath; serusers(a)lists.iptel.org
Subject: Re: [Serusers] Aliasing problem
Dave, you must turn no the persistent storage of the usrloc table. After
this the contacts added in the memory table can be dumped to mysql.
You can also check in the script serctl if the value of the variable
FOREVER_REL is appropiate or is too high for your mysql aliases table
and cause the INSERT to fail. In my network i have reduced this value to
FOREVER_REL=31536000 (one year).
... FROM README FILE OF USRLOC MODULE ...
1.3.10. db_mode (integer)
The usrloc module can utilize database for persistent contact
storage. If you use database, your contacts will survive
machine restarts or sw crashes. The disadvantage is that
accessing database can be very time consuming. Therefore,
usrloc module implements three database accessing modes:
* 0 - This disables database completely. Only memory will be
used. Contacts will not survive restart. Use this value if
you need a really fast usrloc and contact persistence is
not necessarry or is provided by other means.
* 1 - Write-Through scheme. All changes to usrloc are
immediately reflected in database too. This is very slow,
but very reliable. Use this scheme if speed is not your
priority but need to make sure that no registered contacts
will be lost during crash or reboot.
* 2 - Write-Back scheme. This is a combination of previous
two schemes. All changes are made to memory and database
synchronization is done in the timer. The timer deletes
all expired contacts and flushes all modified or new
contacts to database. Use this scheme if you encounter
high-load peaks and want them to process as fast as
possible. The mode will not help at all if the load is
high all the time. Also, latency of this mode is much
lower than latency of mode 1, but slightly higher than
latency of mode 0.
Warning
In case of crash or restart contacts that are in memory only
and haven't been flushed yet will get lost. If you want
minimize the risk, use shorter timer interval.
Default value is 0.
Example 1-10. Set db_mode parameter
...
modparam("usrloc", "db_mode", 2)
...
----- Original Message -----
From: Dave Bath <mailto:dave@fuuz.com>
To: serusers(a)lists.iptel.org
Sent: Wednesday, July 14, 2004 3:40 PM
Subject: [Serusers] Aliasing problem
Hey guys,
I have been playing with SER for a few days now, and apart from
having to rebuild all the RPMs to get it working on FC1 with mysql4
(mysql4 is apparently not officially supported in FC1 ?!) everything was
smooth and dandy. Really enjoying using such a powerful and flexible
product.
However, I have one problem, and I've done my best to trawl all
the groups and lists, and debug it myself and I cannot work out what is
going on - perhaps I just don't understand how it works properly. I am
trying to set numerical aliases so that incoming routing can be handled
more easily by a PSTN gateway. I am trying the command:
Serctl alias add 1000 sip:admin@<sipserver>
I get a reply that the alias has been added (once a previous
message on this list pointed out that I needed to add lookup("aliases");
to ser.cfg)!
The problem is the mysql table is still empty - although serctl
says that the alias has been added, it doesn't seem to have been. When I
try and call "1000" I get a 404 not found, but calling "admin" works
fine.
Does anyone have any ideas?!
Also, on a slight side note, I was assuming that the aliases are
reboot-safe... they're stored in the database and will get reloaded if
ser is rebooted. Is this the case by default or does an option need to
be enabled?
Sorry for the long post. Many thanks to everyone who has worked
on this, and it would be fantastic to get this last bit sorted out.
Cheers,
Dave
Inmarsat Ltd
Global Satellite Communications
Regional BGAN Engineer
________________________________
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
hello
IŽm still having problems (since two months ago) to obtain radius accounting, the authentication process works well and the calls are completed but I did not see any "Accounting Report" in /var/log/radius/radacct/ or neither in radiusd -X debug and now IŽve just seen this error after ACK message in the debug file:
" ERROR: acc_rad_request: radius-ing failed "
.
.
.
8(7957) ERROR: acc_rad_request: radius-ing failed
8(7957) DEBUG: cleanup_uacs: RETR/FR timers reset
8(7957) DEBUG: add_to_tail_of_timer[2]: 0x402f59b8
8(7957) receive_msg: cleaning up
5(7954) ERROR: acc_rad_request: radius-ing failed
5(7954) SER: forwarding ACK statelessly
5(7954) DEBUG: mk_proxy: doing DNS lookup...
5(7954) check_via_address(10.0.0.236, 10.0.0.236, 0)
5(7954) Sending:
ACK sip:6604000@200.110.6.58 SIP/2.0
Record-Route: <sip:6604000@200.110.2.132;ftag=5c0013eda4;lr=on>
Via: SIP/2.0/UDP 200.110.2.132;branch=0
Via: SIP/2.0/UDP 10.0.0.236:5060;branch=z9hG4bK5c0013eda465
From: <sip:6603000@200.110.2.132>;tag=5c0013eda4
To: <sip:6604000@200.110.2.132>;tag=ac407c95a4
Call-ID: 5cc06e00-b11a-13ae-80ed-0002a40055b2(a)10.0.0.236
CSeq: 65 ACK
Content-Length: 0
Max-Forwards: 69
.
.
.
I have noticed that this error appears only when I try "setflag(1)" for the transactions I want to account, also in this case the ACK message it comes too late (not when pick Up the phone...).
these are some details of my installation:
- SuSE Linux 9.0 (i586)
- ser-0.8.12
- I have followed "radius-how-to" very carefully.
- radiusclient-0.3.2
- freeradius-0.9.3 (installed in the same host with ser and receiving accounting from other NAS)
- I am not using mysql (I will use it with radius integration).
- my current ser.cfg and endpoints configuration are shown below:
another question: Is it possible to have "per-call authentication" with this radius module?
I am new in SIP protocol and ser services so please I need someone share its ser.config file to make this works.
thanks.
Rafael Risco Gonzale-Vigil
Millicom Peru SA
Lima - Peru
ser1.cfg
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
# ----------- 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
debug=6
fork=yes
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"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
#loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
# loadmodule "/usr/local/lib/ser/modules/uri.so"
# loadmodule "/usr/local/lib/ser/modules/uri_radius.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/local/lib/ser/modules/auth.so"
# loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
loadmodule "/usr/local/lib/ser/modules/group_radius.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
# load the NAT Helper Module
# loadmodule "/usr/local/lib/ser/modules/nathelper.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", 2)
# -- 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)
modparam("acc","log_level",1)
modparam("auth_radius","radius_config","/usr/local/etc/radiusclient/radiusclient.conf")
modparam("auth_radius","service_type",15)
modparam("acc","radius_config","/usr/local/etc/radiusclient/radiusclient.conf")
modparam("acc", "service_type", 15)
modparam("acc", "radius_flag", 1)
modparam("acc", "radius_missed_flag", 3)
# ------------------------- request routing logic -------------------
# main routing logic
route{
setflag(1);
if (method=="REGISTER")
log(1, "REGISTER message received\n");
if (method=="INVITE")
log(1, "INVITE message received\n");
if (method=="ACK")
log(1, "ACK message received\n");
if (method=="BYE")
log(1, "BYE message received\n");
if (method=="CANCEL")
log(1, "CANCEL message received\n");
if (method=="SUBSCRIBE")
log(1, "SUBSCRIBE message received\n");
if (method=="NOTIFY")
log(1, "NOTIFY message received\n");
if (method=="OPTIONS")
log(1, "OPTIONS message received\n");
if (method=="INFO")
log(1, "INFO message received\n");
if (method=="MESSAGE")
log(1, "MESSAGE message received\n");
if (method=="REFER")
log(1, "REFER message received\n");
/*
if (method =="INVITE" | method == "BYE"){
log(1,"INVITE or BYE\n");
setflag(1);
};
if (method=="MESSAGE") {
log(1,"MESSAGE\n");
setflag(1);
};
if (method=="BYE"){
log (1, "BYEd or CANCEL\n");
setflag(1);
};
if (method=="CANCEL"){
log (1, "BYEe or CANCEL\n");
setflag(1);
};
*/
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
break;
};
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
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
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 (!radius_www_authorize("")) {
www_challenge("", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay()) {
sl_reply_error();
};
}
########################################################################
Example of one endpoint config:
VoiceFinder Gateway Series (http://www.addpac.com)
AP200B System software Revision 8.10
!
! VoIP configuration.
!
!
! Voice service voip configuration.
!
voice service voip
fax protocol t38 redundancy 0
fax rate 9600
h323 call start fast
no force-starth245
busyout monitor gatekeeper
busyout monitor voip-interface
display send e164
!
!
! Voice port configuration.
!
voice-port 0/0
! FXS
caller-id enable
!
!
voice-port 0/1
! FXS
caller-id enable
!
!
!
!
! Pots peer configuration.
!
dial-peer voice 0 pots
destination-pattern 6600020
port 0/0
call-waiting
!
dial-peer voice 1 pots
destination-pattern 6603000
port 0/1
call-waiting
!
!
!
! Voip peer configuration.
!
!
dial-peer voice 1002 voip
destination-pattern 6604000
session target sip-server
session protocol sip
codec g7231r63
dtmf-relay rtp-2833
!
!
!
! SIP UA configuration.
!
sip-ua
user-register
sip-username 660300X
sip-password 1234
sip-server 200.X.2.132
register e164
!
!
! MGCP configuration.
!
mgcp
codec g711ulaw
!
!
! Tones
!
!
voip-interface ether0.0
!
agent00 #
Hi,
I'm trying to use Asterisk as a SUA which would allow me to register on a SER
running on the same machine and to send simple test messages through the CLI
to another SUA located on another computer, registered on a SER running also
on this other computer. I need the CLI because I have to work remotely.
Is Asterisk the good choice in your opinion?
Thanks a lot for any help.
Cyprien
Hello,
i am currently trying to understand what exactly "loose routing"
is and what exactly "loose_route" does.
According to the admin manual and several postings from iptel.org
members on this this piece of code should be at the very top of
every routing script right after the sanity checks:
# subsequent messages within a dialog should take the
# path determined by record-routing
if ( loose_route() ) {
t_relay();
break;
};
AFAIK a proxy determines if a request should be "loose routed" by
looking at the "Record-Route"/"lr=on" option.
Questions:
If i have this statement bevore any authentication checks, dont i risk
to have an open relay? Its easy to append a "lr=on" to every request.
When exactly is "loose_route == TRUE" I cant find any real info about this
either in the admin doc, nor in the according modules README file.
I did understood what "Record-Route:" does, but what does "Route:" do i.e.
wheres the difference between both?!
Does every "subsequent" message belonging to a (statefull) sip call
get evaluatet in SERs main route block? (As long as its record-routed
off course and the proxy "sees" it).
best regards,
Arnd
Hello:
I have a second instance of SER running on the same box as the
first instance. The first instance is our proxy server the second
exists only to integrate SEMS with the failure_route block. It
seems that each instance of SER and possibly SEMS too must
be started in a specific sequence. Has anyone looked into this?
What I'm seeing is that if the 2nd instance of SER is started
first then administrators using serctl experience problems accessing
certain functions. Specifically I am seeing a 'ul_dump' does not
exist error when issuing the serctl ul show command.
If I start the 1st instance (proxy) of SER first I do not get this
error.
Thinking this was due to missing loadmodules in the 2nd config file
I copied the loadmodule statements from the 1st config file to the 2nd.
I no longer have issues with serctl regardless of the startup sequence
but now calls that use to fail over to SEMS are getting a fast busy.
Am I missing something about the startup sequence of 2 instances of
SER ?
Thanks,Steve
--
ISC Network Engineering
The University of Pennsylvania
3401 Walnut Street, Suite 221A
Philadelphia, PA 19104
voice: 215-573-8396
215-746-7903
fax: 215-898-9348
sip:blairs@upenn.edu
hello friends,
i just want to know the basic architecture of the ser
in ascii diagram
how does this maintain registar ,redirect ,location
and the proxy servers.
as for as my undestanding i thought
redirect+registar+location
|
|
ua--> proxy--|-------->ua
does this is correct
please guide me
with regards
rama kanth
__________________________________
Do you Yahoo!?
Yahoo! Mail - You care about security. So do we.
http://promotions.yahoo.com/new_mail
Is anyone familar with the newer VOIP devices that sit outside the LAN
between the cable/DSL modem and the firewall/NAT router? I understand AT&T
is using something like this but what they use has a device like a Cisco 186
and a router built into one for under $100. Basically, it's a SIP friendly
router with POTS ports. Vonage has something like this mentioned on their
web site as well. This allows them to offer SIP/VOIP services quickly
without having to battle the NAT problems.
Anyone using such an animal?
Bill Dunn
Hi Jan
> On 16-06 16:53, Jimes Vasco Milanez wrote:
> > Hi all
> >
> > I noticed that the desc_time_order parameter of the
> registrar module (in ser.cfg) doesn't seem to work as it
> should (according to the description in the registrar manual).
> > If I understood correctly, if desc_time_order = 1 (using
> modparam) the newest contact should be used among those of
> same priority (I'm using the append_branches parameter equal to 0).
>
> What exactly does not work, could you give me an example ?
not the newest contact is used for calling in the case of logging on from two softphones. In the tests that I've performed, if I log from two softphones (We are using X-Lite) not necessarily the calls arrive to that latest logged in. (using the configuration mentioned above)
> > Another doubt is whether it is possible or not to use
> append_branches=1 to do priority-driven forking (all contacts
> are receiving the request, no matter which is their priority;
> is it possible to limit the forking just to those of same
> priority (q)? or even something better? :-) )
>
> No.
thanks!
Jimes