Difference between revisions of "Integrating to a Phone System Callback Service"
From All n One's bxp software Wixi
Philip Lacey (talk | contribs) m |
Philip Lacey (talk | contribs) m |
||
| Line 78: | Line 78: | ||
Data. This is a -- escaped field data block. Literally create the data to be "Posted" to the service in whatever format / layout you need. e.g. | Data. This is a -- escaped field data block. Literally create the data to be "Posted" to the service in whatever format / layout you need. e.g. | ||
| − | <syntaxhighlight lang=" | + | <syntaxhighlight lang="text"> |
phoneNumber:"--strCDA_1_field_0_1--", | phoneNumber:"--strCDA_1_field_0_1--", | ||
previewTime:--strCDA_1_field_0_2--, | previewTime:--strCDA_1_field_0_2--, | ||
Latest revision as of 16:03, 28 April 2016
Contents
1 Overview
For newer phone systems and older systems with API integration capability, the ability to "inject" call backs into the dialling routines is not that challenging.
There are some key elements required.
This article goes through the high level setup of the elements involved.
2 Elements
3 Operation
3.1 General phone use
For inbound or outbound, the user interacts with the phone system through an interface. The interface usually belies the API.
3.2 Records are managed through bxp
There are many levels of coupling with bxp, from instant screen pop on in and out bound contact through to manual preview dialling where records must be looked up manually.
When an outcome of "Callback" or a synonym thereof is required, creation of the callback is in bxp and not in the phone system. The user must manually create the entry in the phone system. If there is an API, then bxp can inject the callback into the phone system, for the phone system to manage.
3.3 Injecting a callback
There are two primary approaches to performing the injection. Using AJAX or using bxp. AJAX is a client side approach which means that access to the phone system in not available to bxp and the call must be done inside the company firewalls. bxp making the call is a far more robust and auditable method.
4 bxp injection setup
Firstly there is a form with questions and into that form outcomes are added. An outcome to perform a callback is selected.
In that outcome you look for the section called "Instant Transfer - External System" which then presents a number of options.
- Output Options
- Content Type
- Post To URL
- Show Server Response
- On Fail - Email
- Data
For output options, normal operation will be "Server". This means no server feedback is displayed on screen. "Screen" is really useful for testing to see what WOULD have been sent to the server. "Both" is for testing. The data when using "Both" and "Server" is stored in the strCCL_X_DataBlock field. If the output option is blank this effectively disables the call.
Content Type is the format that the API is expecting to receive. There are a variety of formats available. You will need the server type from the API supplier.
"Post to URL". This is the end point that will receive the request. Usually in the format of https://123.123.123.123:456 the IP address of the server and the port number if required.
When combined with the output options above this handy option will immediately dump to screen, after the record is saved, the output of the strCCL_X_DataBlock to screen. Saves tons of time when testing.
"On Fail-Email" is for ongoing management of the solution. If for example bxp attempts to inject the callback and the server doesn't respond or for whatever reason the injection is refused, this generates a data email to all the listed email addresses receive the email so the call back can be manually injected into the system.
Data. This is a -- escaped field data block. Literally create the data to be "Posted" to the service in whatever format / layout you need. e.g.
phoneNumber:"--strCDA_1_field_0_1--",
previewTime:--strCDA_1_field_0_2--,
skillset:"--strCDA_1_field_0_3--",
retryTime:"--strCDA_1_field_0_4--",
targetAgent:"--strCDA_1_field_0_5--",
info1:"--strCDA_1_field_0_6--",
comment:"--strCDA_1_field_0_7--"
With all that filled in, you test the outcome, test it again and check and check again till the injection works fine and you're happy with all the settings.
Please remember for data protection what information you're pushing where.
5 AJAX injection setup
If is also possible to the callback from within the page itself. Add the libraries, buttons, etc into the bxp form.
i.e.
- Add a generic area to the form
- Add a button into the form with an onclick JavaScript function
- In the JavaScript on load put your function or reference the function
The function will basically be
- Construct the data using JavaScript. Creating the datablock as see above but using JavaScript.
- There will then be an AJAX post to the API end point. Here is a handy reference http://www.javascriptkit.com/dhtmltutors/ajaxgetpost2.shtml
6 Security differences between bxp and AJAX call
It is important to note the differences in the call. If bxp, then the bxp servers make the call. If AJAX then the browser and the client machine make the call.
The bxp server contact can be hardened, i.e. known IP addresses. They are however outside the organisation.
If external injection is possible you can put things like "Call Me" onto a public website and the call will allow a call back to be injected directly into the phone system. We have even done this with mobile apps where you click a button in the app... it securely chats to bxp. bxp texts the client to say we'll ring shortly, please expect the call. bxp injects the callback into the phone system, which rings the owner of the app. Seriously fun stuff!
If external access is not possible, then AJAX is the only way to go.
7 Support
All n One have a lot of experience in this area and would be delighted to help you if your project needs a hand. Please give our support team a shout on +353 1 429 4000 or email support@bxpsoftware.com and see how we can help you with your projects and ideas.
