<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>RE: How toget Agent statestics from argument on eOnNewAgentStatisticsEvent</title>
  <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_recent_posts?p_l_id=" />
  <subtitle>RE: How toget Agent statestics from argument on eOnNewAgentStatisticsEvent</subtitle>
  <id>http://developer.cisco.com/c/message_boards/find_recent_posts?p_l_id=</id>
  <updated>2013-05-25T01:53:47Z</updated>
  <dc:date>2013-05-25T01:53:47Z</dc:date>
  <entry>
    <title>RE: CTI Toolkit C++Phone</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=5111239" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=5111239</id>
    <updated>2012-02-07T09:36:45Z</updated>
    <published>2012-02-07T09:36:45Z</published>
    <summary type="html">I'm trying to figure out how CTI C++ Phone works. The code remains unchanged. So, in OnLogout method (excercise2Dlg), I have:

m_ctiAgent-&gt;Logout(arLogoutReq);
arLogoutReq.Release();

And in EventSink.OnPostLogout I have:

m_pCtiAgent = m_pDialog-&gt;CreateNewAgent(); //CreateNewAgent is like in my previous post.


I'm trying to detect why memory leaks occur. What is the best way to release an agent object and clean all memory it uses?</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2012-02-07T09:36:45Z</dc:date>
  </entry>
  <entry>
    <title>RE: CTI Toolkit C++Phone</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=5070341" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=5070341</id>
    <updated>2012-01-27T10:10:19Z</updated>
    <published>2012-01-27T10:10:19Z</published>
    <summary type="html">Hi there!
I received some another issue about CTI Toolkit C++ Phone, so I've decided to refresh the topic.
There is said in developer guide (Agent Object Lifetime topic), that the client programmer must release the last reference to the object to prevent a memory leak.
So, we added a line of code to CExcercise2Dlg, as follows:


CAgent * CExercise2Dlg::CreateNewAgent() {
    //if there was a previos instance, release the object
	if(NULL != m_ctiAgent)
	{
		m_ctiAgent-&gt;Release();
		delete m_ctiAgent; // &lt;-- the line we added 
		m_ctiAgent = NULL;
	}
	//Create a new agent instance
  	m_ctiAgent = new CAgent();

	return m_ctiAgent;
}

Then, we perform connect and login. And, during logout, the exception occurs in cilrefarg.h, line 35. 
Here's the message:
Unhandled exception at 0x00565866 in C++Phone.exe: 0xC0000005: Access violation reading location 0xcdcdcd04.
Can You point me into the right direction? Any help will be appreciated.
Best regards,
Piotrek</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2012-01-27T10:10:19Z</dc:date>
  </entry>
  <entry>
    <title>Duplicate Login attempts</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4732436" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4732436</id>
    <updated>2011-11-10T12:23:30Z</updated>
    <published>2011-11-10T12:23:04Z</published>
    <summary type="html">Hi all!
Because I found that documentation in this case is not very precise, I don't actually know what is predicted and proper CTIOS reaction for calling Cisco.CtiOs.Cil.Agent.Login() when agent is already logged in.
Can You please dispell my doubts in this matter?
Is it mandatory to call Cisco.CtiOs.Cil.Agent.Login() every time we want to log agent in (even if he is logged in)?
 
Thanks in advance.
Best regards,
Piotrek</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-11-10T12:23:04Z</dc:date>
  </entry>
  <entry>
    <title>RE: CTI Toolkit C++Phone</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4627532" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4627532</id>
    <updated>2011-10-19T20:32:09Z</updated>
    <published>2011-10-19T20:32:09Z</published>
    <summary type="html">Hi, thanks for reply.
I am using CTIOS 7.5.10. We will try to compile it on Win XP and Windows 2003 Server. I am not a C++ specialist, so any help will be usefull.</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-10-19T20:32:09Z</dc:date>
  </entry>
  <entry>
    <title>CTI Toolkit C++Phone</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4619619" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4619619</id>
    <updated>2011-10-18T14:12:26Z</updated>
    <published>2011-10-18T14:12:26Z</published>
    <summary type="html">Hi everyone,
I've serched the forum, but I didn't find any good answer for me. I'm trying to compile and run CTI Toolkit C++Phone on my Win 7 64x machine with VS 2005. Everything goes fine until linking. Linker gives me an fatal error LNK1127: library is corrupt for ..\..\Libs\Sessionlibd.lib. 
I need to compile it because our client reported an issue that when he closes excercise2.exe while debugging in VS 2005, the debugger's output writes that there is memory leak.
 
So here are the questions:
1) Can You help me to compile and run this project?
2) Maybe You have met the memory problem in excercise2.exe app and know what's the cause of it?
Thanks in advance.</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-10-18T14:12:26Z</dc:date>
  </entry>
  <entry>
    <title>RE: NetCil and NetUtil in x64 mode</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4429878" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4429878</id>
    <updated>2011-08-30T14:24:37Z</updated>
    <published>2011-08-30T14:24:37Z</published>
    <summary type="html">Hi,
thanks for reply. We are developing a server application, that will do all CtiOs operations. Agents applications will be only act as presentation layer. We have to write it in C and it must support a lot of users. We have some problems with thread memory size (we need more memory) so that is why we consider Windows Server x64 architecture. So, is it possible to run it not on Win7, but on Windows Server?
Best regards,
Piotrek</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-08-30T14:24:37Z</dc:date>
  </entry>
  <entry>
    <title>NetCil and NetUtil in x64 mode</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4403391" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=4403391</id>
    <updated>2011-08-23T13:58:50Z</updated>
    <published>2011-08-23T13:58:50Z</published>
    <summary type="html">Hi all,
is it possible for .NET NetCil and NetUtil libraries to work in x64 mode? And if so, is possible to get version of those dlls compiled for x64 architecture?
Best regards,
Piotrek</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-08-23T13:58:50Z</dc:date>
  </entry>
  <entry>
    <title>RE: An idea of client-server architecture</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3984509" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3984509</id>
    <updated>2011-06-01T09:47:37Z</updated>
    <published>2011-06-01T09:47:37Z</published>
    <summary type="html">Thanks for the reply.
I have two more questions though. On which version of CTIOS did You implement this architecture? I plan to develop it for about a 400 agents. Is there really a hardware issue to solve for such a number of users?
Thanks in advance.
Best regards,
Piotr Zieli¿ski</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-06-01T09:47:37Z</dc:date>
  </entry>
  <entry>
    <title>An idea of client-server architecture</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3939584" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3939584</id>
    <updated>2011-05-25T14:46:00Z</updated>
    <published>2011-05-25T14:46:00Z</published>
    <summary type="html">Hi all!
I want to create an agent application connected to server application. The idea is that agent application will not have CTI OS layer and will not have any references to NetCil.dll or NetUtil.dll. It will connect to server, which will manage all agent's sessions and actions. 
So, if user of my agent application will login, my client app will send to my server app (via, for example, Windows Communication Foundation) info to create and login agent. All session and CTI OS specific information will be stored in server app and client app will act only as the presentation layer.
 
My question is: is there any thing I have to watch out for? Are there any restriction for this kind of architecture?
 
I searched for some info and on this page:
[url=http://www.cisco.com/en/US/prod/collateral/voicesw/custcosw/ps5693/ps14/data_sheet_c78-487190.html]http://www.cisco.com/en/US/prod/collateral/voicesw/custcosw/ps5693/ps14/data_sheet_c78-487190.html[/url]
I have found some text about it:
 
Thin-client and browser-based applications that do not require Cisco software on the desktop can easily be developed and deployed in this configuration. With all ACD-specific logic residing at the server level within the CTI Toolkit, Cisco next-generation server integration also eliminates the need for CTI applications to account for switch-specific behavior.
 
So, as far as I'm concerned, it is possible to create a client-server architecture freely. But I must be sure :).
Best regards,
Piotrek</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-05-25T14:46:00Z</dc:date>
  </entry>
  <entry>
    <title>A problem with CTIOS Toolkit</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3901714" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3901714</id>
    <updated>2011-05-18T14:59:39Z</updated>
    <published>2011-05-18T14:59:39Z</published>
    <summary type="html">Hi all!
I have an issue with CTIOS Toolkit 7.5. Once a day, in random conditions, two agents log in. The first agent logs in correctly and his statistics are correctly shown in supervisor application. The second agent logs in, can make/answer calls, change his state and so on, but supervisor sees him as logged out.
I checked server logs and discovered this part:
 

09:01:47:941
CTIOS1-ctios Trace: ,--&gt; RCV CLIENT[00110]: []:REQ: eIdentifyClientRequest(
               
 .2800dotNET_Sess(31914638)_EvtThd(4) ) 
09:01:47:941
CTIOS1-ctios Trace: ClientMgr[1]::AddToClientIDMap[1776], Found Duplicate
Client ID:
               
 .2800dotNET_Sess(31914638)_EvtThd(4), PreviousClient[96, 0x454ef80],
               
 NewClient[110, 0x45b69e8] 
09:01:47:941
CTIOS1-ctios Trace: ClientMgr[1]::AddToClientIDMap[ThreadId:1776], Client
objects in the map were
               
 NOT the same object, ClientID[.2800dotNET_Sess(31914638)_EvtThd(4)],
               
 PreviousClient[96, 0x0454EF80], NewClient[110, 0x045B69E8]. 
09:01:47:941
CTIOS1-ctios Trace: XXX RCV CLIENT[.2800dotNET_Sess(31914638)_EvtThd(4)]:
eOnConnectionClosed 
09:01:47:941
CTIOS1-ctios Trace: ClientMgr[1]::OnConnectionClosed,
               
 Client[0x0454EF80][.2800dotNET_Sess(31914638)_EvtThd(4)] 
09:01:47:941
CTIOS1-ctios Trace: &lt;-- SND CLIENT[.2800dotNET_Sess(31914638)_EvtThd(4)]:
[]:EVT:
               
 eIdentifyClientConf, EnablementMask(0x0) 
09:01:47:941
CTIOS1-ctios Trace:
Client[.2800dotNET_Sess(31914638)_EvtThd(4)]::HandleReadHeaderComplete, READ 0
               
 BYTES: Requested(2), Closing Connection 
09:01:47:941
CTIOS1-ctios Trace: XXX RCV CLIENT[.2800dotNET_Sess(31914638)_EvtThd(4)]:
eOnConnectionClosed 
09:01:47:941
CTIOS1-ctios Trace: ClientMgr[1]::OnConnectionClosed,
               
 Client[0x045B69E8][.2800dotNET_Sess(31914638)_EvtThd(4)]
 
In visual studio, when debugging the toolkit, I discovered threads running and ending with names similar to this one: 
dotNET_Sess(31914638)_EvtThd(4)
When I pass wrong host A and host B address or take the ethernet cable out while running the application, this thread is not running.
For me, it looks like two agents try to log in with the same session identifier, but I'm not sure.
I must say, that I have no idea of what is hapening or how to fix this issue, so all tips are welcome.
Thanks in advance,
Piotrek</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-05-18T14:59:39Z</dc:date>
  </entry>
  <entry>
    <title>RE: Supervisor Desktop: Filter data based on Agent State</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3353547" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3353547</id>
    <updated>2011-03-29T19:26:12Z</updated>
    <published>2011-03-29T19:26:12Z</published>
    <summary type="html">[quote]Hi,
I have build supervisor desktop application using the ctiosdatagrid helper class.
I
am displaying the agent details using agentselectgrid. I would like to
filter these details now . like i would like to display agents that are
either in talking state or hold state.
How will i be able to filter the data based on his agent state.[/quote]
 
Hi,
I've faced with this problem some time ago and the best solution I came up with is to... simply write my own CtiOsDataGrid, based on C# DataGridView control. Writing it in separate dll project is not complicated (especially if You have CtiOs Toolkit samples from Cisco), but DataGridViewControl gives You much more functionality, for example DataGridViewRow.Hide() method, which is solution to Your (and some time ago also my) problem. 
I think You really should concider this way to solve the problem, because if You will have some more functionalities to implement based on CtiOsDataGrid (I did have), then it's really good control to operate with.
Best regards,
Piotr Zielinski</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-03-29T19:26:12Z</dc:date>
  </entry>
  <entry>
    <title>Outbound or inbound call?</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3346732" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3346732</id>
    <updated>2011-03-29T12:49:13Z</updated>
    <published>2011-03-29T12:23:13Z</published>
    <summary type="html">Hi!
I have an agent, who gets a call from ctios. I have to decide if the call is outbound, inbound, agent inside or reservation call. I tried to recognize the type of call by CallType received from OnCallBegin event, but the problem is as follows:
when reservation call begins, I have CallType = 2.
when inbound call begins, I also have CallType = 2.
when agent inside call begins, I have CallType = 6 (as far as I'm concerned, it should be 10).
Do You have some idea how to differ those calls?
Best Regards,
Piotr Zielinski
 
EDIT: I've made several tests and I have some results:
In OnCallEstablished event, when the call is answered, the callType is as follows:
Inbound - 2,
Agent Inside - 6,
after clicking Accept button in Outbound - 32 (??)
Oubound reservation call - 2.
I must admit, that my mind is too small for this. ;)</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-03-29T12:23:13Z</dc:date>
  </entry>
  <entry>
    <title>RE: How toget Agent statestics from argument on eOnNewAgentStatisticsEvent</title>
    <link rel="alternate" href="http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3041275" />
    <author>
      <name>Piotr Zielinski</name>
    </author>
    <id>http://developer.cisco.com/c/message_boards/find_message?p_l_id=&amp;messageId=3041275</id>
    <updated>2011-02-10T12:03:44Z</updated>
    <published>2011-02-10T12:03:44Z</published>
    <summary type="html">Hi,
In Arguments array received with an eOnNewAgentStatisticsEvent You have a sub-array named Statistics. In Statistics array, there is AvailTimeToday value. So, you have to do following:

Arguments statArgs = new Arguments();
if (evArgs.GetValueArray(Enum_CTIOS.CTIOS_STATISTICS, out statArgs))
{
     int availTime = 0;
     if (statArgs.GetValueInt(Enum_CTIOS.CTIOS_AVAILTIMETODAY, out availTime))
     {
          //here you have taken out the value and You can do sth with it.
     }
}

Best regards,
Piotr Zieli¿ski</summary>
    <dc:creator>Piotr Zielinski</dc:creator>
    <dc:date>2011-02-10T12:03:44Z</dc:date>
  </entry>
</feed>

