diff --git a/modules/auth_aka/README b/modules/auth_aka/README index e7c4025beb..869c8c499f 100644 --- a/modules/auth_aka/README +++ b/modules/auth_aka/README @@ -651,7 +651,7 @@ Chapter 2. Contributors Table 2.1. Top contributors by DevScore^(1), authored commits^(2) and lines added/removed^(3) Name DevScore Commits Lines ++ Lines -- - 1. Razvan Crainea (@razvancrainea) 52 18 3376 293 + 1. Razvan Crainea (@razvancrainea) 53 19 3377 294 (1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted @@ -673,7 +673,7 @@ Chapter 2. Contributors Table 2.2. Most recently active contributors^(1) to this module Name Commit Activity - 1. Razvan Crainea (@razvancrainea) Feb 2024 - Jul 2024 + 1. Razvan Crainea (@razvancrainea) Feb 2024 - Sep 2024 (1) including any documentation-related commits, excluding merge commits diff --git a/modules/auth_aka/doc/contributors.xml b/modules/auth_aka/doc/contributors.xml index c840c94d25..8340acbc7b 100644 --- a/modules/auth_aka/doc/contributors.xml +++ b/modules/auth_aka/doc/contributors.xml @@ -21,10 +21,10 @@ 1. Razvan Crainea (@razvancrainea) - 52 - 18 - 3376 - 293 + 53 + 19 + 3377 + 294 @@ -57,7 +57,7 @@ 1. Razvan Crainea (@razvancrainea) - Feb 2024 - Jul 2024 + Feb 2024 - Sep 2024 diff --git a/modules/clusterer/README b/modules/clusterer/README index dc3941690d..f9d988960c 100644 --- a/modules/clusterer/README +++ b/modules/clusterer/README @@ -1452,7 +1452,7 @@ Chapter 3. Contributors 2. Liviu Chircu (@liviuchircu) 57 43 653 454 3. Eseanu Marius Cristian (@eseanucristian) 46 10 3142 534 4. Bogdan-Andrei Iancu (@bogdan-iancu) 30 15 1332 124 - 5. Razvan Crainea (@razvancrainea) 25 19 324 145 + 5. Razvan Crainea (@razvancrainea) 26 20 326 147 6. Ionel Cerghit (@ionel-cerghit) 9 2 250 212 7. Maksym Sobolyev (@sobomax) 8 6 12 13 8. Jasper Hafkenscheid 4 2 107 2 @@ -1482,12 +1482,12 @@ Chapter 3. Contributors Table 3.2. Most recently active contributors^(1) to this module Name Commit Activity - 1. Shanee Vanstone Mar 2024 - Mar 2024 - 2. Maksym Sobolyev (@sobomax) Jan 2021 - Nov 2023 - 3. Vlad Patrascu (@rvlad-patrascu) Jul 2016 - Jul 2023 - 4. Bogdan-Andrei Iancu (@bogdan-iancu) Apr 2016 - Apr 2023 - 5. Liviu Chircu (@liviuchircu) Mar 2016 - Oct 2022 - 6. Razvan Crainea (@razvancrainea) Nov 2015 - Aug 2022 + 1. Razvan Crainea (@razvancrainea) Nov 2015 - Sep 2024 + 2. Shanee Vanstone Mar 2024 - Mar 2024 + 3. Maksym Sobolyev (@sobomax) Jan 2021 - Nov 2023 + 4. Vlad Patrascu (@rvlad-patrascu) Jul 2016 - Jul 2023 + 5. Bogdan-Andrei Iancu (@bogdan-iancu) Apr 2016 - Apr 2023 + 6. Liviu Chircu (@liviuchircu) Mar 2016 - Oct 2022 7. Jasper Hafkenscheid May 2022 - Jul 2022 8. kworm83 Feb 2021 - Feb 2021 9. Fabian Gast (@fgast) Nov 2018 - Jul 2020 diff --git a/modules/clusterer/doc/contributors.xml b/modules/clusterer/doc/contributors.xml index 38bcf15365..6d7d4dc24f 100644 --- a/modules/clusterer/doc/contributors.xml +++ b/modules/clusterer/doc/contributors.xml @@ -53,10 +53,10 @@ 5. Razvan Crainea (@razvancrainea) - 25 - 19 - 324 - 145 + 26 + 20 + 326 + 147 6. @@ -128,34 +128,34 @@ 1. + Razvan Crainea (@razvancrainea) + Nov 2015 - Sep 2024 + + + 2. Shanee Vanstone Mar 2024 - Mar 2024 - 2. + 3. Maksym Sobolyev (@sobomax) Jan 2021 - Nov 2023 - 3. + 4. Vlad Patrascu (@rvlad-patrascu) Jul 2016 - Jul 2023 - 4. + 5. Bogdan-Andrei Iancu (@bogdan-iancu) Apr 2016 - Apr 2023 - 5. + 6. Liviu Chircu (@liviuchircu) Mar 2016 - Oct 2022 - - 6. - Razvan Crainea (@razvancrainea) - Nov 2015 - Aug 2022 - 7. Jasper Hafkenscheid diff --git a/modules/event_rabbitmq/README b/modules/event_rabbitmq/README index a7b91d302e..d31ff35df8 100644 --- a/modules/event_rabbitmq/README +++ b/modules/event_rabbitmq/README @@ -19,8 +19,14 @@ event_rabbitmq Module 1.5.2. connect_timeout (integer) 1.5.3. use_tls (integer) 1.5.4. timeout (integer) + 1.5.5. server_id (string) 1.6. Exported Functions + + 1.6.1. rabbitmq_publish(server_id, routing_key, + message [, [content_type [, headers, + headers_vals]]]) + 1.7. Example 1.8. Installation and Running @@ -49,9 +55,11 @@ event_rabbitmq Module 1.2. Setting the connect_timeout parameter 1.3. Set the use_tls parameter 1.4. Set the timeout parameter - 1.5. E_PIKE_BLOCKED event - 1.6. RabbitMQ socket - 1.7. OpenSIPS config script - sample event_rabbitmq usage + 1.5. Set server_id parameter + 1.6. rabbitmq_publish() function usage + 1.7. E_PIKE_BLOCKED event + 1.8. RabbitMQ socket + 1.9. OpenSIPS config script - sample event_rabbitmq usage 2.1. Event subscription 2.2. Event subscription @@ -64,13 +72,14 @@ Chapter 1. Admin Guide taking advantage of the flexible AMQP protocol. This module provides the implementation of a RabbitMQ client - for the Event Interface. It is used to send AMQP messages to a - RabbitMQ server each time the Event Interface triggers an event - subscribed for. - - The AMQP protocol is only used as the transport layer for - notifications. The content of a message is presented in the - next section. + that supports two primary functionalities: + * Event-Driven Messaging: It is used to send AMQP messages to + a RabbitMQ server each time the Event Interface triggers an + event subscribed for. + * General Message Publishing: This module also enables + sending AMQP messages directly to a RabbitMQ server. + Messages can be easily customized according to the AMQP + specifications, as well the RabbitMQ extensions. 1.2. RabbitMQ events syntax @@ -193,16 +202,113 @@ modparam("event_rabbitmq", "use_tls", 1) modparam("event_rabbitmq", "timeout", 1000) # timeout after 1s ... +1.5.5. server_id (string) + + Specify configuration for a RabbitMQ server. It contains a set + of parameters used to customize the connection to the server, + as well as to the messages sent. The format of the parameter is + [id_name] param1=value1; param2=value2;. The uri parameter is + mandatory. + + This parameter can be set multiple times, for each RabbitMQ + server. + + The following parameters can be used: + * uri - Mandatory parameter - a full amqp URI as described + here. Missing fields in the URI will receive default + values, such as: user: guest, password: guest, host: + localhost, vhost: /, port: 5672. TLS connections are + specified using an amqps URI. + * frames - the maximum size of an AMQP frame. Optional + parameter, default size is 131072. + * retries - the number of retries in case a connection is + down. Optional parameter, default is disabled (do not + retry). + * exchange - exchange used to send AMQP messages to. Optional + parameter, default is "". + * heartbeat - interval in seconds used to send heartbeat + messages. Optional parameter, default is disabled. + * immediate - indicate to the broker that the message MUST be + delivered to a consumer immediately. Optional parameter, + default is not immediate. + * mandatory - indicate to the broker that the message MUST be + routed to a queue. Optional parameter, default is not + mandatory. + * non-persistent - indicates that the message should not be + persistent in case the RabbitMQ server restarts. Optional + parameter, default is persistent. + * tls_domain - indicates which TLS domain (as defined using + the tls_mgm module) to use for this connection. This must + be an amqps URI and the use_tls module parameter must be + enabled. + + Example 1.5. Set server_id parameter +... +# connection to a RabbitMQ server on localhost, default port +modparam("event_rabbitmq", "server_id","[ID1] uri = amqp://127.0.0.1") +... +# connection with a 5 seconds interval for heartbeat messages +modparam("event_rabbitmq", "server_id","[ID2] uri = amqp://127.0.0.1; +heartbeat = 5") +... +# TLS connection +modparam("event_rabbitmq", "server_id","[ID3] uri = amqps://127.0.0.1; t +ls_domain=rmq") +... + 1.6. Exported Functions - No function exported to be used from configuration file. +1.6.1. rabbitmq_publish(server_id, routing_key, message [, +[content_type [, headers, headers_vals]]]) + + Sends a publish message to a RabbitMQ server. + + This function also allows you to attach AMQP headers and values + in the AMQP message. This is done by specifying a set of + headers names (in the headers parameter) and the corresponding + values (in the headers_vals parameter). The number of AVP + values in the headers must be the same as the one in the + headers_vals. + + This function can be used from any route. + + The function has the following parameters: + * server_id (string) - the id of the RabbitMQ server. Must be + one of the parameters defined in the server_id modparam. + * routing_key (string) - routing key used to deliver the AMQP + message. + * message (string) - the body of the message. + * content_type (string, optional) - content type of the + message sent. By default it is none. + * headers (string, optional) - an AVP containing the names of + the headers within the AMQP message. If set, headers_vals + parameter must also be specified. + * headers_vals (string, optional) - an AVP containing the + corresponding values of the AMQP headers. If set, headers + parameter must also be specified. + + Example 1.6. rabbitmq_publish() function usage + ... + rabbitmq_publish("ID1", "call", "$fU called $rU"); + ... + rabbitmq_publish("ID1", "call", "{ \'caller\': \'$fU\', + \'callee\; \'$rU\'", "applicatio +n/json"); + ... + $avp(hdr_name) = "caller"; + $avp(hdr_value) = $fU; + $avp(hdr_name) = "callee"; + $avp(hdr_value) = $rU; + rabbitmq_publish("ID2", "call", $rb, , $avp(hdr_name), $avp(hdr_ +value)); + ... 1.7. Example This is an example of an event raised by the pike module when it decides an ip should be blocked: - Example 1.5. E_PIKE_BLOCKED event + Example 1.7. E_PIKE_BLOCKED event { "jsonrpc": "2.0", @@ -213,7 +319,7 @@ modparam("event_rabbitmq", "timeout", 1000) # timeout after 1s } - Example 1.6. RabbitMQ socket + Example 1.8. RabbitMQ socket rabbitmq:guest:guest@127.0.0.1:5672/pike @@ -233,7 +339,7 @@ modparam("event_rabbitmq", "timeout", 1000) # timeout after 1s The parameters passed to the server are the R-URI username and the message body. - Example 1.7. OpenSIPS config script - sample event_rabbitmq + Example 1.9. OpenSIPS config script - sample event_rabbitmq usage ... loadmodule "signaling.so" @@ -476,19 +582,20 @@ Chapter 3. Contributors Table 3.1. Top contributors by DevScore^(1), authored commits^(2) and lines added/removed^(3) Name DevScore Commits Lines ++ Lines -- - 1. Razvan Crainea (@razvancrainea) 62 39 1995 310 - 2. Vlad Patrascu (@rvlad-patrascu) 22 12 504 266 - 3. Liviu Chircu (@liviuchircu) 9 7 23 40 - 4. Ovidiu Sas (@ovidiusas) 5 3 35 7 - 5. Bogdan-Andrei Iancu (@bogdan-iancu) 5 3 8 9 - 6. Maksym Sobolyev (@sobomax) 5 3 7 7 - 7. Peter Lemenkov (@lemenkov) 5 3 2 3 - 8. Ionut Ionita (@ionutrazvanionita) 4 2 52 25 - 9. franklyfox 4 2 44 5 - 10. Jarrod Baumann (@jarrodb) 4 2 2 2 - - All remaining contributors: Eric Tamme (@etamme), Julián Moreno - Patiño, Vlad Paiu (@vladpaiu). + 1. Razvan Crainea (@razvancrainea) 112 73 3590 438 + 2. Vlad Patrascu (@rvlad-patrascu) 36 20 1044 412 + 3. Alexandra Titoc 26 2 499 1135 + 4. Liviu Chircu (@liviuchircu) 16 13 41 76 + 5. Maksym Sobolyev (@sobomax) 10 8 21 21 + 6. Bogdan-Andrei Iancu (@bogdan-iancu) 6 4 10 10 + 7. Ovidiu Sas (@ovidiusas) 5 3 35 7 + 8. Peter Lemenkov (@lemenkov) 5 3 2 3 + 9. Ionut Ionita (@ionutrazvanionita) 4 2 52 25 + 10. franklyfox 4 2 44 5 + + All remaining contributors: Jarrod Baumann (@jarrodb), Eric + Tamme (@etamme), Julián Moreno Patiño, Walter Doekes + (@wdoekes), Vlad Paiu (@vladpaiu). (1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted @@ -510,19 +617,20 @@ Chapter 3. Contributors Table 3.2. Most recently active contributors^(1) to this module Name Commit Activity - 1. Razvan Crainea (@razvancrainea) Sep 2011 - Mar 2024 - 2. Vlad Patrascu (@rvlad-patrascu) Jul 2015 - Jun 2023 - 3. Liviu Chircu (@liviuchircu) Mar 2014 - May 2023 - 4. Maksym Sobolyev (@sobomax) Feb 2023 - Feb 2023 - 5. Peter Lemenkov (@lemenkov) Jun 2018 - Aug 2020 - 6. Bogdan-Andrei Iancu (@bogdan-iancu) Oct 2014 - Apr 2019 - 7. Jarrod Baumann (@jarrodb) Apr 2015 - Mar 2016 - 8. Julián Moreno Patiño Feb 2016 - Feb 2016 - 9. Ovidiu Sas (@ovidiusas) Jun 2015 - Jun 2015 - 10. Eric Tamme (@etamme) May 2015 - May 2015 - - All remaining contributors: Ionut Ionita (@ionutrazvanionita), - Vlad Paiu (@vladpaiu), franklyfox. + 1. Alexandra Titoc Sep 2024 - Sep 2024 + 2. Razvan Crainea (@razvancrainea) Jan 2017 - Mar 2024 + 3. Vlad Patrascu (@rvlad-patrascu) May 2017 - Jun 2023 + 4. Liviu Chircu (@liviuchircu) Apr 2018 - May 2023 + 5. Maksym Sobolyev (@sobomax) Jul 2017 - Feb 2023 + 6. Peter Lemenkov (@lemenkov) Jun 2018 - Aug 2020 + 7. Walter Doekes (@wdoekes) Apr 2019 - Apr 2019 + 8. Bogdan-Andrei Iancu (@bogdan-iancu) Apr 2019 - Apr 2019 + 9. Jarrod Baumann (@jarrodb) Apr 2015 - Mar 2016 + 10. Julián Moreno Patiño Feb 2016 - Feb 2016 + + All remaining contributors: Ovidiu Sas (@ovidiusas), Eric Tamme + (@etamme), Ionut Ionita (@ionutrazvanionita), Vlad Paiu + (@vladpaiu), franklyfox. (1) including any documentation-related commits, excluding merge commits @@ -531,9 +639,10 @@ Chapter 4. Documentation 4.1. Contributors - Last edited by: Razvan Crainea (@razvancrainea), Liviu Chircu - (@liviuchircu), Vlad Patrascu (@rvlad-patrascu), Peter Lemenkov - (@lemenkov), Ionut Ionita (@ionutrazvanionita). + Last edited by: Alexandra Titoc, Razvan Crainea + (@razvancrainea), Liviu Chircu (@liviuchircu), Vlad Patrascu + (@rvlad-patrascu), Peter Lemenkov (@lemenkov), Ionut Ionita + (@ionutrazvanionita). Documentation Copyrights: diff --git a/modules/event_rabbitmq/doc/contributors.xml b/modules/event_rabbitmq/doc/contributors.xml index b97745269c..616826aabd 100644 --- a/modules/event_rabbitmq/doc/contributors.xml +++ b/modules/event_rabbitmq/doc/contributors.xml @@ -21,53 +21,61 @@ 1. Razvan Crainea (@razvancrainea) - 62 - 39 - 1995 - 310 + 112 + 73 + 3590 + 438 2. Vlad Patrascu (@rvlad-patrascu) - 22 - 12 - 504 - 266 + 36 + 20 + 1044 + 412 3. - Liviu Chircu (@liviuchircu) - 9 - 7 - 23 - 40 + Alexandra Titoc + 26 + 2 + 499 + 1135 4. - Ovidiu Sas (@ovidiusas) - 5 - 3 - 35 - 7 + Liviu Chircu (@liviuchircu) + 16 + 13 + 41 + 76 5. - Bogdan-Andrei Iancu (@bogdan-iancu) - 5 - 3 + Maksym Sobolyev (@sobomax) + 10 8 - 9 + 21 + 21 6. - Maksym Sobolyev (@sobomax) + Bogdan-Andrei Iancu (@bogdan-iancu) + 6 + 4 + 10 + 10 + + + 7. + Ovidiu Sas (@ovidiusas) 5 3 - 7 + 35 7 - 7. + 8. Peter Lemenkov (@lemenkov) 5 3 @@ -75,7 +83,7 @@ 3 - 8. + 9. Ionut Ionita (@ionutrazvanionita) 4 2 @@ -83,25 +91,17 @@ 25 - 9. + 10. franklyfox 4 2 44 5 - - 10. - Jarrod Baumann (@jarrodb) - 4 - 2 - 2 - 2 - -All remaining contributors: Eric Tamme (@etamme), Julián Moreno Patiño, Vlad Paiu (@vladpaiu). +All remaining contributors: Jarrod Baumann (@jarrodb), Eric Tamme (@etamme), Julián Moreno Patiño, Walter Doekes (@wdoekes), Vlad Paiu (@vladpaiu). (1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits) @@ -128,58 +128,58 @@ 1. - Razvan Crainea (@razvancrainea) - Sep 2011 - Mar 2024 + Alexandra Titoc + Sep 2024 - Sep 2024 2. - Vlad Patrascu (@rvlad-patrascu) - Jul 2015 - Jun 2023 + Razvan Crainea (@razvancrainea) + Jan 2017 - Mar 2024 3. - Liviu Chircu (@liviuchircu) - Mar 2014 - May 2023 + Vlad Patrascu (@rvlad-patrascu) + May 2017 - Jun 2023 4. - Maksym Sobolyev (@sobomax) - Feb 2023 - Feb 2023 + Liviu Chircu (@liviuchircu) + Apr 2018 - May 2023 5. - Peter Lemenkov (@lemenkov) - Jun 2018 - Aug 2020 + Maksym Sobolyev (@sobomax) + Jul 2017 - Feb 2023 6. - Bogdan-Andrei Iancu (@bogdan-iancu) - Oct 2014 - Apr 2019 + Peter Lemenkov (@lemenkov) + Jun 2018 - Aug 2020 7. - Jarrod Baumann (@jarrodb) - Apr 2015 - Mar 2016 + Walter Doekes (@wdoekes) + Apr 2019 - Apr 2019 8. - Julián Moreno Patiño - Feb 2016 - Feb 2016 + Bogdan-Andrei Iancu (@bogdan-iancu) + Apr 2019 - Apr 2019 9. - Ovidiu Sas (@ovidiusas) - Jun 2015 - Jun 2015 + Jarrod Baumann (@jarrodb) + Apr 2015 - Mar 2016 10. - Eric Tamme (@etamme) - May 2015 - May 2015 + Julián Moreno Patiño + Feb 2016 - Feb 2016 -All remaining contributors: Ionut Ionita (@ionutrazvanionita), Vlad Paiu (@vladpaiu), franklyfox. +All remaining contributors: Ovidiu Sas (@ovidiusas), Eric Tamme (@etamme), Ionut Ionita (@ionutrazvanionita), Vlad Paiu (@vladpaiu), franklyfox. (1) including any documentation-related commits, excluding merge commits @@ -190,7 +190,7 @@ Documentation
Contributors - Last edited by: Razvan Crainea (@razvancrainea), Liviu Chircu (@liviuchircu), Vlad Patrascu (@rvlad-patrascu), Peter Lemenkov (@lemenkov), Ionut Ionita (@ionutrazvanionita). + Last edited by: Alexandra Titoc, Razvan Crainea (@razvancrainea), Liviu Chircu (@liviuchircu), Vlad Patrascu (@rvlad-patrascu), Peter Lemenkov (@lemenkov), Ionut Ionita (@ionutrazvanionita).
diff --git a/modules/event_sqs/README b/modules/event_sqs/README new file mode 100644 index 0000000000..05595a7692 --- /dev/null +++ b/modules/event_sqs/README @@ -0,0 +1,228 @@ +event_sqs Module + __________________________________________________________ + + Table of Contents + + 1. Admin Guide + + 1.1. Overview + 1.2. Dependencies + + 1.2.1. OpenSIPS Modules + 1.2.2. External Libraries or Applications + 1.2.3. Deploying Amazon SQS locally on your computer + + 1.3. Exported Parameters + + 1.3.1. queue_url (string) + + 1.4. Exported Functions + + 1.4.1. sqs_publish_message(queue_id, message) + 1.4.2. + + 1.5. Examples + + 1.5.1. Event-Driven Messaging with Event Interface + + 2. Contributors + + 2.1. By Commit Statistics + 2.2. By Commit Activity + + 3. Documentation + + 3.1. Contributors + + List of Tables + + 2.1. Top contributors by DevScore^(1), authored commits^(2) and + lines added/removed^(3) + + 2.2. Most recently active contributors^(1) to this module + + List of Examples + + 1.1. Set queue_url parameter + 1.2. sqs_publish_message() function usage + +Chapter 1. Admin Guide + +1.1. Overview + + The event_sqs module is an implementation of an Amazon SQS + producer. It serves as a transport backend for the Event + Interface and also provides a stand-alone connector to be used + from the OpenSIPS script in order to publish messages to SQS + queues. + + https://aws.amazon.com/sqs/ + +1.2. Dependencies + +1.2.1. OpenSIPS Modules + + There is no need to load any module before this module. + +1.2.2. External Libraries or Applications + + The following libraries or applications must be installed + before running OpenSIPS with this module loaded: + * AWS SDK for C++: + By following these steps, you'll have the AWS SDK for C++ + installed and configured on your Linux system, allowing you + to integrate with SQS: AWS SDK for C++ Installation Guide + Additional instructions for installation can be found at: + AWS SDK for C++ GitHub Repository + +1.2.3. Deploying Amazon SQS locally on your computer + + For testing purposes, you can run SQS locally. To achieve this, + you start localstack on your computer: + +pip install localstack +localstack start + + Don't forget to set the necessary environment variables for + testing, for example: + +export AWS_ACCESS_KEY_ID=test +export AWS_SECRET_ACCESS_KEY=test +export AWS_DEFAULT_REGION=us-east-1 + + Here you can find some cli commands such as create-queue, + send/receive-message, etc.: + https://docs.aws.amazon.com/cli/latest/reference/sqs/ + +1.3. Exported Parameters + +1.3.1. queue_url (string) + + This parameter specifies the configuration for an SQS queue + that can be used to publish messages directly from the script, + using the sqs_publish_message() function or to send messages + using raise_event function. + + The format of the parameter is: [ID]sqs_url, where ID is an + identifier for this SQS queue instance and sqs_url is the full + url of the queue. + + The queue_url contains: + * endpoint + * region + + This parameter can be set multiple times. + + Example 1.1. Set queue_url parameter + +... + +modparam("event_sqs", "queue_url", + "[q1]https://sqs.us-west-2.amazonaws.com/123456789012/Queue1") + +modparam("event_sqs", "queue_url", + "[q2]http://sqs.us-east-1.localhost.localstack.cloud:4566/0000 +00000000/Queue2") + +... + +1.4. Exported Functions + +1.4.1. sqs_publish_message(queue_id, message) + + Publishes a message to an SQS queue. As the actual send + operation is done asynchronously, this function does not block + and returns immediately after queuing the message for sending. + + This function can be used from any route. + + The function has the following parameters: + * queue_id (string) The ID of the SQS queue. Must be one of + the IDs defined through the `queue_url` modparam. + * message (string) - The payload of the message to publish. + + Example 1.2. sqs_publish_message() function usage + +... + +$var(msg) = "Hello, this is a message to SQS!"; +sqs_publish_message("q1", $var(msg)); + +... + +1.5. Examples + +1.5.1. Event-Driven Messaging with Event Interface + + OpenSIPS' event interface can be utilized to send messages to + SQS by subscribing to an event and raising it when needed. + + Steps: + * Event Subscription: + First, register the event subscription in your OpenSIPS + configuration file within the `startup_route`: + +subscribe_event("MY_EVENT", + "sqs:http://sqs.us-east-1.localhost.localstack.cloud:4566/000000 +000000/Queue2"); + + * Event Subscription via CLI: + After starting OpenSIPS, you can subscribe to the event + from another terminal using the OpenSIPS CLI: + +opensips-cli -x mi event_subscribe MY_EVENT \ + sqs:http://sqs.us-east-1.localhost.localstack.cloud:4566/00000 +0000000/Queue2 + + * Raise the Event and Send Message: + Finally, to send a message, raise the subscribed event with + the desired message content: + +opensips-cli -x mi raise_event MY_EVENT 'OpenSIPS Message' + +Chapter 2. Contributors + +2.1. By Commit Statistics + + Table 2.1. Top contributors by DevScore^(1), authored + commits^(2) and lines added/removed^(3) + Name DevScore Commits Lines ++ Lines -- + 1. Alexandra Titoc 27 7 1629 366 + 2. Razvan Crainea (@razvancrainea) 4 2 8 3 + + (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. Regarding imported patches/code, we do our best + to count the work on behalf of the proper owner, as per the + "fix_authors" and "mod_renames" arrays in + opensips/doc/build-contrib.sh. If you identify any + patches/commits which do not get properly attributed to you, + please submit a pull request which extends "fix_authors" and/or + "mod_renames". + + (3) ignoring whitespace edits, renamed files and auto-generated + files + +2.2. By Commit Activity + + Table 2.2. Most recently active contributors^(1) to this module + Name Commit Activity + 1. Razvan Crainea (@razvancrainea) Sep 2024 - Sep 2024 + 2. Alexandra Titoc Aug 2024 - Aug 2024 + + (1) including any documentation-related commits, excluding + merge commits + +Chapter 3. Documentation + +3.1. Contributors + + Last edited by: Razvan Crainea (@razvancrainea), Alexandra + Titoc. + + Documentation Copyrights: + + Copyright © 2024 www.opensips-solutions.com diff --git a/modules/event_sqs/doc/contributors.xml b/modules/event_sqs/doc/contributors.xml index 1fca1ab758..a1e04d3275 100644 --- a/modules/event_sqs/doc/contributors.xml +++ b/modules/event_sqs/doc/contributors.xml @@ -21,10 +21,18 @@ 1. Alexandra Titoc - 20 + 27 + 7 + 1629 + 366 + + + 2. + Razvan Crainea (@razvancrainea) 4 - 1246 - 272 + 2 + 8 + 3 @@ -56,6 +64,11 @@ 1. + Razvan Crainea (@razvancrainea) + Sep 2024 - Sep 2024 + + + 2. Alexandra Titoc Aug 2024 - Aug 2024 @@ -73,7 +86,7 @@ Documentation
Contributors - + Last edited by: Razvan Crainea (@razvancrainea), Alexandra Titoc.
diff --git a/modules/rtpengine/README b/modules/rtpengine/README index 7c3c5476d1..2a146b33dc 100644 --- a/modules/rtpengine/README +++ b/modules/rtpengine/README @@ -123,31 +123,32 @@ rtpengine Module 1.17. rtpengine_offer usage with body replace 1.18. rtpengine_offer usage with call recording 1.19. rtpengine_offer usage for transcoding - 1.20. rtpengine_answer usage - 1.21. rtpengine_delete usage - 1.22. rtpengine_manage usage - 1.23. rtpengine_start_recording usage - 1.24. rtpengine_stop_recording usage - 1.25. Ringback tone using rtpengine_play_media - 1.26. Manage music on hold using rtpengine_play_media - 1.27. Ringback tone stop using rtpengine_stop_media - 1.28. Example use of the last-frame-pos parameter + 1.20. Set extra_failover_error parameter + 1.21. rtpengine_answer usage + 1.22. rtpengine_delete usage + 1.23. rtpengine_manage usage + 1.24. rtpengine_start_recording usage + 1.25. rtpengine_stop_recording usage + 1.26. Ringback tone using rtpengine_play_media + 1.27. Manage music on hold using rtpengine_play_media + 1.28. Ringback tone stop using rtpengine_stop_media + 1.29. Example use of the last-frame-pos parameter rtpengine_stop_media - 1.29. Example of rtpengine_block_media usage - 1.30. Example of rtpengine_unblock_media usage - 1.31. Example of rtpengine_block_dtmf usage - 1.32. Example of rtpengine_unblock_dtmf usage - 1.33. Example of rtpengine_start_forwarding usage - 1.34. Example of rtpengine_stop_forwarding usage - 1.35. Example of rtpengine_play_dtmf usage - 1.36. $rtpstat Usage - 1.37. $rtpstat(STAT) - 1.38. $rtpquery Usage - 1.39. rtpengine_enable usage - 1.40. rtpengine_show usage - 1.41. rtpengine_reload usage - 1.42. teardown usage + 1.30. Example of rtpengine_block_media usage + 1.31. Example of rtpengine_unblock_media usage + 1.32. Example of rtpengine_block_dtmf usage + 1.33. Example of rtpengine_unblock_dtmf usage + 1.34. Example of rtpengine_start_forwarding usage + 1.35. Example of rtpengine_stop_forwarding usage + 1.36. Example of rtpengine_play_dtmf usage + 1.37. $rtpstat Usage + 1.38. $rtpstat(STAT) + 1.39. $rtpquery Usage + 1.40. rtpengine_enable usage + 1.41. rtpengine_show usage + 1.42. rtpengine_reload usage + 1.43. teardown usage Chapter 1. Admin Guide @@ -200,6 +201,15 @@ Chapter 1. Admin Guide the avp needs to be set only once before rtpengine_offer() or rtpengine_manage() call. + The module is able to failover to a new node within a set, if a + chosen one has communication issues. Moreover, it will also + failover if the node returns one of the following errors: + * Parallel session limit reached + * Ran out of ports + + You can use the extra_failover_error parameter to extend the + above list. + 1.3. Dependencies 1.3.1. OpenSIPS Modules @@ -739,6 +749,27 @@ rtpengine_offer("... codec-mask-PCMA codec-strip-opus transcode-opus ... "); ... +1.5.2.1. extra_failover_error (string) + + Contains a (XDB) regular expression that can be used to match + an error received from a RTPEngine node. If matched the module + tries to use a new node to handle the affected command. + + This parameter can be used to extend the list (see ??? of + errors the module implicitely fails over. + + Note each declaration will define a single expression/matching + rule. If you want to define multiple rules, you need to define + the parameter multiple times. + + Default value is empty, no extra errors are being used. + + Example 1.20. Set extra_failover_error parameter +... +modparam("rtpengine", "extra_failover_error", "Parallel session limit re +ached") +... + 1.5.3. rtpengine_answer([flags[, sock_pvar[, sdp_pvar[, body]]]]) Rewrites SDP body to ensure that media is passed through an RTP @@ -751,7 +782,7 @@ rtpengine_offer("... codec-mask-PCMA codec-strip-opus transcode-opus ... This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE, FAILURE_ROUTE, BRANCH_ROUTE. - Example 1.20. rtpengine_answer usage + Example 1.21. rtpengine_answer usage See rtpengine_offer() function example above for examples. @@ -765,7 +796,7 @@ rtpengine_offer("... codec-mask-PCMA codec-strip-opus transcode-opus ... This function can be used from ALL_ROUTES. - Example 1.21. rtpengine_delete usage + Example 1.22. rtpengine_delete usage ... rtpengine_delete(); ... @@ -793,7 +824,7 @@ rtpengine_delete(); This function can be used from ALL_ROUTES. - Example 1.22. rtpengine_manage usage + Example 1.23. rtpengine_manage usage ... rtpengine_manage(); ... @@ -813,7 +844,7 @@ rtpengine_manage(); This function can be used from any route. - Example 1.23. rtpengine_start_recording usage + Example 1.24. rtpengine_start_recording usage ... rtpengine_start_recording(); ... @@ -833,7 +864,7 @@ rtpengine_start_recording(); This function can be used from any route. - Example 1.24. rtpengine_stop_recording usage + Example 1.25. rtpengine_stop_recording usage ... rtpengine_stop_recording(); ... @@ -866,13 +897,13 @@ sockvar]]]) This function can be used from any route. - Example 1.25. Ringback tone using rtpengine_play_media + Example 1.26. Ringback tone using rtpengine_play_media ... if (is_method("INVITE") && !has_totag()) rtpengine_play_media("file=/path/to/ringback_tone_file.wav"); ... - Example 1.26. Manage music on hold using rtpengine_play_media + Example 1.27. Manage music on hold using rtpengine_play_media ... if (is_method("INVITE") && has_totag()) { if (is_audio_on_hold()) { @@ -904,13 +935,13 @@ e.wav"); This function can be used from any route. - Example 1.27. Ringback tone stop using rtpengine_stop_media + Example 1.28. Ringback tone stop using rtpengine_stop_media ... if (is_method("INVITE") && $rs == 200) rtpengine_stop_media(); ... - Example 1.28. Example use of the last-frame-pos parameter + Example 1.29. Example use of the last-frame-pos parameter rtpengine_stop_media ... if (is_method("INVITE") && has_totag()) { @@ -935,7 +966,7 @@ os)); This function can be used from any route. - Example 1.29. Example of rtpengine_block_media usage + Example 1.30. Example of rtpengine_block_media usage ... rtpengine_block_media(); ... @@ -948,7 +979,7 @@ rtpengine_block_media(); This function can be used from any route. - Example 1.30. Example of rtpengine_unblock_media usage + Example 1.31. Example of rtpengine_unblock_media usage ... rtpengine_unblock_media(); ... @@ -961,7 +992,7 @@ rtpengine_unblock_media(); This function can be used from any route. - Example 1.31. Example of rtpengine_block_dtmf usage + Example 1.32. Example of rtpengine_block_dtmf usage ... rtpengine_block_dtmf(); ... @@ -974,7 +1005,7 @@ rtpengine_block_dtmf(); This function can be used from any route. - Example 1.32. Example of rtpengine_unblock_dtmf usage + Example 1.33. Example of rtpengine_unblock_dtmf usage ... rtpengine_unblock_dtmf(); ... @@ -989,7 +1020,7 @@ rtpengine_unblock_dtmf(); This function can be used from any route. - Example 1.33. Example of rtpengine_start_forwarding usage + Example 1.34. Example of rtpengine_start_forwarding usage ... rtpengine_start_forwarding(); ... @@ -1001,7 +1032,7 @@ rtpengine_start_forwarding(); This function can be used from any route. - Example 1.34. Example of rtpengine_stop_forwarding usage + Example 1.35. Example of rtpengine_stop_forwarding usage ... rtpengine_stop_forwarding(); ... @@ -1022,7 +1053,7 @@ rtpengine_stop_forwarding(); This function can be used from any route. - Example 1.35. Example of rtpengine_play_dtmf usage + Example 1.36. Example of rtpengine_play_dtmf usage ... rtpengine_play_dtmf("0"); # send the 0 code upstream ... @@ -1035,7 +1066,7 @@ rtpengine_play_dtmf("0"); # send the 0 code upstream statistics from the RTP proxy are provided as a string and it does contain several packet counters. - Example 1.36. $rtpstat Usage + Example 1.37. $rtpstat Usage ... append_hf("X-RTP-Statistics: $rtpstat\r\n"); ... @@ -1108,7 +1139,7 @@ rtpengine_play_dtmf("0"); # send the 0 code upstream short, or if the phones do not properly report RTP statistics over RTCP). In these cases the variable returns the NULL value. - Example 1.37. $rtpstat(STAT) + Example 1.38. $rtpstat(STAT) ... xlog("Average MOS of the entire call is $rtpstat(MOS-average)\r\n"); xlog("Average MOS of caller is $(rtpstat(MOS-average)[$ft])\r\n"); @@ -1128,7 +1159,7 @@ pstat(MOS-min-at)[$ft])\r\n"); any information from the query, such as RTP statistics, or MOS values. - Example 1.38. $rtpquery Usage + Example 1.39. $rtpquery Usage ... $json(reply) := $rtpquery; xlog("Total RTP Stats: $json(reply/totals)\n"); @@ -1152,7 +1183,7 @@ pstat(MOS-min-at)[$ft])\r\n"); different set), all of its instances will be enabled/disabled IF no set ID is provided. - Example 1.39. rtpengine_enable usage + Example 1.40. rtpengine_enable usage ... ## disable all rtpengines by URL $ opensips-cli -x mi rtpengine_enable udp:192.168.2.133:8081 0 @@ -1168,7 +1199,7 @@ $ opensips-cli -x mi rtpengine_enable url=udp:192.168.2.133:8081 enable= No parameter. - Example 1.40. rtpengine_show usage + Example 1.41. rtpengine_show usage ... $ opensips-cli -x mi rtpengine_show ... @@ -1187,7 +1218,7 @@ $ opensips-cli -x mi rtpengine_show No parameter. - Example 1.41. rtpengine_reload usage + Example 1.42. rtpengine_reload usage ... $ opensips-cli -x mi rtpengine_reload $ opensips-cli -x mi rtpengine_reload type=soft @@ -1206,7 +1237,7 @@ $ opensips-cli -x mi rtpengine_reload type=soft done just to make rtpengine happy when trying to terminate SIP calls based on RTP timeouts. - Example 1.42. teardown usage + Example 1.43. teardown usage ... $ opensips-cli -x mi teardown Y2IwYjQ2YmE2ZDg5MWVkNDNkZGIwZjAzNGM1ZDY0ZD Q @@ -1314,7 +1345,7 @@ Chapter 3. Contributors Table 3.1. Top contributors by DevScore^(1), authored commits^(2) and lines added/removed^(3) Name DevScore Commits Lines ++ Lines -- - 1. Razvan Crainea (@razvancrainea) 231 128 6139 3125 + 1. Razvan Crainea (@razvancrainea) 235 129 6345 3150 2. Bogdan-Andrei Iancu (@bogdan-iancu) 31 17 423 595 3. John Burke (@john08burke) 25 17 647 102 4. Liviu Chircu (@liviuchircu) 20 16 91 173 @@ -1350,7 +1381,7 @@ Chapter 3. Contributors Table 3.2. Most recently active contributors^(1) to this module Name Commit Activity - 1. Razvan Crainea (@razvancrainea) Jun 2014 - Aug 2024 + 1. Razvan Crainea (@razvancrainea) Jun 2014 - Sep 2024 2. Norman Brandinger (@NormB) Jun 2024 - Jun 2024 3. Maksym Sobolyev (@sobomax) Jan 2021 - Nov 2023 4. Liviu Chircu (@liviuchircu) Jul 2014 - May 2023 diff --git a/modules/rtpengine/doc/contributors.xml b/modules/rtpengine/doc/contributors.xml index 978c6fcc81..99452c967b 100644 --- a/modules/rtpengine/doc/contributors.xml +++ b/modules/rtpengine/doc/contributors.xml @@ -21,10 +21,10 @@ 1. Razvan Crainea (@razvancrainea) - 231 - 128 - 6139 - 3125 + 235 + 129 + 6345 + 3150 2. @@ -129,7 +129,7 @@ 1. Razvan Crainea (@razvancrainea) - Jun 2014 - Aug 2024 + Jun 2014 - Sep 2024 2. diff --git a/modules/tm/README b/modules/tm/README index bf06bafe8e..bfe702d716 100644 --- a/modules/tm/README +++ b/modules/tm/README @@ -1772,7 +1772,7 @@ Chapter 4. Contributors 2. Jiri Kuthan (@jiriatipteldotorg) 537 198 18723 11167 3. Jan Janak (@janakj) 161 76 6462 1840 4. Andrei Pelinescu-Onciul 146 105 2447 1210 - 5. Razvan Crainea (@razvancrainea) 139 107 2056 854 + 5. Razvan Crainea (@razvancrainea) 142 109 2060 865 6. Liviu Chircu (@liviuchircu) 114 88 1303 913 7. Daniel-Constantin Mierla (@miconda) 43 37 322 166 8. Vlad Patrascu (@rvlad-patrascu) 40 18 916 826 @@ -1814,8 +1814,8 @@ Chapter 4. Contributors Table 4.2. Most recently active contributors^(1) to this module Name Commit Activity - 1. Liviu Chircu (@liviuchircu) Jan 2013 - Aug 2024 - 2. Razvan Crainea (@razvancrainea) Jul 2010 - Aug 2024 + 1. Razvan Crainea (@razvancrainea) Jul 2010 - Sep 2024 + 2. Liviu Chircu (@liviuchircu) Jan 2013 - Aug 2024 3. Bogdan-Andrei Iancu (@bogdan-iancu) Nov 2001 - May 2024 4. Carsten Bock Mar 2024 - Mar 2024 5. Maksym Sobolyev (@sobomax) Mar 2004 - Nov 2023 diff --git a/modules/tm/doc/contributors.xml b/modules/tm/doc/contributors.xml index abd3e7397d..ba0b81ca82 100644 --- a/modules/tm/doc/contributors.xml +++ b/modules/tm/doc/contributors.xml @@ -53,10 +53,10 @@ 5. Razvan Crainea (@razvancrainea) - 139 - 107 - 2056 - 854 + 142 + 109 + 2060 + 865 6. @@ -128,13 +128,13 @@ 1. - Liviu Chircu (@liviuchircu) - Jan 2013 - Aug 2024 + Razvan Crainea (@razvancrainea) + Jul 2010 - Sep 2024 2. - Razvan Crainea (@razvancrainea) - Jul 2010 - Aug 2024 + Liviu Chircu (@liviuchircu) + Jan 2013 - Aug 2024 3. diff --git a/modules/topology_hiding/README b/modules/topology_hiding/README index 323886335e..c4de230c6c 100644 --- a/modules/topology_hiding/README +++ b/modules/topology_hiding/README @@ -336,7 +336,7 @@ Chapter 2. Contributors commits^(2) and lines added/removed^(3) Name DevScore Commits Lines ++ Lines -- 1. Vlad Paiu (@vladpaiu) 32 8 2700 25 - 2. Razvan Crainea (@razvancrainea) 30 23 329 198 + 2. Razvan Crainea (@razvancrainea) 31 24 336 205 3. Bogdan-Andrei Iancu (@bogdan-iancu) 25 21 146 88 4. Liviu Chircu (@liviuchircu) 16 14 80 55 5. Vlad Patrascu (@rvlad-patrascu) 9 6 82 72 @@ -365,7 +365,7 @@ Chapter 2. Contributors Table 2.2. Most recently active contributors^(1) to this module Name Commit Activity - 1. Razvan Crainea (@razvancrainea) Aug 2015 - Aug 2024 + 1. Razvan Crainea (@razvancrainea) Aug 2015 - Sep 2024 2. Liviu Chircu (@liviuchircu) Mar 2015 - May 2024 3. Bogdan-Andrei Iancu (@bogdan-iancu) Mar 2015 - Dec 2023 4. James Stanley Dec 2023 - Dec 2023 diff --git a/modules/topology_hiding/doc/contributors.xml b/modules/topology_hiding/doc/contributors.xml index cb11eaecd7..608ddf26a7 100644 --- a/modules/topology_hiding/doc/contributors.xml +++ b/modules/topology_hiding/doc/contributors.xml @@ -29,10 +29,10 @@ 2. Razvan Crainea (@razvancrainea) - 30 - 23 - 329 - 198 + 31 + 24 + 336 + 205 3. @@ -121,7 +121,7 @@ 1. Razvan Crainea (@razvancrainea) - Aug 2015 - Aug 2024 + Aug 2015 - Sep 2024 2.