mi_json Module

Stephane Alnet

   <stephane@shimaore.net>

Edited by

Stephane Alnet

   Copyright © 2013 shimaore.net
   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_xmlrpc_ng", "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":"Proc
ess", "value":null, "attributes":{"ID": "1", "PID": "7402", "Type": "HTT
PD INADDR_ANY:8888"}}, {"name":"Process", "value":null, "attributes":{"I
D": "2", "PID": "7403", "Type": "time_keeper"}}, {"name":"Process", "val
ue":null, "attributes":{"ID": "3", "PID": "7404", "Type": "timer"}}]
