Although SIP can be used without any supporting infrastructure beyond an IP network, addressing it will be via the IP address, not a phone number. That means you cannot access it a normal phone, and the vast majority of VoIP users will not configure their systems to permit direct access.
I’m assuming you are talking about SIP. To get the translation from a phone number to an IP address, you need an Internet Telephony Service Provider (ITSP), and to get a USA phone number, they must have a connection to the conventional telephony network in the USA, or buy services from someone who does.
Setting the number on outbound calls is easier, because the conventional network is capable of signalling caller IDs that don’t reflect the country of origin, although good service providers will not allow you to do this unless you have proved that you control the number.
DID refers to the connection point to the conventional network. It’s a corruption of the term Direct In Dialing, which really applies to the case where a block of numbers is allocated to a PABX.
Asterisk also supports direct connection to ISDN networks, but you need to make the connection in the country to which the number belongs.
I assume your intent is to avoid customers paying international phone charges, as they will work out that the service isn’t being provided from the USA when they hear the agents talking.