cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
905
Views
0
Helpful
1
Replies

UCCX CTI : QUERY_QUEUE_STATISTICS_REQ fails with status 93 (E_CTI_INVALID_CSQ)

mcsalmon_cisco
Level 1
Level 1

Hi,

I am writing an UCCX CTI Application to query CSQ Statistics using CSQID[62].

Curently I am recieving a failure_conf with status 93

The text found in MIVR logs using Real Time Monitoring Tool is:

11420287: Jun 21 13:06:58.736 IDT %MIVR-ICD_CTI-7-UNK:OutboundMsgProcessor: got message: { FAILURE_CONF }

11420288: Jun 21 13:06:58.736 IDT %MIVR-ICD_CTI-7-UNK:OutboundMessageprocessor : sending msg : { length=-1 type=FAILURE_CONF,invokeId=19 statusCode:E_CTI_INVALID_CSD text:  to socket

I used CUIC to find all my CSQIDs and I'm sure they are correct i.e 4 ro 5 or 9.

Developer guide says: add CSQID as floating data id 62.

I used CRS_UINT to accomplish this,

addFloatField(FID_CSQ_ID, sizeof(CRS_UINT), (CRS_BYTE*)&m_csqID, CRS_FALSE);

m_csqID is constructed using CRS_UINT parameter = 4 or 5 or 9;

The size of a CRS_UINT is 4 so I'm following the DeveloperGuide saing that this is the max size for this floating data.

My application is connecting to UCCX in bridge mode.

My application is working all ready with recieving update events from call variables and with sending new data to call variable from my app to the uccx script.

UCCX version is 11.5.1.10000-61

The as-is provide sample cti code does't have the query_queue_state_req object.

Please let me know what am I missing.

Regards,

Yossi Salmon

1 Accepted Solution

Accepted Solutions

mcsalmon_cisco
Level 1
Level 1

Hi,

I solve this case

I had to convert the integer CSQID into network order

Here is the code

int var = 0;
var = htonl(m_csqID);
addFloatField(FID_CSQ_ID, sizeof(CRS_INT), (CRS_BYTE *)&var, CRS_FALSE);

View solution in original post

1 Reply 1

mcsalmon_cisco
Level 1
Level 1

Hi,

I solve this case

I had to convert the integer CSQID into network order

Here is the code

int var = 0;
var = htonl(m_csqID);
addFloatField(FID_CSQ_ID, sizeof(CRS_INT), (CRS_BYTE *)&var, CRS_FALSE);