mi_json Module

Stephane Alnet

Edited by

Stephane Alnet

Revision History
Revision $Rev$$Date$

Table of Contents

1. Admin Guide
1.1. Overview
1.2. Dependencies
1.2.1. External Libraries or Applications
1.2.2. OpenSIPS Modules
1.3. Exported Parameters
1.3.1. mi_json_root(string)
1.4. Exported Functions
1.5. Known issues
1.6. Examples

List of Examples

1.1. Set mi_json_root parameter
1.2. JSON request
1.3. JSON request

Chapter 1. Admin Guide

1.1. Overview

This module implements a JSON server that handles GET requests and generates JSON responses.

1.2. Dependencies

1.2.1. External Libraries or Applications

None

1.2.2. OpenSIPS Modules

The following modules must be loaded before this module:

  • httpd module.

1.3. Exported Parameters

1.3.1. mi_json_root(string)

Specifies the root path for JSON requests: http://[opensips_IP]:[opensips_httpd_port]/[mi_json_root]

The default value is "json".

Example 1.1. Set mi_json_root parameter

...
modparam("mi_json", "mi_json_root", "opensips_mi_json")
...

1.4. Exported Functions

No function exported to be used from configuration file.

1.5. Known issues

Commands with large responses (like ul_dump) will fail if the configured size of the httpd buffer is to small (or if there isn't enough pkg memory configured).

Future realeases of the httpd and mi_json modules will address this issue.

1.6. Examples

This is an example showing the JSON format for the “get_statistics net: uri:” MI command. Notice how the paramaters are comma-separated then URI-encoded.

Example 1.2. JSON request


GET /json/get_statistics?params=net%3A%2Curi%3A HTTP/1.1
Accept: application/json
Host: example.net

HTTP/1.1 200 OK
Content-Length: 49
Content-Type: application/json
Date: Fri, 01 Nov 2013 12:00:00 GMT

["net:waiting_udp = 0", "net:waiting_tcp = 0", "uri:positive checks = 0", "uri:negative_checks = 0"]


Here is another example showing the JSON format for the “ps” MI command.

Example 1.3. JSON request


GET /json/ps HTTP/1.1
Accept: application/json
Host: example.net

HTTP/1.1 200 OK
Content-Length: 428
Content-Type: application/json
Date: Fri, 01 Nov 2013 12:00:00 GMT

[{"name":"Process", "value":null, "attributes":{"ID": "0", "PID": "7400", "Type": "stand-alone SIP receiver udp:127.0.0.1:5060"}}, {"name":"Process", "value":null, "attributes":{"ID": "1", "PID": "7402", "Type": "HTTPD INADDR_ANY:8888"}}, {"name":"Process", "value":null, "attributes":{"ID": "2", "PID": "7403", "Type": "time_keeper"}}, {"name":"Process", "value":null, "attributes":{"ID": "3", "PID": "7404", "Type": "timer"}}]