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.
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, https://demo.streamco.org/ice/.
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/.