Простой вариант - телефон с интернетом и номер от сип-оператора. И входящие, и исходящие и еще много всего.
Сложный вариант. Рабочий, сам проверял. Нужен сип-оператор. Мне нравится Задарма. Покупаете у них виртуальный номер. Далее нужен сип-сервер. В моем случае это Freepbx на Raspberry. Можно обойтись, например, отличным бесплатным сервисом ruvoip. Все работает, тоже проверял.
Подключаете учетную запись ruvoip к учетной записи Задарма. Создаете правило донабора.
Пользуетесь по следующей схеме: 1) набираете виртуальный номер, купленный у Задарма. 2) Попадаете на сервер ruvoip, который запрашивает номер донабора. 3) вводите исходящий номер, на который необходимо позвонить. 4) Разговариваете. Собеседник видит тот номер, который вы купили
Далее можно схему дополнить необходимыми фишками. Например, не покупать виртуальный номер, а подставить свой имеющийся, если подтвердить, что он принадлежит вам. И много чего еще.