The Send Call File Service sends a media file(s) to the user. The user needs to be logged in and authorized for each file requested. All files are retrieved using a Download Token. If the file is an unmixed .recd, mixing must be requested before the file(s) can be sent. See the Encode recd file output format in this Service for details.
All requests are treated the same way, as there is no way to differentiate between a request received from a media player or from a browser, due to the wide spectrum of embedded and standalone players used (for example: QuickTime, Windows Media Player, Advanced Player).
Service Pre-requisites
The service requires:
- The
JSESSIONIDobtained from the Log In Service. - A token from the Download Token Service :
- Provides an authorization mechanism
- The token contains data associated with the search criteria
Service Invocation
An HTTP POST method must be addressed to the following URL:
http://<server>/callrec/sendcallfile.mp3
Input Parameters
The service expects to receive:
- The download token, as follows:
token=<token> - The previously obtained
JSESSIONIDto identify the user in the form of:- A cookie
- An append to the URL immediately after the servlet name, as follows:
jsessionid=<sessionid>
Parameters for Download Token Service
When requesting a token from the Download Token Service, search criteria must be specified. The search criteria are dependent on the service that will be invoked afterwards. In the case of the Send Call File Service, the relevant search parameters are:
id_call[]- An array of couple IDssid- Couple SID. If specified,id_call[]is ignoredtype- requested media type.1- call,16- video. This determines the permissions requiredaction- specifies the intended action. This determines the permissions required:
Output
The response format depends on the combination of parameters passed to the servlet.
- Audio stream
An audio stream is returned under the following conditions:
sidis specified, orcall_id[]with a single valuetype = 1actionis not specified or notdownload
- Video stream
A video stream is returned under the following conditions:
sidis specified, orcall_id[]with a single valuetype = 16actionis not specified or notdownload
- Encode .recd file
Encodes and mixes a
.recdfile with the corresponding calls and returns a new download token after the encoding is finished.sidis specified, orcall_id[]with a single valuetype = 16actionisprepare
- Single media file
A single media file is returned under these conditions:
sidorcall_id[]is specifiedactionisdownload- The media file is returned as an attachment in the format it has been recorded in
- Multiple media files
Multiple media files are returned under these conditions:
call_id[]contains multiple couple IDsactionisdownload- The files are returned in a .zip archive with an enclosed text file describing its contents
Additionally, the Service will return an HTTP status, such as:
200:if the operation was successful403:if the token was non-existent or already used302:if the session expired
Example for Requesting a Media File with the Send Call File Service
Now that we have the download token, the Send Call File Service can be called:
With Firefox:
Enter the following URL into the browser to invoke the Send Call File Service (substituting in the download token obtained):
http://<server>/callrec/sendcallfile.mp3;jsessionid=< jsessionid>?token=<download_token>
The server will respond by sending a zip containing the requested media files, triggering the browser to display the file open/save dialog.
With cURL:
Invoke the Send Call Service with the following request:
curl -v -b cookies.txt -c cookies.txt -X POST -d "token=<download_token>" \ -H"Content-Type: application/x-www-form-urlencoded" -H"Accept: application/octet-stream" \ -o file.zip http://<server>/callrec/sendcallfile.mp3
The server will respond with a zip containing the requested media files:
* About to connect() to myserver port 80 (#0)
* Trying 10.0.0.1... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0connected
* Connected to myserver (10.0.0.1) port 80 (#0)
> POST /callrec/sendcallfile.mp3 HTTP/1.1
> User-Agent: curl/7.21.0 (x86_64-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: myserver
> Cookie: JSESSIONID=8A355EC61B5D804447704B8CB64DF535
> Content-Type: application/x-www-form-urlencoded
> Accept: application/octet-stream
> Content-Length: 26
> } [data not shown]
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Disposition: attachment; filename=calldata.zip
< Content-Type: application/zip;
< Transfer-Encoding: chunked
< Date: Fri, 20 May 2011 13:55:18 GMT
< { [data not shown]
100 40521 0 40521 0 26 440k 289 --:--:-- --:--:-- --:--:-- 454k
* Connection #0 to host myserver left intact
* Closing connection #0
See the description of the Send Call File Service for more details about valid search parameters.