cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1216
Views
0
Helpful
8
Replies

Using multibyte UTF-8 characters (e.g. korean, thai) in Finesse API method UPDATE_CALL_DATA

busubauem
Level 1
Level 1

In the release notes of UCCE 11.0(1) one of the new features is "Localizazion of Wrap Up Reasons, Call Variables, and ECC Variables".

I tried to set some korean or thai letters using UPDATE_CALL_DATA, but in Finesse Desktop and with GET request on /finesse/api/User/.../Dialogs appear only question marks instead of these korean or thal letters. Only the german umlauts äöü are displayed correctly.

Should it be possible to set and get multibyte UTF-8 characters here?

Sample:

PUT https://finesse-server/finesse/api/Dialog/16871785

<Dialog>

   <requestedAction>UPDATE_CALL_DATA</requestedAction>

   <mediaProperties>

      <callvariables>

         <CallVariable>

            <name>callVariable6</name>

            <value>aouäöü€ฬ갗</value>

         </CallVariable>

      </callvariables>

   </mediaProperties>

</Dialog>

Finesse-multibyte-utf-8.png

GET https://finesse-server/finesse/api/User/174002/Dialogs

<Dialogs>

    <Dialog>

        <associatedDialogUri></associatedDialogUri>

        <fromAddress>...</fromAddress>

        <id>16871785</id>

        <mediaProperties>

            <DNIS>342026</DNIS>

            <callType>OTHER_IN</callType>

            <callvariables>

                ...

                </CallVariable>

                <CallVariable>

                    <name>callVariable6</name>

                    <value>aouäöü€??</value>

                ...

            </callvariables>

            <dialedNumber>342026</dialedNumber>

            <outboundClassification></outboundClassification>

        </mediaProperties>

        <mediaType>Voice</mediaType>

                ...

        <state>ACTIVE</state>

        <toAddress>342026</toAddress>

        <uri>/finesse/api/Dialog/16871785</uri>

    </Dialog>

</Dialogs>

8 Replies 8

dekwan
Cisco Employee
Cisco Employee

Hi,

Please see the localization section of the administrator guide: Cisco Finesse Administration Guide Release 11.0(1)  - Getting Started [Cisco Finesse] - Cisco

According to the documentation, CallVariables are Limited to 40 bytes of UTF-8 data. If Finesse sends a set call data request that exceeds 40 bytes of data, the request fails.

Since the GET is showing the ??, the issue is not on the UI side. In order to see if it is a Finesse issue or a UCCE issue, take a look at what is being sent to the CTI and what the CTI message is returning. If Finesse sends the correct value, but the message back from CCE is wrong, it is a CCE issue. If Finesse sends the wrong value, then it is a Finesse issue. If you would like me to take a look, copy the logs from the time of the PUT to the time of the GET into a file and attach it to the thread.

Thanx,

Denise

dekwan
Cisco Employee
Cisco Employee

Hi,

Did you get a chance to take a look at the logs to see if it is a Finesse or UCCE issue?

Also, just to give you a heads up, if this is indeed a Finesse issue, since you are using the out of the box Finesse desktop, you will need to open a TAC case to get your issue resolved as this is a product issue.

Thanx,

Denise

Hi Denise

Sorry for the delay. Now I had the time to reproduce it and analyze the corresponding Finesse logs.

Here are the interesting lines.

It looks like it is either an issue in CTI server or in the decoding logic of Finesse.

1. the API_REQUEST with UPDATE_CALL_DATA on API request contains callVariable6 with "value:aouäöü€ฬ갗"

2. the MESSAGE_TO_CTI_SERVER with CTISetCallDataReq still contains the same value "callVariable6=aouäöü€ฬ갗"

3. the DECODED_MESSAGE_FROM_CTI_SERVER contains another value "callVariable6=aouäöü€??" as it also appears on Finesse Agent Desktop

Search for "*********************************" in the attached logs to find these lines. They look b bit different than posted here above.

I will see if I can also get the CTI-Server logs.

Best regards,

Matthias

Hi,

Thanks for that analysis.

As you pointed out, it looks like Finesse is sending the right thing to CCE, but the decoded message coming back in incorrect. You are correct that it is either an issue in the CTI server or the decoding logic of Finesse. Getting the CTI server logs should determine if it is a Finesse issue or not. There is a slight chance that even though the text is printed correct in #2, what Finesse is actually sending to CTI is wrong. I hope that is not the issue .

Thanx,

Denise

dekwan
Cisco Employee
Cisco Employee

Hi,

Just checking in to see if you had a chance to take a look at the CTI logs.

Thanx,

Denise

Hi Denise

Here are now the logs from CTI server, but unfortunately they don’t contain the SET_CALL_DATA_REQUEST, only the CALL_DATA_UPDATE-event and the SET_CALL_DATA_RESP.

Please note: there is a time shift of one hour between timestamps in finesse logs and timestamps in ctisvr logs.

Regards

Matthias

That is unfortunate. At least it takes out one case where Finesse is not decoding the message correctly. There is still two possibilities though, even though Finesse is logging the right thing when sending the message to CTI, it is actually sending the wrong thing or that the CTI server has an issue.

Either way, I believe that a TAC case has been opened or will be opened for this and will be resolved/debugged through those means.

Yes, in the meantime there was a TAC case opened for that.

I just had to reproduce the issue to provide logs with a higher trace level in CTI server logs.