Module: kamailio Branch: master Commit: 8e037f623ae6daf58e092d8a41430fd13d1d38ec URL: https://github.com/kamailio/kamailio/commit/8e037f623ae6daf58e092d8a41430fd1...
Author: Juha Heinanen jh@tutpro.com Committer: Juha Heinanen jh@tutpro.com Date: 2017-04-08T10:31:23+03:00
modules/siputils: made tel2sip to return 2 if no conversion was needed
---
Modified: src/modules/siputils/README Modified: src/modules/siputils/checks.c Modified: src/modules/siputils/doc/siputils_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/8e037f623ae6daf58e092d8a41430fd1... Patch: https://github.com/kamailio/kamailio/commit/8e037f623ae6daf58e092d8a41430fd1...
---
diff --git a/src/modules/siputils/README b/src/modules/siputils/README index e7e5b79..8815baa 100644 --- a/src/modules/siputils/README +++ b/src/modules/siputils/README @@ -561,8 +561,8 @@ get_uri_param("nat", "$var(nat)");
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 - third param (pseudo variable). Returns 1 if conversion succeeded or if - no conversion was needed. + third param (pseudo variable). Returns 1 if conversion succeeded, 2 if + no conversion was needed, and -1 in case of error.
The conversion follows the rules in RFC 3261 section 19.1.6: * Visual separators ( "-", ".", "(", ")" ) are removed from tel URI diff --git a/src/modules/siputils/checks.c b/src/modules/siputils/checks.c index ca6991f..0a33bdd 100644 --- a/src/modules/siputils/checks.c +++ b/src/modules/siputils/checks.c @@ -349,7 +349,7 @@ int add_uri_param(struct sip_msg* _msg, char* _param, char* _s2)
/* * Converts URI, if it is tel URI, to SIP URI. Returns 1, if - * conversion succeeded or if no conversion was needed, i.e., URI was not + * conversion succeeded and 2 if no conversion was needed, i.e., URI was not * tel URI. Returns -1, if conversion failed. Takes SIP URI hostpart from * second parameter and (if needed) writes the result to third paramater. */ @@ -364,15 +364,17 @@ int tel2sip(struct sip_msg* _msg, char* _uri, char* _hostpart, char* _res) /* get parameters */ if (get_str_fparam(&uri, _msg, (fparam_t*)_uri) < 0) { LM_ERR("failed to get uri value\n"); + return -1; } if (get_str_fparam(&hostpart, _msg, (fparam_t*)_hostpart) < 0) { LM_ERR("failed to get hostpart value\n"); + return -1; } res = (pv_spec_t *)_res;
/* check if anything needs to be done */ - if (uri.len < 4) return 1; - if (strncasecmp(uri.s, "tel:", 4) != 0) return 1; + if (uri.len < 4) return 2; + if (strncasecmp(uri.s, "tel:", 4) != 0) return 2;
/* reserve memory for clean tel uri */ tel_uri.s = pkg_malloc(uri.len+1); diff --git a/src/modules/siputils/doc/siputils_admin.xml b/src/modules/siputils/doc/siputils_admin.xml index e28f7a2..2031ad2 100644 --- a/src/modules/siputils/doc/siputils_admin.xml +++ b/src/modules/siputils/doc/siputils_admin.xml @@ -513,8 +513,8 @@ get_uri_param("nat", "$var(nat)"); 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 third param (pseudo variable). - Returns 1 if conversion succeeded or if no conversion - was needed. + Returns 1 if conversion succeeded, 2 if no conversion + was needed, and -1 in case of error. </para> <para> The conversion follows the rules in RFC 3261 section 19.1.6: