summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchannels/chan_sip.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index a16dfea2c..2f512b68f 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4462,7 +4462,7 @@ static void list_route(struct sip_route *route)
}
}
-/*--- build_route: Build route headers ---*/
+/*--- build_route: Build route list from Record-Route header ---*/
static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards)
{
struct sip_route *thishop, *head, *tail;
@@ -7891,6 +7891,8 @@ static int sip_poke_noanswer(void *data)
}
/*--- sip_poke_peer: Check availability of peer, also keep NAT open ---*/
+/* This is done with the interval in qualify= option in sip.conf */
+/* Default is 2 seconds */
static int sip_poke_peer(struct sip_peer *peer)
{
struct sip_pvt *p;
@@ -7916,6 +7918,12 @@ static int sip_poke_peer(struct sip_peer *peer)
}
memcpy(&p->sa, &peer->addr, sizeof(p->sa));
memcpy(&p->recv, &peer->addr, sizeof(p->sa));
+
+ /* Send options to peer's fullcontact */
+ if (!ast_strlen_zero(peer->fullcontact)) {
+ strncpy (p->fullcontact, peer->fullcontact, sizeof(p->fullcontact));
+ }
+
if (!ast_strlen_zero(p->tohost))
strncpy(p->tohost, peer->tohost, sizeof(p->tohost) - 1);
else