sccp_manager/Technical.notes/help.tftprewrite
2019-04-23 14:11:20 +03:00

59 lines
3.5 KiB
Plaintext

diff --git a/src/sccp_config.c b/src/sccp_config.c
index e15d19db..c78bcbf2 100644
--- a/src/sccp_config.c
+++ b/src/sccp_config.c
@@ -3062,6 +3062,7 @@ int sccp_manager_config_metadata(struct mansession *s, const struct message *m)
uint i;
const char *id = astman_get_header(m, "ActionID");
const char *req_segment = astman_get_header(m, "Segment");
+ const char *req_listresult = astman_get_header(m, "ListResult");
uint comma = 0;
if (sccp_strlen_zero(req_segment)) { // return all segments
@@ -3180,11 +3181,22 @@ int sccp_manager_config_metadata(struct mansession *s, const struct message *m)
sccpConfigSegment = &sccpConfigSegments[i];
const SCCPConfigOption *config = sccpConfigSegment->config;
- astman_append(s, "Response: Success\r\n");
- if (!ast_strlen_zero(id)) {
- astman_append(s, "ActionID: %s\r\n", id);
+ if (sccp_strcaseequals(req_listresult, "yes")) {
+ //astman_append(s, "Response: Follows\r\n\r\n");
+ //astman_append(s, "EventList: Start\r\n");
+ astman_send_listack(s, m, "SCCPConfigMetaData Follows", "Start");
+ astman_append(s, "Event: SCCPConfigMetaData\r\n");
+ if (!ast_strlen_zero(id)) {
+ astman_append(s, "ActionID: %s\r\n", id);
+ }
+ } else if (sccp_strcaseequals(req_listresult, "freepbx")) {
+ astman_append(s, "Response: Follows\r\n");
+ } else {
+ astman_append(s, "Response: Success\r\n");
+ if (!ast_strlen_zero(id)) {
+ astman_append(s, "ActionID: %s\r\n", id);
+ }
}
-
astman_append(s, "JSON: {");
astman_append(s, "\"Segment\":\"%s\",", sccpConfigSegment->name);
astman_append(s, "\"Options\":[");
@@ -3296,8 +3308,17 @@ int sccp_manager_config_metadata(struct mansession *s, const struct message *m)
comma = 1;
}
}
- astman_append(s, "]}\r\n\r\n");
+ astman_append(s, "]}\r\n");
total++;
+ if (sccp_strcaseequals(req_listresult, "yes")) {
+ astman_append(s,
+ "\r\nEvent: SCCPConfigMetaDataComplete\r\n"
+ "EventList: Complete\r\n"
+ "ListItems: %d\r\n\r\n", total);
+ } else if (sccp_strcaseequals(req_listresult, "freepbx")) {
+ astman_append(s, "--END COMMAND--\r\n");
+ }
+ astman_append(s, "\r\n");
}
}
}