T#7824: VoiceService PrefixInfo data model missing entries

This commit is contained in:
Amin Ben Ramdhane 2022-05-20 14:14:55 +01:00
parent 1f9a518bab
commit 811c93157d
2 changed files with 19 additions and 10 deletions

View file

@ -17,7 +17,7 @@ char *RegistrarServerTransport[] = {"UDP", "TCP", "TLS", "SCTP", NULL};
char *DTMFMethod[] = {"InBand", "RFC4733", "SIPInfo", NULL};
char *JitterBufferType[] = {"Static", "Dynamic", NULL};
char *KeyingMethods[] = {"Null", "Static", "SDP", "IKE", NULL};
char *FacilityAction[] = {"", "AA_REGISTER", "AA_ERASE", "AA_INTERROGATE", "CA_ACTIVATE", "CCBS_ACTIVATE", "CCBS_DEACTIVATE", "CCBS_INTERROGATE", "CCNR_ACTIVATE", "CCNR_DEACTIVATE", "CCNR_INTERROGATE", "CFB_REGISTER", "CFB_ACTIVATE", "CFB_DEACTIVATE", "CFB_ERASE", "CFB_INTERROGATE", "CFNR_REGISTER", "CFNR_ACTIVATE", "CFNR_DEACTIVATE", "CFNR_ERASE", "CFNR_INTERROGATE", "CFNR_TIMER", "CFT_ACTIVATE", "CFT_DEACTIVATE", "CFT_INTERROGATE", "CFU_REGISTER", "CFU_ACTIVATE", "CFU_DEACTIVATE", "CFU_ERASE", "CFU_INTERROGATE", "CLIR_ACTIVATE", "CLIR_DEACTIVATE", "CLIR_INTERROGATE", "CP_INVOKE", "CW_ACTIVATE", "CW_DEACTIVATE", "CW_INVOKE", "DND_ACTIVATE", "DND_DEACTIVATE", "DND_INTERROGATE", "EXT_INVOKE", "LINE_INVOKE", "MAILBOX_INVOKE", "OCB_ACTIVATE", "OCB_DEACTIVATE", "OCB_INTERROGATE", "PSO_ACTIVATE", "PW_SET", "SCF_ACTIVATE", "SCF_DEACTIVATE", "SCF_INTERROGATE", "SCREJ_ACTIVATE", "SCREJ_DEACTIVATE", "SCREJ_INTERROGATE", "SR_ACTIVATE", "SR_DEACTIVATE", "SR_INTERROGATE", NULL};
char *FacilityAction[] = {"AA_REGISTER", "AA_ERASE", "AA_INTERROGATE", "CA_ACTIVATE", "CCBS_ACTIVATE", "CCBS_DEACTIVATE", "CCBS_INTERROGATE", "CCNR_ACTIVATE", "CCNR_DEACTIVATE", "CCNR_INTERROGATE", "CFB_REGISTER", "CFB_ACTIVATE", "CFB_DEACTIVATE", "CFB_ERASE", "CFB_INTERROGATE", "CFNR_REGISTER", "CFNR_ACTIVATE", "CFNR_DEACTIVATE", "CFNR_ERASE", "CFNR_INTERROGATE", "CFNR_TIMER", "CFT_ACTIVATE", "CFT_DEACTIVATE", "CFT_INTERROGATE", "CFU_REGISTER", "CFU_ACTIVATE", "CFU_DEACTIVATE", "CFU_ERASE", "CFU_INTERROGATE", "CLIR_ACTIVATE", "CLIR_DEACTIVATE", "CLIR_INTERROGATE", "CP_INVOKE", "CW_ACTIVATE", "CW_DEACTIVATE", "CW_INVOKE", "DND_ACTIVATE", "DND_DEACTIVATE", "DND_INTERROGATE", "EXT_INVOKE", "LINE_INVOKE", "MAILBOX_INVOKE", "OCB_ACTIVATE", "OCB_DEACTIVATE", "OCB_INTERROGATE", "PSO_ACTIVATE", "PW_SET", "SCF_ACTIVATE", "SCF_DEACTIVATE", "SCF_INTERROGATE", "SCREJ_ACTIVATE", "SCREJ_DEACTIVATE", "SCREJ_INTERROGATE", "SR_ACTIVATE", "SR_DEACTIVATE", "SR_INTERROGATE", NULL};
struct codec_info supported_codecs[MAX_SUPPORTED_CODECS];
int codecs_num;

View file

@ -245,11 +245,6 @@ static int browseServicesVoiceServiceCallControlNumberingPlanPrefixInfo(struct d
synchronize_specific_config_sections_with_dmmap("asterisk", "prefixinfo", "dmmap_asterisk", &dup_list);
list_for_each_entry(p, &dup_list, list) {
char *type = NULL;
dmuci_get_value_by_section_string(p->config_section, "facilityaction", &type);
if (dm_validate_string(type, -1, -1, FacilityAction, NULL))
continue;
inst = handle_instance(dmctx, parent_node, p->dmmap_section, "prefixinfoinstance", "prefixinfoalias");
@ -1216,19 +1211,33 @@ static int set_ServicesVoiceServiceCallControlNumberingPlanPrefixInfo_PrefixRang
/*#Device.Services.VoiceService.{i}.CallControl.NumberingPlan.{i}.PrefixInfo.{i}.FacilityAction!UCI:asterisk/prefixinfo,@i-1/facilityaction*/
static int get_ServicesVoiceServiceCallControlNumberingPlanPrefixInfo_FacilityAction(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
dmuci_get_value_by_section_string(((struct dmmap_dup *)data)->config_section, "facilityaction", value);
char *type = NULL;
dmuci_get_value_by_section_string(((struct dmmap_dup *)data)->config_section, "facilityaction", &type);
if (dm_validate_string(type, -1, -1, FacilityAction, NULL))
dmasprintf(value, "%s%s", BBF_VENDOR_PREFIX, type);
else
*value = type;
return 0;
}
static int set_ServicesVoiceServiceCallControlNumberingPlanPrefixInfo_FacilityAction(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action)
{
char *p = NULL;
switch (action) {
case VALUECHECK:
if (dm_validate_string(value, -1, -1, FacilityAction, NULL))
return FAULT_9007;
if (*value == 0 || strncmp(value, BBF_VENDOR_PREFIX, strlen(BBF_VENDOR_PREFIX)) == 0)
break;
if (dm_validate_string(value, -1, -1, FacilityAction, NULL))
return FAULT_9007;
break;
case VALUESET:
dmuci_set_value_by_section(((struct dmmap_dup *)data)->config_section, "facilityaction", value);
p = strstr(value, BBF_VENDOR_PREFIX);
dmuci_set_value_by_section(((struct dmmap_dup *)data)->config_section, "facilityaction", p ? p + strlen(BBF_VENDOR_PREFIX) : value);
break;
}
return 0;