Hello,
Unfortunately we cannot write the entire configuration file for you,
you should try yourself and ask for advice on particular problems,
then we can help you. Maybe somebody else on the list have similar
configuration and might send you the configuration script.
Also, read the following documentation:
SIP introduction:
The documentation covers everything you are going to need.
Also take a look at the mailing list archives because most of the stuff
has been covered already.
You can search through the archives using google. For example if you
were looking for mails related to accounting then you can type
"accounting site:mail.iptel.org".
Also make yourself familiar with the ngrep utility, the utility can make
dumps of SIP messages.
Jan.
On 26-11 12:09, xwang(a)novsky.com wrote:
sorry for again and again because my mail seems to be
unreadable
Pls help me to config ser.cfg
Now my envirmonet is:
ser server: 172.16.255.1:5060 ( without DNS server )
SIP PSTN gateway: 172.16.255.1:6050
SIP UA: 172.16.2.xx
And all SIP UAs have a PSTN number like 6169xxxx
There are no DNS server in the system.(we don't apply for a domain name)
I want:
1 All users use digest authorization when SIP UA registing ------ finished
2 All calls from SIP UA need authorization (return 407 to Invite request)
3 All calls to PSTN transfer to the SIP PSTN gateway(number no like
"6169xxxx") -------- almost finished
3 All calls from the SIP PSTN gateway do not need authorization(I think use a caller
sip:gateway@172.16.255.1:6050 as caller when call from gateway,then all call from this
user and this ip address needn't authorazation)
4 All calls need write CDR record to mysq datebase
The bigest problem is I don't know how to write conditonal sentence , like
if(uri!=~"xxxx")
or
if((uri=="xxxx") | (uri=="yyyy"))
There are no document talking about the syntax.
Please help me. Any help is appreciate.
Now my ser.cfg is:
#
# $Id: ser.cfg,v 1.21.2.1 2003/07/30 16:46:18 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
debug=7
fork=no
log_stderror=yes
*/
debug=7
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/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"
# 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", 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)
# ------------------------- request routing logic -------------------
# main routing logic
route{
# 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 (len_gt( 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 (!www_authorize("novsky.com", "subscriber")) {
www_challenge("novsky.com", "0");
break;
};
save("location");
break;
};
# native SIP destinations are handled using our USRLOC DB
# if (!lookup("location")) {
# if(uri=~"^sip:6169*@") {
# forward(172.16.255.1,6050);
# break;
# };
# else {
# sl_send_reply("404", "Not Found");
# break;
# };
# };
if(uri=~"^sip:6169[0-9]*@[0-9|\.]*") {
if(!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
forward(172.16.255.1,6050);
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();
};
}
Best regards
wangji
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers