Dear all,
I have number translation as below to manipulate the dialing
pattern, it’s works fine for it’s purpose. One problem
is all on net calls can connect but no voice. Any idea?
route{
if
(!mf_process_maxfwd_header("10")) {
if (method!="ACK") {
sl_send_reply("483", "Too many hops");
};
break;
};
if (msg:len >=
max_len) {
if (method!="ACK") {
sl_send_reply("513", "Message too big");
};
break;
};
if
(search("^From: sip:sipsak@") &&
(method=="OPTIONS") && (!uri=~"sip:.*[@]+.*")) {
options_reply();
break;
};
# !! Nathelper
if
(nat_uac_test("19")) {
if (method == "REGISTER" || !search("^Record-Route:")) {
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
append_hf("P-hint: Proxied\r\n");
setflag(5); # 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=~"^sip:1[0-9]+@.*" && !uri=~”^sip:81[0-9]+@.*”)
{
if (uri=~"sip:[1-9][0-9]+@.*") {
prefix(“81”);
} else if (uri=~"sip:0[1-9][0-9]+@.*") {
strip(1);
prefix("81");
} else if (uri=~"sip:00[1-9][0-9]+@.*") {
strip(2);
};
};
if (!uri==myself)
{
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
break;
};
if (uri==myself)
{
if (method=="REGISTER") {
if (!www_authorize("", "subscriber")) {
www_challenge("", "1");
break;
};
save("location");
break;
};
setflag(1);
lookup("aliases");
if (lookup("location")) {
append_hf("P-hint: usrloc applied\r\n");
route(1);
break;
};
……………….
Raymond