Radiosity is a way to calculate diffuse GI, i.e. every surface is assumed to be Lambertian surface without specular component. In the radiosity algorithm you split surfaces into small patches and calculate "form factor" between two patches, which defines how much energy is transferred from one patch to the other.
The form factor between patches is calculated using the distance between patches (patches further apart means less energy transferred between them), their respective orientation (two patches facing each other transfer more energy than when they face away from each other), the visibility (if patch is occluded, it doesn't transfer energy to the patch) and their size (larger surfaces emit more energy). The form factor obeys reciprocity which means that the factor for patches A and B can be used for energy transmission calculation from A to B and from B to A.
To calculate radiosity for a patch, you iterate through all patches and accumulate the energy from other patches using their respective form factors and the luminance of each patch. This is a single iteration of the radiosity algorithm, and for multiple light bounces you can run multiple iterations of this same algorithm. This can be implemented for example by rendering scene around each patch to a hemicube and accumulating the result from the cube for each patch.
To answer your question if radiosity is a full GI solution - no it's not. Since all surfaces are Lambertian, there's no specular component to it, so you would need to use other techniques in addition for the full lighting solution. The result of radiosity is usually also cached into lightmaps with limited resolution so you may need to use AO to provide higher frequency lighting details.