I have a few theories.
First of all, according to this video, you cannot get phone calls in caves, gyms / indigo plateau, the second floor of Pokemon centers, Mahogany mart, Goldenrod department store, Goldenrod underground, burned tower, radio tower, Ruins of Alph chambers, Team Rocket hideout, or in the battle tower.
Please make sure that if you want calls from Trainers you are not in any of these locations.
The same video states (at around 6:24 minutes in) that once you register a Trainer's number in your phone, a timer starts running, bein incremented every time that the in-game timer advances. It only runs when you are in the overworld, so it gets delayed when you do things such as enter battle or talk to NPCs. After a 20 minute delay, you have a 50% chance of receiving a phone-call, if you do not get this phone-call then you will have a 50% chance of getting another after a 10 minute delay, after that if you still didn't get a call then you have another 50% chance of getting a call, this time after 5 minutes. If you still don't get a call, then you'll have a 50% chance of getting one every 3 minutes. When you do get a call, this counter is reset to the 20 minute delay prock.
If you haven't gotten a phone-call, then it means that you were just unlucky every time one of those 50% chances popped up. But the more phone-calls you don't get, the less time you have to wait before having a chance to get one.
Going into even more detail about how the chances for calls are calculated would take far too long for this answer. The link I provided to the video I've been referencing should help you a lot, it explains in great detail the algorithm that the game uses to decide when phone-calls are made. Hopefully seeing that will help.