[Serusers] Ser & Asterisk - RTP Proxy problem

Felipe Martins fmartins at mundivox.com
Tue Feb 1 13:53:35 CET 2005


Sorry for sending this mail again, we've had a e-mail server problem and i'm not sure if that arrived at list cause I have no log due to the problem. 

Hi Everybody,

	I'm trying to make SER work with ASTERISK, ser as a proxy server and SIP terminator, and asterisk for other services like voicemail and International calls like an UAC (thing that I know SER is not able to do). I've configured SER with the following forward route, to forward all "1" beggining call phones to forward to my asterisk for international calls:

if (uri=~"^sip:8[0-9]{7}.*") {
forward( 10.0.18.3, 5061 );
break;
}


When I restart SER, it gives me this errors:

Jul 22 12:49:54 sipproxy /usr/local/sbin/ser[479]: ERROR: send_rtpp_command: can't connect to RTP proxy
Jul 22 12:49:54 sipproxy /usr/local/sbin/ser[479]: WARNING: rtpp_test: can't get version of the RTP proxy
Jul 22 12:49:54 sipproxy /usr/local/sbin/ser[479]: WARNING: rtpp_test: support for RTP proxyhas been disabled temporarily


I've also tried with the following rewritehost but it gives me the same error:

if (uri=~"^sip:8[0-9]{7}.*") {
rewritehost("10.0.18.3, 5061");
break;
}


I know that i'm missing something with RTP that i'm still working on. 
I've tried to look for it at google, but find nothing interesting.

I've trie to download and install rtpproxy from http://www.portaone.com/~sobomax/rtpproxy.tar but inside the tar there is no configure, nothing to install it but main.c and myqueue.c code files ...

Do anyone know what is going on, or how to compile that ? My ser.cfg is attached.

I don't know what kind of error is that 'cause all the errors like this mentioned at google where just another questions about the same error ...


--------------- ser.cfg ----------------------
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
#
# simple quick-start config script
#

# ----------- global configuration parameters ------------------------

# Uncomment these lines to enter debugging mode 
debug=9
fork=yes
log_stderror=no
listen=192.168.4.10
port=5060


# hostname matching an alias will satisfy the condition "uri==myself".
alias="mundivox.com"
alias="sipserver.com"


# sip_warning - Should replies include extensive warnings? By default
# yes, it is good for trouble-shooting
#sip_warnings=yes

# server_signature - Should locally-generated messages include server's
# signature? By default yes, it is good for trouble-shooting.
 server_signature=yes

# reply_to_via - A hint reply modules whether they should send reply

# to IP advertised in Via. Turned off by default, which means that
# replies are sent to IP address from which requests came.
# reply_to_via=no

# mhomed -- enable calculation of outbound interface; useful on
# multihomed servers.
# mhomed=0

check_via=no	# (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
children=4
fifo_mode=0666
fifo="/tmp/ser_fifo"

# ------------------ module loading ----------------------------------

# Uncomment this if you want to use SQL database
loadmodule "/usr/local/lib/ser/modules/mysql.so"

loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"

loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/group.so"
loadmodule "/usr/local/lib/ser/modules/msilo.so"
loadmodule "/usr/local/lib/ser/modules/enum.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"


# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --
# 0 = disable
# 1 = write-through
# 2 = write-back

# MySQL Based User Authentication
modparam("auth_db", "db_url", "sql://ser:heslo@localhost/ser")

# Checking for Username Column     
#modparam("auth_db", "user_column", "username")

# Checking for Domain Column
#modparam("auth_db", "domain_column", "domain")

# Checking for Password Column 
modparam("auth_db", "password_column", "password")

# Uncomment this if you want to use SQL database 
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "timer_interval", 60)
modparam("usrloc", "desc_time_order", 1)

# ----- Acc Params ------
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)


# ----- auth params -----
# Uncomment if you are using auth module
# Permite tambem clear text passwords no mysql
modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config), 
# uncomment also the following parameter)
#

# ------ rr params ------
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)


# -------------------------  request routing logic -------------------

# main routing logic

route  {

	# ----------------------------------------------------------------------------
	# Sanity Checks -- messages with max_forwards==0, or excessively long requests
	#-----------------------------------------------------------------------------
	if (!mf_process_maxfwd_header("10")) {
		sl_send_reply("483","Too Many Hops");
		break;
	};
	if ( msg:len > max_len ) {
		sl_send_reply("513", "Message too big");
		break;
	};

	# ------------------------------------------------------------
	# OPTIONS Section
	#
	# This is used by sipsak to monitor the heath of our sip proxy
	#-------------------------------------------------------------
	
#	if (search("^From: sip:sipsak@") &&
#	   (method=="OPTIONS") && (!uri=~"sip:.*[@]+.*"))  {
#		options_reply();
#		break;
#	};

	# ------------------------------------------------------------
	# Registration Section
	# ------------------------------------------------------------
#	if (method=="REGISTER")  {
#
#	if (!is_from_local()) {
#	
#			sl_send_reply("403", "Unknown Domain");
#			break;
#		};
#	
#		if (is_user_in("Request-URI", "disabled"))  {
#	
#			sl_send_reply("403", "Your evaluation period has expired");
#			break;
#		};
#	
#		if (!www_authorize("", "subscriber"))  {
#			
#			www_challeng("", "0");
#			break;
#		};
#
#		if (!check_to())  {
#
#			sl_send_reply("401", "Unauthorized");
#			break;
#		};
#
#		if (!save("location"))  {
#
#			sl_reply_error();
#		};
#
#		break;
#
#	};

	# -----------------------------------------------------------------
	# Open Relay Section
	# -----------------------------------------------------------------
#	if (method=="INVITE")  {
#		
#		if (!(is_from_local() || is_uri_host_local())) {
#			sl_send_reply("403", "Please register to use our service");
#			break;
#		};
#	};

	# -----------------------------------------------------------------
	# Accounting Section
	# -----------------------------------------------------------------
#	if (method=="INVITE" || method=="BYE") {
#		setflag(1);
#	};

	# -----------------------------------------------------------------
	# Record Route Section
	# 
	# we record-route all messages -- to make sure that subsequent messages
	# will go through our proxy; that's particularly good if upstream and
	# donwstream entities use different transport protocol
	# -----------------------------------------------------------------
	if (method=="INVITE") record_route();

	# -----------------------------------------------------------------
	# Loose Route Section
	# 
	# Grant route routing if route headers present
	# -----------------------------------------------------------------
	if (loose_route())  {
		route(2);
		break;
	};

	# -----------------------------------------------------------------
	# Alias Routing Section
	# -----------------------------------------------------------------
	lookup("aliases");
	if (!uri==myself) {
		route(2);
		break;
	};

	
	# 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
	record_route();	
	# loose-route processing
	if (loose_route()) {
		t_relay();
		break;
	};

	
	# Rota usada para guardar Logs no CDRTool - Billing
#	if (method=="REGISTER" || method=="INVITE" || method=="BYE" || method=="CANCEL") {
#		# Salvar mensagens no myslq para o CDRTool
#		exec_msg("/var/www/html/serweb/sertrace.py; exit 1");
#	};

	

	# 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)
	# uri==myself retorna true se o nome de dominio URI for igual ao nome do
	# host ao qual SER esta rodando. Para configurar quais domain names o ser
	# aceita, deve-se configurar os ALIASES do sistema para tais nomes.
	if (uri==myself) {

######### Repassando chamadas comecando por 1 para o Asterisk
#		if (uri =~ "sip:2[0-9]*@192.168.4.4"){
#	        log(1, "Forwarding to Asterisk\n");
#		rewritehostport("192.168.4.10:5061");
#		t_relay();
#		break;
#		}

	# Repassando Chamadas Internacionais para Asterisk
	        if (uri=~"^sip:1[0-9].*") {
#                forward( 192.168.4.10, 5061 );
		rewritehostport("192.168.4.10:5061");
                break;
		}

 
		if (method=="REGISTER") {
			# Uncomment this if you want to use digest authentication
			if (!www_authorize("192.168.4.10", "subscriber")) {
				www_challenge("192.168.4.10", "0");
				break;
			}; 
			save("location");
			break;
		};

		# native SIP destinations are handled using our USRLOC DB
		if (!lookup("location")) {
			sl_send_reply("404", "Not Found");
			break;
		};
	};
	# forward to current uri now; use stateful forwarding; that
	# works reliably even if we forward from TCP to UDP
	if (!t_relay()) {
		sl_reply_error();
	};

}
------------------------- ser.cfg EOF -------------------------------


On Mon, 31 Jan 2005 16:00:18 +0100
Alexander Hoffmann <alexander.hoffmann at netgenius.de> wrote:

> Hello Felipe,
> 
> I don't think that the error msg you saw is related to the forwarding block 
> you pasted in your mail. It just tells you that SER cannot connect to SRR. 
> Since I can NOT see the attached ser.cfg file, I cannot give you any more 
> details. 
> 
> -alex
> 
> On Monday 31 January 2005 15:13, Felipe Martins wrote:
> > Hi Everybody,
> >
> > 	I'm trying to make SER work with ASTERISK, ser as a proxy server and SIP
> > terminator, and asterisk for other services like voicemail and
> > International calls like an UAC (thing that I know SER is not able to do).
> > I've configured SER with the following forward route, to forward all "1"
> > beggining call phones to forward to my asterisk for international calls:
> >
> > if (uri=~"^sip:8[0-9]{7}.*") {
> > forward( 10.0.18.3, 5061 );
> > break;
> > }
> >
> >
> > When I restart SER, it gives me this errors:
> >
> > Jul 22 12:49:54 sipproxy /usr/local/sbin/ser[479]: ERROR:
> > send_rtpp_command: can't connect to RTP proxy Jul 22 12:49:54 sipproxy
> > /usr/local/sbin/ser[479]: WARNING: rtpp_test: can't get version of the RTP
> > proxy Jul 22 12:49:54 sipproxy /usr/local/sbin/ser[479]: WARNING:
> > rtpp_test: support for RTP proxyhas been disabled temporarily
> >
> >
> > I've also tried with the following rewritehost but it gives me the same
> > error:
> >
> > if (uri=~"^sip:8[0-9]{7}.*") {
> > rewritehost("10.0.18.3, 5061");
> > break;
> > }
> >
> >
> > I know that i'm missing something with RTP that i'm still working on.
> > I've tried to look for it at google, but find nothing interesting.
> > Do anyone know what is going on ? My ser.cfg is attached.
> 


-- 
Felipe Martins
Linux System Administrator
Tep Solution Provider
Mundivox Communications
Rua Lauro Muller, 116/Sala 505
RJ - Brasil - 22290-906
Tel.: 55 21 3820-8839
Fax.: 55 21 3820-8844


-- 
Felipe Martins
Linux System Administrator
Tep Solution Provider
Mundivox Communications
Rua Lauro Muller, 116/Sala 505
RJ - Brasil - 22290-906
Tel.: 55 21 3820-8839
Fax.: 55 21 3820-8844




More information about the sr-users mailing list