Skip to content

MI_JSON module

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

None

The following modules must be loaded before this module:

  • httpd module.

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

The default value is “json”.

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

No function exported to be used from configuration file.

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.

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.

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.

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"}}]

doc copyrights:

Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

#NameDevScoreCommitsLines++Lines—
1.Stephane Alnet2051270238
2.Bogdan-Andrei Iancu (@bogdan-iancu)137243140
3.Razvan Crainea (@razvancrainea)11721477
4.Ionut Ionita (@ionutrazvanionita)645130
5.Liviu Chircu (@liviuchircu)642228
6.Stefan Darius (@dariusstefan)631269
7.Vlad Paiu (@vladpaiu)5394

(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)

(2) including any documentation-related commits, excluding merge commits

(3) ignoring whitespace edits, renamed files and auto-generated files

#NameCommit Activity
1.Stefan Darius (@dariusstefan)Jun 2026 - Jul 2026
2.Razvan Crainea (@razvancrainea)Dec 2013 - Jun 2026
3.Bogdan-Andrei Iancu (@bogdan-iancu)Jul 2014 - Apr 2019
4.Liviu Chircu (@liviuchircu)Jul 2014 - Jun 2018
5.Ionut Ionita (@ionutrazvanionita)May 2016 - May 2016
6.Vlad Paiu (@vladpaiu)Nov 2013 - Jan 2016
7.Stephane AlnetOct 2013 - Nov 2013

(1) including any documentation-related commits, excluding merge commits

Last edited by: Razvan Crainea (@razvancrainea), Bogdan-Andrei Iancu (@bogdan-iancu), Liviu Chircu (@liviuchircu), Stephane Alnet.

All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0