Tester JSON - Overview
The Tester Application is one of the key run-time components which comprise the N2SVCD run-time service process. The Tester Application is responsible for executing "Test Runs" on behalf of clients. It is managed via a JSON interface.
Refer to the N2SVCD Overview for a more detailed summary of the N2SVCD components.
Clients (such as the IN Tester GUI) wishing to perform Test Management (e.g. execute/query/cancel test runs) can make their requests over a TCP Remote Procedure Call (RPC) interface. The RPC interface offered by the N2SVCD Tester Application is implemented using the JSON-RPC interface.
By default, the TesterApplication will listen on port 9009 for incoming JSON RPC Test Management requests. This port number may be changed by modifying the relevant configuration parameter as described in the N2SVCD Config - Tester.
The first 4 bytes of any RPC request or response are the message length (in bytes) as an unsigned integer in network byte order. The remainder of the request or response is a JSON structure of exactly the specified number of bytes.
JSON Request - Attributes
The JSON request structure has the following properties:
Parameter
Type
Description
jsonrpc
String
[Required] The JSON RPC version (always "2.0").
method
String
[Required] Name of the method to be invoked.
params
String
[Required] An Object containing arguments to the method.
id
String
[Required] A correlating ID to identify the request.
Note: The general JSON-RPC standard allows for multiple RPC requests on a single TCP connection. However, the JSON-RPC implemented by the N2SVCD Tester Application permits only one JSON Test Management request/response per TCP connection.
JSON Request - Example
An example JSON request could be as follows:
{
"jsonrpc" : "2.0",
"id" : 1,
"method" : "ExecuteTest",
"params" : {
"run_id" : "tr_9538",
"distribution" : {
"type" : "single"
},
"operations" : [
{
"type" : "inap.ssp_to_scp.InitialDP",
"arguments" : {
"serviceKey" : 45,
"eventTypeBCSM" : 3,
"callingPartyNumber_digits" : "414511860"
}
},
{
"type": "inap.ssp_from_scp.ReleaseCall"
},
],
"scp" : {
"dssn" : 106,
"dpc" : 4114
}
}
}
JSON Response - Attributes
The response properties are:
Attribute
Type
Description
jsonrpc
String
[Required] The JSON RPC version (always "2.0").
result
String
The Object that was returned by the invoked method (null on error).
error
String
An Error object if there was an error invoking the method (null if no error).
id
String
[Required] The correlating ID from the request.
Note: The structure of the params and result objects will vary according
to the particular method which is executed. The "result" may be a string, an
array, or an object.
The structure of the error object (when present) created by the Tester
Application is more consistent, it is always as follows:
Attribute
Type
Description
code
Integer
[Required] A numeric code denoting the nature of the error.
message
String
[Required] An arbitrary human-readable string.
JSON Response - Example (Success)
A corresponding success response is:
{
"jsonrpc" : "2.0",
"id" : "1",
"result" : "ok"
}
JSON Response - Example (Error)
A corresponding error response is as follows:
{
"jsonrpc" : "2.0",
"id" : "1"
"error" : {
"message" : "Unsupported method 'EgsecuteTest'",
"code" : 1001
},
}
Error Codes
The current list of error codes is given here. New error codes may be added at any time without notice.
Error Code
Description
1000
General Error.
1001
Unknown Method.
2000
Test Run ID not specified.
2001
Test Run ID already in use.
2002
Test Run cannot create.
2003
Test Run cannot start.
2004
Test Run ID Not Known.