We often let our dogs run loose by the river under supervision. They know their boundaries, come when called, and do not bother people unless invited. (If you talk to Angie, she will consider that an invitation and almost certainly try to lick you...)
The other day, another dog on a leash came around the corner, so we called our dogs and put them on leashes. That dog's owner was amazed, and asked how we got them to behave that well.
I am not an expert. I can tell you what I do, but I won't claim it is the best thing.
If you scold your dogs for misbehaving, stop scolding as soon as they stop misbehaving. It is especially important that you do not discipline them when they come--they learn that coming back is when they get punished.
Make sure that most of the time when they come when called, something good happens. This may mean that you will have to call them for no reason sometimes, and give them a treat. A treat does not have to be food, it can be affection or play. A variation of this is why I have a pile of sticks in my backyard. Bella loves to carry big sticks. I do not want Bella to associate going on leash with losing her stick, so I let her bring them home.
For my dogs, rolling them on their back is an especially potent form of discipline. I save that for particularly offensive behavior.
Do not worry too much about fair. Bella would sometimes snap at other dogs at the dog park, to the point where if she did not improve I would not be willing to bring her. That ended when I either rolled her on her back, or took her to the car for a few minutes every time--even if in my opinion the other dog started it.
Praise them for doing the right thing, and not just when you are surprised by good behavior. For example, I praise them when they pass another dog without barking, when they pass people without trying to lick them, and when they are off the bike path pavement when a bike goes by.
Be consistant and insistant. An example--when one of the dogs pulls on the leash, even a little, I give a snappy yank back rather than restraining them--If it happens too often, I will scold, or shorten the leash. Ideally the leash is for signaling and emergency restraint, rather than a constant restriction. Bella is 75 pounds or so, but my mother in law says she is easier to walk than her 15 pound Chihuahua mix. From the beginning I insisted that my dogs stay on the proper side of trees and such when leashed. It only took a week or two, now they do it automatically without being told-even on the end of a 20 foot retractable leash.
Do not punish unless you catch them in the act. If you come home and discover something they have caused, you can be verbally upset with the problem, and ignore the dogs while you fix the problem. Minimize unnecessary commands if you cannot back them up.
Commands are short and brisk--Usually the dog's name to get her attention, then a 1 or 2 word command.
I have not managed to teach Bella to quit barking. However, if I tell her to sit or lie down, she will obey, and usually stop barking as well. I think "do this" is an easier concept than "quit doing that".