There's a great article discussing the differences between the different SDKs over on the CodeLync blog.
I'm a bit unsure exactly what you're trying to do though. Selectively forward particular calls from one number to another? All calls from one number to another?
If it's selective forwarding based on something that you want to control locally on the client (like, client doesn't answer within 5 rings, or clicks decline, or is inactive, or something) then you can do this with the Lync SDK.
If it's more complicated, you might want to consider using a UCMA SDK application: where you run a service which will answer that number, and then decide where to transfer it to. That way you aren't dependent on it running on any particular client, it will run on a server somewhere. This is a good approach for call centre applications, where you want to maybe round-robin calls to available operators etc.
Hope this helps.
Edit following comment:
Following on from your comment, it sounds like a UCMA application would be the way to go. With a UCMA app, you can give your application a specific SIP address and subscribe to any incoming calls to that SIP address. To manage the fact that the destination keeps changing, I would have something in the database that allows you to see what the destination should be, and then look that up on an incoming call, and perform a back-to-back transfer to the destination. (this also means that you can manage changing the destination in some other process, wherever it makes most sense, and also means you aren't hard-coding the destination addresses into the applications).
As with most things, there are different ways to do this. For instance, you could (I think) use SIP message filtering to transfer the call as it comes in, but I think this would be a less visible solution.