Commit 54d55e1b authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Patched asterisk so domain setting (if configured) from transport section will...

Patched asterisk so domain setting (if configured) from transport section will be used in CONTACT and VIA headers instead of external_signaling_address
parent 81355056
......@@ -22,6 +22,7 @@ all: asterisk-socket
mv -v /etc/gshadow /data/etc/gshadow
ln -sv /data/etc/gshadow /etc/gshadow
tar xf asterisk-18.2.0.tar.gz
patch -Np1 -d asterisk-18.2.0 < asterisk-18.2.0-fqdn_contact.patch
cd asterisk-18.2.0 && ./configure --prefix=/usr
$(MAKE) -C asterisk-18.2.0
$(MAKE) -C asterisk-18.2.0 install
......
diff -uNr asterisk-18.2.0/res/res_pjsip_nat.c asterisk-18.2.0-fqdn_contact/res/res_pjsip_nat.c
--- asterisk-18.2.0/res/res_pjsip_nat.c 2021-01-22 03:03:58.000000000 +1030
+++ asterisk-18.2.0-fqdn_contact/res/res_pjsip_nat.c 2021-03-23 15:27:31.418938637 +1030
@@ -434,7 +434,11 @@
if (!ast_sockaddr_isnull(&transport_state->external_signaling_address)) {
/* Update the contact header with the external address */
if (uri || (uri = nat_get_contact_sip_uri(tdata))) {
- pj_strdup2(tdata->pool, &uri->host, ast_sockaddr_stringify_host(&transport_state->external_signaling_address));
+ if (!ast_strlen_zero(transport->domain)) {
+ pj_strdup2(tdata->pool, &uri->host, transport->domain);
+ } else {
+ pj_strdup2(tdata->pool, &uri->host, ast_sockaddr_stringify_host(&transport_state->external_signaling_address));
+ }
if (transport->external_signaling_port) {
uri->port = transport->external_signaling_port;
ast_debug(4, "Re-wrote Contact URI port to %d\n", uri->port);
@@ -443,7 +447,11 @@
/* Update the via header if relevant */
if ((tdata->msg->type == PJSIP_REQUEST_MSG) && (via || (via = pjsip_msg_find_hdr(tdata->msg, PJSIP_H_VIA, NULL)))) {
- pj_strdup2(tdata->pool, &via->sent_by.host, ast_sockaddr_stringify_host(&transport_state->external_signaling_address));
+ if (!ast_strlen_zero(transport->domain)) {
+ pj_strdup2(tdata->pool, &via->sent_by.host, transport->domain);
+ } else {
+ pj_strdup2(tdata->pool, &via->sent_by.host, ast_sockaddr_stringify_host(&transport_state->external_signaling_address));
+ }
if (transport->external_signaling_port) {
via->sent_by.port = transport->external_signaling_port;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment