Explore Enterprise Education Gitee Premium Gitee AI AI teammates
Fetch the repository succeeded.
Create your Gitee Account
Explore and code with more than 14 million developers,Free private repositories !:)
Sign up
Already have an account? Sign in
master
Branches (24)
Tags (112)
master
3.1
3.2
2.4
3.0
feature/tls_postgres
dialog_custom_ping_interval
uuid_doc_fix
feature/rtp_relay
feature/sql-cacher-iterators
coverity_scan
feature/pi
2.3
2.2
feature/new-globals-syntax
1.11
2.1
1.9
1.10
1.8
3.1.7
3.2.4
3.1.6
3.2.3
3.1.5
3.2.2
3.1.4
3.2.1
3.2.0
3.2.0-rc1
3.1.3
2.4.11
3.2.0-beta
2.4.10
3.1.2
3.0.5
2.4.9
3.0.4
3.1.1
3.1.0
master
Branches (24)
Tags (112)
master
3.1
3.2
2.4
3.0
feature/tls_postgres
dialog_custom_ping_interval
uuid_doc_fix
feature/rtp_relay
feature/sql-cacher-iterators
coverity_scan
feature/pi
2.3
2.2
feature/new-globals-syntax
1.11
2.1
1.9
1.10
1.8
3.1.7
3.2.4
3.1.6
3.2.3
3.1.5
3.2.2
3.1.4
3.2.1
3.2.0
3.2.0-rc1
3.1.3
2.4.11
3.2.0-beta
2.4.10
3.1.2
3.0.5
2.4.9
3.0.4
3.1.1
3.1.0
Clone or Download
Clone/Download
Prompt
To download the code, please copy the following command and execute it in the terminal
To ensure that your submitted code identity is correctly recognized by Gitee, please execute the following command.
When using the SSH protocol for the first time to clone or push code, follow the prompts below to complete the SSH configuration.
1 Generate RSA keys.
2 Obtain the content of the RSA public key and configure it in SSH Public Keys
To use SVN on Gitee, please visit the usage guide
When using the HTTPS protocol, the command line will prompt for account and password verification as follows. For security reasons, Gitee recommends configure and use personal access tokens instead of login passwords for cloning, pushing, and other operations.
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # Private Token
master
Branches (24)
Tags (112)
master
3.1
3.2
2.4
3.0
feature/tls_postgres
dialog_custom_ping_interval
uuid_doc_fix
feature/rtp_relay
feature/sql-cacher-iterators
coverity_scan
feature/pi
2.3
2.2
feature/new-globals-syntax
1.11
2.1
1.9
1.10
1.8
3.1.7
3.2.4
3.1.6
3.2.3
3.1.5
3.2.2
3.1.4
3.2.1
3.2.0
3.2.0-rc1
3.1.3
2.4.11
3.2.0-beta
2.4.10
3.1.2
3.0.5
2.4.9
3.0.4
3.1.1
3.1.0
opensips
/
modules
/
textops
contribute
Sync branch
See difference Through Pull Request Sync
Sync branch
Through Pull Request Sync
A Pull Request will be created to the current
branch and will be merged in to complete the sync
File empty ...
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
textops Module
 __________________________________________________________
 Table of Contents
 1. Admin Guide
 1.1. Overview
 1.1.1. Known Limitations
 1.2. Dependencies
 1.2.1. OpenSIPS Modules
 1.2.2. External Libraries or Applications
 1.3. Exported Functions
 1.3.1. search(re)
 1.3.2. search_body(re)
 1.3.3. search_append(re, txt)
 1.3.4. search_append_body(re, txt)
 1.3.5. replace(re, txt)
 1.3.6. replace_body(re, txt)
 1.3.7. replace_all(re, txt)
 1.3.8. replace_body_all(re, txt)
 1.3.9. replace_body_atonce(re, txt)
 1.3.10. subst('/re/repl/flags')
 1.3.11. subst_uri('/re/repl/flags')
 1.3.12. subst_user('/re/repl/flags')
 1.3.13. subst_body('/re/repl/flags')
 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. search usage
 1.2. search_body usage
 1.3. search_append usage
 1.4. search_append_body usage
 1.5. replace usage
 1.6. replace_body usage
 1.7. replace_all usage
 1.8. replace_body_all usage
 1.9. replace_body_atonce usage
 1.10. subst usage
 1.11. subst_uri usage
 1.12. subst usage
 1.13. subst_body usage
Chapter 1. Admin Guide
1.1. Overview
 The module implements text based operations over the SIP
 message processed by OpenSIPS. SIP is a text based protocol and
 the module provides a large set of very useful functions to
 manipulate the message at text level, e.g., regular expression
 search and replace, Perl-like substitutions, etc.
 Note: all SIP-aware functions like insert_hf, append_hf or
 codec operations have been moved to the sipmsgops module.
1.1.1. Known Limitations
 search ignores folded lines. For example,
 search("(From|f):.*@foo.bar") doesn't match the following From
 header field:
From: medabeda
 <sip:medameda@foo.bar>;tag=1234
1.2. Dependencies
1.2.1. OpenSIPS Modules
 The following modules must be loaded before this module:
 * No dependencies on other OpenSIPS modules.
1.2.2. External Libraries or Applications
 The following libraries or applications must be installed
 before running OpenSIPS with this module loaded:
 * None.
1.3. Exported Functions
1.3.1. search(re)
 Searches for the re in the message.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.1. search usage
...
if ( search("[Ss][Ii][Pp]") ) { /*....*/ };
...
1.3.2. search_body(re)
 Searches for the re in the body of the message.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.2. search_body usage
...
if ( search_body("[Ss][Ii][Pp]") ) { /*....*/ };
...
1.3.3. search_append(re, txt)
 Searches for the first match of re and appends txt after it.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 * txt (string) - String to be appended.
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.3. search_append usage
...
search_append("[Oo]pen[Ss]er", " SIP Proxy");
...
1.3.4. search_append_body(re, txt)
 Searches for the first match of re in the body of the message
 and appends txt after it.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 * txt (string) - String to be appended.
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.4. search_append_body usage
...
search_append_body("[Oo]pen[Ss]er", " SIP Proxy");
...
1.3.5. replace(re, txt)
 Replaces the first occurrence of re with txt.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 * txt (string)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.5. replace usage
...
replace("opensips", "Open SIP Server");
...
1.3.6. replace_body(re, txt)
 Replaces the first occurrence of re in the body of the message
 with txt.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 * txt (string)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.6. replace_body usage
...
replace_body("opensips", "Open SIP Server");
...
1.3.7. replace_all(re, txt)
 Replaces all occurrence of re with txt.
 Meaning of the parameters is as follows:
 * re - (string) Regular expression.
 * txt (string)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.7. replace_all usage
...
replace_all("opensips", "Open SIP Server");
...
1.3.8. replace_body_all(re, txt)
 Replaces all occurrence of re in the body of the message with
 txt. Matching is done on a per-line basis.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 * txt (string)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.8. replace_body_all usage
...
replace_body_all("opensips", "Open SIP Server");
...
1.3.9. replace_body_atonce(re, txt)
 Replaces all occurrence of re in the body of the message with
 txt. Matching is done over the whole body.
 Meaning of the parameters is as follows:
 * re (string) - Regular expression.
 * txt (string)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.9. replace_body_atonce usage
...
# strip the whole body from the message:
if(has_body() && replace_body_atonce("^.+$", ""))
 remove_hf("Content-Type");
...
1.3.10. subst('/re/repl/flags')
 Replaces re with repl (sed or perl like).
 Meaning of the parameters is as follows:
 * '/re/repl/flags' (string) - sed like regular expression.
 flags can be a combination of i (case insensitive), g
 (global) or s (match newline don't treat it as end of
 line).
 're' - is regular expression
 'repl' - is replacement string - may contain
 pseudo-variables
 'flags' - substitution flags (i - ignore case, g - global)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.10. subst usage
...
# replace the uri in to: with the message uri (just an example)
if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:1円\u2円/ig') ) {};
# replace the uri in to: with the value of avp sip_address (just an exam
ple)
if ( subst('/^To:(.*)sip:[^@]*@[a-zA-Z0-9.]+(.*)$/t:1円$avp(sip_address)\
2/ig') ) {};
...
1.3.11. subst_uri('/re/repl/flags')
 Runs the re substitution on the message uri (like subst but
 works only on the uri)
 Meaning of the parameters is as follows:
 * '/re/repl/flags' (string) - sed like regular expression.
 flags can be a combination of i (case insensitive), g
 (global) or s (match newline don't treat it as end of
 line).
 're' - is regular expression
 'repl' - is replacement string - may contain
 pseudo-variables
 'flags' - substitution flags (i - ignore case, g - global)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.11. subst_uri usage
...
# adds 3463 prefix to numeric uris, and save the original uri (0円 match)
# as a parameter: orig_uri (just an example)
if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:34631円@2円;orig_uri=0円/i')){$
# adds the avp 'uri_prefix' as prefix to numeric uris, and save the orig
inal
# uri (0円 match) as a parameter: orig_uri (just an example)
if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(uri_prefix)1円@2円;orig_uri=\
0/i')){$
...
1.3.12. subst_user('/re/repl/flags')
 Runs the re substitution on the message uri (like subst_uri but
 works only on the user portion of the uri)
 Meaning of the parameters is as follows:
 * '/re/repl/flags' (string) - sed like regular expression.
 flags can be a combination of i (case insensitive), g
 (global) or s (match newline don't treat it as end of
 line).
 're' - is regular expression
 'repl' - is replacement string - may contain
 pseudo-variables
 'flags' - substitution flags (i - ignore case, g - global)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.12. subst usage
...
# adds 3463 prefix to uris ending with 3642 (just an example)
if (subst_user('/3642$/36423463/')){$
...
# adds avp 'user_prefix' as prefix to username in r-uri ending with 3642
if (subst_user('/(.*)3642$/$avp(user_prefix)13642円/')){$
...
1.3.13. subst_body('/re/repl/flags')
 Replaces re with repl (sed or perl like) in the body of the
 message.
 Meaning of the parameters is as follows:
 * '/re/repl/flags' (string) - sed like regular expression.
 flags can be a combination of i (case insensitive), g
 (global) or s (match newline don't treat it as end of
 line).
 're' - is regular expression
 'repl' - is replacement string - may contain
 pseudo-variables
 'flags' - substitution flags (i - ignore case, g - global)
 This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,
 FAILURE_ROUTE, BRANCH_ROUTE.
 Example 1.13. subst_body usage
...
if (subst_body("/^o=([^ ]*) /o=$fU /"))
 xlog("successfully prepared an "o" line update!\n");
...
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. Bogdan-Andrei Iancu (@bogdan-iancu) 55 43 440 475
 2. Daniel-Constantin Mierla (@miconda) 40 28 938 201
 3. Razvan Crainea (@razvancrainea) 39 6 16 1952
 4. Andrei Dragus 32 15 1540 196
 5. Andrei Pelinescu-Onciul 28 21 446 134
 6. Jiri Kuthan (@jiriatipteldotorg) 18 14 293 45
 7. Jan Janak (@janakj) 12 6 496 27
 8. Liviu Chircu (@liviuchircu) 11 9 32 58
 9. Vlad Patrascu (@rvlad-patrascu) 10 5 129 147
 10. Juha Heinanen (@juha-h) 8 5 210 8
 All remaining contributors: Elena-Ramona Modroiu, Henning
 Westerholt (@henningw), Ovidiu Sas (@ovidiusas), Anca Vamanu,
 Marc Haisenko, Andreas Heise, Klaus Darilion, Vlad Paiu
 (@vladpaiu), Andreas Granig, Hugues Mitonneau, Konstantin
 Bokarius, Saúl Ibarra Corretgé (@saghul), Peter Lemenkov
 (@lemenkov), Edson Gellert Schubert, Maksym Sobolyev
 (@sobomax), Christophe Sollet (@csollet).
 (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) Feb 2012 - Sep 2019
 2. Liviu Chircu (@liviuchircu) Oct 2013 - Sep 2019
 3. Vlad Patrascu (@rvlad-patrascu) May 2017 - Jul 2019
 4. Bogdan-Andrei Iancu (@bogdan-iancu) Feb 2002 - Apr 2019
 5. Peter Lemenkov (@lemenkov) Jun 2018 - Jun 2018
 6. Anca Vamanu Oct 2008 - May 2011
 7. Ovidiu Sas (@ovidiusas) Dec 2010 - Jan 2011
 8. Christophe Sollet (@csollet) Dec 2010 - Dec 2010
 9. Vlad Paiu (@vladpaiu) Oct 2010 - Oct 2010
 10. Andrei Dragus Jul 2009 - Aug 2010
 All remaining contributors: Saúl Ibarra Corretgé (@saghul),
 Hugues Mitonneau, Andreas Granig, Daniel-Constantin Mierla
 (@miconda), Konstantin Bokarius, Edson Gellert Schubert,
 Henning Westerholt (@henningw), Juha Heinanen (@juha-h),
 Andreas Heise, Klaus Darilion, Marc Haisenko, Elena-Ramona
 Modroiu, Andrei Pelinescu-Onciul, Jan Janak (@janakj), Maksym
 Sobolyev (@sobomax), Jiri Kuthan (@jiriatipteldotorg).
 (1) including any documentation-related commits, excluding
 merge commits
Chapter 3. Documentation
3.1. Contributors
 Last edited by: Liviu Chircu (@liviuchircu), Vlad Patrascu
 (@rvlad-patrascu), Peter Lemenkov (@lemenkov), Razvan Crainea
 (@razvancrainea), Bogdan-Andrei Iancu (@bogdan-iancu), Ovidiu
 Sas (@ovidiusas), Andrei Dragus, Anca Vamanu, Andreas Granig,
 Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson
 Gellert Schubert, Juha Heinanen (@juha-h), Klaus Darilion, Marc
 Haisenko, Elena-Ramona Modroiu, Jan Janak (@janakj), Maksym
 Sobolyev (@sobomax), Jiri Kuthan (@jiriatipteldotorg), Andrei
 Pelinescu-Onciul.
 Documentation Copyrights:
 Copyright © 2003 FhG FOKUS
Report
Report success
We will send you the feedback within 2 working days through the letter!
Please fill in the reason for the report carefully. Provide as detailed a description as possible.
Please select a report type
Cancel
Send
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

About

No description
Cancel

Releases

No release

Contributors

All

Activities

can not load any more
Edit
About
Homepage
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/phpgoer/opensips.git
git@gitee.com:phpgoer/opensips.git
phpgoer
opensips
opensips
master
Going to Help Center

Search

Comment
Repository Report
Back to the top
Login prompt
This operation requires login to the code cloud account. Please log in before operating.
Go to login
No account. Register

AltStyle によって変換されたページ (->オリジナル) /