I assume your currently developed solution is implemented with AXL, and you can use AXL to piggy back off the existing app. Or you can simply create a script that uses AXL to look up every user who is assigned a phone/voicemail, and create a CSF device for each of those users.
If you choose the latter, what I would recommend is that you start with a SQL query (executeSQLQuery in AXL) that gets the users you want and then step through them, adding and assigning CSF devices as you go, each named something based on the user's ID. For example, at Cisco, my user ID is npetrele. So it would create CSFnpetrele and assign it to me.