I've read the Dialogic training and various forum posts which indicate it is not possible to handle multiple calls simultaneously with the Diva Component API when using VB6 without having a separate DivaCall instantiated and coded specifically for each phone line. Even if you want the same program to behave identical for all, for example, 96 channels, you still have to have 96 copies of the same code.

I am looking to replace an old IVR system that uses Dialogic D/240SC-T1 cards and Artisoft Visual Voice Pro 5 with VB6. Using Visual Voice, the architecture of the application was one standard VB6 EXE which would instantiate a VB6 ActiveX EXE for each phone line. This means that there were just two Windows processes (EXEs) running but the single ActiveX EXE handles calls for as many Dialogic ports that are installed/enabled. The ActiveX EXE knows which channel it is using and can do whatever we program it to do. The same ActiveX EXE handles calls on all channels.

Is there any way to have a similar setup with the Diva Component API using VB6, or do I absolutely have to move to VB.Net or C# in order to get this type of multi-threading?