Here's the 3 steps I've used to train my dogs to recall when I do any of the following, sometimes singly, sometimes in combination: call their names, whistle, say "c'mere" or "c'mon," or clap my hands.
1. I almost always carry dog food in my pocket, and every time Po (the puppy, at 13 months) comes back to me when I call him, he gets a kibble (after sitting at my feet ... and this started in the house, with a distance of 3 feet, when he was weeks old). For the very few times I'm without dog food when I have him off-leash, he gets a good slap on the flank and an "atta boy!" or two. Fish, who's been recalling now for ten years, is off the kibble reward completely: only "atta boys!" for the Fish Dog.*
2. Never -- ever -- neverever -- do I "punish" my dog for returning to me, no matter how frustrated with him I am. An explanatory anecdote: I open the front door to go out and fetch the mail and it's early and my pre-coffee brain is still asleep and ... ZOOM ... What was that?
Po bolts out the door and across the front yard and over the road and -- IS THAT A SQUIRREL? A CAT? A CAT! THAT'S A CAT! -- before I even blink he's gone from sight.
"Po!" I step off the porch. "Po!" Whistle. Claps. More whistling and clapping and name calling (pun intended) ... and no Po. He's gone, after all, chasing a perfectly juicy cat. Until he gets bored, or tired, or hungry -- in which case he returns while I'm still in the front yard calling -- screaming -- his name.
And what I'd honestly like to do at this point is carry him inside by the scruff of his neck -- "YOU WORTHLESS PIECE OF GOOD-FER-NOTHIN ... I TOLD YOU TO COME BACK TO ME!" -- but I know that what this really says, to him -- pay attention here -- is "never come back to me again when I call for you."
So -- reluctantly, painfully -- I reward his return and take him inside and remember that he is a dog and that I am the dumba$$ who opened the front door for a lap puppy when there was a perfectly juicy cat in my front yard.
In short: You must reward the recall, even if it's late, even if it's after you're steaming mad.
3. I constantly play hide-and-go-seek with the boys when they're off-leash. This keeps them tuned into my whereabouts at all times. If they get ahead of me and out of sight, I stop and wait ... Soon enough, they realize that I've not progressed on our hike and they begin a return. Often, I'll let them see a glimpse of me and then I'll sprint off for cover (behind a tree, in a ditch, etc.), thus triggering both their recall and chase instincts to bring them back to me (for, of course, the reward).
Do my dogs, after these methods, always and without fail return to me when I call for them? No.
Do they almost always -- which is satisfactory in darts, horse shoes, and hand grenades -- return when I call them? Yes.
*For Fish, I started giving him a kibble every-other time at about 2 years old ... Then every 3 times ... etc. I'm not sure about Po yet -- gotta play by ear -- but for now, he'll get a food reward for every recall.