ICE (от Internet Communications Engine) - is an object-oriented middleware, which uses mechanism of Remote procedure call.
Smartswitch uses ICE to provide API to its functionality.

This API allows to invoke functionality of Smartswitch from your applications using Remote procedure call.
Your applications just invoke various functions in a native way, just as they invoke functions from standard libraries.
All the middle-ware implementation of Remote procedure call is hidden from API user.
Therefore, developer which uses API and doesn't have to understand the details of underlying protocol.

Third-party applications could be (but not limited to):
  • web-sites
  • call-shop applications
  • billing applications
  • call-center applications
  • etc
ICE contains:
  • various supported programming languages to develop on
  • integrated means of data transfer protection based on SSL
  • developer-friendly object-oriented API in generated programming interfaces
  • interface description language Slice, which allows to easily add new interfaces and change old ones
  • automated system of generation of header files and object modules according to chosen development programming language and basing on uniform interface description done by Slice language
  • strict type system, which makes source code in interface descriptions, which are done by Slice, always synchronized with source code on server side and, in case if configured correctly, client-side.
Alailable languages to develop using ICE API:
  • C++
  • C#
  • Java
  • PHP
  • Python
  • Ruby

Step-by-step instruction on development using ICE API is located in section Using ICE API.


In each Smartswitch installation ICE API of matching version is localed on URL https://name.of.your.server/ice/.
For example,
After software is updated, this location automatically is updated with actual files, which match the Smartswitch version.

Reference documents on functions of actual API version is located on URL https://name.of.your.server/ice/html/ and is generated automatically when new Smartswitch version is built.
Therefore, reference documents are always synchronized with published Smartswitch version.

Inside .ice files which are located in root directory there is located interface descriptions by Slice language.
You can generate from them header files and object modules to link for your language by yourself, in case if you have ICE package installed on your host.
Or you can use already generated interfaces which are located in folders which match to names of programming languages.
Например, https://имя.вашего.сервера/ice/cpp/, https://имя.вашего.сервера/ice/php/ итп.
Generated interfaces are generated automatically when Smartswitch software is built, therefore they are always synchronized with installed Smartswitch version.

Also there are some examples, they are located on URL https://name.of.your.servcer/ice/examples/.

Русский перевод

Also available in: PDF HTML TXT