modules: readme files regenerated - nsq ...
authorKamailio Dev <kamailio.dev@kamailio.org>
Tue, 10 Jan 2017 19:46:15 +0000 (20:46 +0100)
committerKamailio Dev <kamailio.dev@kamailio.org>
Tue, 10 Jan 2017 19:46:15 +0000 (20:46 +0100)
src/modules/nsq/README

index 7d91f3e..f109201 100644 (file)
@@ -20,8 +20,7 @@ Emmanuel Schmidbauer
         1. Overview
         2. How it works
 
-              2.1. Event Routes
-              2.2. Aknowledge Messages
+              2.1. Aknowledge Messages
 
         3. Dependencies
 
@@ -50,25 +49,27 @@ Emmanuel Schmidbauer
 
         6. Pseudo Variables
         7. Transformations
+        8. Event Routes
 
    List of Examples
 
-   1.1. Define the event routes
-   1.2. Set lookupd_address parameter
-   1.3. Set lookupd_port parameter
-   1.4. Set nsqd_address parameter
-   1.5. Set nsqd_port parameter
-   1.6. Set consumer_use_nsqd parameter
-   1.7. Set consumer_event_key parameter
-   1.8. Set consumer_event_sub_key parameter
-   1.9. Set max_in_flight parameter
-   1.10. Set consumer_workers parameter
-   1.11. Set topic_channel parameter
-   1.12. Set db_url parameter
-   1.13. Set presentity_table parameter
-   1.14. Set db_table_lock_type parameter
-   1.15. nsq_pua_publish usage
+   1.1. Set lookupd_address parameter
+   1.2. Set lookupd_port parameter
+   1.3. Set nsqd_address parameter
+   1.4. Set nsqd_port parameter
+   1.5. Set consumer_use_nsqd parameter
+   1.6. Set consumer_event_key parameter
+   1.7. Set consumer_event_sub_key parameter
+   1.8. Set max_in_flight parameter
+   1.9. Set consumer_workers parameter
+   1.10. Set topic_channel parameter
+   1.11. Set db_url parameter
+   1.12. Set presentity_table parameter
+   1.13. Set db_table_lock_type parameter
+   1.14. nsq_pua_publish usage
+   1.15. Example usage of $nsqE pseudo variable
    1.16. nsq.json usage
+   1.17. Define the event routes
 
 Chapter 1. Admin Guide
 
@@ -77,8 +78,7 @@ Chapter 1. Admin Guide
    1. Overview
    2. How it works
 
-        2.1. Event Routes
-        2.2. Aknowledge Messages
+        2.1. Aknowledge Messages
 
    3. Dependencies
 
@@ -107,6 +107,7 @@ Chapter 1. Admin Guide
 
    6. Pseudo Variables
    7. Transformations
+   8. Event Routes
 
 1. Overview
 
@@ -131,74 +132,14 @@ Chapter 1. Admin Guide
 
 2. How it works
 
-   2.1. Event Routes
-   2.2. Aknowledge Messages
+   2.1. Aknowledge Messages
 
    The module creates an additional NSQ manager process that does the
    communication with NSQ for consuming messages. This one defers the
    message for processing to other NSQ worker processs so that it doesn't
    block itself, nor the SIP worker processes.
 
-2.1. Event Routes
-
-   The worker process issues an event-route where we can act on the
-   received payload. The name of the event-route is composed by values
-   extracted from the payload.
-
-   NSQ module will try to execute the event route from most significant to
-   less significant. define the event route like
-   event_route[nsq:consumer-event[-payload_key_value[-payload_subkey_value
-   ]]]
-
-   we can set the key/subkey pair on a subscription base. check the
-   payload on subscribe.
-
-   Example 1.1. Define the event routes
-...
-modparam("nsq", "consumer_event_key", "Event-Category")
-modparam("nsq", "consumer_event_sub_key", "Event-Name")
-...
-
-event_route[nsq:consumer-event-presence-update]
-{
-        # presence is the value extracted from Event-Category field in json payl
-oad
-        # update is the value extracted from Event-Name field in json payload
-        xlog("L_INFO", "received $(nsqE{nsq.json,Event-Package}) update for $(ns
-qE{kznsqjson,From})");
-        ...
-}
-
-event_route[nsq:consumer-event-presence]
-{
-        # presence is the value extracted from Event-Category field in json payl
-oad
-        xlog("L_INFO", "received $(nsqE{nsq.json,Event-Package}) update for $(ns
-qE{nsq.json,From})");
-        ...
-}
-
-event_route[nsq:consumer-event-event-category-event-name]
-{
-        # event-category is the name of the consumer_event_key parameter
-        # event-name is the name of the consumer_event_sub_key parameter
-        # this event route is executed if we can't find the previous
-        ...
-}
-
-event_route[nsq:consumer-event-event-category]
-{
-        # event-category is the name of the consumer_event_key parameter
-        # this event route is executed if we can't find the previous
-        ...
-}
-
-event_route[nsq:consumer-event]
-{
-        # this event route is executed if we can't find the previous
-}
-
-2.2. Aknowledge Messages
+2.1. Aknowledge Messages
 
    Consumed messages have the option of being acknowledge in two ways:
      * immediately when received
@@ -216,6 +157,7 @@ event_route[nsq:consumer-event]
 
 3.2. External Libraries or Applications
 
+   The following libraries or applications must be installed
      * libev.
      * libjson.
      * libevbuffsock.
@@ -245,7 +187,7 @@ event_route[nsq:consumer-event]
 
    Default value is 127.0.0.1
 
-   Example 1.2. Set lookupd_address parameter
+   Example 1.1. Set lookupd_address parameter
 ...
 modparam("nsq", "lookupd_address", "nsqlookupd.mydomain.com")
 ...
@@ -258,7 +200,7 @@ modparam("nsq", "lookupd_address", "nsqlookupd.mydomain.com")
 
    Default value is 4161.
 
-   Example 1.3. Set lookupd_port parameter
+   Example 1.2. Set lookupd_port parameter
 ...
 modparam("nsq", "lookupd_port", 4161)
 ...
@@ -272,7 +214,7 @@ modparam("nsq", "lookupd_port", 4161)
 
    Default value is 127.0.0.1
 
-   Example 1.4. Set nsqd_address parameter
+   Example 1.3. Set nsqd_address parameter
 ...
 modparam("nsq", "nsqd_address", "nsqd.mydomain.com")
 ...
@@ -285,7 +227,7 @@ modparam("nsq", "nsqd_address", "nsqd.mydomain.com")
 
    Default value is 4150.
 
-   Example 1.5. Set nsqd_port parameter
+   Example 1.4. Set nsqd_port parameter
 ...
 modparam("nsq", "nsqd_port", 4150)
 ...
@@ -298,7 +240,7 @@ modparam("nsq", "nsqd_port", 4150)
 
    Default value is 0.
 
-   Example 1.6. Set consumer_use_nsqd parameter
+   Example 1.5. Set consumer_use_nsqd parameter
 ...
 modparam("nsq", "consumer_use_nsqd", 1)
 ...
@@ -312,7 +254,7 @@ modparam("nsq", "consumer_use_nsqd", 1)
 
    Default value is “Event-Category”.
 
-   Example 1.7. Set consumer_event_key parameter
+   Example 1.6. Set consumer_event_key parameter
 ...
 modparam("nsq", "consumer_event_key", "My-JSON-Field-Name")
 ...
@@ -326,7 +268,7 @@ modparam("nsq", "consumer_event_key", "My-JSON-Field-Name")
 
    Default value is “Event-Name”.
 
-   Example 1.8. Set consumer_event_sub_key parameter
+   Example 1.7. Set consumer_event_sub_key parameter
 ...
 modparam("nsq", "consumer_event_sub_key", "My-JSON-SubField-Name")
 ...
@@ -340,7 +282,7 @@ modparam("nsq", "consumer_event_sub_key", "My-JSON-SubField-Name")
 
    Default value is 1.
 
-   Example 1.9. Set max_in_flight parameter
+   Example 1.8. Set max_in_flight parameter
 ...
 modparam("nsq", "max_in_flight", 2)
 ...
@@ -353,7 +295,7 @@ modparam("nsq", "max_in_flight", 2)
 
    Default value is 4.
 
-   Example 1.10. Set consumer_workers parameter
+   Example 1.9. Set consumer_workers parameter
 ...
 modparam("nsq", "consumer_workers", 2)
 ...
@@ -368,7 +310,7 @@ modparam("nsq", "consumer_workers", 2)
 
    Default value is “Kamailio-Topic:Kamailio-Channel”.
 
-   Example 1.11. Set topic_channel parameter
+   Example 1.10. Set topic_channel parameter
 ...
 modparam("nsq", "topic_channel", "My-NSQ-Topic:My-NSQ-Channel")
 modparam("nsq", "topic_channel", "My-NSQ-Topic-2:My-NSQ-Channel-2")
@@ -385,7 +327,7 @@ modparam("nsq", "topic_channel", "My-NSQ-Topic-2:My-NSQ-Channel-2")
 
    Default value is “NULL”.
 
-   Example 1.12. Set db_url parameter
+   Example 1.11. Set db_url parameter
 ...
 modparam("nsq", "db_url", "mysql://kamailio:kamailiorw@localhost/kamailio")
 ...
@@ -396,7 +338,7 @@ modparam("nsq", "db_url", "mysql://kamailio:kamailiorw@localhost/kamailio")
 
    Default value is “presentity”.
 
-   Example 1.13. Set presentity_table parameter
+   Example 1.12. Set presentity_table parameter
 ...
 modparam("nsq", "presentity_table", "my_presentity_table")
 ...
@@ -407,7 +349,7 @@ modparam("nsq", "presentity_table", "my_presentity_table")
 
    Default value is “1”.
 
-   Example 1.14. Set db_table_lock_type parameter
+   Example 1.13. Set db_table_lock_type parameter
 ...
 modparam("nsq", "db_table_lock_type", 0)
 ...
@@ -425,7 +367,7 @@ modparam("nsq", "db_table_lock_type", 0)
 
    This function can be used from ANY ROUTE.
 
-   Example 1.15. nsq_pua_publish usage
+   Example 1.14. nsq_pua_publish usage
 ...
 event_route[nsq:consumer-event-presence-update]
 {
@@ -439,16 +381,85 @@ ackage})", 1);
 
 6. Pseudo Variables
 
+   Example 1.15. Example usage of $nsqE pseudo variable
+        xlog("L_INFO", "received payload $nsqE from NSQ");
+        ...
+}
+
      * $nsqE Contains the payload of a consumed message
 
 7. Transformations
 
    The prefix for nsq transformations is nsq.
+
+   You can use the transformation to extract values from the json
+   structured $nsqE pseudo variable
      * json
        Example 1.16. nsq.json usage
 ...
+# extract value of "Custom-Data" from $nsqE pseudo variable and set it to $var(C
+ustom-Data)
 $var(Custom-Data) = $(nsqE{nsq.json,Custom-Data});
 if($var(Custom-Data) != $null) {
         xlog("L_INFO", "$ci|log|custom data: $var(Custom-Data)");
 }
 ...
+
+8. Event Routes
+
+   The worker process issues an event-route where we can act on the
+   received payload. The name of the event-route is composed by values
+   extracted from the payload.
+
+   NSQ module will try to execute the event route from most significant to
+   less significant. define the event route like
+   event_route[nsq:consumer-event[-payload_key_value[-payload_subkey_value
+   ]]]
+
+   We can set the key/subkey pair on a subscription base. check the
+   payload on subscribe.
+
+   Example 1.17. Define the event routes
+...
+modparam("nsq", "consumer_event_key", "Event-Category")
+modparam("nsq", "consumer_event_sub_key", "Event-Name")
+...
+
+event_route[nsq:consumer-event-presence-update]
+{
+        # presence is the value extracted from Event-Category field in json payl
+oad
+        # update is the value extracted from Event-Name field in json payload
+        xlog("L_INFO", "received $(nsqE{nsq.json,Event-Package}) update for $(ns
+qE{nsq.json,From})");
+        ...
+}
+
+event_route[nsq:consumer-event-presence]
+{
+        # presence is the value extracted from Event-Category field in json payl
+oad
+        xlog("L_INFO", "received $(nsqE{nsq.json,Event-Package}) update for $(ns
+qE{nsq.json,From})");
+        ...
+}
+
+event_route[nsq:consumer-event-event-category-event-name]
+{
+        # event-category is the name of the consumer_event_key parameter
+        # event-name is the name of the consumer_event_sub_key parameter
+        # this event route is executed if we can't find the previous
+        ...
+}
+
+event_route[nsq:consumer-event-event-category]
+{
+        # event-category is the name of the consumer_event_key parameter
+        # this event route is executed if we can't find the previous
+        ...
+}
+
+event_route[nsq:consumer-event]
+{
+        # this event route is executed if we can't find the previous
+}