|
@@ -70,37 +70,38 @@ Gabriel Vasile
|
|
|
4.4. has_totag()
|
|
|
4.5. uri_param(param)
|
|
|
4.6. uri_param(param,value)
|
|
|
- 4.7. add_uri_param(param)
|
|
|
- 4.8. get_uri_param(name, var)
|
|
|
- 4.9. uri_param_rm(param)
|
|
|
- 4.10. tel2sip(uri, hostpart, result)
|
|
|
- 4.11. is_e164(pseudo-variable)
|
|
|
- 4.12. is_uri_user_e164(pseudo-variable)
|
|
|
- 4.13. is_uri(pseudo-variable)
|
|
|
- 4.14. is_tel_number(tval)
|
|
|
- 4.15. is_numeric(tval)
|
|
|
- 4.16. is_alphanum(tval)
|
|
|
- 4.17. is_alphanumex(tval, eset)
|
|
|
- 4.18. encode_contact(encoding_prefix,hostpart)
|
|
|
- 4.19. decode_contact()
|
|
|
- 4.20. decode_contact_header()
|
|
|
- 4.21. cmp_uri(str1, str2)
|
|
|
- 4.22. cmp_aor(str1, str2)
|
|
|
- 4.23. append_rpid_hf()
|
|
|
- 4.24. append_rpid_hf(prefix, suffix)
|
|
|
- 4.25. is_rpid_user_e164()
|
|
|
- 4.26. set_uri_user(uri, user)
|
|
|
- 4.27. set_uri_host(uri, host)
|
|
|
- 4.28. is_request()
|
|
|
- 4.29. is_reply()
|
|
|
- 4.30. is_gruu([uri])
|
|
|
- 4.31. is_supported(option)
|
|
|
- 4.32. is_first_hop()
|
|
|
- 4.33. sip_p_charging_vector(flags)
|
|
|
- 4.34. contact_param_encode(pname, saddr)
|
|
|
- 4.35. contact_param_decode(pname)
|
|
|
- 4.36. contact_param_decode_uri(pname)
|
|
|
- 4.37. contact_param_rm(pname)
|
|
|
+ 4.7. uri_param_any(param)
|
|
|
+ 4.8. add_uri_param(param)
|
|
|
+ 4.9. get_uri_param(name, var)
|
|
|
+ 4.10. uri_param_rm(param)
|
|
|
+ 4.11. tel2sip(uri, hostpart, result)
|
|
|
+ 4.12. is_e164(pseudo-variable)
|
|
|
+ 4.13. is_uri_user_e164(pseudo-variable)
|
|
|
+ 4.14. is_uri(pseudo-variable)
|
|
|
+ 4.15. is_tel_number(tval)
|
|
|
+ 4.16. is_numeric(tval)
|
|
|
+ 4.17. is_alphanum(tval)
|
|
|
+ 4.18. is_alphanumex(tval, eset)
|
|
|
+ 4.19. encode_contact(encoding_prefix,hostpart)
|
|
|
+ 4.20. decode_contact()
|
|
|
+ 4.21. decode_contact_header()
|
|
|
+ 4.22. cmp_uri(str1, str2)
|
|
|
+ 4.23. cmp_aor(str1, str2)
|
|
|
+ 4.24. append_rpid_hf()
|
|
|
+ 4.25. append_rpid_hf(prefix, suffix)
|
|
|
+ 4.26. is_rpid_user_e164()
|
|
|
+ 4.27. set_uri_user(uri, user)
|
|
|
+ 4.28. set_uri_host(uri, host)
|
|
|
+ 4.29. is_request()
|
|
|
+ 4.30. is_reply()
|
|
|
+ 4.31. is_gruu([uri])
|
|
|
+ 4.32. is_supported(option)
|
|
|
+ 4.33. is_first_hop()
|
|
|
+ 4.34. sip_p_charging_vector(flags)
|
|
|
+ 4.35. contact_param_encode(pname, saddr)
|
|
|
+ 4.36. contact_param_decode(pname)
|
|
|
+ 4.37. contact_param_decode_uri(pname)
|
|
|
+ 4.38. contact_param_rm(pname)
|
|
|
|
|
|
5. Exported pseudo-variables
|
|
|
|
|
@@ -127,37 +128,38 @@ Gabriel Vasile
|
|
|
1.13. has_totag usage
|
|
|
1.14. uri_param usage
|
|
|
1.15. uri_param usage
|
|
|
- 1.16. add_uri_param usage
|
|
|
+ 1.16. uri_param_any usage
|
|
|
1.17. add_uri_param usage
|
|
|
- 1.18. uri_param_rm usage
|
|
|
- 1.19. tel2sip usage
|
|
|
- 1.20. is_e164 usage
|
|
|
- 1.21. is_uri_user_e164 usage
|
|
|
- 1.22. is_uri usage
|
|
|
- 1.23. is_tel_number usage
|
|
|
- 1.24. is_numeric usage
|
|
|
- 1.25. is_alphanum usage
|
|
|
- 1.26. is_alphanumex usage
|
|
|
- 1.27. encode_contact usage
|
|
|
- 1.28. decode_contact usage
|
|
|
- 1.29. decode_contact_header usage
|
|
|
- 1.30. cmp_uri usage
|
|
|
- 1.31. cmp_aor usage
|
|
|
- 1.32. append_rpid_hf usage
|
|
|
- 1.33. append_rpid_hf(prefix, suffix) usage
|
|
|
- 1.34. is_rpid_user_e164 usage
|
|
|
- 1.35. set_uri_user usage
|
|
|
- 1.36. set_uri_host usage
|
|
|
- 1.37. is_request usage
|
|
|
- 1.38. is_reply usage
|
|
|
- 1.39. is_gruu() usage
|
|
|
- 1.40. is_supported() usage
|
|
|
- 1.41. is_first_hop() usage
|
|
|
- 1.42. sip_p_charging_vector() usage
|
|
|
- 1.43. contact_param_encode usage
|
|
|
- 1.44. contact_param_decode usage
|
|
|
- 1.45. contact_param_decode_ruri usage
|
|
|
- 1.46. contact_param_rm usage
|
|
|
+ 1.18. add_uri_param usage
|
|
|
+ 1.19. uri_param_rm usage
|
|
|
+ 1.20. tel2sip usage
|
|
|
+ 1.21. is_e164 usage
|
|
|
+ 1.22. is_uri_user_e164 usage
|
|
|
+ 1.23. is_uri usage
|
|
|
+ 1.24. is_tel_number usage
|
|
|
+ 1.25. is_numeric usage
|
|
|
+ 1.26. is_alphanum usage
|
|
|
+ 1.27. is_alphanumex usage
|
|
|
+ 1.28. encode_contact usage
|
|
|
+ 1.29. decode_contact usage
|
|
|
+ 1.30. decode_contact_header usage
|
|
|
+ 1.31. cmp_uri usage
|
|
|
+ 1.32. cmp_aor usage
|
|
|
+ 1.33. append_rpid_hf usage
|
|
|
+ 1.34. append_rpid_hf(prefix, suffix) usage
|
|
|
+ 1.35. is_rpid_user_e164 usage
|
|
|
+ 1.36. set_uri_user usage
|
|
|
+ 1.37. set_uri_host usage
|
|
|
+ 1.38. is_request usage
|
|
|
+ 1.39. is_reply usage
|
|
|
+ 1.40. is_gruu() usage
|
|
|
+ 1.41. is_supported() usage
|
|
|
+ 1.42. is_first_hop() usage
|
|
|
+ 1.43. sip_p_charging_vector() usage
|
|
|
+ 1.44. contact_param_encode usage
|
|
|
+ 1.45. contact_param_decode usage
|
|
|
+ 1.46. contact_param_decode_ruri usage
|
|
|
+ 1.47. contact_param_rm usage
|
|
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
|
@@ -189,37 +191,38 @@ Chapter 1. Admin Guide
|
|
|
4.4. has_totag()
|
|
|
4.5. uri_param(param)
|
|
|
4.6. uri_param(param,value)
|
|
|
- 4.7. add_uri_param(param)
|
|
|
- 4.8. get_uri_param(name, var)
|
|
|
- 4.9. uri_param_rm(param)
|
|
|
- 4.10. tel2sip(uri, hostpart, result)
|
|
|
- 4.11. is_e164(pseudo-variable)
|
|
|
- 4.12. is_uri_user_e164(pseudo-variable)
|
|
|
- 4.13. is_uri(pseudo-variable)
|
|
|
- 4.14. is_tel_number(tval)
|
|
|
- 4.15. is_numeric(tval)
|
|
|
- 4.16. is_alphanum(tval)
|
|
|
- 4.17. is_alphanumex(tval, eset)
|
|
|
- 4.18. encode_contact(encoding_prefix,hostpart)
|
|
|
- 4.19. decode_contact()
|
|
|
- 4.20. decode_contact_header()
|
|
|
- 4.21. cmp_uri(str1, str2)
|
|
|
- 4.22. cmp_aor(str1, str2)
|
|
|
- 4.23. append_rpid_hf()
|
|
|
- 4.24. append_rpid_hf(prefix, suffix)
|
|
|
- 4.25. is_rpid_user_e164()
|
|
|
- 4.26. set_uri_user(uri, user)
|
|
|
- 4.27. set_uri_host(uri, host)
|
|
|
- 4.28. is_request()
|
|
|
- 4.29. is_reply()
|
|
|
- 4.30. is_gruu([uri])
|
|
|
- 4.31. is_supported(option)
|
|
|
- 4.32. is_first_hop()
|
|
|
- 4.33. sip_p_charging_vector(flags)
|
|
|
- 4.34. contact_param_encode(pname, saddr)
|
|
|
- 4.35. contact_param_decode(pname)
|
|
|
- 4.36. contact_param_decode_uri(pname)
|
|
|
- 4.37. contact_param_rm(pname)
|
|
|
+ 4.7. uri_param_any(param)
|
|
|
+ 4.8. add_uri_param(param)
|
|
|
+ 4.9. get_uri_param(name, var)
|
|
|
+ 4.10. uri_param_rm(param)
|
|
|
+ 4.11. tel2sip(uri, hostpart, result)
|
|
|
+ 4.12. is_e164(pseudo-variable)
|
|
|
+ 4.13. is_uri_user_e164(pseudo-variable)
|
|
|
+ 4.14. is_uri(pseudo-variable)
|
|
|
+ 4.15. is_tel_number(tval)
|
|
|
+ 4.16. is_numeric(tval)
|
|
|
+ 4.17. is_alphanum(tval)
|
|
|
+ 4.18. is_alphanumex(tval, eset)
|
|
|
+ 4.19. encode_contact(encoding_prefix,hostpart)
|
|
|
+ 4.20. decode_contact()
|
|
|
+ 4.21. decode_contact_header()
|
|
|
+ 4.22. cmp_uri(str1, str2)
|
|
|
+ 4.23. cmp_aor(str1, str2)
|
|
|
+ 4.24. append_rpid_hf()
|
|
|
+ 4.25. append_rpid_hf(prefix, suffix)
|
|
|
+ 4.26. is_rpid_user_e164()
|
|
|
+ 4.27. set_uri_user(uri, user)
|
|
|
+ 4.28. set_uri_host(uri, host)
|
|
|
+ 4.29. is_request()
|
|
|
+ 4.30. is_reply()
|
|
|
+ 4.31. is_gruu([uri])
|
|
|
+ 4.32. is_supported(option)
|
|
|
+ 4.33. is_first_hop()
|
|
|
+ 4.34. sip_p_charging_vector(flags)
|
|
|
+ 4.35. contact_param_encode(pname, saddr)
|
|
|
+ 4.36. contact_param_decode(pname)
|
|
|
+ 4.37. contact_param_decode_uri(pname)
|
|
|
+ 4.38. contact_param_rm(pname)
|
|
|
|
|
|
5. Exported pseudo-variables
|
|
|
|
|
@@ -409,37 +412,38 @@ modparam("auth", "rpid_avp", "$avp(myrpid)")
|
|
|
4.4. has_totag()
|
|
|
4.5. uri_param(param)
|
|
|
4.6. uri_param(param,value)
|
|
|
- 4.7. add_uri_param(param)
|
|
|
- 4.8. get_uri_param(name, var)
|
|
|
- 4.9. uri_param_rm(param)
|
|
|
- 4.10. tel2sip(uri, hostpart, result)
|
|
|
- 4.11. is_e164(pseudo-variable)
|
|
|
- 4.12. is_uri_user_e164(pseudo-variable)
|
|
|
- 4.13. is_uri(pseudo-variable)
|
|
|
- 4.14. is_tel_number(tval)
|
|
|
- 4.15. is_numeric(tval)
|
|
|
- 4.16. is_alphanum(tval)
|
|
|
- 4.17. is_alphanumex(tval, eset)
|
|
|
- 4.18. encode_contact(encoding_prefix,hostpart)
|
|
|
- 4.19. decode_contact()
|
|
|
- 4.20. decode_contact_header()
|
|
|
- 4.21. cmp_uri(str1, str2)
|
|
|
- 4.22. cmp_aor(str1, str2)
|
|
|
- 4.23. append_rpid_hf()
|
|
|
- 4.24. append_rpid_hf(prefix, suffix)
|
|
|
- 4.25. is_rpid_user_e164()
|
|
|
- 4.26. set_uri_user(uri, user)
|
|
|
- 4.27. set_uri_host(uri, host)
|
|
|
- 4.28. is_request()
|
|
|
- 4.29. is_reply()
|
|
|
- 4.30. is_gruu([uri])
|
|
|
- 4.31. is_supported(option)
|
|
|
- 4.32. is_first_hop()
|
|
|
- 4.33. sip_p_charging_vector(flags)
|
|
|
- 4.34. contact_param_encode(pname, saddr)
|
|
|
- 4.35. contact_param_decode(pname)
|
|
|
- 4.36. contact_param_decode_uri(pname)
|
|
|
- 4.37. contact_param_rm(pname)
|
|
|
+ 4.7. uri_param_any(param)
|
|
|
+ 4.8. add_uri_param(param)
|
|
|
+ 4.9. get_uri_param(name, var)
|
|
|
+ 4.10. uri_param_rm(param)
|
|
|
+ 4.11. tel2sip(uri, hostpart, result)
|
|
|
+ 4.12. is_e164(pseudo-variable)
|
|
|
+ 4.13. is_uri_user_e164(pseudo-variable)
|
|
|
+ 4.14. is_uri(pseudo-variable)
|
|
|
+ 4.15. is_tel_number(tval)
|
|
|
+ 4.16. is_numeric(tval)
|
|
|
+ 4.17. is_alphanum(tval)
|
|
|
+ 4.18. is_alphanumex(tval, eset)
|
|
|
+ 4.19. encode_contact(encoding_prefix,hostpart)
|
|
|
+ 4.20. decode_contact()
|
|
|
+ 4.21. decode_contact_header()
|
|
|
+ 4.22. cmp_uri(str1, str2)
|
|
|
+ 4.23. cmp_aor(str1, str2)
|
|
|
+ 4.24. append_rpid_hf()
|
|
|
+ 4.25. append_rpid_hf(prefix, suffix)
|
|
|
+ 4.26. is_rpid_user_e164()
|
|
|
+ 4.27. set_uri_user(uri, user)
|
|
|
+ 4.28. set_uri_host(uri, host)
|
|
|
+ 4.29. is_request()
|
|
|
+ 4.30. is_reply()
|
|
|
+ 4.31. is_gruu([uri])
|
|
|
+ 4.32. is_supported(option)
|
|
|
+ 4.33. is_first_hop()
|
|
|
+ 4.34. sip_p_charging_vector(flags)
|
|
|
+ 4.35. contact_param_encode(pname, saddr)
|
|
|
+ 4.36. contact_param_decode(pname)
|
|
|
+ 4.37. contact_param_decode_uri(pname)
|
|
|
+ 4.38. contact_param_rm(pname)
|
|
|
|
|
|
4.1. ring_insert_callid()
|
|
|
|
|
@@ -548,7 +552,23 @@ if (uri_param("param1","value1")) {
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.7. add_uri_param(param)
|
|
|
+4.7. uri_param_any(param)
|
|
|
+
|
|
|
+ Find if Request URI has a given parameter with or without value.
|
|
|
+
|
|
|
+ Meaning of the parameters is as follows:
|
|
|
+ * param - parameter name to look for.
|
|
|
+
|
|
|
+ This function can be used from REQUEST_ROUTE.
|
|
|
+
|
|
|
+ Example 1.16. uri_param_any usage
|
|
|
+...
|
|
|
+if (uri_param_any("param1")) {
|
|
|
+ ...
|
|
|
+}
|
|
|
+...
|
|
|
+
|
|
|
+4.8. add_uri_param(param)
|
|
|
|
|
|
Add to RURI a parameter (name=value);
|
|
|
|
|
@@ -557,12 +577,12 @@ if (uri_param("param1","value1")) {
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.16. add_uri_param usage
|
|
|
+ Example 1.17. add_uri_param usage
|
|
|
...
|
|
|
add_uri_param("nat=yes");
|
|
|
...
|
|
|
|
|
|
-4.8. get_uri_param(name, var)
|
|
|
+4.9. get_uri_param(name, var)
|
|
|
|
|
|
Get the value of RURI parameter.
|
|
|
|
|
@@ -572,12 +592,12 @@ add_uri_param("nat=yes");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.17. add_uri_param usage
|
|
|
+ Example 1.18. add_uri_param usage
|
|
|
...
|
|
|
get_uri_param("nat", "$var(nat)");
|
|
|
...
|
|
|
|
|
|
-4.9. uri_param_rm(param)
|
|
|
+4.10. uri_param_rm(param)
|
|
|
|
|
|
Remove parameter from Request URI.
|
|
|
|
|
@@ -586,14 +606,14 @@ get_uri_param("nat", "$var(nat)");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.18. uri_param_rm usage
|
|
|
+ Example 1.19. uri_param_rm usage
|
|
|
...
|
|
|
if (uri_param_rm("param1")) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.10. tel2sip(uri, hostpart, result)
|
|
|
+4.11. tel2sip(uri, hostpart, result)
|
|
|
|
|
|
Converts URI in first param (pseudo variable or string) to SIP URI, if
|
|
|
it is a tel URI. If conversion was done, writes resulting SIP URI to
|
|
@@ -612,7 +632,7 @@ if (uri_param_rm("param1")) {
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
BRANCH_ROUTE, or ONREPLY_ROUTE.
|
|
|
|
|
|
- Example 1.19. tel2sip usage
|
|
|
+ Example 1.20. tel2sip usage
|
|
|
...
|
|
|
# $ru: tel:+(34)-999-888-777
|
|
|
# $fu: sip:[email protected]
|
|
@@ -625,14 +645,14 @@ tel2sip("$ru", $fd", "$ru");
|
|
|
# $ru: sip:+12345678;ext=200;[email protected];user=phone
|
|
|
...
|
|
|
|
|
|
-4.11. is_e164(pseudo-variable)
|
|
|
+4.12. is_e164(pseudo-variable)
|
|
|
|
|
|
Checks if string value of pseudo variable argument is an E164 number.
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE, and
|
|
|
LOCAL_ROUTE.
|
|
|
|
|
|
- Example 1.20. is_e164 usage
|
|
|
+ Example 1.21. is_e164 usage
|
|
|
...
|
|
|
if (is_e164("$fU")) { # Check From header URI user part
|
|
|
...
|
|
@@ -643,13 +663,13 @@ if (is_e164("$avp(i:705)") {
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.12. is_uri_user_e164(pseudo-variable)
|
|
|
+4.13. is_uri_user_e164(pseudo-variable)
|
|
|
|
|
|
Checks if userpart of URI stored in pseudo variable is E164 number.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.21. is_uri_user_e164 usage
|
|
|
+ Example 1.22. is_uri_user_e164 usage
|
|
|
...
|
|
|
if (is_uri_user_e164("$fu")) { # Check From header URI user part
|
|
|
...
|
|
@@ -660,13 +680,13 @@ if (is_uri_user_e164("$avp(i:705)") {
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.13. is_uri(pseudo-variable)
|
|
|
+4.14. is_uri(pseudo-variable)
|
|
|
|
|
|
Checks if string value of pseudo variable argument is a valid uri.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.22. is_uri usage
|
|
|
+ Example 1.23. is_uri usage
|
|
|
...
|
|
|
if (is_uri("$var(x)")) { # Check if variable contains a uri
|
|
|
...
|
|
@@ -677,14 +697,14 @@ if (is_uri("$avp(i:705)") {
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.14. is_tel_number(tval)
|
|
|
+4.15. is_tel_number(tval)
|
|
|
|
|
|
Checks if the parameter value is a telephone number: starting with one
|
|
|
optional +, followed by digits. The parameter can include variables.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.23. is_tel_number usage
|
|
|
+ Example 1.24. is_tel_number usage
|
|
|
...
|
|
|
if (is_tel_number("$rU")) { # Test if R-URI user is telephone number
|
|
|
...
|
|
@@ -694,35 +714,35 @@ if (is_tel_number("+24242424")) {
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.15. is_numeric(tval)
|
|
|
+4.16. is_numeric(tval)
|
|
|
|
|
|
Checks if the parameter value consists solely of decimal digits. The
|
|
|
parameter can include variables.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.24. is_numeric usage
|
|
|
+ Example 1.25. is_numeric usage
|
|
|
...
|
|
|
if (is_numeric("$rU")) { # Test if R-URI user consists of decimal digits
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.16. is_alphanum(tval)
|
|
|
+4.17. is_alphanum(tval)
|
|
|
|
|
|
Checks if the parameter value consists solely of decimal digits or
|
|
|
alphabetic ASCII characters. The parameter can include variables.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.25. is_alphanum usage
|
|
|
+ Example 1.26. is_alphanum usage
|
|
|
...
|
|
|
if (is_alphanum("$rU")) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.17. is_alphanumex(tval, eset)
|
|
|
+4.18. is_alphanumex(tval, eset)
|
|
|
|
|
|
Checks if the value of parameter 'tval' consists solely of decimal
|
|
|
digits, alphabetic ASCII characters and the characters in the second
|
|
@@ -730,14 +750,14 @@ if (is_alphanum("$rU")) {
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.26. is_alphanumex usage
|
|
|
+ Example 1.27. is_alphanumex usage
|
|
|
...
|
|
|
if (is_alphanumex("$rU", "+.-_")) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.18. encode_contact(encoding_prefix,hostpart)
|
|
|
+4.19. encode_contact(encoding_prefix,hostpart)
|
|
|
|
|
|
This function will encode uri-s inside Contact header in the following
|
|
|
manner sip:username:password@ip:port;transport=protocol goes
|
|
@@ -759,12 +779,12 @@ if (is_alphanumex("$rU", "+.-_")) {
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
|
|
|
|
|
|
- Example 1.27. encode_contact usage
|
|
|
+ Example 1.28. encode_contact usage
|
|
|
...
|
|
|
if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4");
|
|
|
...
|
|
|
|
|
|
-4.19. decode_contact()
|
|
|
+4.20. decode_contact()
|
|
|
|
|
|
This function will decode the request URI. If the RURI is in the format
|
|
|
sip:encoding_prefix*username*ip*port*protocol@hostpart it will be
|
|
@@ -777,12 +797,12 @@ if (src_ip == 10.0.0.0/8) encode_contact("natted_client","1.2.3.4");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.28. decode_contact usage
|
|
|
+ Example 1.29. decode_contact usage
|
|
|
...
|
|
|
if (uri =~ "^sip:natted_client") { decode_contact(); }
|
|
|
...
|
|
|
|
|
|
-4.20. decode_contact_header()
|
|
|
+4.21. decode_contact_header()
|
|
|
|
|
|
This function will decode URIs inside Contact header. If the URI in the
|
|
|
format sip:encoding_prefix*username*ip*port*protocol@hostpart it will
|
|
@@ -795,7 +815,7 @@ if (uri =~ "^sip:natted_client") { decode_contact(); }
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
|
|
|
|
|
|
- Example 1.29. decode_contact_header usage
|
|
|
+ Example 1.30. decode_contact_header usage
|
|
|
...
|
|
|
reply_route[2] {
|
|
|
...
|
|
@@ -804,13 +824,13 @@ reply_route[2] {
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.21. cmp_uri(str1, str2)
|
|
|
+4.22. cmp_uri(str1, str2)
|
|
|
|
|
|
The function returns true if the two parameters matches as SIP URI.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.30. cmp_uri usage
|
|
|
+ Example 1.31. cmp_uri usage
|
|
|
...
|
|
|
if(cmp_uri("$ru", "sip:[email protected]"))
|
|
|
{
|
|
@@ -818,14 +838,14 @@ if(cmp_uri("$ru", "sip:[email protected]"))
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.22. cmp_aor(str1, str2)
|
|
|
+4.23. cmp_aor(str1, str2)
|
|
|
|
|
|
The function returns true if the two parameters matches as AoR. The
|
|
|
parameters have to be SIP URIs.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.31. cmp_aor usage
|
|
|
+ Example 1.32. cmp_aor usage
|
|
|
...
|
|
|
if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
|
|
|
{
|
|
@@ -833,7 +853,7 @@ if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.23. append_rpid_hf()
|
|
|
+4.24. append_rpid_hf()
|
|
|
|
|
|
Appends to the message a Remote-Party-ID header that contains header
|
|
|
'Remote-Party-ID: ' followed by the saved value of the SIP URI received
|
|
@@ -844,14 +864,14 @@ if(cmp_aor("[email protected]", "sip:kamailio@$fd"))
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
BRANCH_ROUTE.
|
|
|
|
|
|
- Example 1.32. append_rpid_hf usage
|
|
|
+ Example 1.33. append_rpid_hf usage
|
|
|
...
|
|
|
append_rpid_hf(); # Append Remote-Party-ID header field
|
|
|
...
|
|
|
|
|
|
-4.24. append_rpid_hf(prefix, suffix)
|
|
|
+4.25. append_rpid_hf(prefix, suffix)
|
|
|
|
|
|
- This function is the same as Section 4.23, “ append_rpid_hf()”. The
|
|
|
+ This function is the same as Section 4.24, “ append_rpid_hf()”. The
|
|
|
only difference is that it accepts two parameters--prefix and suffix to
|
|
|
be added to Remote-Party-ID header field. This function ignores
|
|
|
rpid_prefix and rpid_suffix parameters, instead of that allows to set
|
|
@@ -868,13 +888,13 @@ append_rpid_hf(); # Append Remote-Party-ID header field
|
|
|
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE,
|
|
|
BRANCH_ROUTE.
|
|
|
|
|
|
- Example 1.33. append_rpid_hf(prefix, suffix) usage
|
|
|
+ Example 1.34. append_rpid_hf(prefix, suffix) usage
|
|
|
...
|
|
|
# Append Remote-Party-ID header field
|
|
|
append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes");
|
|
|
...
|
|
|
|
|
|
-4.25. is_rpid_user_e164()
|
|
|
+4.26. is_rpid_user_e164()
|
|
|
|
|
|
The function checks if the SIP URI received from the database or radius
|
|
|
server and will potentially be used in Remote-Party-ID header field
|
|
@@ -884,68 +904,68 @@ append_rpid_hf("", ";party=calling;id-type=subscriber;screen=yes");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.34. is_rpid_user_e164 usage
|
|
|
+ Example 1.35. is_rpid_user_e164 usage
|
|
|
...
|
|
|
if (is_rpid_user_e164()) {
|
|
|
# do something here
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.26. set_uri_user(uri, user)
|
|
|
+4.27. set_uri_user(uri, user)
|
|
|
|
|
|
Sets userpart of SIP URI stored in writable pseudo variable 'uri' to
|
|
|
value of pseudo variable 'user'.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.35. set_uri_user usage
|
|
|
+ Example 1.36. set_uri_user usage
|
|
|
...
|
|
|
$var(uri) = "sip:user@host";
|
|
|
$var(user) = "new_user";
|
|
|
set_uri_user("$var(uri)", "$var(user)");
|
|
|
...
|
|
|
|
|
|
-4.27. set_uri_host(uri, host)
|
|
|
+4.28. set_uri_host(uri, host)
|
|
|
|
|
|
Sets hostpart of SIP URI stored in writable pseudo variable 'uri' to
|
|
|
value of pseudo variable 'host'.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.36. set_uri_host usage
|
|
|
+ Example 1.37. set_uri_host usage
|
|
|
...
|
|
|
$var(uri) = "sip:user@host";
|
|
|
$var(host) = "new_host";
|
|
|
set_uri_host("$var(uri)", "$var(host)");
|
|
|
...
|
|
|
|
|
|
-4.28. is_request()
|
|
|
+4.29. is_request()
|
|
|
|
|
|
Return true if the SIP message is a request.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.37. is_request usage
|
|
|
+ Example 1.38. is_request usage
|
|
|
...
|
|
|
if (is_request()) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.29. is_reply()
|
|
|
+4.30. is_reply()
|
|
|
|
|
|
Return true if the SIP message is a reply.
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.38. is_reply usage
|
|
|
+ Example 1.39. is_reply usage
|
|
|
...
|
|
|
if (is_reply()) {
|
|
|
...
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.30. is_gruu([uri])
|
|
|
+4.31. is_gruu([uri])
|
|
|
|
|
|
The function returns true if the uri is GRUU ('gr' parameter is
|
|
|
present): 1 - pub-gruu; 2 - temp-gruu.
|
|
@@ -956,12 +976,12 @@ if (is_reply()) {
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.39. is_gruu() usage
|
|
|
+ Example 1.40. is_gruu() usage
|
|
|
...
|
|
|
if(is_gruu()) { ... }
|
|
|
...
|
|
|
|
|
|
-4.31. is_supported(option)
|
|
|
+4.32. is_supported(option)
|
|
|
|
|
|
Function returns true if given option is listed in Supported header(s)
|
|
|
(if any) of the request. Currently the following options are known:
|
|
@@ -969,12 +989,12 @@ if(is_gruu()) { ... }
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.40. is_supported() usage
|
|
|
+ Example 1.41. is_supported() usage
|
|
|
...
|
|
|
if (is_supported("outbound")) { ... }
|
|
|
...
|
|
|
|
|
|
-4.32. is_first_hop()
|
|
|
+4.33. is_first_hop()
|
|
|
|
|
|
The function returns true if the proxy is first hop after the original
|
|
|
sender. For incoming SIP requests, it means there is only one Via
|
|
@@ -988,24 +1008,24 @@ if (is_supported("outbound")) { ... }
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.41. is_first_hop() usage
|
|
|
+ Example 1.42. is_first_hop() usage
|
|
|
...
|
|
|
if(is_first_hop()) { ... }
|
|
|
...
|
|
|
|
|
|
-4.33. sip_p_charging_vector(flags)
|
|
|
+4.34. sip_p_charging_vector(flags)
|
|
|
|
|
|
Manage the P-Charging-Vector header (RFC7315). The flags can be: 'r' -
|
|
|
remove; 'g' - generate; 'f' - force (remove + generate).
|
|
|
|
|
|
This function can be used from ANY_ROUTE.
|
|
|
|
|
|
- Example 1.42. sip_p_charging_vector() usage
|
|
|
+ Example 1.43. sip_p_charging_vector() usage
|
|
|
...
|
|
|
sip_p_charging_vector("g");
|
|
|
...
|
|
|
|
|
|
-4.34. contact_param_encode(pname, saddr)
|
|
|
+4.35. contact_param_encode(pname, saddr)
|
|
|
|
|
|
This function encodes URI inside Contact headers by building a new URI
|
|
|
from 'saddr' parameter and adding a parameter with the name 'pname'
|
|
@@ -1018,14 +1038,14 @@ sip_p_charging_vector("g");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
|
|
|
|
|
|
- Example 1.43. contact_param_encode usage
|
|
|
+ Example 1.44. contact_param_encode usage
|
|
|
...
|
|
|
if (is_method("REGISTER") and src_ip == 10.0.0.0/8) {
|
|
|
contact_param_encode("ksu", "sip:1.2.3.4:5060;transport=tcp");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.35. contact_param_decode(pname)
|
|
|
+4.36. contact_param_decode(pname)
|
|
|
|
|
|
This function decodes URI inside Contact headers by building a new URI
|
|
|
from 'pname' parameter, decoding its value from Base64URL.
|
|
@@ -1036,14 +1056,14 @@ if (is_method("REGISTER") and src_ip == 10.0.0.0/8) {
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
|
|
|
|
|
|
- Example 1.44. contact_param_decode usage
|
|
|
+ Example 1.45. contact_param_decode usage
|
|
|
...
|
|
|
if (is_method("REGISTER") and src_ip == 1.2.3.4) {
|
|
|
contact_param_decode("ksu");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.36. contact_param_decode_uri(pname)
|
|
|
+4.37. contact_param_decode_uri(pname)
|
|
|
|
|
|
This function decodes R-URI (request URI) by building a new R-URI from
|
|
|
'pname' parameter, decoding its value from Base64URL.
|
|
@@ -1054,14 +1074,14 @@ if (is_method("REGISTER") and src_ip == 1.2.3.4) {
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.45. contact_param_decode_ruri usage
|
|
|
+ Example 1.46. contact_param_decode_ruri usage
|
|
|
...
|
|
|
if (is_method("INVITE") and src_ip == 1.2.3.4) {
|
|
|
contact_param_decode_ruri("ksu");
|
|
|
}
|
|
|
...
|
|
|
|
|
|
-4.37. contact_param_rm(pname)
|
|
|
+4.38. contact_param_rm(pname)
|
|
|
|
|
|
This function removes the parameter from the URIs inside the Contact
|
|
|
headers.
|
|
@@ -1071,7 +1091,7 @@ if (is_method("INVITE") and src_ip == 1.2.3.4) {
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE.
|
|
|
|
|
|
- Example 1.46. contact_param_rm usage
|
|
|
+ Example 1.47. contact_param_rm usage
|
|
|
...
|
|
|
if (is_method("REGISTER") and src_ip == 1.2.3.4) {
|
|
|
contact_param_rm("myparam");
|