Functionality for send sms with using IMS service. (#1477)
* Update * update * Update * update * new version of profile for send sms * update * update Co-authored-by: root <root@lfv.unassigned-domain> Co-authored-by: eug <eug@lfv.unassigned-domain>
This commit is contained in:
parent
fb8ebcdbea
commit
aa6368132e
|
@ -26,6 +26,8 @@ logger:
|
|||
hss:
|
||||
freeDiameter: @sysconfdir@/freeDiameter/hss.conf
|
||||
|
||||
# sms_over_ims: "sip:smsc.mnc001.mcc001.3gppnetwork.org:7060;transport=tcp"
|
||||
|
||||
#
|
||||
# parameter:
|
||||
#
|
||||
|
|
|
@ -323,6 +323,9 @@ int hss_context_parse_config(void)
|
|||
ogs_warn("unknown key `%s`", fd_key);
|
||||
}
|
||||
}
|
||||
} else if (!strcmp(hss_key, "sms_over_ims")) {
|
||||
self.sms_over_ims =
|
||||
ogs_yaml_iter_value(&hss_iter);
|
||||
} else
|
||||
ogs_warn("unknown key `%s`", hss_key);
|
||||
}
|
||||
|
@ -952,6 +955,190 @@ char *hss_cx_download_user_data(
|
|||
ogs_assert(user_data);
|
||||
}
|
||||
|
||||
if(self.sms_over_ims) {
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_ifc_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_priority_s,
|
||||
"2",
|
||||
ogs_diam_cx_xml_priority_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_tp_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_cnf_s,
|
||||
"1",
|
||||
ogs_diam_cx_xml_cnf_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_spt_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_condition_negated_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_condition_negated_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_group_s,
|
||||
"1",
|
||||
ogs_diam_cx_xml_group_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_method_s,
|
||||
"MESSAGE",
|
||||
ogs_diam_cx_xml_method_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_extension_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_registration_type_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_registration_type_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_extension_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_spt_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_spt_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_condition_negated_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_condition_negated_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_group_s,
|
||||
"2",
|
||||
ogs_diam_cx_xml_group_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_sip_hdr_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_header_s,
|
||||
"Content-Type",
|
||||
ogs_diam_cx_xml_header_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_content_s,
|
||||
"application/vnd.3gpp.sms",
|
||||
ogs_diam_cx_xml_content_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_sip_hdr_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_extension_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_registration_type_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_registration_type_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_extension_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_spt_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_spt_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_condition_negated_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_condition_negated_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_group_s,
|
||||
"3",
|
||||
ogs_diam_cx_xml_group_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_session_case_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_session_case_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_extension_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_registration_type_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_registration_type_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_extension_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_spt_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_tp_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_app_server_s);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_server_name_s,
|
||||
self.sms_over_ims,
|
||||
ogs_diam_cx_xml_server_name_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s%s%s",
|
||||
ogs_diam_cx_xml_default_handling_s,
|
||||
"0",
|
||||
ogs_diam_cx_xml_default_handling_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_app_server_e);
|
||||
ogs_assert(user_data);
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_ifc_e);
|
||||
ogs_assert(user_data);
|
||||
}
|
||||
|
||||
user_data = ogs_mstrcatf(user_data, "%s",
|
||||
ogs_diam_cx_xml_service_profile_e);
|
||||
ogs_assert(user_data);
|
||||
|
|
|
@ -38,6 +38,7 @@ extern int __hss_log_domain;
|
|||
typedef struct _hss_context_t {
|
||||
const char *diam_conf_path;/* HSS Diameter conf path */
|
||||
ogs_diam_config_t *diam_config; /* HSS Diameter config */
|
||||
const char *sms_over_ims; /* SMS over IMS */
|
||||
|
||||
ogs_thread_mutex_t db_lock;
|
||||
ogs_thread_mutex_t cx_lock;
|
||||
|
|
Loading…
Reference in New Issue