[Serusers] RE: NAT, ACK and BYEs
Jorge Crichigno
jcrichigno at conexion.com.py
Fri May 13 02:17:01 CEST 2005
Giovanni,
As far as I know, you also need to edit on-reply route in your script.
It seams that you don't correct the contact header of the called party,
which is send in the 200 reply. The script would look like this:
####################################################################
INVITE routing logic is something like this
t_on_reply("1"); #in order to the replies pass to on reply block. You should add this!
if (loose_route()) {
if (has_totag() && method=="INVITE") {
if (nat_uac_test("19")) {
setflag(6);
force_rport();
fix_nated_contact();
};
force_rtp_proxy("l");
t_on_reply("1");
};
t_relay();
break;
}
if (method=="INVITE") {
record_route();
if (nat_uac_test(19)) {
fix_nated_contact();
force_rport();
setflag(6);
}
if ( !isflagset(6) || SAME_NAT) {
t_relay();
} else {
force_rtp_proxy();
t_on_reply("1");
t_relay();
}
}
# When NAT, the 200 (Ok) reply carries the contact header where the called party is reached. If it is
# behind NAT, we need to correct his contact.
onreply_route[1] {
if (status=~"(183)|(2[0-9][0-9])") {
if (client_nat_test("1")) {
fix_contact();
};
use_media_proxy();
};
}
More information about the sr-users
mailing list