[Kamailio-Users] I don't have asterisk audio to openser - mediaproxy

Ricky Gutierrez xserverlinux at yahoo.com
Fri Oct 31 19:52:24 CET 2008


Thank you Luciano for your answer but doesn't it still work me, do the calls enter me of the pstn and don't I listen anything... where I can look for? , there will be some of form so that the IP of where the calls come from
asterisk does not use mediaproxy, somebody has an example.

any help is appreciated..  
  
thank you

rickygm 




________________________________
From: luzango mfupe <luzango.mfupe at gmail.com>
Sent: Friday, October 31, 2008 5:19:25 AM
Subject: Re: [Kamailio-Users] I don't have asterisk audio to openser - mediaproxy

Hi Ricky,
I think you should  increase the mediaproxy natping interval to 30 and then add use_media_proxy() line after you setflag(6). check below:---

##Detect requests in the dialog behind NAT and flag with 6
if(nat_uac_test("19") || search("^Route:.*;nat=yes")){
append_hf("P-hint: LR|fixcontact,setflag6\r\n");
fix_contact();
setbflag(6);
USE MEDIA PROXY HERE---> use_media_proxy();
};
route(1);
} else {
sl_send_reply("404", "Not here");
}
exit;
}


On Fri, Oct 31, 2008 at 5:21 AM, Ricky Gutierrez <xserverlinux at yahoo.com> wrote:



I show you here my openser.cfg

my best regards 

rickygm


loadmodule "nathelper.so"
loadmodule "mediaproxy.so"


modparam("registrar", "received_avp", "$avp(i:42)")
modparam("usrloc", "db_mode",   2)
modparam("usrloc", "nat_bflag", 4)

modparam("nathelper","rtpproxy_sock", "")

modparam("nathelper","natping_interval", 0)
modparam("nathelper","received_avp", "$avp(i:42)")

modparam("mediaproxy","natping_interval",20)
modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
modparam("mediaproxy", "mediaproxy_socket", "/var/run/proxydispatcher.sock")


modparam("mediaproxy","sip_asymmetrics","/etc/openser/sip-clients")
modparam("mediaproxy","rtp_asymmetrics","/ect/openser/rtp-clients")


route{
# initial sanity checks -- messages with
# max_forwards==0, or excessively long requests
		if (!mf_process_maxfwd_header("10")) {
		sl_send_reply("483","Too Many Hops");

			exit;
				};
		if (msg:len >= 2048 ) {
		sl_send_reply("513", "Message too big");
			exit;
			};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's

# particularly good if upstream and downstream entities
# use different transport protocol
		if (!is_method("REGISTER")) { 
		if(nat_uac_test("19")){
			record_route(";nat=yes");

			 } else {
        		    record_route();
		        };
	    };

		if (has_totag()) {
# subsequent messages withing a dialog should take the
# path determined by
 record-routing
		if (loose_route()) {
			if(method=="BYE") {
			    #Account BYE transactions
			    setflag(2);
		};
		if (method=="INVITE" && (!allow_trusted())) {
			if (!proxy_authorize("","subscriber")) {

			proxy_challenge("","0");
				exit;
			} else if (!check_from()) {
				sl_send_reply("403", "Forbidden, use From=ID");
				exit;

				};

			};
				if(method=="BYE" || method=="CANCEL") {

			    end_media_session();
				};

	##Detect requests in the dialog behind NAT and flag with 6
        		    if(nat_uac_test("19") || search("^Route:.*;nat=yes")){
	                append_hf("P-hint: LR|fixcontact,setflag6\r\n");

        		        fix_contact();
			                setbflag(6);
	            };            
				route(1);
				} else {
				 sl_send_reply("404", "Not here");
			}
				exit;
			}

		##Loose_route packets
		    if
 (loose_route()) {
			        if(!has_totag()){
	            sl_send_reply("403", "Initial Loose-Routing Rejected");
	            exit;
        	};


        route(1);

    };


		#CANCEL processing
		if (is_method("CANCEL")) {
		if (t_check_trans()) {
		end_media_session();
		t_relay();
		};
		exit;
		}
			t_check_trans();

if (method=="REGISTER"){

			route(2);
			} else {
				route(3);
				};
			}

		route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
			t_on_reply("1");
			t_on_failure("1");

			if (!t_relay()) {
;			if (method=="INVITE" || method=="ACK") {
;			 end_media_session();
;		};


#			sl_reply_error();
				};
				exit;
				}
	route[2] {
#
# -- Register request handler --

#
	if (is_uri_host_local()) {
	if (!www_authorize("", "subscriber")) {

	www_challenge("", "0");
	exit;
	};
	if (!check_to()) {
		sl_send_reply("403", "Forbidden");
		exit;
	};
	 sl_send_reply("100", "Trying");

	 if(!search("^Contact:[ ]*\*") && client_nat_test("7")) {
            setbflag(6);
            fix_nated_register();
            force_rport();
        };

		save("location");

			exit;
	} else if {
		sl_send_reply("403", "Forbidden");
		};
	}

	route[3] {
#
# -- INVITE request handler --
#
		if (method=="INVITE") {
	# Account INVITE packets

        	 setflag(2);
		  # Account Missed calls
	  setflag(3);
};
		if (is_from_local()){
# From an internal domain -> check the credentials and the FROM
		if(!allow_trusted()){
		if (!proxy_authorize("","subscriber")) {

		proxy_challenge("","0");
		exit;
			} else if (!check_from()) {
			sl_send_reply("403", "Forbidden, use From=ID");
		exit;

	};

};
	    if (client_nat_test("3")) {
            append_hf("P-hint: route(3)|setflag7,forcerport,fix_contact\r\n");
            setbflag(7);
            force_rport();
            fix_contact();

        };

		if(avp_db_load("$ru/username","$avp(s:callfwd)")) {
		avp_pushto("$ru", "$avp(s:callfwd)");
		route(4);
		route(1);

			exit;
				}


consume_credentials();

		# Verify aliases
			lookup("aliases");
		if (is_uri_host_local()) {
	# -- Inbound to Inbound

		route(10);
			} else {
# -- Inbound to outbound
		route(11);

		};

	} else {
# From an external domain -> do not check credentials
#Verify aliases, if found replace R-URI.
			lookup("aliases");
				if (is_uri_host_local()) {
		#-- Outbound to inbound

			route(12);
				} else {
	# -- Outbound to outbound
				route(13);
					};
				};
			}
	route[6] {

 #
    # -- NAT handling --
    #
    if (isbflagset(6) || isbflagset(7)) {
        append_hf("P-hint: Route[6]: mediaproxy \r\n");
        use_media_proxy();
    };
}

		route[10] {

		#from an internal domain -> inbound
	#Native SIP destinations are handled using the location table
	append_hf("P-hint: inbound->inbound \r\n");
	if (uri=~"^sip:[2346578][0-9]{6}@.*") {

 	if (is_user_in("credentials", "local")){	
#	rewritehostport("192.168.10.1:5070");
	route(6);
	route(4);
	exit;
	} else { 

		sl_send_reply("403", "No tienes permiso para llamadas locales");
		exit;
			};
				};

if (!lookup("location")) {
		if (does_uri_exist()) {
		revert_uri();
		prefix("u");

		rewritehostport("192.168.10.1:5070");
		route(6);
		route(1);
		} else {
		sl_send_reply("404", "Not Found");
	exit;

	};
		sl_send_reply("404", "Not Found");
		exit;
		};	

		route(6);	
		route(1);
	}

	route[11] {
# from an internal domain -> outbound
# Simply route the call outbound using DNS search
	append_hf("P-hint: inbound->outbound \r\n");

	route(1);
	}
	route[12] {
# From an external domain -> inbound
# Verify aliases, if found replace R-URI.
	lookup("aliases");
	if (!lookup("location")) {
	sl_send_reply("404", "Not Found");

	exit;
	};
	route(1);
	}
	route[13] {
#From an external domain outbound
#we are not accepting these calls
	append_hf("P-hint: outbound->inbound \r\n");
	sl_send_reply("403", "Forbidden");

	exit;
	}


	route[4] {
	rewritehostport("192.168.10.1:5070");
	route(1);

}

### aqui se detecta cunado una llamada es no disponible , ocupada o falla

failure_route[1] {
	if (t_was_cancelled()) {
	exit;
};

	if (t_check_status("486")) {
	revert_uri();

	prefix("b");
	xlog("L_ERR","Stepped into the 486 ruri=<$ru>");
	rewritehostport("192.168.10.1:5070");
	append_branch();

	route(1);
	exit;
};
	if (t_check_status("408") || t_check_status("480")) {
	revert_uri();
	prefix("u");
	xlog("L_ERR","Stepped into the 480 ruri=<$ru>");

	rewritehostport("192.168.10.1:5070");
	append_branch();
	route(1);
	exit;
};
}
onreply_route[1] {
	#
	#-- On-replay block routing --

	#
	if (client_nat_test("1")) {
    	    append_hf("P-hint: Onreply-route - fixcontact \r\n");
    	    fix_nated_contact();
	};

	if ((isbflagset(6) || isbflagset(7)) && (status=~"(180)|(183)|2[0-9][0-9]")) {

     	    if (search("^Content-Type:[ ]*application/sdp")) {
             append_hf("P-hint: onreply_route|usemediaproxy \r\n");
	       use_media_proxy();
           };
       };

 exit;
}









-- 
Luzango Mfupe
TUUNE MOBILE
Tel:0128440528/0123825710
Tshwane-RSA

"...Ships are safe in harbor, but they were never meant to stay there......."



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kamailio.org/pipermail/users/attachments/20081031/04c34bf5/attachment.htm 


More information about the Users mailing list