Table of Contents
List of Tables
List of Examples
initial
parameter usageset_gflag()
usagereset_gflag()
usageis_gflag()
usageset_gflag
usagereset_gflag
usageis_gflag
usageget_gflags
usagegflags module (global flags) keeps a bitmap of flags in shared memory and may be used to change behaviour of server based on value of the flags. Example:
if (is_gflag("1")) { t_relay("udp:10.0.0.1:5060"); } else { t_relay("udp:10.0.0.2:5060"); }
The benefit of this module is the value of the switch flags can be manipulated by external applications such as web interface or command line tools. The size of bitmap is 32.
The module exports external commands that can be used to change the global flags via Management Interface. The MI commands are: “set_gflag”, “reset_gflag” and “is_gflag”.
The module depends on the following modules (in the other words the listed modules must be loaded before this module):
none
Set the bit at the position “flag” in global flags.
“flag” can have a value in the range of 0..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
Reset the bit at the position “flag” in global flags.
“flag” can have a value in the range of 0..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
Check if bit at the position “flag” in global flags is set.
“flag” can have a value in the range of 0..31.
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE, BRANCH_ROUTE and LOCAL_ROUTE.
Example 1.4. is_gflag()
usage
... if(is_gflag("4")) { log("global flag 4 is set\n"); } else { log("global flag 4 is not set\n"); }; ...
Functions that check or change some flags accepts one parameter which is the flag bitmap/mask specifing the corresponding flags. It is not possible to specify directly the flag position that should be changed as in the functions available in the routing script.
Set the value of some flags (specified by bitmask) to 1.
The parameter value must be a bitmask in decimal or hexa format. The bitmaks has a 32 bit size.
Example 1.5. set_gflag
usage
... $ opensipsctl fifo set_gflag 1 $ opensipsctl fifo set_gflag 0x3 ...
Reset the value of some flags to 0.
The parameter value must be a bitmask in decimal or hexa format. The bitmaks has a 32 bit size.
Example 1.6.
reset_gflag
usage
... $ opensipsctl fifo reset_gflag 1 $ opensipsctl fifo reset_gflag 0x3 ...
Returns true if the all the flags from the bitmask are set.
The parameter value must be a bitmask in decimal or hexa format. The bitmaks has a 32 bit size.
The function returns TRUE if all the flags from the set are set and FALSE if at least one is not set.
Example 1.7. is_gflag
usage
... $ opensipsctl fifo set_gflag 1024 $ opensipsctl fifo is_gflag 1024 TRUE $ opensipsctl fifo is_gflag 1025 TRUE $ opensipsctl fifo is_gflag 1023 FALSE $ opensipsctl fifo set_gflag 0x10 $ opensipsctl fifo is_gflag 1023 TRUE $ opensipsctl fifo is_gflag 1007 FALSE $ opensipsctl fifo is_gflag 16 TRUE ...
Table 2.1. Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
Name | DevScore | Commits | Lines ++ | Lines -- | |
---|---|---|---|---|---|
1. | Bogdan-Andrei Iancu (@bogdan-iancu) | 40 | 30 | 421 | 325 |
2. | Daniel-Constantin Mierla (@miconda) | 14 | 12 | 42 | 22 |
3. | Liviu Chircu (@liviuchircu) | 9 | 7 | 21 | 43 |
4. | Razvan Crainea (@razvancrainea) | 9 | 7 | 13 | 11 |
5. | Henning Westerholt (@henningw) | 8 | 6 | 42 | 31 |
6. | Jiri Kuthan (@jiriatipteldotorg) | 8 | 4 | 278 | 4 |
7. | Richard Revels | 3 | 1 | 24 | 11 |
8. | Anca Vamanu | 3 | 1 | 6 | 3 |
9. | Konstantin Bokarius | 3 | 1 | 2 | 5 |
10. | Andrei Pelinescu-Onciul | 3 | 1 | 2 | 2 |
All remaining contributors: Dan Pascu (@danpascu), Edson Gellert Schubert, Klaus Darilion, Ancuta Onofrei, Vlad Patrascu (@rvlad-patrascu).
(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
Table 2.2. Most recently active contributors(1) to this module
Name | Commit Activity | |
---|---|---|
1. | Razvan Crainea (@razvancrainea) | Sep 2011 - Sep 2019 |
2. | Dan Pascu (@danpascu) | May 2019 - May 2019 |
3. | Bogdan-Andrei Iancu (@bogdan-iancu) | Oct 2005 - Jun 2018 |
4. | Liviu Chircu (@liviuchircu) | Mar 2014 - Jun 2018 |
5. | Vlad Patrascu (@rvlad-patrascu) | May 2017 - May 2017 |
6. | Anca Vamanu | Sep 2009 - Sep 2009 |
7. | Richard Revels | Aug 2008 - Aug 2008 |
8. | Daniel-Constantin Mierla (@miconda) | Oct 2005 - Jun 2008 |
9. | Konstantin Bokarius | Mar 2008 - Mar 2008 |
10. | Edson Gellert Schubert | Feb 2008 - Feb 2008 |
All remaining contributors: Henning Westerholt (@henningw), Ancuta Onofrei, Klaus Darilion, Andrei Pelinescu-Onciul, Jiri Kuthan (@jiriatipteldotorg).
(1) including any documentation-related commits, excluding merge commits
Last edited by: Bogdan-Andrei Iancu (@bogdan-iancu), Liviu Chircu (@liviuchircu), Razvan Crainea (@razvancrainea), Richard Revels, Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Henning Westerholt (@henningw), Klaus Darilion.
doc copyrights:
Copyright © 2004 FhG FOKUS