Grandstream make a range of Analogue Telephone Adapters that allow you to use a traditional Analogue phone with VoIP / SIP. They're also one of the few models that support Pulse or Loop Disconnect dialling, which makes them ideal for use with old rotary phones.
The HT802 supports "inter-port" dialling by using ***70X where X is the port number you wish to dial, which means you can call between the attached phones without requiring a SIP server or internet connection, but old phones don't have a method of dialling an *, you hear an IVR menu kick in, and the number isn't very authentic. So with a bit of experimentation I've figured out how to use direct IP calling to make internal calls between ports, with fully customisable numbers.
This is tried and tested on the HT802, but likely works on the other multi-port ATAs like the HT812 and HT814.