Lets assume you have a POTS line, or something that gives you an analog phone phone.
If you want to go the really old-school method you would need to pick up an old PCI voice modem that supports caller-id. Put that in your computer.
The tricky part finding a modem that actually has callerid software that is supported on Linux. I know my old USRobotics 33.6k modem I had two decades ago support reporting caller-id information to Windows, but I don't think anyone ever got the callerid functionality to work on Linux.