• Abdeltif Nouqrat
  • 0 Points
  • Member since 2017

  • Chatter
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
  • 5
I have written a call center that works in Salesforce Classic and it does not use apex. I understand that some function calls are different between Classic and Lightning, but aside from that kind of difference, does a Lightning call center have to be in apex or not? Because, of course, if it doesn't have to use apex, it would be a lot easier for me to modify my call center to work in Lightning.
Hello,  I am working on implementing OpenCTI in Salesforce lighting , but problem getting the correct User Experience Context. When opening VF as softPhone in LEX it's returning $User.UITheme = "Theme3" although same page opened from tab returns "Theme4d".

Is there any way we can use same VF in classic and LEX or we have to create two separate call center and VF pages.

Below are my sample Call center definition and VF file along with SoftPhone result,
    <section sortOrder="0" name="reqGeneralInfo" label="General Information">
        <item sortOrder="0" name="reqInternalName" label="InternalName">OpenCTI</item>
        <item sortOrder="1" name="reqDisplayName" label="Display Name">OpenCTI</item>
        <item sortOrder="2" name="reqAdapterUrl" label="CTI Adapter URL">/apex/CTI_light</item>
        <item sortOrder="3" name="reqUseApi" label="Use CTI API">true</item>
        <item sortOrder="4" name="reqSoftphoneHeight" label="Softphone Height">530</item>
        <item sortOrder="5" name="reqSoftphoneWidth" label="Softphone Width">205</item>
        <item sortOrder="6" name="reqSalesforceCompatibilityMode" label="Salesforce Compatibility Mode">Classic_and_Lightning</item>
    <section sortOrder="1" name="reqDialingOptions" label="Dialing Options">
        <item sortOrder="0" name="reqOutsidePrefix" label="Outside Prefix">9</item>
        <item sortOrder="1" name="reqLongDistPrefix" label="Long Distance Prefix">1</item>
        <item sortOrder="2" name="reqInternationalPrefix" label="International Prefix">01</item>


<apex:page showHeader="false" cache="false" id="CTI_light">

    <!-- panel to be displayed only in classic mode -->
    <apex:outputPanel rendered="{! $User.UITheme == 'Theme3' }">
        <apex:outputText value="This is Salesforce Classic."/>
        <apex:includeScript value="/support/api/38.0/interaction.js"/>       
    <!-- panel to be displayed only in lighting -->
    <apex:outputPanel rendered="{! $User.UITheme == 'Theme4d' }">
        <apex:outputText value="This is Lightning Experience."/>
        <apex:includeScript value="/support/api/38.0/lightning/opencti_min.js"/>
User-added image
My org presently uses OpenCTI and a Call Center.  According to the release notes, Call Centers are not supported in Lightning, and indeed, the Call Center functionality disappears from Setup when Lightning is enabled.  This makes sense, because it is unclear how or where an OpenCTI softphone would appear in the Lighting UI.

But, what is the plan for supporting soft phones / OpenCTI / Call Centers and Lightning in the same org?

It looks like we either give up our softphone functionality or enable Lightning, but not both...thats an upgrade blocker!

How can I get the call center settings defined by the user (in Name>Setup>Customize>Call Center>Call Centers ) in my apex class.