<!-- Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for feature requests.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* http://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
If you submit a feature request (or enhancement) add the description of what you would like to be added.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment). -->
### Description
Currently the functions set_advertised_address and set_advertised_port only accept strings as parameters. Trying to use it with variable causes an error. Having the function using a hard coded value is not a good practice and in order to add flexibility to the script in different installations it would be nice to have this function accepting variables. Also, the 'advertise' option on the 'listen' parameter is not always desired because it apply for all messages sent via the socket, and there are situations where different advertised IP for the same interface are necessary.
### Expected behavior set_advertised_address should receive a variable as parameter and use its value to change the SIP headers.
### Actual observed behavior Kamailio won't start if set_advertised_address is used with a variable due to script parse error or it will set the SIP message with the literal string "$var(test)" for example, instead of using the value of $var(test).
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
``` # kamailio -v version: kamailio 5.2.2 (x86_64/linux) 67f967 flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: 67f967 compiled on 11:40:41 Mar 11 2019 with gcc 4.8.5
```
* **Operating System**:
<!-- Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...; Kernel details (output of `uname -a`) -->
``` # uname -a Linux voice-conn-kamailio-1 3.10.0-514.21.2.el7.x86_64 #1 SMP Tue Jun 20 12:24:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
```
After reading the purpose of the corex module, I think the idea can be changed to add a new function in the corex module which would do the same as the set_advertised_address, but accepting variables as parameters. Then there is no need to modify the old function.
+1
modparam("corex", "alias_subdomains", "example.org") and set_advertised_address with private variables would be quite convenient compared to using functions from rr module and xavp_via_params.
Hi, Its possible to use set_advertised_address with variable as parameter in any kamailio version? I've been trying the solution mentioned by @negbie before in last comment, but it doesn't work. I'm using kamailio 5.4.4.
This issue is stale because it has been open 6 weeks with no activity. Remove stale label or comment or this will be closed in 2 weeks.
Has anyone figured out a clean alternative for this problem?
Has anyone figured out a clean alternative for this problem?
unfortunately no, only using the different sip proxy server :(
In the end this is a free collaboration project. If nobody has time or financial resources to support the development of this new feature, then its probably not that important. This particular request is from 4 years ago. If you need some support in creating a PR, please ask on our sr-dev mailing list.
Actually is possible to set the address and port in Via added by Kamailio using variables for quite some time, see the example at:
- https://www.kamailio.org/docs/modules/stable/modules/corex.html#corex.f.via_...
That should offer the same functionality as set_advertised_address()/set_advertised_port(). If anyone wants to enhance the two functions as well, just make a PR.
Closed #2137 as completed.