summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2016-08-22 17:08:19 -0500
committerMark Michelson <mmichelson@digium.com>2016-08-22 17:08:19 -0500
commitc16ef02318201f9db2e26512ec66cd62ec878d04 (patch)
tree2226422fecfff672b2020641fc01d06e78a0a8e2 /res
parente0c807c33d1ec3bef284e1bf50dfd8d200dc0fd4 (diff)
res_pjsip: Default endpoints to the "offline" status.
A recent change attempted to optimize startup by not updating contact status. Instead, code responsible for qualifying contacts updates the status as it becomes known. The code even accounts for contacts/AORs that are not set to be qualified. The problem, though, is when there are no contacts associated with an endpoint. A common case is when an endpoint is set to register its contacts but has not done so yet. In this case, prior to registration, the endpoint's device state will appear to be "not in use" and hints associated with that device will appear to be "idle". In actuality, the device state and hint should both appear as "unavailable". The reason for the failure is that the optimization change made all persistent endpoint states set to "unknown". The fix here is to change the hard-coded "unknown" to be "offline" instead. The default state will be offline until the qualifying code determines that the contact is actually online. This way, if there are no contacts at all, then the state stays as offline, and device state and hints appear correctly. ASTERISK-26269 #close Reported by nappsoft Change-Id: Ie99b84169393983453076f5e9c0d35ff313a456a
Diffstat (limited to 'res')
-rw-r--r--res/res_pjsip/pjsip_configuration.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c
index 64c822c3c..e495054f6 100644
--- a/res/res_pjsip/pjsip_configuration.c
+++ b/res/res_pjsip/pjsip_configuration.c
@@ -1292,7 +1292,7 @@ static struct ast_endpoint *persistent_endpoint_find_or_create(const struct ast_
return NULL;
}
- ast_endpoint_set_state(persistent->endpoint, AST_ENDPOINT_UNKNOWN);
+ ast_endpoint_set_state(persistent->endpoint, AST_ENDPOINT_OFFLINE);
ao2_link_flags(persistent_endpoints, persistent, OBJ_NOLOCK);
}