You could move the test on INVITE and call to use_media_proxy(); until
you have reached the sections routing to and from the gateway.
Of course, calls from the gw could be tested using if (src_ip ==
ip_address_of_gw).
Anyway, the idea would be to wait with the call to use_media_proxy until
you are sure that these calls are from/to the gateway.
Please remember that all incoming calls to UAs behind symmetric NAT and
some combinations with UAs behind port-restricted NAT need to be proxied. If you
only proxy gw calls, some ip-to-ip calls will fail.
g-)
---- Original Message ----
From: Mohamed Omar
To:
serusers@lists.iptel.org
Sent: Monday, December 20, 2004 02:41 AM
Subject:
[Serusers] NAT & Madia Proxy.
> I'm currently run ser with media
proxy and it working fine if I force
> all calls throught the the media
proxy...
>
> I want only calls destine to PSTN gateway to go
through the media
> proxy for billing purpose and all other calls, I just
want to fix the
> NAT and setup the call. I dont want the
media to go throught my
> server if it not destine to PSTN
network.
>
> Let me know how my config should be...Am
new with SER and am stuck on
> this. below is my configure for NAT.
>
> Thanks in Advance.
>
> # -- nat ping --
>
modparam("mediaproxy", "natping_interval", 10)
> modparam("mediaproxy",
"mediaproxy_socket",
> "/var/run/mediaproxy.sock")
>
> #
------------------------- request routing logic
-------------------
>
> # main routing logic
>
>
record_route();
> #
loose-route processing
>
> if (loose_route())
{
>
t_relay();
>
break;
> };
>
> # -- nat code
--
>
if (method == "BYE" || method == "CANCEL")
{
>
end_media_session();
>
};
>
>
if (client_nat_test("3"))
{
>
if (method == "REGISTER" || !
> search("^Record-Route:")) {
>
fix_contact();
>
force_rport();
>
};
>
};
>
> if
(method=="INVITE")
{
>
use_media_proxy();
>
t_on_reply("1");
>
setflag(6);
> };
>
>
>
> # if
the request is for other domain use
UsrLoc
> # (in case, it
does not work, use the following
command
> # with proper
names and addresses in
it)
> if (uri==myself)
{
>
>
if (method=="REGISTER") {
>
>
save("location");
>
break;
>
};
>
>
#
setflag(1);
>
>
# native SIP destinations are handled using our
> USRLOC DB
>
if (!lookup("location"))
{
> log (1,
"********************** Rewriting the host:port
>
***********************************");
>
>
rewritehostport ("PSTN Gateway
Ip:5060");
>
};
>
>
};
> if (method ==
"INVITE"){
>
t_relay();
>
sl_send_reply ("180",
"Ringing");
>
break;
>
}
> if (!t_relay())
{
>
sl_send_reply("404", "Not
Found");
>
break;
> };
>
> # -- nat code ----
> }
>
>
> onreply_route[1]
{
> if (status=~"(183)|2[0-9][0-9]")
{
> if
(client_nat_test("1"))
{
>
fix_contact();
>
};
>
use_media_proxy();
>
};
> if (status=~"[3-4]0[0-9]")
{
>
end_media_session();
>
break;
> };
> }
>
>
>
>
>
>
>
>
>
>
>
>
Post your free ad now! Yahoo! Canada Personals
>
>
>
>
> _______________________________________________
>
Serusers mailing list
> serusers@lists.iptel.org
>
http://lists.iptel.org/mailman/listinfo/serusers