Use a VOIP provider with call flow control.
Anveo has a visual programming tool for call flow. You could set up a simple Interactive Voice Response (IVR) system where callers have to pass your menu in order to be forwarded or rung thru to SIP.
I recently ported my U.S. landline number to Anveo. It took less than 1 week from CenturyLink (and my DSL stayed live).
With Anveo you could receive calls either with any SIP device (I'm using an Obihai) or forward calls to another phone number (cost per minute based on destination, US48 is $0.01/minute).
If prepaid for a year of incoming calls the total charge is $24. Yes, less than $25 provisions my number for incoming calls for a full year, no additional charge. This was the cheapest I found in what dslreports comments seem to consider a top-tier provider.
Outgoing calls are a separate issue. Simplest is to just use Anveo (US48 at 1c/minute). Cheaper options exist. For example, with an Obi110 you could keep your landline with a new phone number and route outgoing thru it. Or use google voice (until it goes away next May). Or use localphone.com. Or use a different provider for different destinations.
(Anveo also has a referral program so you could message me for my number, or not.)