We continue to struggle with this issue and Jeff K. you need to look at the e911 legislation for the state your PBX is located.
I've installed in some states where they only need to know the building location unless there are multiple buildings and/or floors. About to install in a state where any PBX installed after 2004 must report down to the "station" level yet "station" is not defined. We then discovered the phone carrier will allow us to report up to 10 different numbers to the PSAP (911 center) for free, so we'll reserve 10 DIDs, divvy the building into zones and assign a DID to each zone. Then tweak the address (via phone carrier) associated with each DID to relate to a zone. This will then require some tweaking within 3cx with Outbound rules, creating groups, etc. I can go into more detail if you desire. My issue, I can't believe 3CX seems to ignore this requirement.
The other option, if you have to report down to the station level, you can setup a PSAli or ALI database with companies like West, or the phone provider might offer this for a price. But I believe you may need to have a DID for each phone for this to work. You then register each DID in their PSAli, enter specific location with each DID (building 2, 3rd floor, north east quad). Now when 911 is called this info. will get reported to the local PSAP... and they will also send out a notification (email / text) to key people that 911 was dialed. A PSAli will usually support different locations, even in different states, and report 911 to the appropriate local PSAP (911 center). Becomes cost effective when you have multiple sites, and with different legislation in each.
As for people using the 3cx softclient on a tablet, or smartphone, a whole new can of worms.