I think your son just worked out how long his leash is, and how much you can do about it if he is beyond the length of that leash.
You handled that badly from the start.
He texted you to let you know he wanted to stay out - that was a GOOD thing and you should have reinforced that behaviour.
You didn't, you punished that behaviour by telling him he couldn't stay out.
THEN you demanded to know where he was.
You've already punished the GOOD behaviour here, and now he is VERY aware that actually right now he is beyond your ability to do anything else bad to him - if he doesn't tell you where he is, there is NOTHING you can do about it.
If you had said 'Righto, thanks for letting us know, can you let me know where you are though?'
The chances are you would now know where your son actually is tonight.
He wouldn't have kicked back, he would not be so very aware of how long the leash really is, this whole situation would not have occurred.
After all if it REALLY matters so very very much that you know exactly where he is and who he is with...
Where the hell did you think he was up until hte point he rang, how did he get there and how was he getting back?