<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#3333FF">
instale el rtp proxy en otro servidor<br>
en los LOGs de rtp ahora sale<br>
<br>
Mar 23 17:09:22 id206222g rtpproxy[15666]: DBUG:handle_command:
received command "9624_5 Uc0,101
603bba72006d127cYTg1Mzc4Y2NiOTJiNjcyMTVjMjJiMDM2MGY3NmRhMWY.
186.153.73.221 62180 b7656927;1"<br>
Mar 23 17:09:22 id206222g rtpproxy[15666]: INFO:handle_command: new
session
603bba72006d127cYTg1Mzc4Y2NiOTJiNjcyMTVjMjJiMDM2MGY3NmRhMWY., tag
b7656927;1 requested, type strong<br>
Mar 23 17:09:22 id206222g rtpproxy[15666]: INFO:handle_command: new
session on a port 46004 created, tag b7656927;1<br>
Mar 23 17:09:22 id206222g rtpproxy[15666]: INFO:handle_command:
pre-filling caller's address with 186.153.73.221:62180<br>
Mar 23 17:09:22 id206222g rtpproxy[15666]: DBUG:doreply: sending
reply "9624_5 46004 187.49.226.42 "<br>
<br>
PERO SIGUE SIN AUDIO EN UNA PUNTA.<br>
<br>
<br>
Por favor dame una luz<br>
<br>
envio mi configuracion, porque no se mas donde encontrar errores<br>
<br>
----------------------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
####### Global Parameters #########<br>
<br>
debug=3<br>
log_stderror=no<br>
log_facility=LOG_LOCAL0<br>
<br>
fork=yes<br>
children=4<br>
<br>
<br>
port=5060<br>
<br>
listen=udp:65.254.63.212:5060<br>
<br>
<br>
####### Modules Section ########<br>
<br>
#set module path<br>
mpath="/usr/local/lib/opensips/modules/"<br>
<br>
loadmodule "db_mysql.so"<br>
loadmodule "signaling.so"<br>
loadmodule "sl.so"<br>
loadmodule "tm.so"<br>
loadmodule "maxfwd.so"<br>
loadmodule "avpops.so"<br>
loadmodule "usrloc.so"<br>
loadmodule "registrar.so"<br>
loadmodule "textops.so"<br>
loadmodule "mi_fifo.so"<br>
loadmodule "uri.so"<br>
loadmodule "rr.so"<br>
loadmodule "acc.so"<br>
loadmodule "domain.so"<br>
loadmodule "load_balancer.so"<br>
loadmodule "dialog.so"<br>
loadmodule "auth.so"<br>
loadmodule "auth_db.so"<br>
loadmodule "siptrace.so"<br>
loadmodule "nathelper.so"<br>
loadmodule "rtpproxy.so"<br>
<br>
<br>
# ----------------- setting module-specific parameters
---------------<br>
modparam("load_balancer",
"db_url","mysql://opensips:prueba@localhost/opensips")<br>
<br>
<br>
# ----- siptrace -----<br>
modparam("siptrace", "db_url",
"mysql://opensips:prueba@localhost/opensips")<br>
modparam("siptrace", "trace_flag", 22)<br>
modparam("siptrace", "trace_on", 1)<br>
modparam("siptrace", "enable_ack_trace", 1)<br>
#modparam("siptrace", "traced_user_avp", "$avp(123)")<br>
#modparam("siptrace", "traced_user_avp", "$avp(user)")<br>
<br>
<br>
# ----- rtpproxy -----<br>
modparam("rtpproxy", "rtpproxy_sock","udp:187.49.226.42:7890")<br>
<br>
# ----- dialog -----<br>
#modparam("dialog", "dlg_flag", 13)<br>
modparam("dialog", "db_mode", 1)<br>
modparam("dialog", "db_url",
"mysql://opensips:prueba@localhost/opensips")<br>
<br>
<br>
# ----- nathelper -----<br>
modparam("nathelper", "natping_interval", 10)<br>
modparam("nathelper", "natping_processes", 3)<br>
modparam("nathelper", "natping_socket", "localhost:5006")<br>
modparam("nathelper", "received_avp", "$avp(42)")<br>
modparam("nathelper", "force_socket", "localhost:33333")<br>
modparam("nathelper", "sipping_from", <a class="moz-txt-link-rfc2396E" href="sip:pinger@localhost">"sip:pinger@localhost"</a>)<br>
modparam("nathelper", "sipping_method", "INFO")<br>
<br>
modparam("nathelper", "sipping_bflag", 7)<br>
<br>
<br>
# ----- mi_fifo params -----<br>
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")<br>
<br>
<br>
# ----- rr params -----<br>
modparam("rr","enable_double_rr",1)<br>
modparam("rr","append_fromtag",1)<br>
<br>
<br>
<br>
# ----- usrloc params -----<br>
/* uncomment the following lines if you want to enable DB
persistency for location entries */<br>
modparam("usrloc", "db_mode", 2)<br>
modparam("usrloc",
"db_url","mysql://opensips:prueba@localhost/opensips")<br>
<br>
# ----- uri params -----<br>
#modparam("uri_db", "use_uri_table", 0)<br>
#modparam("uri_db", "db_url",
"mysql://opensips:prueba@localhost/opensips")<br>
<br>
<br>
<br>
# ----- acc params -----<br>
/* what sepcial events should be accounted ? */<br>
modparam("acc", "early_media", 1)<br>
modparam("acc", "report_cancels", 1)<br>
/* by default ww do not adjust the direct of the sequential
requests.<br>
if you enable this parameter, be sure the enable "append_fromtag"<br>
in "rr" module */<br>
modparam("acc", "detect_direction", 0)<br>
/* account triggers (flags) */<br>
modparam("acc", "failed_transaction_flag", 3)<br>
modparam("acc", "log_flag", 1)<br>
modparam("acc", "log_missed_flag", 2)<br>
/* uncomment the following lines to enable DB accounting also */<br>
modparam("acc", "db_flag", 1)<br>
modparam("acc", "db_missed_flag", 2)<br>
<br>
<br>
# ----- auth_db params -----<br>
/* uncomment the following lines if you want to enable the DB
basedauthentication */<br>
modparam("auth_db", "password_column", "password")<br>
modparam("auth_db", "password_column_2", "ha1b")<br>
modparam("auth_db", "calculate_ha1", 1)<br>
modparam("auth_db",
"db_url","mysql://opensips:prueba@localhost/opensips")<br>
modparam("auth_db", "load_credentials", "")<br>
modparam("auth_db", "skip_version_check", 1)<br>
<br>
# ----- alias_db params -----<br>
/* uncomment the following lines if you want to enable the DB
based aliases */<br>
#modparam("alias_db",
"db_url","mysql://opensips:prueba@localhost/opensips")<br>
<br>
# ----- domain params -----<br>
/* uncomment the following lines to enable multi-domain
detectionsupport */<br>
modparam("domain",
"db_url","mysql://opensips:prueba@localhost/opensips")<br>
modparam("domain", "db_mode", 1) # Use caching<br>
<br>
<br>
# ----- multi-module params -----<br>
/* uncomment the following line if you want to enable multi-domain
supportin the modules (dafault off) */<br>
modparam("auth_db|usrloc|uri", "use_domain", 1)<br>
<br>
<br>
<br>
####### Routing Logic ########<br>
<br>
route {<br>
$avp(s : user) = $fu; #for sip_trace<br>
#
-----------------------------------------------------------------<br>
# Sanity Check Section<br>
#
-----------------------------------------------------------------<br>
if (!mf_process_maxfwd_header("256")) {<br>
if (method != "ACK") {<br>
sl_send_reply("483", "Too Many Hops");<br>
}<br>
return;<br>
}<br>
if (msg:len > max_len) {<br>
if (method != "ACK") {<br>
sl_send_reply("513", "Message Overflow");<br>
}<br>
return;<br>
}<br>
<br>
if (status == "482") { #loop detection<br>
xlog("L_ERR", "Webur: $mi $rm $fu -> $ru status 482 Loop
Detected\n");<br>
return;<br>
}<br>
<br>
if (!mf_process_maxfwd_header("3")) {<br>
sl_send_reply("483", "looping");<br>
exit;<br>
}<br>
<br>
if (!has_totag()) {<br>
# initial request<br>
<br>
} else {<br>
# sequential request -> obey Route indication<br>
loose_route();<br>
t_relay();<br>
exit;<br>
}<br>
<br>
#
-----------------------------------------------------------------<br>
# Call Type Processing Section<br>
#
-----------------------------------------------------------------<br>
<br>
if (method == "INVITE") {<br>
route(3);<br>
return;<br>
} else<br>
if (method == "ACK") {<br>
route(9);<br>
return;<br>
} else<br>
if (method == "BYE" || method == "CANCEL") {<br>
route(5);<br>
return;<br>
} else<br>
if (method == "REGISTER" || method == "MESSAGE") {<br>
route(1);<br>
return;<br>
} else<br>
if (method == "PUBLISH" || method ==
"SUBSCRIBE") {<br>
<br>
return;<br>
} else<br>
if (method == "NOTIFY") {<br>
sl_send_reply("200", "Understood");<br>
return;<br>
} else<br>
if (method == "OPTIONS") {<br>
sl_send_reply("200", "Got it");<br>
return;<br>
}<br>
}<br>
<br>
<br>
route[1] {<br>
<br>
#
-----------------------------------------------------------------<br>
# Register<br>
#
-----------------------------------------------------------------<br>
<br>
if (is_method("REGISTER")) {<br>
route(4);<br>
if (isflagset(5)) {<br>
record_route(";nat=yes");<br>
} else {<br>
record_route();<br>
}<br>
<br>
<br>
if (!www_authorize("", "a2billing")) {<br>
www_challenge("", "0");<br>
}<br>
# auth done -> send it to registrar<br>
consume_credentials();<br>
$du = <a class="moz-txt-link-rfc2396E" href="sip:65.254.63.212:5060">"sip:65.254.63.212:5060"</a>;<br>
save("location");<br>
t_relay();<br>
exit;<br>
}<br>
}<br>
<br>
route[3] {<br>
#
-----------------------------------------------------------------<br>
# Handle Calls<br>
#
-----------------------------------------------------------------<br>
xlog("L_INFO", "Place Holder");<br>
if (!has_totag()) {<br>
if (is_method("INVITE")) {<br>
trace_dialog();<br>
} else {<br>
sip_trace();<br>
}<br>
}<br>
<br>
if (loose_route()) {<br>
if (!has_totag()) {<br>
xlog("L_INFO", "Initial loose-routing rejected - M=$rm
RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br>
sl_send_reply("403", "Initial Loose-Routing Rejected");<br>
exit;<br>
}<br>
if (is_method("INVITE")) {<br>
<br>
route(5);<br>
}<br>
<br>
append_hf("P-hint: rr-enforced\r\n");<br>
route(6);<br>
}<br>
<br>
# NAT detection<br>
route(4);<br>
record_route();<br>
<br>
if ($rU =~ "^[0-9]{3}$") {<br>
lookup("location");<br>
route(8);<br>
t_on_failure("1");<br>
exit;<br>
}<br>
<br>
<br>
route(10);<br>
return;<br>
}<br>
<br>
<br>
# -----------------------------------------------------------------<br>
# Handle Handle NAT<br>
# -----------------------------------------------------------------<br>
<br>
route[4] {<br>
if (is_method("INVITE") && has_totag()) {<br>
engage_rtp_proxy();<br>
}<br>
force_rport();<br>
if (1) {<br>
if (nat_uac_test("19")) {<br>
xlog("L_INFO", "NAT detected1");<br>
if (method == "REGISTER") {<br>
fix_nated_register();<br>
} else {<br>
fix_nated_contact();<br>
fix_nated_sdp("1");<br>
<br>
<br>
xlog("L_INFO", "NAT detected2");<br>
}<br>
;<br>
setflag(5);<br>
return;<br>
}<br>
<br>
}<br>
}<br>
<br>
# -----------------------------------------------------------------<br>
# Gotta Go<br>
# -----------------------------------------------------------------<br>
<br>
route[5] {<br>
if (is_method("BYE|CANCEL")) {<br>
unforce_rtp_proxy();<br>
} else<br>
if (is_method("INVITE")) {<br>
if (has_body("application/sdp"))<br>
rtpproxy_offer("foc");<br>
t_on_failure("3");<br>
} else<br>
if (is_method("ASK")) {<br>
if (has_body("application/sdp"))<br>
rtpproxy_answer("foc");<br>
t_on_failure("3");<br>
}<br>
t_on_reply("3");<br>
}<br>
<br>
# -----------------------------------------------------------------<br>
# Handle Handle NAT<br>
# -----------------------------------------------------------------<br>
route[6] {<br>
if (subst_uri('/(<a class="moz-txt-link-freetext" href="sip:.*">sip:.*</a>);nat=yes/\1/')) {<br>
setbflag(0);<br>
}<br>
xlog("L_INFO", "NAT detected");<br>
if (isflagset(5) || isbflagset(0)) {<br>
route(5);<br>
if (!t_relay()) {<br>
sl_reply_error();<br>
}<br>
}<br>
}<br>
<br>
# -----------------------------------------------------------------<br>
# Gotta Go<br>
# -----------------------------------------------------------------<br>
route[7] {<br>
if (is_method("BYE|CANCEL")) {<br>
unforce_rtp_proxy();<br>
drop();<br>
} else<br>
if (is_method("INVITE")) {<br>
if (has_body("application/sdp"))<br>
rtpproxy_offer("foc");<br>
t_on_failure("3");<br>
} else<br>
if (is_method("ASK")) {<br>
if (has_body("application/sdp"))<br>
rtpproxy_answer("foc");<br>
t_on_failure("3");<br>
}<br>
t_on_reply("3");<br>
exit;<br>
}<br>
<br>
route[8] {<br>
#
-----------------------------------------------------------------<br>
# Extenstion Calls<br>
#
-----------------------------------------------------------------<br>
force_rport();<br>
#fix_nated_contact();<br>
<br>
if (has_body("application/sdp")) {<br>
rtpproxy_offer("foc");<br>
xlog("L_INFO", "NAT detected");<br>
t_on_failure("3");<br>
} else<br>
if (is_method("ASK")) {<br>
if (has_body("application/sdp"))<br>
fix_nated_sdp("1"); # Add direction=active to SDP<br>
rtpproxy_answer("foc");<br>
xlog("L_INFO", "NAT detected");<br>
<br>
}<br>
t_on_reply("3");<br>
<br>
if (!t_relay()) {<br>
sl_reply_error();<br>
<br>
# Error detection<br>
route(13);<br>
xlog("L_INFO", "Sent out From OPenSips");<br>
<br>
exit;<br>
}<br>
<br>
}<br>
<br>
<br>
# -----------------------------------------------------------------<br>
# Media Start<br>
# -----------------------------------------------------------------<br>
<br>
<br>
route[9] {<br>
<br>
<br>
setflag(4);<br>
force_rport();<br>
force_tcp_alias();<br>
rtpproxy_answer();<br>
<br>
<br>
return;<br>
<br>
<br>
}<br>
<br>
<br>
# -----------------------------------------------------------------<br>
# Load Balance -detect resources<br>
# -----------------------------------------------------------------<br>
<br>
<br>
route[10] {<br>
<br>
<br>
load_balance("1", "pstn");<br>
<br>
route(11);<br>
<br>
<br>
return;<br>
}<br>
<br>
<br>
# -----------------------------------------------------------------<br>
# Load Balance - Send It out<br>
# -----------------------------------------------------------------<br>
<br>
<br>
route[11] {<br>
<br>
# LB function returns negative if no suitable destination (for
requested resources) is found,<br>
# or if all destinations are full<br>
if ($retcode < 0) {<br>
sl_send_reply("500", "Service full");<br>
exit;<br>
}<br>
xlog("Selected Load Balance destination is: $du\n");<br>
<br>
# send it out<br>
route(4);<br>
<br>
if (!t_relay()) {<br>
sl_reply_error();<br>
# ERROR detection<br>
route(13);<br>
}<br>
return;<br>
}<br>
<br>
route[13] {<br>
<br>
# -----------------------------------------------------------------<br>
# Debuging info<br>
# -----------------------------------------------------------------<br>
return;<br>
}<br>
<br>
<br>
# -----------------------------------------------------------------<br>
# Handle Handle NAT<br>
# -----------------------------------------------------------------<br>
<br>
<br>
branch_route[2] {<br>
xlog("L_INFO: new branch at $ru\n");<br>
}<br>
<br>
# -----------------------------------------------------------------<br>
# Handle Handle NAT<br>
# -----------------------------------------------------------------<br>
<br>
onreply_route[2] {<br>
xlog("L_INFO: incoming reply\n");<br>
force_rport();<br>
if (status =~ "(183)|(2[0-9][0-9][0-9])" &&
has_body("application/sdp")) {<br>
if (nat_uac_test("19")) {<br>
log("L_INFO: Hem detectat NAT");<br>
setbflag(2); # flag for NAT<br>
# fix_nated_contact();<br>
fix_nated_sdp("11");<br>
rtpproxy_answer();<br>
<br>
}<br>
<br>
}<br>
;<br>
}<br>
<br>
onreply_route[3] {<br>
# sip_trace();<br>
if ((isflagset(5) || isbflagset(0)) && status =~
"(183)|(2[0-9][0-9][0-9])" && has_body("application/sdp")) {<br>
rtpproxy_answer();<br>
}<br>
if (!subst_uri('/(<a class="moz-txt-link-freetext" href="sip:.*">sip:.*</a>);nat=yes/\1/')) {<br>
search_append('Contact:.*sip:[^>[:cntrl:]]*',
';nat=yes');<br>
}<br>
if (isbflagset(0)) {<br>
#fix_nated_contact();<br>
}<br>
exit;<br>
}<br>
<br>
<br>
failure_route[1] {<br>
if (t_was_cancelled()) {<br>
exit;<br>
}<br>
<br>
# if the failure code is "408 - timeout" or "486 - busy",<br>
# forward the calls to voicemail recording<br>
if (t_check_status("486|408")) {<br>
# ASTERISK HOOK - BEGIN<br>
# First revert the RURI to get the original user in RURI<br>
# Then add the VM recording prefix to the RURI<br>
# forward to the call to Asterisk (replace below with real
IP and port)<br>
load_balance("1", "vm");<br>
prefix("*");<br>
rewritehostport("default");<br>
route(11);<br>
<br>
# ASTERISK HOOK - END<br>
exit;<br>
}<br>
}<br>
<br>
<br>
failure_route[3] {<br>
# sip_trace();<br>
if (isbflagset(0) || isflagset(5)) {<br>
unforce_rtp_proxy();<br>
}<br>
}<br>
<br>
----------------------------------------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Iñaki Baz Castillo wrote:
<blockquote
cite="mid:CALiegfkpehDYeY7ZkjT=vi5+kMosEOEkAHfiqbNm1Fkr_0woqQ@mail.gmail.com"
type="cite">
<pre wrap="">El día 23 de marzo de 2012 15:40, <a class="moz-txt-link-abbreviated" href="mailto:magnusadilsom@gmail.com">magnusadilsom@gmail.com</a>
<a class="moz-txt-link-rfc2396E" href="mailto:magnusadilsom@gmail.com"><magnusadilsom@gmail.com></a> escribió:
</pre>
<blockquote type="cite">
<pre wrap="">ERROR:nathelper:fix_nated_contact_f: SCRIPT BUG - second attempt to change
URI Contact
</pre>
</blockquote>
<pre wrap="">
Revisa tu script, estás llamando dos veces a la función fix_nated_contact().
</pre>
</blockquote>
<br>
</body>
</html>