If your recalls crap then don't let the dog off the lead. I don't mean that to sound sarcastic, but by letting the dog off the lead and then calling it (the dog pays no attention) you are reinforcing the dogs behaviour of ignoring your voice.
I don't like shouting and usually have apup on its lead and call it name, the pup usually responds and I give it lots of fuss, if the dog is ignoring me and intent on sniffing the ground or such I will give a LIGHT check into my legs and again give it praise, soon the dog learns to listen for you and you don't have to shout.
I would work on the rec