Skip to content

URI module

Various checks related to SIP URI.

None.

The following libraries or applications must be installed before running OpenSIPS with this module loaded:

  • None.

None.

Check if the username in credentials matches the given username.

Meaning of the parameters is as follows:

  • username - Username string.

This function can be used from REQUEST_ROUTE.

is_user usage
...
if (is_user("john")) {
...
};
...

Check if To header field uri contains tag parameter.

This function can be used from REQUEST_ROUTE.

has_totag usage
...
if (has_totag()) {
...
};
...

Find if Request URI has a given parameter with no value

Meaning of the parameters is as follows:

  • param - parameter name to look for.

This function can be used from REQUEST_ROUTE.

uri_param usage
...
if (uri_param("param1")) {
...
};
...

Find if Request URI has a given parameter with matching value

Meaning of the parameters is as follows:

  • param - parameter name to look for.
  • value - parameter value to match.

This function can be used from REQUEST_ROUTE.

uri_param usage
...
if (uri_param("param1","value1")) {
...
};
...

Add to RURI a parameter (name=value);

Meaning of the parameters is as follows:

  • param - parameter to be appended in “name=value” format.

This function can be used from REQUEST_ROUTE.

add_uri_param usage
...
add_uri_param("nat=yes");
...

Converts RURI, if it is tel URI, to SIP URI. Returns true, only if conversion succeeded or if no conversion was needed (like RURI was not tel URI.

This function can be used from REQUEST_ROUTE.

tel2sip usage
...
tel2sip();
...

Checks if userpart of URI stored in pseudo variable is E164 number.

This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.

is_uri_user_e164 usage
...
if (is_uri_user_e164("$fu")) { # Check From header URI user part
...
}
if (is_uri_user_e164("$avp(i:705)") {
# Check user part of URI stored in avp i:705
...
};
...

Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)

#NameDevScoreCommitsLines++Lines—
1.Jan Janak (@janakj)49201473923
2.Daniel-Constantin Mierla (@miconda)14124655
3.Juha Heinanen (@juha-h)13744671
4.Bogdan-Andrei Iancu (@bogdan-iancu)1083123
5.Jiri Kuthan (@jiriatipteldotorg)644131
6.Stefan Darius (@dariusstefan)6321212
7.Henning Westerholt (@henningw)63869
8.Andrei Pelinescu-Onciul4253
9.Anca Vamanu312528
10.Sergio Gutierrez3131

All remaining contributors: Razvan Crainea (@razvancrainea), Konstantin Bokarius, Edson Gellert Schubert, Elena-Ramona Modroiu.

(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

(3) ignoring whitespace edits, renamed files and auto-generated files

#NameCommit Activity
1.Stefan Darius (@dariusstefan)Jun 2026 - Jul 2026
2.Razvan Crainea (@razvancrainea)Jun 2026 - Jun 2026
3.Sergio GutierrezNov 2008 - Nov 2008
4.Bogdan-Andrei Iancu (@bogdan-iancu)Jan 2006 - Oct 2008
5.Daniel-Constantin Mierla (@miconda)Nov 2006 - Mar 2008
6.Konstantin BokariusMar 2008 - Mar 2008
7.Edson Gellert SchubertFeb 2008 - Feb 2008
8.Juha Heinanen (@juha-h)Apr 2004 - Dec 2007
9.Henning Westerholt (@henningw)Apr 2007 - Dec 2007
10.Anca VamanuOct 2007 - Oct 2007

All remaining contributors: Elena-Ramona Modroiu, Jiri Kuthan (@jiriatipteldotorg), Jan Janak (@janakj), Andrei Pelinescu-Onciul.

(1) including any documentation-related commits, excluding merge commits

Last edited by: Razvan Crainea (@razvancrainea), Bogdan-Andrei Iancu (@bogdan-iancu), Daniel-Constantin Mierla (@miconda), Konstantin Bokarius, Edson Gellert Schubert, Juha Heinanen (@juha-h), Elena-Ramona Modroiu, Jan Janak (@janakj).

All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0