Support
Support#
Introduction#
Support APIs are meant for the 2600Hz support team to manage, debug and fix issues occuring within the database of with some subscriptions. Misusing some of these APIs can result in breaking some functionalities for the end user. As such, they require a higher level of authentication.
API Index#
- Import an already active device
- Lookup a TOP Device by its MDN in any account
- Get a Phone Number's subscription info from a Carrier
- Get a Device’s subscription info from a Carrier
- Get the data usage of "unknown" numbers
- Get the data usage across all accounts
- Poll the port messages from the Carrier
- Update a Port In document’s status
- Patch a Device document
Manage Subscriptions:#
- Lookup Carrier Subscription
- Import an active Subscription
- Delete a Subscription document
- Patch a Subscription document
- Move a Subscription to a different account and/or cluster
Manage Cluster documents:#
Manage Routing Customer Clusters:#
- List Routing Clusters
- Get a Routing Cluster
- Create a Routing Cluster
- Update a Routing Cluster
- Patch a Routing Cluster
- Delete a Routing Cluster
Manage Routing Carrier SBCs:#
- List Routing Carrier SBCs
- Get a Routing Carrier SBC
- Create a Routing Carrier SBC
- Update a Routing Carrier SBC
- Patch a Routing Carrier SBC
- Delete a Routing Carrier SBC
Manage Routing Media Servers:#
- List Routing Media Servers
- Get a Routing Media Server
- Create a Routing Media Server
- Update a Routing Media Server
- Patch a Routing Media Server
- Delete a Routing Media Server
APIs#
Import an already active device#
Required Authentication Level: super_master
PUT http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/devices/import
curl -v -X PUT \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/devices/import \
-d '{ \
"data": { \
"esn": "{ESN}", \
"mdn": "{MDN}", \
"name": "Joe's Mobile Phone", \
"voice": { \
"protocol": "sip",
"sip": { \
"realm": "sip.mycompany.com", \
"username": "my_softphone", \
"password": "abcdef123456" \
} \
} \
}, \
"carrier": "sprint"
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{DEVICE_ID}",
"name": "Joe's Mobile Phone",
"model": {
"name": "SAMSUNG L300 HANDSET KIT",
"number": "SPHL300KTS",
"manufacturer": "SAMSUNG"
},
"subscription": {
"mdn": "+15550001111",
"csa": "SFRSFR415",
"sim": "01234567890123456789",
"imsi": "9876543210",
"plan": "260PLAN21",
"features": ["international", "sip", "mms", "lte"]
},
"data": {
"caps": {
"blocking": {
"cap": 0
},
"throttling": {
"cap": 0,
"rate": "256k"
}
}
},
"voice": {
"protocol": "sip",
"sip": {
"realm": "sip.mycompany.com",
"username": "my_softphone",
"password": "abcdef123456"
}
}
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Optional parameters:#
Key | Value | Description |
---|---|---|
esn, mdn | "sprint" | Only one of these is required, if both are specified mdn will take precedence over esn. |
data | {OBJECT} | Set the data policies on the device. If not specified, will used the account default or will default to no cap. See usage policies doc for more information. |
Lookup a TOP Device by its MDN in any account#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/phone_numbers/{MDN}/device
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/phone_numbers/{MDN}/device
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{DEVICE_ID}",
"name": "Joe's Mobile Phone",
"model": {
"name": "SAMSUNG L300 HANDSET KIT",
"number": "SPHL300KTS",
"manufacturer": "SAMSUNG"
},
"subscription": {
"esn": "{ESN}",
"mdn": "{MDN}",
"sim": "01234567890123456789",
"imsi": "9876543210",
"plan": "260PLAN21",
"features": ["international", "sip", "mms", "lte"],
"carrier_data": {
"msid": "012345678901234",
"csa": "SFRSFR415"
}
},
"data": {
"caps": {
"blocking": {
"cap": 0
},
"throttling": {
"cap": 0,
"rate": "256k"
}
}
},
"voice": {
"protocol": "sip",
"sip": {
"realm": "sip.mycompany.com",
"username": "my_softphone",
"password": "abcdef123456"
}
}
},
"carrier": "sprint",
"account_id": "{ACCOUNT_ID}",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Get a Phone Number's subscription info from a Carrier#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/phone_numbers/{MDN}/subscription
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/phone_numbers/{MDN}/subscription
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"esn": "{ESN}",
"mdn": "{MDN}",
"sim": "01234567890123456789",
"imsi": "9876543210",
"plan": "{PLAN}",
"features": [
"international",
"sip",
"mms",
"lte"
],
"carrier_data": {
"msid": "012345678901234",
"csa": "SFRSFR415"
}
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Optional query string parameters:#
Key | Value | Description |
---|---|---|
carrier | sprint | Choose with which Carrier to check the subscription. Depending on your MVNO, this may be ignored. |
Get a Device's subscription info from a Carrier#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/devices/{ESN}/subscription
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/devices/{ESN}/subscription
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"esn": "{ESN}",
"mdn": "{MDN}",
"sim": "01234567890123456789",
"imsi": "9876543210",
"plan": "{PLAN}",
"features": [
"international",
"sip",
"mms",
"lte"
],
"carrier_data": {
"msid": "012345678901234",
"csa": "SFRSFR415"
}
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Optional query string parameters:#
Key | Value | Description |
---|---|---|
carrier | sprint | Choose with which Carrier to check the subscription. Depending on your MVNO, this may be ignored. |
Get the data usage of "unknown" numbers#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/usage/unknown_numbers
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/usage/unknown_numbers
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"from": "201611",
"to": "201611",
"total": 187994323,
"per_mdn": {
"+15550123456": 162324323,
"+15556541490": 25670000
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Optional query string parameters:#
Key | Value | Description |
---|---|---|
from | YYYYMM ("201610") |
Choose the starting month for the usage report. Defaults to the current month. |
to | YYYYMM |
Choose the last month for the usage report. Defaults to the current month. |
month | YYYYMM |
Choose a single month for the usage report. Will override both the from and to parameters. |
Alternatively, the URL http://{SERVER}:{PORT}/v2/support/usage/unknown_numbers/{MONTH}
can be used to get a usage report for a single month.
Note: When one or more of the requested months do not have any data usage, they will be listed in the empty_months
array.
"empty_months": [
"201610",
"201612"
]
Get the data usage across all accounts#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/usage/audit
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/usage/audit
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"from": "201701",
"to": "201701",
"total": 5468097625,
"accounts": {
"0123456789abcdef0123456789abcdef": {
"+15550001111": 2031380,
"+15550001112": 1988955671,
"+15550001113": 410406787
},
"fedcba9876543210fedcba9876543210": {
"+15550002221": 28483441,
"+15550002222": 2111332188,
"+15550002223": 719710646,
"+15550002224": 201526776
},
"unknown_account": {
"+15550003331": 800087,
"+15550003332": 4850649
}
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Optional query string parameters:#
Key | Value | Description |
---|---|---|
from | YYYYMM ("201610") |
Choose the starting month for the usage report. Defaults to the current month. |
to | YYYYMM |
Choose the last month for the usage report. Defaults to the current month. |
month | YYYYMM |
Choose a single month for the usage report. Will override both the from and to parameters. |
Alternatively, the URL http://{SERVER}:{PORT}/v2/support/usage/audit/{MONTH}
can be used to get a usage report for a single month.
A single month may also be requested as a CSV with the URL:
GET http://{SERVER}:{PORT}/v2/support/usage/audit/{MONTH}/csv
Poll the port messages from the Carrier#
Required Authentication Level: master
The polling will automatically be done regularly through a script, this API simply provides a way to force the polling without having to wait for the next run of the script.
POST http://{SERVER}:{PORT}/v2/support/ports/poll
curl -v -X POST \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/ports/poll \
-d '{ "data": {} }'
Update a Port In document's status#
Required Authentication Level: master
This allows to manually update a port status in case the port messaging system from the Carrier is unreliable. Setting the status code to either canceled
or completed
will trigger the appropriate updates on the device document. Please refer to the documentation on valid Port status.
POST http://{SERVER}:{PORT}/v2/support/ports/in/{PORT_ID}/status
curl -v -X POST \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/ports/in/{PORT_ID}/status \
-d '{ "data": { \
"code": "completed", \
"source": "carrier" \
} }'
Note: The flag forced_update: true
will automatically be added to the port status. This can't be manually overwritten.
Patch a Device document#
Required Authentication Level: super_master
PATCH http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/devices/{DEVICE_ID}
curl -v -X PATCH \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/devices/{DEVICE_ID} \
-d '{ \
"data": { \
"name": "Bob's Mobile Phone", \
"model": { \
"manufacturer": "MOTOROLA" \
} \
}, \
"recursive": true \
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{DEVICE_ID}",
"name": "Bob's Mobile Phone",
"model": {
"name": "SAMSUNG L300 HANDSET KIT",
"number": "SPHL300KTS",
"manufacturer": "MOTOROLA"
},
"subscription": {
"esn": "{ESN}",
"mdn": "+15550001111",
"sim": "01234567890123456789",
"imsi": "9876543210",
"plan": "260PLAN21",
"features": ["international", "sip", "mms", "lte"],
"carrier_data": {
"msid": "{MSID}",
"csa": "SFRSFR415"
},
"activation_date": 63648957842
},
"data": {
"blocking": {
"cap": 2000000000
},
"throttling": {
"cap": 1800000000,
"rate": "256k"
}
},
"voice": {
"protocol": "sip",
"sip": {
"realm": "sip.mycompany.com",
"username": "another_softphone",
"password": "abcdef123456"
}
},
"additional_properties": {
"last_manual_update": 63658477135
}
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Note: Contrary to the basic Patch Device API, this API allow you to patch any field in a device document. In addition, the property additional_properties.last_manual_update
will be automatically set to the current timestamp.
As with all PATCH requests, the recursive
flag can be sent in the payload envelope to perform a recursive PATCH. This flag will be set to false
by default if not specified.
MANAGE SUBSCRIPTIONS:#
Lookup Carrier Subscription#
Required Authentication Level: super_master
This API allows support to lookup a subscription's info straight from a carrier. If the subscription can also be found in the TOP database, the subscription full document (containing all pvt fields) will also be included in the response payload, along with the account ID in which the subscription was found.
POST http://{SERVER}:{PORT}/v2/support/subscriptions/lookup
curl -v -X POST \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/subscriptions/lookup \
-d '{ \
"data": { \
"esn": "{DEVICE_ID}" \
}, \
"carrier": "sprint" \
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"carrier_data": {
"esn": "{DEVICE_ESN}",
"mdn": "+14157487153",
"sim": null,
"imsi": null,
"plan": "260PLAN1",
"features": [
"international",
"sip",
"mms",
"tethering"
],
"carrier": "sprint",
"carrier_data": {
"msid": "000004156375241",
"csa": "SFRSFR415"
},
"activation_date": 63746871056,
"suspended": false
},
"account_id": "{ACCOUNT_ID}",
"document": {
"esn": "{DEVICE_ID}",
"sim": null,
"mdn": "+14157487153",
"imsi": null,
"plan": "260PLAN1",
"features": [
"international",
"sip",
"mms",
"tethering"
],
"suspended": false,
"carrier_data": {
"msid": "000004156375241",
"csa": "SFRSFR415"
},
"pvt_carrier_name": "sprint",
"pvt_mvno": "2600hz_sandbox",
"pvt_cluster_id": "{CLUSTER_ID}",
"pvt_type": "subscription",
"pvt_created": 63746871057,
"pvt_modified": 63751266642,
"_id": "{SUBSCRIPTION_ID}"
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Request payload schema#
Key | Type | Required | Description |
---|---|---|---|
data | object | Yes | Object containing the main payload data. |
data.esn | string | Conditional | The ESN/MEID/IMEI of the device associated with the subscription to lookup. Required if neither data.sim nor data.mdn are provided. |
data.sim | string | Conditional | The SIM ID associated with the subscription to lookup. Required if neither data.esn nor data.mdn are provided. |
data.mdn | string | Conditional | The MDN associated with the subscription to lookup. Required if neither data.esn nor data.sim are provided. |
carrier | string | No | Choose which carrier to validate against. |
Import an active Subscription#
Required Authentication Level: super_master
This API allows support to import an active subscription in the TOP database. A new subscription document will be created in the chosen account's database. If the subscription is tied to a device, a new device document will also be created.
PUT http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/import
curl -v -X PUT \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/import \
-d '{ \
"data": {
"mdn": "{SUBSCRIPTION_MDN}", \
"device_data": { \
"name": "Samsung 013", \
"voice": { \
"sip": { \
"realm": "sip.mycompany.com", \
"username": "my_softphone", \
"password": "abcdef123456" \
} \
}, \
"data": { \
"blocking": { \
"cap": 0 \
}, \
"throttling": { \
"cap": 0, \
"rate": "64k" \
} \
} \
} \
}, \
"carrier": "sprint"
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SUBSCRIPTION_ID}",
"esn": "{DEVICE_ID}",
"sim": null,
"mdn": "{SUBSCRIPTION_MDN}",
"imsi": null,
"plan": "260PLAN1",
"features": [
"international",
"sip",
"mms",
"tethering"
],
"suspended": false,
"carrier_data": {
"msid": "000004156375241",
"csa": "SFRSFR415"
},
"carrier_name": "sprint"
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Request payload schema#
Key | Type | Required | Description |
---|---|---|---|
data | object | Yes | Object containing the main payload data. |
data.esn | string | Conditional | The ESN/MEID/IMEI of the device associated with the subscription to import. Required if neither data.sim nor data.mdn are provided. |
data.sim | string | Conditional | The SIM ID associated with the subscription to import. Required if neither data.esn nor data.mdn are provided. |
data.mdn | string | Conditional | The MDN associated with the subscription to import. Required if neither data.esn nor data.sim are provided. |
data.device_data | object | No | An object containing non-carrier info (such as name, voice and data objects) for the device associated with the subscription to import (if any). For more details about those objects, refer to the Subscription activation schema. |
carrier | string | No | Specify which carrier to import the subscription from. |
Delete a Subscription document#
Required Authentication Level: super_master
This API allows support to delete a Subscription document from the database. If the optional query string parameter cascade
is set to true, any Device document associated with the Subscription will also be deleted.
Note: This does not deactivate the subscription with the Carrier, it only deletes documents in the TOP database.
DELETE http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/{SUBSCRIPTION_ID}
curl -v -X DELETE \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/{SUBSCRIPTION_ID} \
-d '{ "data": {} }'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SUBSCRIPTION_ID}",
"esn": "{DEVICE_ID}",
"sim": null,
"mdn": "+14157487153",
"imsi": null,
"plan": "260PLAN1",
"features": [
"international",
"sip",
"mms",
"tethering"
],
"suspended": false,
"carrier_data": {
"msid": "000004156375241",
"csa": "SFRSFR415"
},
"carrier_name": "sprint"
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Optional query string parameters:#
Key | Default value | Description |
---|---|---|
cascade | false | If set to true, any device document associated with the subscription will also be deleted. |
Patch a Subscription document#
Required Authentication Level: super_master
This API allows support to update a subscription document by patching it. This does not trigger any update on the carrier side, but unlike the regular subscription patch API, any part of the document can be patched.
In addition, the property additional_properties.last_manual_update
will be automatically set to the current timestamp.
PATCH http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/{SUBSCRIPTION_ID}
curl -v -X PATCH \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/{SUBSCRIPTION_ID} \
-d '{ \
"data": { \
"additional_properties": { \
"name": "New Subscription Name" \
}, \
"mdn": "+15555555555", \
"plan": "fakeplan" \
}, \
"recursive": true \
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SUBSCRIPTION_ID}",
"esn": "{DEVICE_ID}",
"sim": null,
"mdn": "+15555555555",
"imsi": null,
"plan": "fakeplan",
"features": [
"international",
"sip",
"mms",
"tethering"
],
"suspended": false,
"carrier_data": {
"msid": "000004156375241",
"csa": "SFRSFR415"
},
"carrier_name": "sprint",
"additional_properties": {
"name": "New Subscription Name",
"last_manual_update": 63751259950
}
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
As with all PATCH requests, the recursive
flag can be sent in the payload envelope to perform a recursive PATCH. This flag will be set to false
by default if not specified.
Move a Subscription to a different account and/or cluster#
Required Authentication Level: super_master
This API allows support to move an existing subscription document, along with its associated device (if any), to a different account and/or cluster.
POST http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/{SUBSCRIPTION_ID}/move
curl -v -X POST \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/accounts/{ACCOUNT_ID}/subscriptions/{SUBSCRIPTION_ID}/move \
-d '{ \
"target_account_id": {TARGET_ACCOUNT_ID} \
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SUBSCRIPTION_ID}",
"esn": "{DEVICE_ID}",
"sim": null,
"mdn": "+14157487153",
"imsi": null,
"plan": "260PLAN1",
"features": [
"international",
"sip",
"mms",
"tethering"
],
"suspended": false,
"carrier_data": {
"msid": "000004156375241",
"csa": "SFRSFR415"
},
"carrier_name": "sprint"
},
"carrier": "sprint",
"request_id": "{REQUEST_ID}",
"status": "success"
}
Request payload schema#
Key | Type | Required | Description |
---|---|---|---|
data | object | Yes | Object containing the main payload data. |
data.target_account_id | string | Yes | The ID of the kazoo account where the Subscription should be moved. |
data.target_cluster_id | string | No | The ID of the kazoo cluster where the Subscription should be moved. |
MANAGE CLUSTER DOCUMENTS:#
Create a Cluster document#
Required Authentication Level: super_master
PUT http://{SERVER}:{PORT}/v2/support/clusters/{TARGET_CLUSTER_ID}
curl -v -X PUT \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/clusters/{TARGET_CLUSTER_ID} \
-d '{ \
"data": { \
"mvno_id": "{MVNO_ID}", \
"api_url": "{API_URL}", \
"api_key": "{API_KEY}", \
"hosted_billing_account_id":"{ACCOUNT_ID}" \
} \
}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{TARGET_CLUSTER_ID}",
"mvno_id": "{MVNO_ID}",
"api_url": "{API_URL}",
"api_key": "{ENCRYPTED_API_KEY}",
"hosted_billing_account_id": "{ACCOUNT_ID}"
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Note: The api_key
field will automatically be encrypted upon the creation of the document.
Delete a Cluster document#
Required Authentication Level: super_master
DELETE http://{SERVER}:{PORT}/v2/support/clusters/{TARGET_CLUSTER_ID}
curl -v -X DELETE \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/clusters/{TARGET_CLUSTER_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{TARGET_CLUSTER_ID}",
"mvno_id": "{MVNO_ID}",
"api_url": "{API_URL}",
"api_key": "{ENCRYPTED_API_KEY}",
"hosted_billing_account_id": "{ACCOUNT_ID}"
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Note: The Master Cluster cannot be deleted.
MANAGE ROUTING CUSTOMER CLUSTERS:#
List Routing Clusters#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/routing/customer_clusters
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/customer_clusters
{
"auth_token": "{AUTH_TOKEN}",
"data": [
{
"id": "8a901bea1d3297ef7d4c8d34809472c2",
"name": "Kazoo Hosted",
"owner": "2600hz"
},
{
"id": "aa2b36ac6a5edb290159cd1298283322",
"name": "Kazoo Sandbox",
"owner": "2600hz"
}
],
"request_id": "{REQUEST_ID}",
"status": "success"
}
Get a Routing Cluster#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{CLUSTER_ID}",
"owner": "2600hz",
"name": "Test Cluster",
"ips": {
"inbound": {
"east": ["0.0.0.1"],
"central": ["0.0.1.1"],
"west": ["0.0.2.1"]
},
"outbound": {
"east": ["0.0.0.2"],
"central": ["0.0.1.2"],
"west": ["0.0.2.2"]
}
},
"randomize_routing": false
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Create a Routing Cluster#
Required Authentication Level: super_master
PUT http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
curl -v -X PUT \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID} \
-d '{ "data": { \
"owner": "2600hz", \
"name": "Test Cluster", \
"ips": { \
"inbound": { \
"east": ["0.0.0.1"], \
"central": ["0.0.1.1"], \
"west": ["0.0.2.1"] \
}, \
"outbound": { \
"east": ["0.0.1.1"], \
"central": ["0.0.1.2"], \
"west": ["0.0.2.2"] \
} \
}, \
"randomize_routing": false \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{CLUSTER_ID}",
"owner": "2600hz",
"name": "Test Cluster",
"ips": {
"inbound": {
"east": ["0.0.0.1"],
"central": ["0.0.1.1"],
"west": ["0.0.2.1"]
},
"outbound": {
"east": ["0.0.0.2"],
"central": ["0.0.1.2"],
"west": ["0.0.2.2"]
}
},
"randomize_routing": false
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Update a Routing Cluster#
Required Authentication Level: super_master
POST http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
curl -v -X POST \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID} \
-d '{ "data": { \
"owner": "2600hz", \
"name": "Test Cluster", \
"ips": { \
"inbound": { \
"east": ["0.0.0.1"], \
"central": ["0.0.1.1"], \
"west": ["0.0.2.1"] \
}, \
"outbound": { \
"east": ["0.0.0.2", "0.0.0.3"], \
"central": ["0.0.1.2", "0.0.1.3"], \
"west": ["0.0.2.2", "0.0.2.3"] \
} \
}, \
"randomize_routing": false \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{CLUSTER_ID}",
"owner": "2600hz",
"name": "Test Cluster",
"ips": {
"inbound": {
"east": ["0.0.0.1"],
"central": ["0.0.1.1"],
"west": ["0.0.2.1"]
},
"outbound": {
"east": ["0.0.0.2", "0.0.0.3"],
"central": ["0.0.1.2", "0.0.1.3"],
"west": ["0.0.2.2", "0.0.2.3"]
}
},
"randomize_routing": false
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Patch a Routing Cluster#
Required Authentication Level: super_master
PATCH http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
curl -v -X PATCH \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID} \
-d '{ "data": { \
"ips": { \
"outbound": { \
"east": ["1.1.1.2", "1.1.1.3"]
} \
}, \
"randomize_routing": true \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{CLUSTER_ID}",
"owner": "2600hz",
"name": "Test Cluster",
"ips": {
"inbound": {
"east": ["0.0.0.1"],
"central": ["0.0.1.1"],
"west": ["0.0.2.1"]
},
"outbound": {
"east": ["1.1.1.2", "1.1.1.3"],
"central": ["0.0.1.2", "0.0.1.3"],
"west": ["0.0.2.2", "0.0.2.3"]
}
},
"randomize_routing": true
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Delete a Routing Cluster#
Required Authentication Level: super_master
DELETE http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
curl -v -X DELETE \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/customer_clusters/{CLUSTER_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{CLUSTER_ID}",
"owner": "2600hz",
"name": "Test Cluster",
"ips": {
"inbound": {
"east": ["0.0.0.1"],
"central": ["0.0.1.1"],
"west": ["0.0.2.1"]
},
"outbound": {
"east": ["1.1.1.2", "1.1.1.3"],
"central": ["0.0.1.2", "0.0.1.3"],
"west": ["0.0.2.2", "0.0.2.3"]
}
},
"randomize_routing": true
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
MANAGE ROUTING CARRIER SBCS:#
List Routing Carrier SBCs#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs
{
"auth_token": "{AUTH_TOKEN}",
"data": [
{
"id": "{SBC_ID}",
"name": "Sprint East SBC",
"carrier": "sprint",
"location": {
"zone": "east",
"state": "NY",
"city": "New York City"
},
"mobile_media_server": "{MEDIA_SERVER_ID}"
},
{
"id": "{SBC_ID_2}",
"name": "Sprint West SBC",
"carrier": "sprint",
"location": {
"zone": "west",
"state": "CA",
"city": "Los Angeles"
},
"mobile_media_server": "{MEDIA_SERVER_ID_2}"
},
{
"id": "{SBC_ID_3}",
"name": "Sprint Central SBC",
"carrier": "sprint",
"location": {
"zone": "central",
"state": "IL",
"city": "Chicago"
},
"mobile_media_server": "{MEDIA_SERVER_ID_3}"
}
],
"request_id": "{REQUEST_ID}",
"status": "success"
}
Get a Routing Carrier SBC#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID}
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SBC_ID}",
"name": "Dummy SBC",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"ips": ["1.2.3.4"],
"mobile_media_server": "{MEDIA_SERVER_ID}",
"call_directions": [
{
"direction": "from_mobile_device",
"headers": {
"variable_sip_h_P-Served-User": "sescase=orig"
}
},
{
"direction": "from_pstn",
"headers": {
"variable_sip_h_P-Served-User": "sescase=term"
}
}
],
"number_formatting": {
"from_mobile_device": {
"to_number": {
"pattern": "/^(?:467)?([0-9]+)$/",
"replace": "$1"
}
},
"from_pstn": {
"to_number": {
"pattern": "/^(?:467)?([0-9]+)$/",
"replace": "$1"
}
},
"to_mobile_device": {
"to_number": {
"pattern": "/^([0-9]+)$/",
"replace": "99999$1"
}
}
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Create a Routing Carrier SBC#
Required Authentication Level: super_master
PUT http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs
curl -v -X PUT \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs \
-d '{ "data": { \
"name": "Dummy SBC", \
"location": { \
"zone": "west", \
"state": "CA", \
"city": "San Francisco" \
}, \
"ips": ["1.2.3.4"], \
"mobile_media_server": "{MEDIA_SERVER_ID}", \
"call_directions": [ \
{ \
"direction": "from_mobile_device", \
"headers": { \
"variable_sip_h_P-Served-User": "sescase=orig" \
} \
}, \
{ \
"direction": "from_pstn", \
"headers": { \
"variable_sip_h_P-Served-User": "sescase=term" \
} \
} \
], \
"number_formatting": { \
"from_mobile_device": { \
"to_number": { \
"pattern": "/^(?:467)?([0-9]+)$/", \
"replace": "$1" \
} \
}, \
"from_pstn": { \
"to_number": { \
"pattern": "/^(?:467)?([0-9]+)$/", \
"replace": "$1" \
} \
}, \
"to_mobile_device": { \
"to_number": { \
"pattern": "/^([0-9]+)$/", \
"replace": "99999$1" \
} \
} \
} \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SBC_ID}",
"name": "Dummy SBC",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"ips": ["1.2.3.4"],
"mobile_media_server": "{MEDIA_SERVER_ID}",
"call_directions": [
{
"direction": "from_mobile_device",
"headers": {
"variable_sip_h_P-Served-User": "sescase=orig"
}
},
{
"direction": "from_pstn",
"headers": {
"variable_sip_h_P-Served-User": "sescase=term"
}
}
],
"number_formatting": {
"from_mobile_device": {
"to_number": {
"pattern": "/^(?:467)?([0-9]+)$/",
"replace": "$1"
}
},
"from_pstn": {
"to_number": {
"pattern": "/^(?:467)?([0-9]+)$/",
"replace": "$1"
}
},
"to_mobile_device": {
"to_number": {
"pattern": "/^([0-9]+)$/",
"replace": "99999$1"
}
}
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Update a Routing Carrier SBC#
Required Authentication Level: super_master
POST http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID}
curl -v -X POST \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID} \
-d '{ "data": { \
"name": "Dummy SBC", \
"location": { \
"zone": "west", \
"state": "CA", \
"city": "San Francisco" \
}, \
"ips": ["1.2.3.4"], \
"mobile_media_server": "{MEDIA_SERVER_ID}", \
"call_directions": [ \
{ \
"direction": "from_mobile_device", \
"headers": { \
"variable_sip_h_P-Served-User": "sescase=orig" \
} \
}, \
{ \
"direction": "from_pstn", \
"headers": { \
"variable_sip_h_P-Served-User": "sescase=term" \
} \
} \
], \
"number_formatting": { \
"to_mobile_device": { \
"to_number": { \
"pattern": "/^([0-9]+)$/", \
"replace": "99999$1" \
} \
} \
} \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SBC_ID}",
"name": "Dummy SBC",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"ips": ["1.2.3.4"],
"mobile_media_server": "{MEDIA_SERVER_ID}",
"call_directions": [
{
"direction": "from_mobile_device",
"headers": {
"variable_sip_h_P-Served-User": "sescase=orig"
}
},
{
"direction": "from_pstn",
"headers": {
"variable_sip_h_P-Served-User": "sescase=term"
}
}
],
"number_formatting": {
"to_mobile_device": {
"to_number": {
"pattern": "/^([0-9]+)$/",
"replace": "99999$1"
}
}
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Patch a Routing Carrier SBC#
Required Authentication Level: super_master
PATCH http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID}
curl -v -X PATCH \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID} \
-d '{ "data": { \
"ips": ["1.2.3.4", "1.2.3.5", "1.2.3.6"] \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SBC_ID}",
"name": "Dummy SBC",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"ips": ["1.2.3.4", "1.2.3.5", "1.2.3.6"],
"mobile_media_server": "{MEDIA_SERVER_ID}",
"call_directions": [
{
"direction": "from_mobile_device",
"headers": {
"variable_sip_h_P-Served-User": "sescase=orig"
}
},
{
"direction": "from_pstn",
"headers": {
"variable_sip_h_P-Served-User": "sescase=term"
}
}
],
"number_formatting": {
"to_mobile_device": {
"to_number": {
"pattern": "/^([0-9]+)$/",
"replace": "99999$1"
}
}
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Delete a Routing Carrier SBC#
Required Authentication Level: super_master
DELETE http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID}
curl -v -X DELETE \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/carrier_sbcs/{SBC_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{SBC_ID}",
"name": "Dummy SBC",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"ips": ["1.2.3.4", "1.2.3.5", "1.2.3.6"],
"mobile_media_server": "{MEDIA_SERVER_ID}",
"call_directions": [
{
"direction": "from_mobile_device",
"headers": {
"variable_sip_h_P-Served-User": "sescase=orig"
}
},
{
"direction": "from_pstn",
"headers": {
"variable_sip_h_P-Served-User": "sescase=term"
}
}
],
"number_formatting": {
"to_mobile_device": {
"to_number": {
"pattern": "/^([0-9]+)$/",
"replace": "99999$1"
}
}
}
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
MANAGE ROUTING MEDIA SERVERS:#
List Routing Media Servers#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/routing/media_servers
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/media_servers
{
"auth_token": "{AUTH_TOKEN}",
"data": [
{
"id": "{EAST_MEDIA_SERVER_ID}",
"name": "NY2 Mobile Media Server",
"location": {
"zone": "east",
"state": "NY",
"city": "New York"
},
"carrier_sbc_priority": {
"sprint": [
"{EAST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{WEST_SBC_ID}"
]
}
},
{
"id": "{WEST_MEDIA_SERVER_ID}",
"name": "SV4 Mobile Media Server",
"location": {
"zone": "west",
"state": "CA",
"city": "Santa Clara"
},
"carrier_sbc_priority": {
"sprint": [
"{WEST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}"
]
}
},
{
"id": "{CENTRAL_MEDIA_SERVER_ID}",
"name": "CH2 Mobile Media Server",
"location": {
"zone": "central",
"state": "IL",
"city": "Chicago"
},
"carrier_sbc_priority": {
"sprint": [
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}",
"{WEST_SBC_ID}"
]
}
}
],
"request_id": "{REQUEST_ID}",
"status": "success"
}
Get a Routing Media Server#
Required Authentication Level: super_master
GET http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID}
curl -v -X GET \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{MEDIA_SERVER_ID}",
"name": "Dummy Media Server",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"interfaces": {
"carrier_mpls": {
"sprint": "sipinterface_sprint"
},
"authenticated_connection": "sipinterface_to_customer",
"unauthenticated_connection": "sipinterface_sprint_did"
},
"carrier_sbc_priority": {
"sprint": [
"{WEST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}"
]
},
"top_ips": ["10.26.254.254", "10.26.254.253"]
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Create a Routing Media Server#
Required Authentication Level: super_master
PUT http://{SERVER}:{PORT}/v2/support/routing/media_servers
curl -v -X PUT \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/media_servers \
-d '{ "data": { \
"name": "Dummy Media Server", \
"location": { \
"zone": "west", \
"state": "CA", \
"city": "San Francisco" \
}, \
"interfaces": { \
"carrier_mpls": { \
"sprint": "sipinterface_sprint" \
}, \
"authenticated_connection": "sipinterface_to_customer", \
"unauthenticated_connection": "sipinterface_sprint_did" \
}, \
"carrier_sbc_priority": { \
"sprint": [ \
"{WEST_SBC_ID}", \
"{CENTRAL_SBC_ID}", \
"{EAST_SBC_ID}" \
] \
}, \
"top_ips": ["10.26.254.254", "10.26.254.253"] \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{MEDIA_SERVER_ID}",
"name": "Dummy Media Server",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"interfaces": {
"carrier_mpls": {
"sprint": "sipinterface_sprint"
},
"authenticated_connection": "sipinterface_to_customer",
"unauthenticated_connection": "sipinterface_sprint_did"
},
"carrier_sbc_priority": {
"sprint": [
"{WEST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}"
]
},
"top_ips": ["10.26.254.254", "10.26.254.253"]
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Update a Routing Media Server#
Required Authentication Level: super_master
POST http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID}
curl -v -X POST \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID} \
-d '{ "data": { \
"name": "Dummy Media Server", \
"location": { \
"zone": "west", \
"state": "CA", \
"city": "San Francisco" \
}, \
"interfaces": { \
"carrier_mpls": { \
"sprint": "sprint_mpls_interface" \
}, \
"authenticated_connection": "authenticated_connection_interface", \
"unauthenticated_connection": "unauthenticated_connection_interface" \
}, \
"carrier_sbc_priority": { \
"sprint": [ \
"{WEST_SBC_ID}", \
"{CENTRAL_SBC_ID}", \
"{EAST_SBC_ID}" \
] \
}, \
"top_ips": ["10.26.254.254", "10.26.254.253"] \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{MEDIA_SERVER_ID}",
"name": "Dummy Media Server",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"interfaces": {
"carrier_mpls": {
"sprint": "sprint_mpls_interface"
},
"authenticated_connection": "authenticated_connection_interface",
"unauthenticated_connection": "unauthenticated_connection_interface"
},
"carrier_sbc_priority": {
"sprint": [
"{WEST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}"
]
},
"top_ips": ["10.26.254.254", "10.26.254.253"]
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Patch a Routing Media Server#
Required Authentication Level: super_master
PATCH http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID}
curl -v -X PATCH \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID} \
-d '{ "data": { \
"top_ips": ["10.26.0.254", "10.26.0.253"] \
}}'
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{MEDIA_SERVER_ID}",
"name": "Dummy Media Server",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"interfaces": {
"carrier_mpls": {
"sprint": "sprint_mpls_interface"
},
"authenticated_connection": "authenticated_connection_interface",
"unauthenticated_connection": "unauthenticated_connection_interface"
},
"carrier_sbc_priority": {
"sprint": [
"{WEST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}"
]
},
"top_ips": ["10.26.0.254", "10.26.0.253"]
},
"request_id": "{REQUEST_ID}",
"status": "success"
}
Delete a Routing Media Server#
Required Authentication Level: super_master
DELETE http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID}
curl -v -X DELETE \
-H "Content-Type:application/json" \
-H "X-Auth-Token: {AUTH_TOKEN}" \
-H "X-Kazoo-Cluster-ID: {CLUSTER_ID}" \
http://{SERVER}:{PORT}/v2/support/routing/media_servers/{MEDIA_SERVER_ID}
{
"auth_token": "{AUTH_TOKEN}",
"data": {
"id": "{MEDIA_SERVER_ID}",
"name": "Dummy Media Server",
"location": {
"zone": "west",
"state": "CA",
"city": "San Francisco"
},
"interfaces": {
"carrier_mpls": {
"sprint": "sprint_mpls_interface"
},
"authenticated_connection": "authenticated_connection_interface",
"unauthenticated_connection": "unauthenticated_connection_interface"
},
"carrier_sbc_priority": {
"sprint": [
"{WEST_SBC_ID}",
"{CENTRAL_SBC_ID}",
"{EAST_SBC_ID}"
]
},
"top_ips": ["10.26.0.254", "10.26.0.253"]
},
"request_id": "{REQUEST_ID}",
"status": "success"
}