[OpenSIPS-Users] ICE +mediaproxy

giti at dataproducts.ae giti at dataproducts.ae
Tue May 17 21:44:45 CEST 2011


I did backtrace with


[root at techdata mediaproxy-2.4.4]# gdb opensips
GNU gdb (GDB) Fedora (7.2-16.fc14)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/opensips...Reading symbols from
/usr/lib/debug/usr/sbin/opensips.debug...done.
done.
(gdb) dt
Undefined command: "dt".  Try "help".
(gdb) bt
No stack.
(gdb)



Seems there is no backtrace !!

Maybe I did  something wrong since this is the first time which I do gdb
and bt .

You can see /var/log/messages which is including my error below :


May 17 15:23:47 techdata opensips[2312]: record-route
May 17 15:23:47 techdata opensips[2311]: record-route
May 17 15:23:47 techdata opensips[2309]: record-route
May 17 15:23:48 techdata opensips[2310]: record-route
May 17 15:24:06 techdata opensips[2312]: NAT: FIXING SDP
May 17 15:24:06 techdata opensips[2312]: 5555555555555555555555555555
May 17 15:24:06 techdata opensips[2312]: 333331
May 17 15:24:06 techdata opensips[2312]: record-route
May 17 15:24:06 techdata opensips[2312]:  use media
May 17 15:24:06 techdata media-relay[1948]:
mediaproxy.mediacontrol.StreamListenerProtocol starting on 50012
May 17 15:24:06 techdata media-relay[1948]:
mediaproxy.mediacontrol.StreamListenerProtocol starting on 50013
May 17 15:24:06 techdata media-relay[1948]:
mediaproxy.mediacontrol.StreamListenerProtocol starting on 50014
May 17 15:24:06 techdata media-relay[1948]:
mediaproxy.mediacontrol.StreamListenerProtocol starting on 50015
May 17 15:24:06 techdata abrt[2368]: saved core dump of pid 2312
(/usr/sbin/opensips) to /var/spool/abrt/ccpp-1305660246-2312.new/coredump
(36683776 bytes)
May 17 15:24:06 techdata abrtd: Directory 'ccpp-1305660246-2312' creation
detected
May 17 15:24:06 techdata opensips[2329]: CRITICAL:core:receive_fd: EOF on 12
May 17 15:24:06 techdata opensips[2305]: INFO:core:handle_sigs: child
process 2312 exited by a signal 6
May 17 15:24:06 techdata opensips[2305]: INFO:core:handle_sigs: core was
generated
May 17 15:24:06 techdata opensips[2305]: INFO:core:handle_sigs:
terminating due to SIGCHLD
May 17 15:24:06 techdata opensips[2328]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2327]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2326]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2324]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2321]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2323]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2322]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2319]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2320]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2313]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2316]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2311]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2314]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2315]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2309]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2317]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2310]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2329]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2308]: INFO:core:sig_usr: signal 15
received
May 17 15:24:06 techdata opensips[2305]: INFO:db_mysql:re_init_statement: 
query  is <update location set
expires=?,q=?,cseq=?,flags=?,cflags=?,user_agent=?,received=?,path=?,socket=?,methods=?,last_modified=?
where username=? AND contact=? AND callid=?>, ptr=(nil)
May 17 15:24:06 techdata abrtd: Crash is in database already (dup of
/var/spool/abrt/ccpp-1305620659-13912)
May 17 15:24:06 techdata abrtd: Deleting crash ccpp-1305660246-2312 (dup
of ccpp-1305620659-13912), sending dbus signal



And this is /etc/mediaproxy/config.ini
[Relay]
dispatchers = 83.170.6.28
port_range = 50000:60000
log_level =DEBUG
on_hold_timeout = 1800

[Dispatcher]
socket_patch='/var/run/mediaproxy/dispatcher.sock'
listen =  83.170.6.28
management_use_tls =no
log_level = DEBUG
;accounting = radius

[OpenSIPS]
socket_path = '/var/run/opensips/socket'

max_connections = 100

and this is  opencfg.cfg


#
# $Id: opensips.cfg 7027 2010-07-15 13:48:29Z razvancrainea $
#
# OpenSIPS basic configuration script
#     by Anca Vamanu <anca at voce-system.ro>
#
# Please refer to the Core CookBook at:
#      http://www.opensips.org/index.php?n=Resources.DocsCookbooks
# for a explanation of possible statements, functions and parameters.
#


####### Global Parameters #########

debug=9
log_stderror=no
log_facility=LOG_LOCAL0

fork=yes
children=4

/* uncomment the following lines to enable debugging */
debug=6
#fork=no
#log_stderror=yes

/* uncomment the next line to disable TCP (default on) */
#disable_tcp=yes

/* uncomment the next line to enable the auto temporary blacklisting of
   not available destinations (default disabled) */
#disable_dns_blacklist=no

/* uncomment the next line to enable IPv6 lookup after IPv4 dns
   lookup failures (default disabled) */
#dns_try_ipv6=yes

/* uncomment the next line to disable the auto discovery of local aliases
   based on revers DNS on IPs (default on) */
auto_aliases=no

/* uncomment the following lines to enable TLS support  (default off) */
#disable_tls = no
#listen = tls:83.170.6.28:300
#tls_verify_server = 0
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "/usr/etc/opensips/tls/user/user-cert.pem"
#tls_private_key = "/usr/etc/opensips/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/etc/opensips/tls/user/user-calist.pem"


port=300
/* uncomment and configure the following line if you want opensips to
   bind on a specific interface/port/proto (default bind on all available) */
listen=udp:eth0:300
listen=udp:83.170.6.28:300
listen=udp:127.0.0.1:300
####### Modules Section ########

#set module path
mpath="/usr/lib64/opensips/modules"

/* uncomment next line for MySQL DB support */
loadmodule "db_mysql.so"
loadmodule "signaling.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "mi_fifo.so"
loadmodule "uri.so"
loadmodule "acc.so"


/* uncomment next lines for MySQL based authentication support
   NOTE: a DB (like db_mysql) module must be also loaded */
loadmodule "auth.so"
loadmodule "auth_db.so"
/* uncomment next line for aliases support
   NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "alias_db.so"
/* uncomment next line for multi-domain support
   NOTE: a DB (like db_mysql) module must be also loaded
   NOTE: be sure and enable multi-domain support in all used modules
         (see "multi-module params" section ) */
#loadmodule "domain.so"
/* uncomment the next two lines for presence server support
   NOTE: a DB (like db_mysql) module must be also loaded */
#loadmodule "presence.so"
#loadmodule "presence_xml.so"
loadmodule "nathelper.so"
loadmodule "mediaproxy.so"
loadmodule "dialog.so"
#loadmodule "mi_datagram.so"

modparam("usrloc","nat_bflag",6)

modparam("nathelper","sipping_bflag",8)
#modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)   # Ping only clients behind NAT
#modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "sipping_from", "sip:pinger at ...")
#modparam("nathelper", "roxy_sock", "udp:127.0.0.1:301")

#modparam("nathelper", "mediaproxy_sock", "/var/run/mediaproxy.sock")
#modparam("mediaproxy","natping_interval", 30)
modparam("mediaproxy","mediaproxy_socket","/var/run/mediaproxy/dispatcher.sock")





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


# ----- mi_fifo params -----
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")


# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)


# ----- registrar params -----
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)


# ----- usrloc params -----
modparam("usrloc", "db_mode",   0)
/* uncomment the following lines if you want to enable DB persistency
   for location entries */
modparam("usrloc", "db_mode",   2)
modparam("usrloc", "db_url",
	"mysql://opensips:opensipsrw@localhost/opensips")


# ----- uri params -----
modparam("uri", "use_uri_table", 0)


# ----- acc params -----
/* what sepcial events should be accounted ? */
modparam("acc", "early_media", 1)
modparam("acc", "report_ack", 1)
modparam("acc", "report_cancels", 1)
/* by default ww do not adjust the direct of the sequential requests.
   if you enable this parameter, be sure the enable "append_fromtag"
   in "rr" module */
modparam("acc", "detect_direction", 0)
/* account triggers (flags) */
modparam("acc", "failed_transaction_flag", 3)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 2)
/* uncomment the following lines to enable DB accounting also */
modparam("acc", "db_flag", 1)
modparam("acc", "db_missed_flag", 2)


# ----- auth_db params -----
/* uncomment the following lines if you want to enable the DB based
   authentication */
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "db_url",
	"mysql://opensips:opensipsrw@localhost/opensips")
modparam("auth_db", "load_credentials", "")


# ----- alias_db params -----
/* uncomment the following lines if you want to enable the DB based
   aliases */
#modparam("alias_db", "db_url",
#	"mysql://opensips:opensipsrw@localhost/opensips")


# ----- domain params -----
/* uncomment the following lines to enable multi-domain detection
   support */
#modparam("domain", "db_url",
#	"mysql://opensips:opensipsrw@localhost/opensips")
#modparam("domain", "db_mode", 1)   # Use caching


# ----- multi-module params -----
/* uncomment the following line if you want to enable multi-domain support
   in the modules (dafault off) */
#modparam("auth_db|usrloc|uri", "use_domain", 1)


# ----- presence params -----
/* uncomment the following lines if you want to enable presence */
#modparam("presence|presence_xml", "db_url",
#	"mysql://opensips:opensipsrw@localhost/opensips")
#modparam("presence_xml", "force_active", 1)
#modparam("presence", "server_address", "sip:192.168.1.2:5060")




modparam("tm", "onreply_avp_mode", 1)
#modparam("mediaproxy", "mediaproxy_timeout", 500)
#modparam("mediaproxy", "signaling_ip_avp", "$avp(s:nat_ip)")
modparam("mediaproxy", "media_relay_avp", "$avp(s:media_relay)")

modparam("mediaproxy", "ice_candidate", "low-priority")
modparam("mediaproxy", "ice_candidate_avp", "$avp(s:ice_candidate)")

#modparam("tm", "onreply_avp_mode", 1)
#modparam("mediaproxy", "media_relay_avp", "$avp(s:media_relay)")

####### Routing Logic ########


# main request routing logic

route{

	if (!mf_process_maxfwd_header("10"))
{
xlog("111111");
		sl_send_reply("483","Too Many Hops");
		exit;
	}
if (msg:len >=  2048 ) {
xlog("122222221");

sl_send_reply("513", "Message too big");
exit;
};
#******************
# answer it with 200 OK.
if (method == "OPTIONS") {
sl_send_reply("200", "OK");
return;
};
#*********

if (nat_uac_test("3")) {
if (is_method("REGISTER") || !is_present_hf("Record-Route")) {
fix_nated_contact();
if ( is_method("INVITE") ) {
xlog("L_INFO", "NAT: FIXING SDP");
fix_nated_sdp("1"); # Add direction=active to SDP
};
force_rport(); # Add rport parameter to topmost Via
setbflag(6);    # Mark as NATed

# if you want sip nat pinging
# setbflag(8);
};
};

if (has_totag()) {
		# sequential request withing a dialog should
		# take the path determined by record-routing
		if (loose_route()) {
xlog("test");
			if (is_method("BYE")) {


				setflag(1); # do accounting ...
				setflag(3); # ... even if the transaction fails
xlog("test7");
			} else if (is_method("INVITE")) {
				# even if in most of the cases is useless, do RR for
				# re-INVITEs alos, as some buggy clients do change route set
				# during the dialog.
				record_route();
xlog("test6");
			}
			# route it out to whatever destination was set by loose_route()
			# in $du (destination URI).
			route(1);
		} else {
			/* uncomment the following lines if you want to enable presence */
			##if (is_method("SUBSCRIBE") && $rd == "your.server.ip.address") {
			##	# in-dialog subscribe requests
			##	route(2);
			##	exit;
			##}
xlog("test2");
			if ( is_method("ACK") ) {
				if ( t_check_trans() ) {
					# non loose-route, but stateful ACK; must be an ACK after
					# a 487 or e.g. 404 from upstream server
					t_relay();
					exit;
				} else {
					# ACK without matching transaction ->
					# ignore and discar
xlog("test5");
					exit;
				}
			}
xlog("test3");
			sl_send_reply("404","Not here");
		}
		exit;
	}


if (method == "BYE" || method == "CANCEL")
end_media_session();



	t_check_trans();

#	i authenticate if from local subscriber (uncomment to enable auth)
	# authenticate all initial non-REGISTER request that pretend to be
	# generated by local subscriber (domain from FROM URI is local)

##########################################################

if (is_method("INVITE|ACK")) {
xlog("5555555555555555555555555555");
end_media_session();

xlog("333331");

}

	if (!is_method("REGISTER|MESSAGE"))
		record_route();
xlog("record-route");

	if (is_method("REGISTER"))
	{
		 #authenticate the REGISTER requests (uncomment to enable auth)
		if (!www_authorize("", "subscriber"))
		{
			www_challenge("", "0");
			exit;
		}

		if (!db_check_to())
		{
			sl_send_reply("403","Forbidden auth ID");
			exit;
		}

		if (!save("location"))
			sl_reply_error();

		exit;
	}

	if ($rU==NULL) {
xlog("no user");
		# request with no Username in RURI
		sl_send_reply("484","Address Incomplete");
		exit;
	}

	# apply DB based aliases (uncomment to enable)
	##alias_db_lookup("dbaliases");

	# do lookup with method filtering
	if (!lookup("location","m")) {
		switch ($retcode) {
			case -1:
			case -3:
				t_newtran();
				t_reply("404", "Not Found");
				exit;
			case -2:
xlog(":not alowd");
				sl_send_reply("405", "Method Not Allowed");
				exit;
		}
	}

	# when routing via usrloc, log the missed calls also
	#setflag(2);

	route(1);
}


route[1] {
	# for INVITEs enable some additional helper routes
#	if (is_method("INVITE")) {
#		t_on_branch("2");
#		t_on_reply("2");
#		t_on_failure("1");
#	}
if (isbflagset(6)) {
#force_rtp_proxy();
xlog(" use media");
use_media_proxy();


xlog("mmmmm");
t_on_reply("1");
        append_hf("P-Behind-NAT: Yes\r\n");

        };

	if (!t_relay()) {
		sl_reply_error();
	};
	exit;
}

onreply_route[1] {

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

if(!fix_nated_contact()) {
                   log(1, "LOG: fix_nated_contact() FAILED!\n");
               } else {
                   log(1, "LOG: fix_nated_contact() successful.\n");
               };
#force_rtp_proxy();
use_media_proxy();
xlog("44444");

    }
else if (nat_uac_test("1")) {
xlog("jdfgjdgfjdgf");
       fix_nated_contact();
  };

}










More information about the Users mailing list