Oh and the only manual manipulation of the route headers was an attempt to get
rid of that \304 in the header.
I think the \304 thing may be a red herring for now. I still can't get the
topology hiding to work. Below is my config file. It's literally the default
config file with nothing changed but I've put in my IP address on the listen
line, added a couple of aliases, added UAC module to try to change the from
header (that works) and the dialog module and a couple of modifications to the
route to make topology hiding work (not working for me).
Am I putting this in the wrong part of the route?
Thx
-BJ Quinn
---
debug=3
log_stderror=no
log_facility=LOG_LOCAL0
fork=yes
children=4
auto_aliases=no
listen=udp:xx.xx.xx.9:5060
disable_tcp=yes
disable_tls=yes
alias=xx.xx.xx.76:5060
alias=xx.xx.xx.77:5060
mpath="/usr/lib64/opensips/modules"
loadmodule "signaling.so"
loadmodule "sl.so"
loadmodule "tm.so"
modparam("tm", "fr_timer", 5)
modparam("tm", "fr_inv_timer", 30)
modparam("tm", "restart_fr_on_each_reply", 0)
modparam("tm", "onreply_avp_mode", 1)
loadmodule "rr.so"
modparam("rr", "append_fromtag", 0)
loadmodule "maxfwd.so"
loadmodule "sipmsgops.so"
loadmodule "mi_fifo.so"
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
modparam("mi_fifo", "fifo_mode", 0666)
loadmodule "uri.so"
modparam("uri", "use_uri_table", 0)
loadmodule "usrloc.so"
modparam("usrloc", "nat_bflag", "NAT")
modparam("usrloc", "db_mode", 0)
loadmodule "registrar.so"
modparam("registrar", "tcp_persistent_flag", "TCP_PERSISTENT")
loadmodule "acc.so"
modparam("acc", "early_media", 0)
modparam("acc", "report_cancels", 0)
modparam("acc", "detect_direction", 0)
modparam("acc", "failed_transaction_flag", "ACC_FAILED")
modparam("acc", "log_flag", "ACC_DO")
modparam("acc", "log_missed_flag", "ACC_MISSED")
# added to rewrite from header
loadmodule "uac.so"
loadmodule "uac_auth.so"
modparam("uac","restore_mode","manual")
#added for topology hiding
loadmodule "dialog.so"
route{
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
}
if (has_totag()) {
if (loose_route()) {
# added for topology hiding
if ($DLG_status==NULL && !match_dialog() ) {
xlog(" cannot match request to a dialog \n");
}
#/added for topology hiding
if (is_method("BYE")) {
setflag(ACC_DO);
setflag(ACC_FAILED);
} else if (is_method("INVITE")) {
record_route();
}
route(relay);
} else {
if ( is_method("ACK") ) {
if ( t_check_trans() ) {
t_relay();
exit;
} else {
exit;
}
}
sl_send_reply("404","Not here");
}
exit;
}
if (is_method("CANCEL"))
{
if (t_check_trans())
t_relay();
exit;
}
t_check_trans();
if ( !(is_method("REGISTER") ) ) {
if (from_uri==myself)
{
} else {
if (!uri==myself) {
send_reply("403","Rely forbidden");
exit;
}
}
}
if (loose_route()) {
xlog("L_ERR",
"Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
if (!is_method("ACK"))
sl_send_reply("403","Preload Route denied");
exit;
}
if (!is_method("REGISTER|MESSAGE"))
record_route();
if (is_method("INVITE")) {
setflag(ACC_DO); # do accounting
}
if (is_method("INVITE")) {
# rewrite from header
uac_replace_from("sip:[email protected]");
# trying to fix that /304 problem
#remove_hf("Route");
#append_hf("Route: <sip:xx.xx.xx.9;lr>");
create_dialog();
topology_hiding();
exit;
}
if (!uri==myself) {
append_hf("P-hint: outbound\r\n");
route(relay);
}
if (is_method("PUBLISH|SUBSCRIBE"))
{
sl_send_reply("503", "Service Unavailable");
exit;
}
if (is_method("REGISTER"))
{
if ( 0 ) setflag(TCP_PERSISTENT);
if (!save("location"))
sl_reply_error();
exit;
}
if ($rU==NULL) {
sl_send_reply("484","Address Incomplete");
exit;
}
if (!lookup("location","m")) {
t_newtran();
t_reply("404", "Not Found");
exit;
}
setflag(ACC_MISSED);
route(relay);
}
route[relay] {
if (is_method("INVITE")) {
t_on_branch("per_branch_ops");
t_on_reply("handle_nat");
t_on_failure("missed_call");
}
if (!t_relay()) {
send_reply("500","Internal Error");
};
exit;
}
branch_route[per_branch_ops] {
xlog("new branch at $ru\n");
}
onreply_route[handle_nat] {
xlog("incoming reply\n");
}
failure_route[missed_call] {
if (t_was_cancelled()) {
exit;
}
}
---
----- Original Message -----
From: "BJ Quinn" <[email protected]>
To: "OpenSIPS users mailling list" <[email protected]>
Sent: Monday, February 3, 2014 10:27:22 AM
Subject: Re: [OpenSIPS-Users] topology hiding
Thanks, I'll do that. What about the topology hiding? Am I doing that
incorrectly?
-BJ
----- Original Message -----
From: "Vlad Paiu" <[email protected]>
To: [email protected]
Sent: Monday, February 3, 2014 7:46:41 AM
Subject: Re: [OpenSIPS-Users] topology hiding
Hello,
No, you should not regex out those bogus characters, this seems like a
bug - could you please send us to SIP trace for your scenario so I can
understand how and when it's happening ? Are you currently doing any
manual manipulation on the Route headers in your script ?
Also, if possible, Please open an issue on
https://github.com/OpenSIPS/opensips/issue for this so we can better
keep track of it.
Best Regards,
Vlad Paiu
OpenSIPS Developer
http://www.opensips-solutions.com
On 01.02.2014 02:26, BJ Quinn wrote:
Hi,
I'd like to use topology_hiding(), but I can't quite understand how to
integrate it into the routing part of the configuration file. I have my
opensips box on a public IP and some machines initiating calls through the
opensips box that are also on public IPs, so no NAT going on or anything like
that. However, a couple of the carriers we're trying to use don't like seeing
the IP address of the machines initiating the call (in Route and Contact
headers, etc.) and that's causing problems including some carriers don't think
the call has set up properly (even though it goes through), which leads to
missing BYEs. Anyway, seems like topology_hiding() is a great idea anyway,
regardless of the fact that I've had a carrier specifically request it.
I'm using 1.10. So I've started with the basic Residential scenario made from
osipsconfig. I didn't check any of the options (like ENABLE_TCP, USE_ALIASES,
etc.) and modified only my IP address and added a couple of aliases for the
machines making the calls. I added the following outside of the routing logic
to load the dialog module to make topology_hiding() available.
loadmodule "dialog.so"
Then, under "if(has_totag()) { if (loose_route()) {" I added --
if ($DLG_status==NULL && !match_dialog() ) {
xlog(" cannot match request to a dialog \n");
}
And outside of the "if(has_totag())" section I added --
if (is_method("INVITE")) {
create_dialog();
topology_hiding();
}
Without these added sections, things are fine on some carriers and with other
carriers I have the problems described above which causes me to want to enable
topology hiding. With these added sections, I get 408 timeouts since it appears
that the opensips box is responding NOT HERE to the carrier's 200 OKs.
Also, possibly unrelated, in either case I'm getting a weird "\304" added to my
Route header. Should I just replace the Route header and regex that out?
Route: <sip:xx.xx.xx.xx:\304;lr>
Thanks!
-BJ Quinn
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users