I will give it a try but I just bump in to problem on one way voice that I want to deal with first. I wll let you know how it turns out, Thanks again..
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
_______________________________________________
Serusers mailing list
serusers@lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers