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.confsorcery.confextconfig.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.conffor realtime configuration engine[mongodb] uri=mongodb://mongodb.local/asterisk ; location of database -
sorcery.confspecifies 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.confspecifies 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.confspecifies 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.confspecifies 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