瀏覽代碼

acc_json: imported first version of README file

- future updates to docs in xml file do not require manual generation of
README file
Daniel-Constantin Mierla 7 年之前
父節點
當前提交
135df1f8c2
共有 1 個文件被更改,包括 269 次插入0 次删除
  1. 269 0
      src/modules/acc_json/README

+ 269 - 0
src/modules/acc_json/README

@@ -0,0 +1,269 @@
+ACC_JSON Module
+
+Julien Chavanton
+
+   <[email protected]>
+
+Julien Chavanton
+
+   flowroute.com
+   <[email protected]>
+
+Edited by
+
+Julien Chavanton
+
+   flowroute.com
+   <[email protected]>
+
+   Copyright © 2018 Flowroute.com
+     __________________________________________________________________
+
+   Table of Contents
+
+   1. Admin Guide
+
+        1. Overview
+        2. Dependencies
+
+              2.1. Kamailio Modules
+              2.2. External Libraries or Applications
+
+        3. Parameters
+
+              3.1. acc_flag (integer)
+              3.2. acc_missed_flag (integer)
+              3.3. acc_extra (integer)
+              3.4. acc_time_mode (integer)
+              3.5. acc_time_format (str)
+              3.6. output_mqueue (integer)
+              3.7. output_syslog (integer)
+              3.8. log_facility (integer)
+              3.9. log_level (integer)
+
+   List of Examples
+
+   1.1. acc_flag example
+   1.2. acc_missed_flag example
+   1.3. acc_extra example
+   1.4. acc_time_mode example
+   1.5. acc_time_format example
+   1.6. output_mqueue usage example
+   1.7. output_syslog example
+   1.8. log_facility example
+   1.9. log_level example
+
+Chapter 1. Admin Guide
+
+   Table of Contents
+
+   1. Overview
+   2. Dependencies
+
+        2.1. Kamailio Modules
+        2.2. External Libraries or Applications
+
+   3. Parameters
+
+        3.1. acc_flag (integer)
+        3.2. acc_missed_flag (integer)
+        3.3. acc_extra (integer)
+        3.4. acc_time_mode (integer)
+        3.5. acc_time_format (str)
+        3.6. output_mqueue (integer)
+        3.7. output_syslog (integer)
+        3.8. log_facility (integer)
+        3.9. log_level (integer)
+
+1. Overview
+
+   ACC_JSON module is used to account transaction information in a JSON
+   dictionary. It binds to ACC module API and uses the same accounting
+   mechanisms as for other backends.
+
+   It can output the JSON dictionary to MQUEUE or SYSLOG (even if Kamailio
+   is not using syslog)
+
+2. Dependencies
+
+   2.1. Kamailio Modules
+   2.2. External Libraries or Applications
+
+2.1. Kamailio Modules
+
+   The module depends on the following modules (in the other words the
+   listed modules must be loaded before this module):
+     * acc - accounting module
+     * mqueue - mqueue module (optional)
+
+2.2. External Libraries or Applications
+
+   The following libraries or applications must be installed before
+   running Kamailio with this module loaded:
+     * jansson http://www.digip.org/jansson/
+       Jansson is a C library for encoding, decoding and manipulating JSON
+       data.
+
+3. Parameters
+
+   3.1. acc_flag (integer)
+   3.2. acc_missed_flag (integer)
+   3.3. acc_extra (integer)
+   3.4. acc_time_mode (integer)
+   3.5. acc_time_format (str)
+   3.6. output_mqueue (integer)
+   3.7. output_syslog (integer)
+   3.8. log_facility (integer)
+   3.9. log_level (integer)
+
+3.1. acc_flag (integer)
+
+   Request flag which needs to be set to account a transaction in
+   acc_json. See output_mqueue and output_syslog
+
+   Default value is not-set (no flag).
+
+   Example 1.1. acc_flag example
+...
+modparam("acc_json", "acc_flag", 2)
+...
+
+3.2. acc_missed_flag (integer)
+
+   Request flag which needs to be set to account missed calls in acc_json.
+   See output_mqueue and output_syslog
+
+   Default value is not-set (no flag).
+
+   Example 1.2. acc_missed_flag example
+...
+modparam("acc_json", "acc_missed_flag", 3)
+...
+
+3.3. acc_extra (integer)
+
+   Extra values to be added to the json dictionnary.
+
+   Default value is NULL.
+
+   Example 1.3. acc_extra example
+...
+modparam("acc_json", "acc_extra", "via=$hdr(Via[*]); email=$avp(s:email)")
+...
+
+3.4. acc_time_mode (integer)
+
+   Store additional value related to the time of event.
+
+   Values can be:
+     * 0 - (default), save only unix timestamp for syslog and datetime for
+       database.
+     * 1 - save seconds in time_attr and microseconds in time_exten.
+     * 2 - save seconds.milliseconds in time_attr.
+     * 3 - save formatted time according to time_format parameter, using
+       the output of localtime(). Used for cdr entries too.
+     * 4 - save formatted time according to time_format parameter, using
+       the output of gmtime(). Used for cdr entries too.
+
+   Example 1.4. acc_time_mode example
+...
+modparam("acc_json", "acc_time_mode", 1)
+...
+
+3.5. acc_time_format (str)
+
+   Specify the format to print the time for time_mode 3 or 4.
+
+   Default value is %Y-%m-%d %H:%M:%S".
+
+   Example 1.5. acc_time_format example
+...
+modparam("acc_json", "acc_time_format", "%Y/%m/%d %H:%M:%S")
+...
+
+3.6. output_mqueue (integer)
+
+   Requires the mqueue module. The acc module will queue json acc events
+   in the specified mqueue. Using a rtimer module exec you can access the
+   queue and process them.
+
+   Default value is not-set mqueue will not be required
+
+   Example 1.6. output_mqueue usage example
+...
+# example using json_mqueue/http_client to publish to NSQD
+max_while_loops=100000
+modparam("mqueue", "mqueue", "name=acc_events;size=100000")
+modparam("acc_json", "output_mqueue", "acc_events")
+modparam("acc_json", "acc_flag", 2)
+modparam("acc_json", "acc_extra", "caller_ip_port=$avp(caller_ip_port);")
+modparam("rtimer", "timer", "name=nsqt;interval=1;mode=1;")
+modparam("rtimer", "exec", "timer=nsqt;route=RUN_CDR_PUBLISH")
+modparam("http_client", "keep_connections", 1)
+modparam("http_client", "httpcon", "nsqd=>http://localhost:4151/pub?topic=acc")
+
+route[RUN_CDR_PUBLISH] {
+   $var(count) = 0;
+   while (mq_fetch("acc_events")) {
+      $var(q_size) = mq_size("acc_events");
+      $var(count) = $var(count) + 1;
+      xinfo("[RUN_CDR_PUBLISH][$var(q_size)][$var(count)][$mqk(acc_events)][$mqv
+(acc_events)]\n");
+      $var(res) = http_connect("nsqd", "", "application/json", $mqv(acc_events),
+ "$var(nsq_res)");
+      if ($var(res) != "200") {
+         mq_add("acc_events", "acc_key", "$mqv(acc_events)");
+         return;
+      }
+   }
+   if ($var(count) > 0 ) {
+      xinfo("[RUN_CDR_PUBLISH]done count[$var(count)]\n");
+   }
+}
+...
+
+3.7. output_syslog (integer)
+
+   Control if the output of acc json should be sent to syslog. This is not
+   dependent on Kamailio global logging settigns, we can use syslog even
+   if Kamailio is not daemonized and/or logging is done to sdtout stderr.
+
+   Default value is not-set (no flag).
+
+   Example 1.7. output_syslog example
+...
+modparam("acc_json", "output_syslog", 1)
+modparam("acc_json", "log_level", 2)
+modparam("acc_json", "log_facility", "LOG_DAEMON")
+...
+
+3.8. log_facility (integer)
+
+   Log facility to which accounting messages are issued to syslog. This
+   allows to easily seperate the accounting specific logging from the
+   other log messages.
+
+   Default value is LOG_DAEMON.
+
+   Example 1.8. log_facility example
+...
+modparam("acc_json", "log_facility", "LOG_LOCAL0")
+
+# modify you syslog/rsyslog config
+# /etc/rsyslog.d/default.conf
+# remove local0 from default log file
+# *.*;local0,auth,authpriv.none /var/log/syslog
+# add local0 to another log file
+# local0.*                      /var/log/json_acc.log
+...
+
+3.9. log_level (integer)
+
+   Log level at which accounting messages are issued to syslog.
+
+   Default value is 1 (L_NOTICE).
+
+   Example 1.9. log_level example
+...
+modparam("acc_json", "log_level", 2) # Set log_level to 2 (L_INFO)
+...