What I did with Wally was:I've recently been using Here! as my verbal command, but he still isn't great, even in a room without distractions.
I'd get him to follow me. Then stop. When he walked up to me. Click and treat. I kept doing that so that "coming to my feet = reward"
I did that for a while. (might explain why he shadows me after I gave him food...)
Then, say a day later, I call him all random. If he came to me. Click and treat. If he didn't, I go get him and bring him, dragging if need be, to where I was. No reward.
Once he saw that a) he's coming to me whether he wants to or not, and b) if he came on his own, he got a reward - he started doing be more and more until the way he is now - he comes eagerly running (well walking fast if inside) when I call him.
Now, granted, for Wally - it might have been more of a "make me!" type issue (especially given he was just over a year old, so maybe that "rebel" stage) than a true lack of understanding, so I'm sure others will have other ideas, but he learned something considering how his recall has improved and continues to do so.