Emergency CID with hot desking

I added support for subnet ID based caller ID in Always Be Conferencing – discussed in this other thread. It allows management of this option via internal Asterisk DB:

sirius*CLI> database put pngnpbx/abc/sbntcid/192.168.1.0 24 3035551234
sirius*CLI> database put pngnpbx/abc/sbntcid/192.168.2.0 24 3035552222
sirius*CLI> database put pngnpbx/abc/sbntcid/192.168.3.240 30 3035553333
sirius*CLI> database put pngnpbx/abc/sbntcid/192.168.3.244 30 3035554444
sirius*CLI> database put pngnpbx/abc/sbntcid/192.168.3.248 30 3035555555
sirius*CLI> database put pngnpbx/abc/sbntcid/192.168.4.128 28 7205550000

You might be able to extrapolate out that portion to suit your needs (although all of ABC is compatible with FreePBX.) See the AEL macro pngnpbx-abc-remote in ABC and related included Examples for more information.