From my experience, all you have to do is create a call on the address you want the call to be picked up with. Make sure to call the CreateCall-Method with a null pointer to the destination address.
After that, you should be able to call the Pickup-Method with the diable address of the line you want the call to pick up from as your group id.
ITBasicCallControl bcc = targetAddress.CreateCall(null, TapiConstants.LINEADDRESSTYPE_PHONENUMBER, TapiConstants.TAPIMEDIATYPE_AUDIO);
bcc.Pickup(sourceAddress.DialableAddress);
In my case, targetAddress is the address want the call to be placed on, after the pick up operation is completed. sourceAddress is the address the call originally was placed on.
Edit:
this only applies, if you're using TAPI 3.x, which, based on your call state CS_OFFERING, I think you are.