Hello Experts, I am trying to explore Cisco CTI OS SDK 7.0 for .Net. I copied source code of .Net application from installation path of CTI OS client by following directory e.g. \CTIOS Client\CTIOS Toolkit\dotNet CIL\Samples\CTI Toolkit Combo Desktop.NET
Project is running at my machine without throwing any error and I verified functionality by making few test calls. Only problem which I faced is related to Wrapup Form window.
While landing calls from different skills (sales, services, complaints) I observed that CTIOSSoftphoneCSharp application keep showing previous window of WrapupForm. Which is problematic for me, actually I have a requirement to filter wrap-codes against different skills. To achieve this I have implemented few custom filters on 'WrapupForm_Load' method of 'WrapupForm' class to display only relevant codes against each call.
Is this the right approach? if yes then how I can command application to load WrapupForm against every call. The end goal is to filter wrap-up codes against different prefixes. Thank you in advance
After digging more into this issue in debugging mode, I noticed that showDlg method in SoftPhoneForm class is throwing exception 'Cannot access a disposed object. Object name: 'WrapupForm'. ' now I am not sure how it being disposed and why application isn't initiating WrapupForm every time.
One of the things that the Softphone WinForms app does that I am not particularly fond of is that it creates the dialogs and holds on to their references instead of creating them on demand. This leads to results such as you describe. You can clean it up in the OnActivate event which is called whenever a window is shown. The OnLoad event only fires once when the Form object is created. Since the SoftphoneForm never destroys the Form object and hangs on to it this means it only gets called once for the whole session. You can either use OnActivate or change the code to create and destroy the window as needed. I supposed they did it to minimize loading latency when trying to display the dialog but its not a normal practice (anymore than holding on to MessageBox references is ) and causes some confusion I don't find forms to load slowly the second time you call them because their creation code is usually cached and plenty quick but they designed it that way so you have to figure out if you want to change it. Once of issues I found is in the DialPadForm. Because it sets the number to dial back to the last number successfully dialed when the form is activated. Unfortunately if you are typing in a phone number and change windows or shift the focus out of the dialpad window when you return to it, it calls the activate code and resets the number to the last number dialed. Its a bug. The behavior is unexpected and causes users to dial the wrong number in certain cases. Hope this helps