Well, the question is too generic and it does not contain enough
information so we will not be able to help you. There are many things
that can go wrong, try to investigate yourself. You have higher chance
of getting reply with more specific questions.
Jan.
On 01-12 11:04, Pavel Siderov wrote:
Marian, Jan please tell me what to do.
----- Original Message -----
From: Pavel Siderov
To: serusers(a)lists.iptel.org
Sent: Tuesday, November 30, 2004 6:58 PM
Subject: [Serusers] Forward to Quintum GW - One way audio
Hi guys,
I have a strange problem when tying to forward call to Quintum gw.
Callee is hearing what I speak but I don't hear anything.
Forwarding to another SER is ok. Both - users with real ips and natted.
Somebody can help me?
Here is my config file:
debug=10 # debug level (cmd line: -dddddddddd)
#fork=yes
log_stderror=yes # (cmd line: -E)
/* Uncomment these lines to enter debugging mode
debug=7
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"
#fork=no
# ------------------ 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/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/group.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://ser:heslo@192.168.2.15/ser")
modparam("usrloc","user_column","username")
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("rr", "enable_full_lr", 1)
#modparam("acc", "db_url",
"mysql://ser:heslo@192.168.2.15/ser")
#modparam("acc", "log_level", 2)
#modparam("acc", "log_flag", 3)
#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_fmt", "cdfimorstup")
modparam("acc", "db_url",
"mysql://ser:heslo@192.168.2.15/ser")
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 1)
modparam("acc", "log_missed_flag", 1)
#modparam("acc", "report_cancels", 1)
modparam("acc", "report_ack", 1)
#modparam("mediaproxy", "mediaproxy_socket",
"/var/run/proxydispatcher.sock")
#modparam("mediaproxy", "natping_interval", 20)
modparam("nathelper","rtpproxy_sock",
"/var/run/rtpproxy.sock")
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
modparam("nathelper", "ping_nated_only", 1)
listen=193.2.6.17
# ------------------------- request routing logic -------------------
# main routing logic
route{
if (!mf_process_maxfwd_header("70")) {
sl_send_reply("483","Too Many Hops");
break;
};
if ( msg:len > max_len ) {
sl_send_reply("513", "Message too big");
break;
};
if (nat_uac_test("3")) {
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(6); # Mark as NATed
};
};
if (!method=="REGISTER") record_route();
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 (uri==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("193.2.6.17", "subscriber")) {
www_challenge("193.2.6.17", "0");
break;
};
save("location");
break;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
if (uri=~"^sip:[1-9]*@193.2.6.17") { # QUINTUM GW
rewritehost("194.24.1.6");
append_branch("194.24.1.6");
# t_relay_to_udp("194.24.1.6", "5060");
t_relay();
rewritehostport("194.24.1.6:5060");
append_hf("P-hint: VoipSwitch GATEWAY");
break;
}
} else {
if (uri=~"^sip:[0]*@193.2.6.17") { ### Other SER
setflag(1);
rewritehostport("bla.mydomain.com:5060");
append_branch("bla.mydomain.com");
t_relay();
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]
{
# 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();
};
}
Thanks In Advance!
Pavel Siderov
------------------------------------------------------------------------------
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers