The ast_mongo
project provides the following plugins for Asterisk;
- Realtime configuration engine with MongoDB,
- CDR backend for MongoDB,
- CEL backend for MongoDB (contributed by viktike, thanks viktike),
- and a test bench with MongoDB replica set based on Docker technology.
Plugin name | Realtime | CDR | CEL | Source code | Config file(s) |
---|---|---|---|---|---|
res_mongodb.so |
* | * | * | res_mongodb.c |
|
res_config_mongodb.so |
* | res_config_mongodb.c |
res_config_mongodb.conf sorcery.conf extconfig.conf |
||
cdr_mongodb.so |
* | cdr_mongodb.c |
cdr_mongodb.conf |
||
cel_mongodb.so |
* | cel_mongodb.c |
cel_mongodb.conf |
The plugins are provided as source code patches to Asterisk. See patches in detail.
The test bench based on Docker technology for these plugins is also provided. You can examine how it works on your desktop simply. See test bench in detail.
-
URI to database
mongodb://mongodb.local/[name of database]
- see Connection String URI Format as well
-
Database structure
Name of DB | Name of Collection | Comment |
---|---|---|
asterisk |
ps_endpoints |
as realtime resources |
asterisk |
ps_auths |
as realtime resources |
asterisk |
ps_aors |
as realtime resources |
asterisk |
ast_config |
as non-realtime resources |
cdr |
cdr |
|
cel |
cel |
-
res_config_mongodb.conf
for realtime configuration engine[mongodb] uri=mongodb://mongodb.local/asterisk ; location of database
-
sorcery.conf
specifies map from asterisk's resources to database's collections.[res_pjsip] endpoint=realtime,ps_endpoints ; map endpoint to ps_endpoints source auth=realtime,ps_auths ; map auth to ps_auths source aor=realtime,ps_aors ; map aor to ps_aors source
-
extconfig.conf
specifies database for database's collections mapped above.[settings] ; specify the ps_endpoints source is in asterisk database provided by ast_mongo plugin ; i.e. endpoint => ps_endpoints => asterisk database of mongodb plugin ps_endpoints => mongodb,asterisk ps_auths => mongodb,asterisk ps_aors => mongodb,asterisk ; map extensions.conf to ast_config collection of asterisk database extensions.conf => mongodb,asterisk,ast_config pjsip.conf => mongodb,asterisk,ast_config
-
cdr_mongodb.conf
specifies the location, name and collection of database for cdr backend.[mongodb] uri=mongodb://mongodb.local/cdr ; location of database database=cdr ; name of database collection=cdr ; name of collection to record cdr data
-
cel_mongodb.conf
specifies the location, name and collection of database for cel backend.[mongodb] uri=mongodb://mongodb.local/cel ; location of database database=cel ; name of database collection=cel ; name of collection to record cel data
-
See Asterisk's official document Setting up PJSIP Realtime as well.
- The related code to Asterisk:
- GNU GENERAL PUBLIC LICENSE Version 2
- Any other resources and files:
- The MIT License (MIT)
- Copyright: (C) 2016-17, KINOSHITA minoru, viktike for cel_mongodb