[%

  # Returns a list of RTP-enabled interfaces for rtpengine
  #
  # @param argv.host	The host to get interfaces for. If blank, helper
  #			script will be called.
  # @param argv.format	"list" for plain list of interfaces, blank or
  #			"rtpengine" for full CLI options
  # @return out		The array of interfaces

X_host = argv.host;
X_format = argv.format;

IF ! X_host.defined || X_host == '';
	PROCESS '/usr/lib/ngcp-ngcpcfg/get_hostname';
	X_host = out;
END;

IF ! X_format.defined || X_format == '';
	X_format = 'rtpengine';
END;

IF ! hosts.$X_host.defined;
	X_host = 'self';
END;

out = [];

FOREACH X_iface IN hosts.$X_host.interfaces;
	X_ifc = hosts.$X_host.$X_iface;
	X_types = X_ifc.type.grep('^rtp_.');
	IF X_types.size();
		X_type = X_types.0;
		X_type = X_type.remove('^rtp_');

		IF X_format == 'list';
			out.push(X_type);
			NEXT;
		END;

		X_ips = X_ifc.shared_ip.list;
		IF !X_ips.size() || !X_ips.0.defined;
			X_ips = X_ifc.ip;
		END;
		X_adv_ips = X_ifc.advertised_ip.list;
		FOREACH X_ip IN X_ips;
			X_adv_ip = X_adv_ips.shift();
			out.push(X_type _ '/' _ X_ip _ (X_adv_ip ? ('!' _ X_adv_ip) : ''));
		END;

		X_ips = X_ifc.shared_v6ip.list;
		IF !X_ips.size() || !X_ips.0.defined;
			X_ips = X_ifc.v6ip;
		END;
		FOREACH X_ip IN X_ips;
			out.push(X_type _ '/' _ X_ip);
		END;
	END;
END
-%]
