cancel
Showing results for 
Search instead for 
Did you mean: 

SAP CRM Interaction Center - replace dial pad with click-to-call

sascha_roehm
Explorer
0 Kudos

Dear all,

I am working on a solution to replace dial pad in SAP CRM Interaction Center with click-to-call. Clicking the phone number should no longer open the dial pad, but instead directly use system default app for phone calls.

So far, I have two different approaches which both work, but I am not really happy with neither. Maybe there is a more 'standard' way to achieve this or somebody has a good idea.

My first approach was to replace some code in function onCommunicationLinkClicked of file crmcmp_ic_frame_scripts.js (component CRMCMP_IC_FRAME).

Old code:

if ( simple_cti == true )<br>  contextAreaWnd.mcm_show_dialpad( channel_address, false, simple_cti );<br>else<br>  contextAreaWnd.mcm_show_dialpad( channel_address, true, false );<br>

Replaced with:

var telephone_number = 'tel:' + channel_address;<br>window.open(telephone_number).focus();<br>

This will replace opening of dial pad by using default application for protocol TEL.

I don't like this approach because adjusting the javascript files often causes problems (e.g. during upgrades).

Second approach for component ICCMP_BP_DETAIL/BuPaCommContact:

  • implement P-getter method for context node CONTACTADDRESS attribute STRUCT.TELEPHONEMOB
  • set it to event link
  • set on click event
CASE iv_property.
    WHEN if_bsp_wd_model_setter_getter=>fp_fieldtype.
      rv_value = cl_bsp_dlc_view_descriptor=>field_type_event_link.
    WHEN if_bsp_wd_model_setter_getter=>fp_onclick.
      rv_value = 'CLICK_TO_CALL'.
  ENDCASE.
  • create event handler in implementation class for new on click event
method EH_ONCLICK_TO_CALL.
  CONCATENATE gv_click_to_call_js 'thtmlbSuppressOnLoadKeyboardFocus(); window.open("' gv_click_to_call_js '", ' sy-timlo ')' INTO gv_click_to_call_js.
endmethod.
  • create new global attribute (gv_click_to_call_js) in impl class
  • create new method (get_click_to_call_number_js) in impl class to return value of new global attribute in .htm page
  • modify BuPaCommContact.htm
<script  type="text/javascript" language="javascript">
<%= controller->get_click_to_call_number_js( ). %>
</script><br>

Thinking about doing the second approach for every field/attribute where a phone number is displayed is cumbersome.

Can any of you think of a better solution or an idea to replace the dial pad system wide with click-to-call?

Looking forward to your ideas.

Best regards

Sascha

View Entire Topic
anthonyx_uliano
Participant
0 Kudos

Hi Sascha, we have been able to interact with the layer of events in the Interaction Center - Web Client to enable custom triggers for things like click-to-dial. We wanted to overcome the limitation of ICI/BCB server-based interfaces and instead drive more modern client-side CCaaS integrations. Our DaVinci platform provides these services as part of our platform. This allows immediate integration of platforms like Genesys Cloud CX, Twilio, Amazon Connect, Five9, etc. Let me know if you'd like further details.

Thanks, Anthony

sascha_roehm
Explorer

Hi Anthony, thanks for the quick response, but we're not looking for a third party solution. As mentionend, I was able to implement click-to-call functionality using two differenct approaches in our interaction center. I just looking for a 'better', more standard way of doing things.

Best regards, Sascha

anthonyx_uliano
Participant
0 Kudos

Hi Sascha, there are much better ways of implementing click-to-dial and other softphone functionality, but it's too complicated to share the details here. We needed to replace the entire CTI toolbar in ICWC, so we needed to go beyond solving for just one use case. Are you looking to expand your use cases? If not, I would recommend that you stay with your approach.

Good luck, Anthony

sascha_roehm
Explorer
0 Kudos

Hi Anthony, right now, we are having full CTI integration but that's no longer needed/wanted due to budget reasons. We really just need to replace the hyperlink of the phone numbers in format 'tel:123456789', so on clicking it will open Windows default app for this protocol.

In the meantime, I have decided not to use my second approach, because it would mean to do it on every field with a phone number. I am sticking now with my first approach, even if it means changing standard javascript file. I don't like it, but at the moment I have no other option. Still hoping somebody here will come up with a better idea.

Regards, Sascha