[svn-commits] oej: branch oej/pgtips-srv-and-outbound-stuff-1.8 r421665 - in /team/oej/pgti...
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Aug 21 04:46:34 CDT 2014
Author: oej
Date: Thu Aug 21 04:46:28 2014
New Revision: 421665
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=421665
Log:
Small changes and stuff
Modified:
team/oej/pgtips-srv-and-outbound-stuff-1.8/README.pgtips-srv-records
team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c
Modified: team/oej/pgtips-srv-and-outbound-stuff-1.8/README.pgtips-srv-records
URL: http://svnview.digium.com/svn/asterisk/team/oej/pgtips-srv-and-outbound-stuff-1.8/README.pgtips-srv-records?view=diff&rev=421665&r1=421664&r2=421665
==============================================================================
--- team/oej/pgtips-srv-and-outbound-stuff-1.8/README.pgtips-srv-records (original)
+++ team/oej/pgtips-srv-and-outbound-stuff-1.8/README.pgtips-srv-records Thu Aug 21 04:46:28 2014
@@ -172,14 +172,18 @@
=====
1. Expose SRV records to the SIP channel. Remove when response is received (1xx or higher).
- The API is changed to support a module accessing SRV records.
+ - Done.
2. Make sure SIP channel selects right with IPv4/IPv6.
- Done for [peers] in the sip.conf file.
- Not done for calling a DNS name in the dial string (some code is there though)
3. Provide hooks for happy earballs if server is dual stack and we're dual stack
+ - Postponed, not part of this project
4. Implement failover to next server in list if transaction fails.
- Started
5. Make sure we use the DNS TTL properly
+ - Needs further work
6. Use SRV for outbound proxys too, with failover
+ - Needs check
7. Add multiple peers (shadowpeers), one for each SRv entry/IP address
- delete existing ones if needed
- Done.
Modified: team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c?view=diff&rev=421665&r1=421664&r2=421665
==============================================================================
--- team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c (original)
+++ team/oej/pgtips-srv-and-outbound-stuff-1.8/channels/chan_sip.c Thu Aug 21 04:46:28 2014
@@ -4445,6 +4445,7 @@
if (p->outboundproxy) {
p->sa = p->outboundproxy->ip;
/* We need the SRV context as well */
+
}
finalize_content(req);
@@ -4474,7 +4475,6 @@
unsigned short port, prio, weight;
ast_debug(3, "====>> SRV failover. Changing to next SRV record in the list\n");
/* XXX SRV FAILOVER HERE XXX */
- /* Hmm. If this is a peer - should we use the peer srvcontext? */
if(ast_srv_get_next_record(p->srvcontext, &host, &port, &prio, &weight)) {
ast_log(LOG_WARNING, "No more hosts: %s\n", p->srvdomain);
res = -1;
@@ -5794,6 +5794,9 @@
if (addr) {
/* This address should be updated using dnsmgr */
ast_sockaddr_copy(&dialog->sa, addr);
+ if (ast_sockaddr_port(addr)) {
+ ast_sockaddr_set_port(&dialog->sa, ast_sockaddr_port(addr));
+ }
} else {
/* Let's see if we can find the host in DNS. First try DNS SRV records,
@@ -13859,6 +13862,7 @@
/*dnsmgr refresh disabled, no reference added! */
registry_unref(r, "remove reg ref, dnsmgr disabled");
}
+ ast_debug(3, " --- Address set to %s port %d \n", ast_sockaddr_stringify_host(&r->us), ast_sockaddr_port(&r->us));
}
if (peer) {
peer = unref_peer(peer, "removing peer ref for dnsmgr_lookup");
@@ -13924,7 +13928,7 @@
p->socket.port =
htons(ast_sockaddr_port(&sip_tcp_desc.local_address));
}
- if (!r->dnsmgr && r->portno) {
+ if (!ast_sockaddr_port(&r->us) && !r->dnsmgr && r->portno) {
ast_sockaddr_set_port(&p->sa, r->portno);
ast_sockaddr_set_port(&p->recv, r->portno);
ast_debug(2, "Confusing code set port to %d\n", r->portno);
@@ -13949,6 +13953,7 @@
r->regattempts++;
return 0;
}
+ ast_debug(3, " --- 2. Address (p->sa) set to %s port %d \n", ast_sockaddr_stringify_host(&p->sa), ast_sockaddr_port(&p->sa));
/* Copy back Call-ID in case create_addr changed it */
ast_string_field_set(r, callid, p->callid);
@@ -13994,6 +13999,7 @@
internal network so we can register through nat
*/
ast_sip_ouraddrfor(&p->sa, &p->ourip, p);
+ ast_debug(3, " --- 3. Address (p->sa) set to %s port %d \n", ast_sockaddr_stringify_host(&p->sa), ast_sockaddr_port(&p->sa));
build_contact(p);
}
More information about the svn-commits
mailing list