Teaching recall is one of the hardest things to teach, in my experience. And I will admit up front that we have an electric fence at home.
He's pretty much learned that he can ignore your command if it suits his purposes. You would need to start over with teaching the command to come back to you so he learns it's not optional. You should keep him on a long line so that you can reinforce the command to come back until he understands he can't do something else. And if you have been using a specific term for it, like "Come, Rocco!", since he's learned it's optional, you should select another command, such as, "Here!" or "Return!" or some new command that he needs to learn cold. Put him on a long line that he can drag around, you don't have to hold the end all the time but you should be able to grab or step on it before he gets away from you. Practice in an area of low distraction from longer and longer distances. If he doesn't respond immediately, you would use the long line to guide him in. Once he does it and understands you will tolerate no other response in low distraction areas, you practice it in areas with more distraction and increasing levels of distraction, still with the long line on him, until he understands that under all circumstances he needs to come back when you call him. It's tough and takes time and commitment not to let him get away with ignoring the command. I had to retrain my older dog like this. My younger dog isn't as good about it but when we're in our yard, since we have the fence, I can go get her if she ignores me and remind her that Come means Come.