# 6.2.5 – Extend RDP: Virtual Channel and Dynamic Virtual Channel

You can create multiple virtual channels and dynamic virtual channels on client side using JavaScript (you can only create one VC before 4.0):
```
var r = new svGlobal.Rdp(protocol + gw + "/RDP?"+ s, w, h, server_bpp);
var vc = new r.VirtualChannel(); //Use r.DynamicChannel to create a dynamic virtual channel
vc.name = "CUST";
vc.process = function(buffer){
  console.log(buffer.getByte());
  console.log(buffer.getLittleEndian16());
};
vc.onopen = function(){
  var data = new Array(7);
  var rb = new RdpBuffer(data, 0, 7);
  rb.setByte(1);
  rb.setLittleEndian16(345);
  rb.setLittleEndian32(567);
  rb.markEnd();
  vc.send(rb);
};
r.addChannel(vc);
```
Virtual Channel is used to communicate with RDP host. You also need to write a plugin for the RDP host. Please check followings for more information:

- [http://msdn.microsoft.com/en-us/library/aa383546(v=vs.85).aspx](http://msdn.microsoft.com/en-us/library/aa383546(v=vs.85).aspx)
- [http://www.codeproject.com/Articles/16374/How-to-Write-a-Terminal-Services-Add-in-in-Pure-C](http://www.codeproject.com/Articles/16374/How-to-Write-a-Terminal-Services-Add-in-in-Pure-C)