You can do it on two ways.
Using Commands Chain:
IDictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("CommandParameter", Interaction); (Interaction to transfer, You can retrieve it from InteractionManager)
parameters.Add("Destination", destiny); (Routing Point o place of destination)
parameters.Add("Location", null);
parameters.Add("UserData", new KeyValueCollection());
parameters.Add("Reasons", null);
parameters.Add("Extensions", null);
parameters.Add("SingleStepUserData", null);
container.Resolve<ICommandManager>().GetChainOfCommandByName("InteractionVoiceSingleStepTransfer").Execute(parameters);
Another way. Working directly with Plattform:
Platform.Voice.Protocols.ConnectionId conid = new Platform.Voice.Protocols.ConnectionId(TConnectionID);
string[] place = _agent.LoginDNs[0].Split('@'); (Origin PLace, your place)
Genesyslab.Platform.Commons.Collections.KeyValueCollection kvc =new Genesyslab.Platform.Commons.Collections.KeyValueCollection();
kvc.Add("COMMENT", "TryTo");
RequestSingleStepTransfer rsst = RequestSingleStepTransfer.Create(place[0].ToString(), conid, destiny,"",kvc,kvc,kvc); (destiny)
createChannel(_agent);
channel.Protocol.Send(rsst);
destroyChannel(channel);