Difference between revisions of "Bxp Click to Dial integration with 3CX"
From All n One's bxp software Wixi
Philip Lacey (talk | contribs) (Created page with "= Overview = The challenge was to allow a button press on a bxp script to cause an automated dial to happen. This would lead to Preview and Progressive Dialler functional...") |
Philip Lacey (talk | contribs) |
||
| Line 73: | Line 73: | ||
= Sample network setup = | = Sample network setup = | ||
| + | |||
| + | |||
| + | [[File:Clicktodial_001.png]] | ||
The network configuration would look something similar to: | The network configuration would look something similar to: | ||
| − | |||
| − | # Agent logged in and properly set up on bxp, presses the “Make Call” button | + | # Agent logged in and properly set up on bxp, presses the “Make Call” button. That request is passed to bxp to fulfil |
| − | |||
# bxp posts a request to the 3CX phone system | # bxp posts a request to the 3CX phone system | ||
# The 3CX phone system calls the agent requested | # The 3CX phone system calls the agent requested | ||
# The 3CX phone system calls the customer | # The 3CX phone system calls the customer | ||
| + | |||
| Line 102: | Line 104: | ||
Edit the user, but now there is a new section which allows the 3CX details to be added. | Edit the user, but now there is a new section which allows the 3CX details to be added. | ||
| + | |||
| + | [[File:Clicktodial_002.png]] | ||
| + | |||
Primary VoIP Details | Primary VoIP Details | ||
Revision as of 14:22, 10 September 2015
1 Overview
The challenge was to allow a button press on a bxp script to cause an automated dial to happen.
This would lead to Preview and Progressive Dialler functionality to be built into bxp if the agent had access to a 3CX switch at their current location.
As the functionality allows for different agents to be on different sites, using different phone technologies, it means multisite use of outbound contact can be managed through bxp, without dependence on any one form of phone technology or one phone switch.
2 What is a Dialler?
A good description is available here http://www.callcentrehelper.com/wiki/Types_of_diallers
2.1 Preview
Once an agent has indicated that they are ready for a call, information about the call is presented to them. The number is then automatically dialled after a pre-defined period; the agent is given time to preview the customer details before the call is launched.
Preview dialling is used most often in campaigns where each customer case is complex – for example collection of late debt where the agent needs to be aware of a complex case history before making the call.
bxp: Using the “Outbound Contact” or “Case and Form Management” modules, “Make an Outbound Contact” or “Process a Case” respectively indicate that the agent is ready to process a call.
2.2 Progressive
Progressive dialling offers similar productivity to predictive dialling whilst removing the risk of abandoned/silent calls
Once an agent has indicated that they are ready for a call, information about the call is presented to them, and the number is then dialled immediately. Call progress is monitored by the dialler technology.
Calls that do not result in ‘ringing’ are automatically and immediately disconnected, whilst ‘no answers’ are disconnected after a pre-defined number of seconds. Software call control minimises agent involvement in the dialling process and improves call-handling efficiency.
Progressive dialling is most often used in campaigns addressed to current customers where the objective is to renew or up-sell a product or service.
bxp: Using JavaScript in the appropriate outbound activity campaign, when the record is displayed on screen (in JavaScript, the onLoad even), the outbound call functionality is triggered automatically.
2.3 Predictive
Predictive dialling is the most productive form of dialling automation. A predictive dialler launches calls at a rate such that the system connects to ‘live’ callers as soon as an agent completes the previous transaction.
The dialling rate for each campaign is controlled by a pacing algorithm, which automatically monitors activity, and calculates when the next contact(s) should be dialled. The dialling rate is automatically adjusted to maintain a contact rate that is synchronised with operator availability.
However, it should be recognised that predictive dialling inevitably results in a small percentage of ‘abandoned calls’ - customers may receive calls when no agents are actually available. This area is highly regulated; you should be familiar with the current rules and ensure that your chosen dialler supports conformance.
Predictive dialling is most effective in campaigns that are fairly straightforward such as commodity product sales.
2.4 Power
Power dialling (or power dialler) is probably the dialling term that causes most confusion. Depending on who you talk to, power dialler can be used as an innocent catch-all term to cover all forms of automated dialling; but it can also apply to specific technology originally introduced in the late 1980s that simply makes large numbers of calls with little or no control.
3 Sample network setup
The network configuration would look something similar to:
- Agent logged in and properly set up on bxp, presses the “Make Call” button. That request is passed to bxp to fulfil
- bxp posts a request to the 3CX phone system
- The 3CX phone system calls the agent requested
- The 3CX phone system calls the customer
3.1 Notes
All bxp requests will come our public addresses X and X. This IP will have to be allowed permission to make requests of the 3CX. The port on which bxp will make the request can be specified on a user by user basis.
Outbound dialling rules will be adhered to, so stripping digits for outbound dialling codes can also be included in the config set. The function in bxp simply is passing the number to be dialled to the phone system along with the agent to send it to.
4 Sample bxp setup
4.1 Add the VoIP server configurations to the user
Edit the user, but now there is a new section which allows the 3CX details to be added.
Primary VoIP Details
- Phone Server Technology
- 3CX – This is currently the only option but other options such as Skype or other phone providers will follow (primarily on demand)
- The external IP address of the phone server, where a request can be posted to
- The extension of the user
- The 3CX MyPhone PIN of the user
4.2 Add the JavaScript to enable the use of the 3CX
The following can be added to the Introduction or the “Dial Out” Instructions
<script type='text/javascript' language='javascript' src='../../../library/javascript/fn_javascript_3cx.js'></script>
<input type='button' name='btnPBX_X' id='btnPBX_X' class='Master_BigRed_Button' style='width:500px;' value='Call Number' onClick=fn_3CX_MakeCall(document.getElementById('strCDA_41_field_2_5').value) />
<input type='text' name='strVOIP_Result' id='strVOIP_Result' value='' />
The library call in the script tags, adds the formatting of the 3CX query details.
- The input button is formatted to be big and red and have the title “Call Number”.
- The remainder of the button, states which field to make the phone call on.
The results of the function can be optionally displayed in the strVOIP_Result text box for troubleshooting purposes.
4.3 Customise the JavaScript to deliver the required functions
The primary function of the page is the fn_3CX_MakeCall function. Passing any number to this function, is what will be dialled.
In the background, if VoIP details are available for the user, they are placed in hidden fields in the source of the page to remove the need to add them to all campaigns.
The following are added dynamically when available.
<input type="hidden" name="strClient_VOIP_BEProtocol" id="strClient_VOIP_BEProtocol" value="https://" />
<input type="hidden" name="strClient_VOIP_BESystem" id="strClient_VOIP_BESystem" value="ww3.allnone.ie" />
<input type="hidden" name="strClient_VOIP_BEClient" id="strClient_VOIP_BEClient" value="client_demo" />
<input type="hidden" name="strClient_VOIP_ServerIP" id="strClient_VOIP_ServerIP" value="123.123.123.123" />
<input type="hidden" name="strClient_VOIP_ServerPort" id="strClient_VOIP_ServerPort" value="5000" />
<input type="hidden" name="strClient_VOIP_Extension" id="strClient_VOIP_Extension" value="1100" />
<input type="hidden" name="strClient_VOIP_PIN" id="strClient_VOIP_PIN" value="1111" />

