Code in question is libosmo-sccp/src/osmo_ss7_vty.c:
DEFUN(cs7_xua, cs7_xua_cmd,
"listen " XUA_VAR_STR " <0-65534>",
"Configure/Enable xUA Listener\n"
XUA_VAR_HELP_STR "SCTP Port number\n")
{
struct osmo_ss7_instance *inst = vty->index;
struct osmo_xua_server *xs;
enum osmo_ss7_asp_protocol proto = parse_asp_proto(argv[0]);
uint16_t port = atoi(argv[1]);
xs = osmo_ss7_xua_server_find(inst, proto, port);
if (!xs) {
xs = osmo_ss7_xua_server_create(inst, proto, port, NULL);
if (!xs)
return CMD_SUCCESS;
}
vty->node = L_CS7_XUA_NODE;
vty->index = xs;
return CMD_SUCCESS;
}
It's not so trivial to add an IP address here... possibly the easiest would be to allow another vty command that is identical except an IP address added at the end, and both call one common function to effect the server start?
Also interesting to note: the local_host=NULL is passed to osmo_ss7_xua_server_create() which directly does:
LOGP(DLSS7, LOGL_INFO, "Creating %s Server %s:%u\n",
get_value_string(osmo_ss7_asp_protocol_vals, proto), local_host, local_port);
so this would log "(null)" as local bind address.