API 使用示例
目录
完整的用户配置
此示例演示从头开始配置新用户的完整工作流程。该过程涉及在创建用户之前创建所有必需的配置文件和组件。
先决条件: 此示例使用 jq 进行 JSON 解析。使用 apt-get install jq 或 brew install jq 安装。
相关部分:
# 1. 创建密钥集
KEY_SET_ID=$(curl -k -X POST https://hss.example.com:8443/api/key_set \
-H "Content-Type: application/json" \
-d '{
"ki": "0123456789ABCDEF0123456789ABCDEF",
"opc": "FEDCBA9876543210FEDCBA9876543210",
"authentication_algorithm": "milenage",
"amf": "8000",
"sqn": 0
}' | jq -r '.response.id')
# 2. 创建 APN QoS 配置文件
APN_QOS_ID=$(curl -k -X POST https://hss.example.com:8443/api/apn/qos_profile \
-H "Content-Type: application/json" \
-d '{
"name": "默认互联网 QoS",
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 50000,
"apn_ambr_ul_kbps": 25000,
"pre_emption_capability": true,
"pre_emption_vulnerability": true,
"qci": 9
}' | jq -r '.response.id')
# 3. 创建 APN 标识符
APN_ID=$(curl -k -X POST https://hss.example.com:8443/api/apn/identifier \
-H "Content-Type: application/json" \
-d '{
"apn": "internet",
"ip_version": "ipv4v6"
}' | jq -r '.response.id')
# 4. 创建 APN 配置文件
APN_PROFILE_ID=$(curl -k -X POST https://hss.example.com:8443/api/apn/profile \
-H "Content-Type: application/json" \
-d "{
\"apn_identifier_id\": $APN_ID,
\"apn_qos_profile_id\": $APN_QOS_ID,
\"name\": \"互联网 APN\"
}" | jq -r '.response.id')
# 5. 创建 EPC 配置文件
EPC_PROFILE_ID=$(curl -k -X POST https://hss.example.com:8443/api/epc/profile \
-H "Content-Type: application/json" \
-d "{
\"apn_profiles\": [$APN_PROFILE_ID],
\"name\": \"标准数据计划\",
\"network_access_mode\": \"packet_only\",
\"tracking_area_update_interval_seconds\": 600,
\"ue_ambr_dl_kbps\": 100000,
\"ue_ambr_ul_kbps\": 50000
}" | jq -r '.response.id')
# 6. 创建用户
SUBSCRIBER_ID=$(curl -k -X POST https://hss.example.com:8443/api/subscriber \
-H "Content-Type: application/json" \
-d "{
\"imsi\": \"001001123456789\",
\"key_set_id\": $KEY_SET_ID,
\"epc_profile_id\": $EPC_PROFILE_ID
}" | jq -r '.response.id')
echo "用户成功配置,ID: $SUBSCRIBER_ID"
创建内容:
此配置工作流程创建一个完整的用户,包括:
- 加密密钥 (密钥集) - 用于身份验证
- 数据服务配置文件 (EPC 配置文件) - 带宽和网络访问设置
- APN 配置 (APN 配置文件) - 带有 QoS 的接入点
- 用户记录 (用户) - 实际的用户实体
后续步骤:
另见:
- 多 MSISDN 文档 - 分配多个电话号码
- 配置文件文档 - 高级配置文件配置
完整的静态 IP 配置
此示例演示从头开始配置带有静态 IP 地址的用户。
场景: 配置一个需要在“互联网” APN 上使用静态 IPv4 地址的 IoT 设备用户。
# 先决条件:必须安装 jq (apt-get install jq 或 brew install jq)
# 1. 创建密钥集
KEY_SET_ID=$(curl -k -X POST https://hss.example.com:8443/api/key_set \
-H "Content-Type: application/json" \
-d '{
"ki": "0123456789ABCDEF0123456789ABCDEF",
"opc": "FEDCBA9876543210FEDCBA9876543210",
"authentication_algorithm": "milenage",
"amf": "8000",
"sqn": 0
}' | jq -r '.response.id')
# 2. 创建 APN QoS 配置文件
APN_QOS_ID=$(curl -k -X POST https://hss.example.com:8443/api/apn/qos_profile \
-H "Content-Type: application/json" \
-d '{
"name": "IoT 最佳努力",
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 10000,
"apn_ambr_ul_kbps": 5000,
"pre_emption_capability": false,
"pre_emption_vulnerability": false,
"qci": 9
}' | jq -r '.response.id')
# 3. 创建 APN 标识符
APN_ID=$(curl -k -X POST https://hss.example.com:8443/api/apn/identifier \
-H "Content-Type: application/json" \
-d '{
"apn": "internet",
"ip_version": "ipv4"
}' | jq -r '.response.id')
# 4. 创建 APN 配置文件
APN_PROFILE_ID=$(curl -k -X POST https://hss.example.com:8443/api/apn/profile \
-H "Content-Type: application/json" \
-d "{
\"apn_identifier_id\": $APN_ID,
\"apn_qos_profile_id\": $APN_QOS_ID,
\"name\": \"IoT 互联网 APN\"
}" | jq -r '.response.id')
# 5. 为 APN 创建静态 IP
STATIC_IP_ID=$(curl -k -X POST https://hss.example.com:8443/api/epc/static_ip \
-H "Content-Type: application/json" \
-d "{
\"apn_profile_id\": $APN_PROFILE_ID,
\"ipv4_static_ip\": \"100.64.1.100\"
}" | jq -r '.response.id')
# 6. 创建 EPC 配置文件
EPC_PROFILE_ID=$(curl -k -X POST https://hss.example.com:8443/api/epc/profile \
-H "Content-Type: application/json" \
-d "{
\"apn_profiles\": [$APN_PROFILE_ID],
\"name\": \"IoT 数据计划\",
\"network_access_mode\": \"packet_only\",
\"tracking_area_update_interval_seconds\": 600,
\"ue_ambr_dl_kbps\": 10000,
\"ue_ambr_ul_kbps\": 5000
}" | jq -r '.response.id')
# 7. 创建 MSISDN(电话号码)
MSISDN_ID=$(curl -k -X POST https://hss.example.com:8443/api/msisdn \
-H "Content-Type: application/json" \
-d '{
"msisdn": "14155551000"
}' | jq -r '.response.id')
# 8. 创建带有静态 IP 的用户
SUBSCRIBER_ID=$(curl -k -X POST https://hss.example.com:8443/api/subscriber \
-H "Content-Type: application/json" \
-d "{
\"imsi\": \"001001999999999\",
\"key_set_id\": $KEY_SET_ID,
\"epc_profile_id\": $EPC_PROFILE_ID,
\"msisdns\": [$MSISDN_ID],
\"static_ips\": [$STATIC_IP_ID]
}" | jq -r '.response.id')
echo "IoT 用户成功配置!"
echo " 用户 ID: $SUBSCRIBER_ID"
echo " IMSI: 001001999999999"
echo " MSISDN: 14155551000"
echo " 静态 IPv4: 100.64.1.100(在 'internet' APN 上)"
创建内容:
此配置工作流程创建一个完整的 IoT 用户,包括:
- 加密密钥 (密钥集) - 用于身份验证
- APN 配置 (APN 配置文件) - “互联网”接入点
- 静态 IP 分配 (静态 IP) - 固定的 IPv4 地址 100.64.1.100
- 数据服务配置文件 (EPC 配置文件) - 针对 IoT 优化的带宽限制
- 电话号码 (MSISDN) - 用于设备识别
- 用户记录 (用户) - 完整的用户实体
结果:
当该用户连接到网络并连接到“互联网” APN 时,他们将收到静态 IP 地址 100.64.1.100,而不是动态 DHCP 地址。
后续步骤:
另见:
- 静态 IP 管理 - 详细的静态 IP 文档
- 完整的用户配置 - 没有静态 IP 的基本配置
- 多 MSISDN 文档 - 分配多个电话号码