In a large pot which will fit all of the ingredients snugly, place the chicken, coriander (cilantro), spring onions (scallions), and any optional ingredients.
Add enough cold water to just cover the ingredients.
Slowly bring the pot to a gentle simmer over medium heat. If the heat is too high and the water boils for too long, the stock will go cloudy.
Once the stock starts heating up, you will notice some scum and impurities rising to the surface. Remove the impurities with a fine strainer or a ladle. Repeat this step throughout the cooking process until you no longer see any impurities.
Simmer the broth gently on low-medium heat for 75 to 90 minutes (generally 90 minutes if you are using a whole chicken).
During the cooking time, remove any impurities from the surface, and top up the broth with more boiling water to maintain the same water level.
After 60 minutes, add the sugar, salt, MSG (if using) and fish sauce.
After 75 to 90 minutes, remove and discard the coriander roots (cilantro) and spring onions (scallions), and ginger (if using).
Strain the broth through a fine sieve into a large, clean pot. I do this by placing a fine sieve over the clean pot and use a large ladle to transfer the broth from one pot to another.
Taste the broth for seasoning. It will generally taste a bit strong/salty at this stage, but you can easily dilute the broth with some boiling water, about 250 ml/1 cup at a time. I like to make my broths a bit salty because it is easier to dilute a strong-flavoured broth than to add flavour to a weak broth.
The strained broth is now ready to serve or store.
If you are using chicken wings or chicken carcass, any meat will generally be very soft but still edible. The wings should be falling apart at this stage. You can shred the meat to serve with the broth or to use in another recipe.
If you are using a whole chicken, shred the meat to serve with the broth or to use in another recipe.
The stock keeps in the fridge for 3 to 4 days, or in the freezer for up to 3 months.