My various instructors have insisted on two things for recall. 1. Call the dog, if he doesn't come then go get him. Never keep calling because that just reinforces the ignore reflex. 2. When he does respond feed special treats for 30 seconds. You might have to experiment to find the most special treat just for this.
One thing they learn quickly is that humans ask a dog to come and then make the dog do something the dog doesn't want - go in kennel, get nails clipped, get left in house while humans leave, whatever - and they'd rather not learn this. Teaching effective recall means you work this command even if you don't really want the dog to come for anything special. Just call the dog, treat, then release him to do whatever he wants (play, chase squirrels, etc.). Then call again, treat, and release. This way the dog learns (and my prima donna basenji is proof) that the command is connected to something good and will start coming quickly. My previous basenji would be chasing squirrels and I could call him and he would turn on a dime to return to me - giving up the squirrel chase!