Using the Phone's App Development CGI
Desk Phone API features described in this section are deprecated and supported only on the following models: D40, d45, d50, d60, d62, d65, d70
The Sangoma Phone's development tools are available via a CGI that can be accessed from any desktop computer after you enable the phone's App Development mode. This guide describes how to access the app development CGI and use the tools via a commandline interface.
Â
CGI Access
The Phone App web service is available from http:// phone-ip-address /cgi-bin/app_dev.cgi. The web service expects a mode parameter with additional parameters as appropriate to the mode.
Phone App Web Service Modes
mode=install
Action: Installs an application on the phone.
Required parameters: An uploaded zip file containing the application.
Optional parameters: name: The name of the app contained in the uploaded file. If the name does not match the name in the app.json file, the upload will be rejected.
Example:Â
curl --anyauth --form mode=install --form file=@/tmp/myapp.zip http://PHONE_IP/cgi-bin/app_dev.cgi --user admin:789
mode=uninstall
Action: Uninstalls an application from the phone.
Required parameters: appname: The name of the app to uninstall. This is the name from the app's app.json file.
Example:Â
curl --anyauth --form mode=uninstall --form appname=myapp http://PHONE_IP/cgi-bin/app_dev.cgi --user admin:789
mode=start, mode=show, mode=shutdown
Action: start will start up an app in the background, if it isn't already running. show will start an app if necessary, and show the app on the phone's screen in full-screen mode. shutdown will cause an app to shut down.
Required parameters: appname: The name of the app to start/show/shut down. This must match the value of the "name" attribute in app.json.
Example:Â
curl --anyauth --form mode=show --form appname=myapp --user admin:789 http://PHONE_IP/cgi-bin/app_dev.cgi
mode=log
Action: Streams logging output from the app. This includes print() and println() output from the app iteself and certain error messages generated by the app engine related to the specified app.
Required parameters:Â appname: The name of the app.
Optional parameters:Â prebuffer: Some web browsers will wait until a certain amount of data is buffered up before attempting to display anything. Specifying prebuffer=1024 will cause 1024 spaces, followed by a newline, to be printed out before sending log data. This is normally not needed when using curl or an HTTP library, but can be useful when pointing a browser at this mode.
Example:Â
XML responses
In addition, all modes return a short XML document describing the results of the request.
A normal response looks like this:Â
Â
For mode=install, a successful install also includes Â
Â
Error Codes
Errors are indicated by a status other than 1. Error codes include the following:
-100 Â error with upload
-101 Â problem with app.json
-102 Â invalid app name
-103 Â app.json requests privileges that aren't allowed
-104, -105, -108 Â internal errors
-106 Â missing or invalid cgi parameterÂ
-108 Â internal errorÂ
-109 Â unauthorized (app development mode not turned on)Â
-110 Â insufficient space for installÂ
-111 Â uninstall errorÂ
Â
See Also:Â