Hello.
Recently I've been fighting with SER running on local IP, which is
statically mapped to public one via NAT/firewall.
The problem was in SER putting local IP into Record-route field.
Therefore, a public client (X-lite) was trying to send BYE message to
this local IP. I used record_route_preset("<SER public IP>") in place
of record_route() to solve the problem.
Does someone have any comments on the method? Are there any other
solutions, (despite the obvious one to put SER into public
Internet)?
Usage of record_route_preset() is not recommended by the docs.
Wouldn't it brake anything?
...Bye..Dmitry.
hello friends,
my cdrtoll version 1-0.4
my os is redhat 9
mysql-3.23.54a-11
php-4.2.2-17
i have followed all the steps given in INSTALL
created all the databases etc
but when i run http:/ip/CDRTool
it gives error as
Fatal error: Class db_cdrtool: Cannot inherit from
undefined class db_sql in /var/www/CDRTool/global.inc
on line 29
so what might be the problem
with regards
rama kanth
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
Hallo,
In order to listen for the messages from SER , should I write a module in DISC Client?
Regards
Yongcheng
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Hallo,
In order to listen for the messages from SER , should I write a module in DISC Client?
Regards
Yongcheng
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
Hi, i compiled some of the tools included in the /test directory of the source CVS of SER. I want test the performace of SER in my server and look at the udp_flood.c program included, this generate a flood of SIP messages to the server. My question is how interpret the results.
If i send for example a flood with INVITE request for non-existent user to my SER and see how much SER respond to this flood in a time period, i supose that this is the Call Per Second supported by SER ?
Ex:
# flood SER with 100 request in one second
./udp_flood -f invite00.sip -d 192.168.1.1 -p 5060 -s 1000000 -t 100 -v -c 100
# SER make a log(1,"PROC_OK") for each invite processed
...
# At the end of udp_flood execution + some seconds i make
grep "PROC_OK" /var/log/ser.log | wc -l
Now, after this if i can see 100 at result of wc -l i supose at least 100 INVITE per second is supported for my SER ???
Thanks !
Usage: udp_flood -f file -d address -p port -c count [-v]
Options:
-f file file with the content of the udp packet (max 65k)
-d address destination address
-p port destination port
-c count number of packets to be sent
-s usec microseconds to sleep before sending "throttle" packets
-t throttle number of packets to send before sleeping
-v increase verbosity level
-V version number
-h this help message
I want to download the MySQL module for my SER.
But there is nothing to download under that module.
So where can I get the module and installation guide for MySQL module.
Also can I work ahead and use SER w/o MySQL. If yes how can I do that
please provide me with the info.
Thanks
Dipen K Gala
Fidelity Investments System Company - Telecom
Phone: (617) 563-2729
Email: Dipen.Gala(a)FMR.com
Are there any config entries required when clients will need to connect
using STUN ?
Could the configs for the Nathelper module, taken from the examples, be
interfering with clients using STUN ?
# ----------- global configuration parameters ------------------------
debug=7 # 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"
# ------------------ 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/tm.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/sl.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/textops.so"
loadmodule "/usr/local/lib/ser/modules/vm.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"
# Transaction Module Params
modparam("tm", "fr_inv_timer", 90)
# Acounting Module Params
# set the reporting log level
modparam("acc", "log_level", 1)
# number of flag, which will be used for accounting; if a message is
labeled with this flag, its completion status will be reported
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 2)
modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("acc", "db_flag", 11)
modparam("acc", "db_missed_flag", 12)
modparam("acc", "failed_transactions", 1)
# !! Nathelper
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)
# !! Nathelper
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
# ------------------------- request routing logic -------------------
# main routing logic
route{
/* ********* ROUTINE CHECKS ********************************** */
# 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;
};
# Process record-routing
#if (loose_route()) { t_relay(); break; };
# labeled all transaction for accounting
setflag(11);
# record-route INVITES to make sure BYEs will visit our server too
if (method=="INVITE") record_route();
# forward the request statefuly now; (we need *stateful* forwarding,
# because the stateful mode correlates requests with replies and
# drops retranmissions; otherwise, we would have to report on
# every single message received)
/* if (!t_relay()) {
sl_reply_error();
break;
};
*/
# !! Nathelper
# Special handling for NATed clients; first, NAT test is
# executed: it looks for via!=received and RFC1918 addresses
# in Contact (may fail if line-folding is used); also,
# the received test should, if completed, should check all
# vias for rpesence of received
if (nat_uac_test("3")) {
# Allow RR-ed requests, as these may indicate that
# a NAT-enabled proxy takes care of it; unless it is
# a REGISTER
if (method == "REGISTER" || ! search("^Record-Route:")) {
log("LOG: Someone trying to register from private IP,
rewriting\n");
# This will work only for user agents that support
symmetric
# communication. We tested quite many of them and
majority is
# smart enough to be symmetric. In some phones it takes
a configuration
# option. With Cisco 7960, it is called NAT_Enable=Yes,
with kphone it is
# called "symmetric media" and "symmetric signalling".
fix_nated_contact(); # Rewrite contact with source IP of
signalling
if (method == "INVITE") {
fix_nated_sdp("1"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setflag(11); # Mark as NATed
};
};
# 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=~"xxx.com") {
# 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=~"xxx.com") {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("xxx.com", "subscriber")) {
www_challenge("xxx.com", "0");
break;
};
save("location");
break;
};
lookup("aliases");
if (!uri=~"xxx.com") {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# attempt handoff to PSTN
## This assumes that the caller is registered in our realm
if (uri=~"^sip:[0-9]*@sip.xxx.com") {
log("Forwarding to PSTN\n");
t_relay_to_udp( "xxx.xxx.xxx.xxx", "xxxx"); ## Our
Cisco router
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]
{
# !! Nathelper
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" &&
!search("^Route:")){
sl_send_reply("479", "We don't forward to private IP
addresses");
break;
};
# if client or server know to be behind a NAT, enable relay
if (isflagset(6)) {
force_rtp_proxy();
};
# NAT processing of replies; apply to all transactions (for example,
# re-INVITEs from public to private UA are hard to identify as
# NATed at the moment of request processing); look at replies
t_on_reply("1");
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
# !! Nathelper
onreply_route[1] {
# NATed transaction ?
if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
fix_nated_contact();
force_rtp_proxy();
# otherwise, is it a transaction behind a NAT and we
did not
# know at time of request processing ? (RFC1918
contacts)
} else if (nat_uac_test("1")) {
fix_nated_contact();
};
}
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.701 / Virus Database: 458 - Release Date: 6/7/2004
hello have a problem, I need that all the trafico that be not internal of my server sip be fowarding to a gatekepper h323
That I can utilize??
thanks
Saludos!
Sergio Gerardo Festa
HI KLAUS;
I still have problem with sending mail.I didnot configure any smtp server on my unix box.I set smtp_server to our service provide smtp server(mail.rasatech.com).
But I still have problem.I donot know from which mail box the mail is sending out.where should I told sems to send an email from a mail box.
plzzzz help me
mohammad