You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcpcfg/lib/get_all_rtp_for_host

61 lines
1.3 KiB

[%
# 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
-%]