Dynamic routing feasibility with server interaction


I am a beginner but before stepping in asterisk, I would like to confirm that what I want to do is feasible:
I would like to use asterisk to route incoming calls to SIP phone. The problem is that the routing depends on the incoming call and information from a server. SIP phone numbers may also vary in time and so a dialplan doesn’t seem a good idea from my point of view.
How I expect it to work :
Previous to calling the call center, customers need to select their correspondant and give some information on a website using an app. The app then calls asterisk. When asterisk receives the incomming call, it ask a web service to give the selected SIP number corresponding to the incoming call. Then asterisk routes the incoming call to the SIP number. Start time and call duration should also be recorded.
Note that SIP and IP incoming calls may vary in time and in relation, like in a call center but on an even more faster.

So is this possible ? Assuming that Dial plan are not usable (because nothing is fixed), and that web service is absolutely required, what would be the best way to do it ?

Thank you for your help !