There are two different reasons companies ask for your phone number, and it's worth distinguishing between them:
The first is for sending a verification code during signup to prevent spammy/abusive signups. In my experience, this is the least likely to work with VoIP numbers because companies often intentionally block VoIP numbers.
The second is for sending 2FA codes during login. My experience with this has been much better. AFAICT, companies do not intentionally block VoIP numbers for this use case. When SMS does fail, there is almost always an option to send the code by voice call, and this is always 100% reliable.
I also have some experience with using a modem with a SIM card to receive SMS. I've used two different models of modem (not Sierra Wireless) and both have been very flaky, often locking up and requiring a power cycle, or having hours-long delays when receiving SMS. I would not call this approach a panacea.
The first is for sending a verification code during signup to prevent spammy/abusive signups. In my experience, this is the least likely to work with VoIP numbers because companies often intentionally block VoIP numbers.
The second is for sending 2FA codes during login. My experience with this has been much better. AFAICT, companies do not intentionally block VoIP numbers for this use case. When SMS does fail, there is almost always an option to send the code by voice call, and this is always 100% reliable.
I also have some experience with using a modem with a SIM card to receive SMS. I've used two different models of modem (not Sierra Wireless) and both have been very flaky, often locking up and requiring a power cycle, or having hours-long delays when receiving SMS. I would not call this approach a panacea.