Skip to content

Trunking


Trunk groups allow to connect traditional PBXes to the platform. You can setup trunk groups and connect numbers (aka DIDs) to them. A trunk group always requires access trunks. An access trunk is a point-to-point connection between the PBX and the fusion platform. A trunk group must have at least 1 but can have multiple access trunk.

List all trunk groups of a subscription

Use this endpoint to retrieve all trunk groups currently assigned to a subscription.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.list

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups

URL/Query parameters

ParameterTypeDescriptionRequired?
withStatusbooleanIf provided it will return also the synchronization status of each trunk group based on the access trunksno

Response

Status codes

ParameterDescription
200One or more trunk groups found
400Error while processing the request
404No trunk group found for the specified subscription
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
trunkgroupsarrayList containing all trunk groups for the tenantno
Trunk Group Item Object
ParameterTypeDescriptionConditional?
idintegerIndex of the trunk groupno
uuidstringThe unique ID (UUID) identifying the trunk groupno
namestringName of the trunk groupno
externalbooleanFlag that indicates if a trunk group is configured as externalno
statusstringThe synchronization status of each trunk group, based on the access trunks. Could be ok, pending, error or unknownyes
disasterRecoveryStatusbooleanThe status of disaster recoveryno
billingIdstringThe external reference of the peer trunk group.no
typestringThe type of the peer trunk group: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no
Example
json
{
    "trunkgroups": [
        {
            "disasterRecoveryStatus": false,
            "external": false,
            "id": 10,
            "name": "t1",
            "status": "ok",
            "uuid": "760d0e53-f177-430a-bab8-52ba3c9a0fd4",
            "billingId": "",
            "type": "webexcc"
        },
        {
            "disasterRecoveryStatus": false,
            "external": false,
            "id": 5,
            "name": "Test TG 2",
            "status": "ok",
            "uuid": "58efcbf8-7cfb-496c-9699-0bcf2d9f51b4",
            "billingId": "",
            "type": "azure"
        },
        {
            "disasterRecoveryStatus": false,
            "external": false,
            "id": 6,
            "name": "Test TG 3",
            "status": "ok",
            "uuid": "0921a230-e173-4a6c-9af6-67841a517c80",
            "billingId": "",
            "type": "sip"
        },
        {
            "disasterRecoveryStatus": false,
            "external": false,
            "id": 4,
            "name": "Test TG 4",
            "status": "ok",
            "type": "msteams",
            "uuid": "db44e2de-fd63-4d87-ac07-b0a99af9e51b",
            "billingId": "",
            "type": "msteams"
        },
        {
            "disasterRecoveryStatus": false,
            "external": false,
            "id": 22,
            "name": "TG test N4 Upd",
            "status": "ok",
            "uuid": "1d25d663-24c8-4cec-9b72-49cfd8442008",
            "billingId": "",
            "type": "sip"
        },
        {
            "disasterRecoveryStatus": false,
            "external": false,
            "id": 2,
            "name": "IDAL trunk2",
            "status": "ok",
            "uuid": "2ad922c4-a962-4458-be57-d0a39afcd549",
            "billingId": "",
            "type": "sip"
        }
    ]
}

Get details of a specific trunk group

Use this endpoint to retrieve the details of a trunk group currently assigned to a subscription.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

ParameterTypeDescriptionRequired?
withStatusbooleanIf provided it will return also the synchronization status of the trunk group based on the access trunksno

Response

Status codes

ParameterDescription
200Details of the trunk group could be retrieved
400Error while processing the request
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
uuidstringThe unique ID (UUID) identifying the trunk groupno
namestringName of the trunk groupno
billingIdstringThe external reference of the peer trunk group.no
externalbooleanFlag that indicates if the trunk group is configured as externalno
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
maxCallsintegerMaximum simultaneous calls allowed for the trunk groupyes
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk groupyes
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk groupyes
pilotobject or nullObject representing the pilot number of the trunk. Acts as main numberno
blockUnscreenedCallsbooleanBlock calls that have a CLI that doesn't belong to this trunkno
overwiteUnscreenedCallsWithPilotbooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunkno
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk groupno
cfaDestinationstringCall forwarding always destinationno
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk groupno
cfnrDestinationstringCall forwarding not reachable destinationno
cfnrTimerintegerTimer in seconds before call forwarding not reachableno
incomingCallsbooleanIncoming calls allow statusno
outgoingCallsbooleanOutgoing calls allow statusno
extraobjectObject containing extra datano
statusstringThe synchronization status of the trunk group based on the access trunks. Could be ok, pending, error or unknownyes
disasterRecoveryStatusbooleanThe status of disaster recoveryno
peerTrunksarrayList containing all peer trunk groups of the subscriptionyes
typestringThe type of the peer trunk group: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no

The role of an external trunk group

External trunk groups are special trunks that do not follow the classical settings of non-external trunk groups. They do not need a specific SBC configuration as this has been set once in a static way for all customers. A static trunk is set per default for every subscriptions if the group properties draas_external_trunkgroup_nameand draas_external_trunkgroup_name have been set. This external trunk group cannot be deleted and has a limited set of settings that may be managed.

Calling Format

Determines how the called/calling number should be presented on the trunk. This can be e164, national_with_0, international_with_00 or international_without_00.

Phone Number Object
ParameterTypeDescriptionConditional?
idintegerIndex of the phone numberyes
connectionIdintegerIndex of the connection ID linking the phone number to the trunkno
fullNumberstringPhone number in E.164 international formatno
Peer Trunk Group Object
ParameterTypeDescriptionConditional?
idintegerIndex of the trunk groupno
uuidstringThe unique ID (UUID) identifying the peer trunk groupno
billingIdstringThe external reference of the peer trunk group.no
extraobjectObject containing extra datano
domainstringThe domain of the peer trunkno
statusstringThe synchronization status of the peer trunk: error, pending, ok, unknownno
typestringThe type of the peer trunk group: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no
popIdintegerInternal ID representing the access point in the network to which this trunk is connectedno
popNamestringFriendly name of the POPno
inboundCallsintegerInbound calls quantityno
outboundCallsintegerOutbound calls quantityno
Example
json
{
    "blockUnscreenedCalls": false,
    "calledFormat": "e164",
    "callingFormat": "e164",
    "cfaActive": false,
    "cfaDestination": "",
    "cfnrActive": false,
    "cfnrDestination": "",
    "cfnrTimer": 10,
    "disasterRecoveryStatus": false,
    "external": false,
    "inboundCalls": true,
    "name": "Test TG 4",
    "billingId": "",
    "outboundCalls": true,
    "overwiteUnscreenedCallsWithPilot": true,
    "pilot": {
        "connectionId": 6,
        "fullNumber": "+3225409943",
        "id": 5
    },
    "status": "ok",
    "uuid": "db44e2de-fd63-4d87-ac07-b0a99af9e51b"
}
Example of a Peer Trunk Group
json
{
    "blockUnscreenedCalls": false,
    "calledFormat": "e164",
    "callingFormat": "e164",
    "cfaActive": false,
    "cfaDestination": "",
    "cfnrActive": false,
    "cfnrDestination": "",
    "cfnrTimer": 10,
    "disasterRecoveryStatus": false,
    "external": false,
    "inboundCalls": true,
    "name": "Test Peer Trunk 1",
    "billingId": "",
    "outboundCalls": true,
    "overwiteUnscreenedCallsWithPilot": true,
    "peerTrunks": [
        {
            "billingId": "1lklsd2",
            "extra": {
                "value": "1"
            },
            "id": 21,
            "inboundCalls": false,
            "outboundCalls": true,
            "popId": 1,
            "popName": "Wakefield",
            "uuid": "e9951870-a44b-44df-8f9d-8d84e4dff69e"
        },
        {
            "billingId": "",
            "extra": {
                "value": "2"
            },
            "id": 20,
            "inboundCalls": true,
            "outboundCalls": false,
            "popId": 2,
            "popName": "Northampton",
            "uuid": "b611e775-3286-4a10-af47-e1711c30945f"
        }
    ],
    "pilot": null,
    "status": "ok",
    "type": "msteams",
    "uuid": "58591d6b-fa87-4641-8ab8-90e21c6b86aa"
}

Create a new trunk group

Use this endpoint to associate a new trunk group to a subscription

Once completed, based on the trunk type, a notification will be sent through webhook or email (if enabled). If it's a sip trunk the event is described on create trunk_group event, otherwise, if it's a peer trunk, the event is described on create peer trunk_group event

Request

Endpoint

POST /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.create

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription to which you want to add a trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
namestringName of the new trunk group. This name must be unique within a subscriptionyes
billingIdstringThe external reference of the peer trunk group.no
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
maxCallsintegerMaximum simultaneous calls allowed for the trunk groupno
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk groupno
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk groupno
blockUnscreenedCallsbooleanBlock calls that have a CLI that doesn't belong to this trunkno
overwiteUnscreenedCallsWithPilotbooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunkno
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk groupno
cfaDestinationstringCall forwarding always destinationno
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk groupno
cfnrDestinationstringCall forwarding not reachable destinationno
cfnrTimerintegerTimer in seconds before call forwarding not reachableno
incomingCallsbooleanIncoming calls allow statusno
outgoingCallsbooleanOutgoing calls allow statusno
extraobjectObject containing extra datano
typestringThe type of the peer trunk group: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no
peerTrunksarrayList containing all peer trunk groups of the subscriptionno

Example

json
{
    "name": "My New trunk group",
    "billingId": "",
    "external": false,
    "calledFormat": "e164",
    "callingFormat": "e164",
    "maxCalls": 10,
    "blockUnscreenedCalls": false,
    "overwiteUnscreenedCallsWithPilot": true,
    "cfaActive": false,
    "cfncActive": true,
    "cfnrDestination": "+33613525507",
    "cfnrTimer": 10,
    "cfaActive": false,
    "cfnrActive": true
}

Example of a Peer Trunk Group

json
{
    "extra": {},
    "name": "Test Peer Trunk 1",
    "billingId": "",
    "peerTrunks": [
        {
            "popId": 1,
            "inboundCalls": false,
            "outboundCalls": true,
            "billingId": "",
            "extra": {
                "value": "1"
            }
        },
        {
            "popId": 2,
            "inboundCalls": true,
            "outboundCalls": false,
            "billingId": "",
            "extra": {
                "value": "1"
            }
        }
    ],
    "type": "msteams"
}

Response

Status codes

ParameterDescription
200The trunk group was created successfully
400Error while creating the trunk group
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
namestringName of the trunk groupno
billingIdstringThe external reference of the peer trunk group.no
externalbooleanFlag that indicates if the trunk group is configured as externalno
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
maxCallsintegerMaximum simultaneous calls allowed for the trunk groupyes
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk groupyes
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk groupyes
pilotobject or nullObject representing the pilot number of the trunk. Acts as main numberno
blockUnscreenedCallsbooleanBlock calls that have a CLI that doesn't belong to this trunkno
overwiteUnscreenedCallsWithPilotbooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunkno
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk groupno
cfaDestinationstringCall forwarding always destinationno
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk groupno
cfnrDestinationstringCall forwarding not reachable destinationno
cfnrTimerintegerTimer in seconds before call forwarding not reachableno
incomingCallsbooleanIncoming calls allow statusno
outgoingCallsbooleanOutgoing calls allow statusno
extraobjectObject containing extra datano
typestringThe type of the peer trunk group: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no
peerTrunksarrayList containing all peer trunk groups of the subscriptionno
Example
json
{
    "name": "My New trunk group",
    "billingId": "",
    "external": false,
    "extra": {},
    "calledFormat": "e164",
    "callingFormat": "e164",
    "maxCalls": 10,
    "blockUnscreenedCalls": false,
    "overwiteUnscreenedCallsWithPilot": true,
    "cfaActive": false,
    "cfncActive": true,
    "cfnrDestination": "+33613525507",
    "cfnrTimer": 10,
    "cfaActive": false,
    "cfnrActive": true,
    "pilot": null
}
Example
json
{
    "blockUnscreenedCalls": false,
    "calledFormat": "e164",
    "callingFormat": "e164",
    "cfaActive": false,
    "cfaDestination": "",
    "cfnrActive": false,
    "cfnrDestination": "",
    "cfnrTimer": 10,
    "external": false,
    "id": 31,
    "name": "Test Peer Trunk 1",
    "billingId": "",
    "overwiteUnscreenedCallsWithPilot": true,
    "peerTrunks": [
        {
            "billingId": "",
            "extra": {
                "value": "1"
            },
            "id": 4,
            "inboundCalls": false,
            "outboundCalls": true,
            "popId": 1,
            "popName": "Wakefield"
            "uuid": "d5422f50-acbe-4ac5-bfc6-b9d2464c5c70"
        },
        {
            "billingId": "",
            "extra": {
                "value": "2"
            },
            "id": 23,
            "inboundCalls": true,
            "outboundCalls": false,
            "popId": 2,
            "popName": "Northampton"
            "uuid": "afd91860-1ce9-455a-9662-8aa29f5afabf"
        }
    ],
    "status": "pending",
    "type": "msteams",
    "uuid": "122bf369-63cb-4a97-be21-54186f1e4667"
}

Modify an existing trunk group

Use this endpoint to modify an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on update trunk_group event Once completed, based on the trunk type, a notification will be sent through webhook or email (if enabled). If it's a sip trunk the event is described on update trunk_group event, otherwise, if it's a peer trunk, the event is described on update peer trunk_group event

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.update

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
namestringName of the new trunk group. This name must be unique within a subscriptionyes
billingIdstringThe external reference of the peer trunk group.no
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
maxCallsintegerMaximum simultaneous calls allowed for the trunk groupno
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk groupno
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk groupno
pilotintegerConnection ID of the DID you want to assign as pilotyes
blockUnscreenedCallsbooleanBlock calls that have a CLI that doesn't belong to this trunkno
overwiteUnscreenedCallsWithPilotbooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunkno
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk groupno
cfaDestinationstringCall forwarding always destinationno
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk groupno
cfnrDestinationstringCall forwarding not reachable destinationno
cfnrTimerintegerTimer in seconds before call forwarding not reachableno
extraobjectObject containing extra datano
popsarrayList containing all Peer Trunking POP Object of the subscriptionno
typestringThe type of the peer trunk group: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no

Example

json
{
    "name": "My New trunk group 2"
}

Example of a Peer Trunk Group

json
{
    "extra": {},
    "name": "Test Peer Trunk 2",
    "billingId": "",
    "peerTrunks": [
        {
            "id": 22,
            "inboundCalls": false,
            "outboundCalls": true,
            "billingId": "billingId 1",
            "extra": {
                "name": "Extra 1"
            }
        },
        {
            "popId": 1,
            "inboundCalls": false,
            "outboundCalls": false,
            "billingId": "billingId 2",
            "extra": {
                "name": "Extra 2"
            }
        }
    ]
}

Response

Status codes

ParameterDescription
200Trunk group has been updated
400Error while processing the request
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
namestringName of the trunk groupno
billingIdstringThe external reference of the peer trunk group.no
externalbooleanFlag that indicates if the trunk group is configured as externalno
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
maxCallsintegerMaximum simultaneous calls allowed for the trunk groupyes
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk groupyes
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk groupyes
pilotobject or nullObject representing the pilot number of the trunk. Acts as main numberno
blockUnscreenedCallsbooleanBlock calls that have a CLI that doesn't belong to this trunkno
overwiteUnscreenedCallsWithPilotbooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunkno
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk groupno
cfaDestinationstringCall forwarding always destinationno
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk groupno
cfnrDestinationstringCall forwarding not reachable destinationno
cfnrTimerintegerTimer in seconds before call forwarding not reachableno
inboundCallsbooleanIncoming calls allow statusno
outboundCallsbooleanOutgoing calls allow statusno
extraobjectObject containing extra datano
Example
json
{
    "name": "My New trunk group 2",
    "billingId": "",
    "external": false,
    "extra": {},
    "calledFormat": "e164",
    "callingFormat": "e164",
    "maxCalls": 10,
    "blockUnscreenedCalls": false,
    "overwiteUnscreenedCallsWithPilot": true,
    "cfaActive": false,
    "cfncActive": true,
    "cfnrDestination": "+33613525507",
    "cfnrTimer": 10,
    "cfaActive": false,
    "cfnrActive": true,
    "extra": {},
    "inboundCalls": false,
    "outboundCalls": false,
    "pilot": null
}
Example of a Peer Trunk Group
json
{
    "blockUnscreenedCalls": false,
    "calledFormat": "e164",
    "callingFormat": "e164",
    "cfaActive": false,
    "cfaDestination": "",
    "cfnrActive": false,
    "cfnrDestination": "",
    "cfnrTimer": 10,
    "external": false,
    "name": "Test Peer Trunk 2",
    "billingId": "",
    "overwiteUnscreenedCallsWithPilot": true,
    "peerTrunks": [
        {
            "billingId": "billingId 2",
            "extra": {
                "name": "Extra 2"
            },
            "id": 24,
            "inboundCalls": false,
            "outboundCalls": false,
            "popId": 1,
            "popName": "Wakefield",
            "uuid": "e3c9fd05-6a8f-43e3-b27b-06c71d01a53f"
        },
        {
            "billingId": "billingId 1",
            "extra": {
                "name": "Extra 1"
            },
            "id": 22,
            "inboundCalls": false,
            "outboundCalls": true,
            "popId": 1,
            "popName": "Wakefield",
            "uuid": "d5422f50-acbe-4ac5-bfc6-b9d2464c5c70"
        }
    ],
    "pilot": null,
    "status": "pending",
    "type": "msteams",
    "uuid": "122bf369-63cb-4a97-be21-54186f1e4667"
}

Suspend an existing trunk group

Use this endpoint to suspend an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on suspend trunk_group event

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.update

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
incomingCallsbooleanIncoming calls allow statusno
outgoingCallsbooleanOutgoing calls allow statusno

Example

json
{
    "outgoingCalls": true
}

Response

Status codes

ParameterDescription
200Trunk group has been updated
400Error while processing the request
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
namestringName of the trunk groupno
billingIdstringThe external reference of the peer trunk group.no
externalbooleanFlag that indicates if the trunk group is configured as externalno
calledFormatstringDetermines how the called number should be presented on the trunk. This can be e164, national_with_0, international_with_0 or international_with_00no
callingFormatstringDetermines how the calling number should be presented on the trunk. This can be e164, national_with_0, international_with_0 or international_with_00no
maxCallsintegerMaximum simultaneous calls allowed for the trunk groupyes
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk groupyes
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk groupyes
pilotobject or nullObject representing the pilot number of the trunk. Acts as main numberno
blockUnscreenedCallsBooleanBlock calls that have a CLI that doesn't belong to this trunkno
overwiteUnscreenedCallsWithPilotBooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunkno
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk groupno
cfaDestinationstringCall forwarding always destinationno
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk groupno
cfnrDestinationstringCall forwarding not reachable destinationno
cfnrTimerintegerTimer in seconds before call forwarding not reachableno
incomingCallsbooleanIncoming calls allow statusno
outgoingCallsbooleanOutgoing calls allow statusno
Example
json
{
    "name": "My New trunk group 2",
    "billingId": "asd123",
    "external": false,
    "calledFormat": "e164",
    "callingFormat": "e164",
    "maxCalls": 10,
    "blockUnscreenedCalls": false,
    "overwiteUnscreenedCallsWithPilot": true,
    "cfaActive": false,
    "cfncActive": true,
    "cfnrDestination": "+33613525507",
    "cfnrTimer": 10,
    "cfaActive": false,
    "cfnrActive": true,
    "incomingCalls": false,
    "outgoingCalls": true,
    "pilot": null
}

Delete an existing trunk group

Use this endpoint to remove an existing trunk group from a subscription.

Once completed, a notification will be sent through webhook or email (if enabled) as described on delete trunk_group event

Request

Endpoint

DELETE /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.delete

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
204Trunk group has been deleted
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Auto removing of phone numbers

If the trunk group still has numbers associated, the deletion bill be refused. Please make sure the numbers are disconnected from the trunk, prior to deleting the trunk.

Success

Body

N/A

Get numbers from a trunk group

Use this endpoint to get all phonenumbers connected to a trunk.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/numbers

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.numbers.list

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription to which the trunk group belongs
trunkgroup_idintegerIndex of the trunk group

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
204The phone numbers have been successfully removed (might be the complete list or a partial list)
400Error while removing the phone numbers
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
numbersarrayArray of phone numbers that have been assigned to the trunk groupyes
Phone Number Object
ParameterTypeDescriptionConditional?
idintegerIndex of the phone numberyes
connectionIdintegerIndex of the connection ID linking the phone number to the trunkno
fullNumberstringPhone number in E.164 international formatno
Example
json
{
    "numbers": [
        {
            "id": 872,
            "connectionId": 137,
            "fullNumber": "+3225405440"
        },
        {
            "id": 1042,
            "connectionId": 136,
            "fullNumber": "+3225409843"
        },
        {
            "id": 1043,
            "connectionId": 135,
            "fullNumber": "+3225409844"
        }
    ]
}

Add numbers to a trunk group

Use this endpoint to add phone numbers to an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on add_numbers_trunk_group event

Request

Endpoint

POST /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/numbers

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.numbers.create

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription to which the trunk group belongs
trunkgroup_idintegerIndex of the trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
numbersarrayArray of numbers in e164 format that you want to addyes

Example

json
{
    "countryCode": "+32",
    "numbers": [
        "+3225405220",
        "+3225405221",
        "+3225405230",
        "+3225405231",
    ]
}

Response

Status codes

ParameterDescription
200The phone numbers have been successfully added (might be the complete list or a partial list)
400Error while adding the phone numbers
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Remove numbers from a trunk group

Use this endpoint to remove phone numbers from an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on remove_numbers_trunk_group event

Request

Endpoint

DELETE /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/numbers

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.numbers.delete

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription to which the trunk group belongs
trunkgroup_idintegerIndex of the trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
connectionIdsarrayArray of connection ID's used to link phone numbers to the trunk group as returned by this APIyes

Example

json
{
    "connectionIds": [
        125,
        138,
        139
    ]
}

Response

Status codes

ParameterDescription
204The phone numbers have been successfully removed (might be the complete list or a partial list)
400Error while removing the phone numbers
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Modify a trunk group disaster recovery numbers

Use this endpoint to modify a trunk group disaster recovery numbers.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}/disaster_recovery

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.update.disaster_recovery

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
plansarrayList containing all disaster recovery plans for the subscriptionyes

Example

json
{
    "plans": [
        {
            "number": "+3225409943",
            "disasterRecoveryNumber": "+32123456789"
        },
        {
            "number": "+3225409876",
            "disasterRecoveryNumber": null
        }
    ]
}

Response

Status codes

ParameterDescription
200Trunk group has been updated
400Error while processing the request
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
resultsarrayList containing all disaster recovery plans results for the subscriptionno
Example
json
{
    "results": [
        {
            "disasterRecoveryNumber": "+32123456789",
            "number": "+3225409945",
            "status": "success"
        },
        {
            "disasterRecoveryNumber": null,
            "message": "An error occurred while setting the disaster recovery number to your SIP trunk",
            "number": "+3225409999",
            "status": "error"
        }
    ]
}
Disaster Recovery Plan Object

|Parameter|Type|Description|Conditional?| |:--|:--|:--|:--|:--| |disasterRecoveryNumber|string or null|The disaster recovery number|no| |number|string|The phone number|no|

Disaster Recovery Plan Result Object

|Parameter|Type|Description|Conditional?| |:--|:--|:--|:--|:--| |disasterRecoveryNumber|string|The disaster recovery number|no| |message|string|The error message|yes| |number|string|The phone number|no| |status|string|The status|no|

Modify a trunk group disaster recovery status

Use this endpoint to modify the status of a trunk group disaster recovery.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}/disaster_recovery/status

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.update.disaster_recovery

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
statusbooleanThe status of the disaster recoveryyes

Example

json
{
    "status": true
}

Response

Status codes

ParameterDescription
200Trunk group has been updated
400Error while processing the request
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
statusbooleanThe status of the disaster recoveryno
Example
json
{
    "status": true
}

Toggles a trunk group disaster recovery status

Use this endpoint to toggle the status of a trunk group disaster recovery.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{id}/disaster_recovery/toggle

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.update.disaster_recovery

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing trunk groups
idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
200Trunk group has been updated
400Error while processing the request
404No trunk group found for the specified subscription and trunk group index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
statusbooleanThe status of the disaster recoveryno
Example
json
{
    "status": false
}

List all access trunks linked to a trunk group

Use this endpoint to retrieve all access trunks currently linked to a trunk group.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/access_trunks

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.access_trunks.list

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing access trunks
trunkgroup_idintegerIndex of an existing trunk group

URL/Query parameters

ParameterTypeDescriptionRequired?
searchstringUsed to perform a search through all searchable properties of a access trunk that look like the string passedno
sortstringAllows to specify one searchable property of a access trunk to apply a sorting operationno
dirstringWhen performing a sort operation, specifies the type. Allowed values are asc for ascending (default) or desc for descendingno
page_sizeintegerUsed for pagination, determines the maximum number of records on one page of results (defaults to 10)no
nextstringA token used to get the next records in the list. This token is taken back from the results of the previous callno
withStatusbooleanIf provided it will return also the synchronization status of the access trunksno

Response

Status codes

ParameterDescription
200One or more access trunk found
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
resultsstringTotal count of results that match your queryno
pagesstringTotal count of result pages that are availableno
pagestringID of the page that is currently returnedno
nextstringA token used for infinite scrolling, to be used in the next call to retrieve subsequent records. Only present if the list of numbers has to be continuedyes
accessTrunksarrayList containing all access trunks for the tenantno
Access Trunk Object
ParameterTypeDescriptionConditional?Searchable?
idintegerIndex of the access trunknono
namestringName of the access trunknoyes
billingIdstringThe external reference of the peer trunk group.no
poparrayObject describing the details of the Trunking access POP to which the trunk is connectednono
weightintegerWeight applicable to this access trunknono
priorityintegerPriority applicable to this access trunknono
primaryPeerIpstringIP address of your PBXyesyes
primaryPeerPortintegerPort of your PBXyesyes
ipWhiteliststringA string giving a list of white listed IP addressesyesno
authRequiredbooleanFlag indicating if authorization is required for this access trunknono
authUsernamestringUsername used in authorization for this access trunkyesno
authPasswordstringPassword used in authorization for this access trunkyesno
statusstringThe synchronization status of the access trunk. Could be ok, pending, error or unknownyes
Trunking POP Object
ParameterTypeDescriptionConditional?Searchable?
idintegerInternal ID representing the access point in the network to which this trunk is connectednono
namestringFriendly name of the POPnono
inboundCallsintegerInbound calls quantitynono
outboundCallsintegerOutbound calls quantitynono
transportstringTransport type. See Transport Protocols.nono
Transport Protocols

Possible values are: TCP, UDP.

Example
json
{
    "accessTrunks": [
        {
            "authRequired": false,
            "id": 3,
            "name": "Modified Access Trunk Test",
            "billingId": "",
            "pop": {
                "id": 1,
                "inboundCalls": true,
                "name": "Wakefield",
                "outboundCalls": true,
                "transport": "UDP"
            },
            "priority": 5,
            "weight": 8
        },
        {
            "authRequired": false,
            "id": 4,
            "name": "Modified Access Trunk Test",
            "billingId": "",
            "pop": {
                "id": 2,
                "inboundCalls": true,
                "name": "Northampton",
                "outboundCalls": true,
                "transport": "UDP"
            },
            "priority": 5,
            "weight": 8
        },
        {
            "authRequired": false,
            "id": 1,
            "name": "RBEN Pepsi Newport",
            "billingId": "",
            "pop": {
                "id": 1,
                "inboundCalls": true,
                "name": "Wakefield",
                "outboundCalls": true,
                "transport": "UDP"
            },
            "priority": 10,
            "weight": 10
        },
        {
            "authRequired": false,
            "id": 2,
            "name": "RBEN Pepsi Newport",
            "billingId": "",
            "pop": {
                "id": 2,
                "inboundCalls": false,
                "name": "Northampton",
                "outboundCalls": false,
                "transport": "UDP"
            },
            "priority": 10,
            "weight": 10
        },
        {
            "authRequired": false,
            "id": 17,
            "name": "RBEN Test New",
            "billingId": "",
            "pop": {
                "id": 1,
                "inboundCalls": false,
                "name": "Wakefield",
                "outboundCalls": true,
                "transport": "UDP"
            },
            "priority": 20,
            "weight": 12
        },
        {
            "authRequired": false,
            "id": 18,
            "name": "RBEN Test New",
            "billingId": "",
            "pop": {
                "id": 2,
                "inboundCalls": true,
                "name": "Northampton",
                "outboundCalls": false,
                "transport": "UDP"
            },
            "priority": 20,
            "weight": 12
        }
    ],
    "page": 1,
    "pages": 1,
    "results": 6
}

Get details of a specific access trunk

Use this endpoint to retrieve the details of an access trunk currently assigned to a subscription.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/access_trunks/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.access_trunks.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to list the existing access trunks
trunkgroup_idintegerIndex of an existing trunk group
idintegerIndex of an existing access trunk linked to the trunk group

URL/Query parameters

ParameterTypeDescriptionRequired?
withStatusbooleanIf provided it will return also the synchronization status of the access trunkno

Response

Status codes

ParameterDescription
200Access trunk found
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body

|Parameter|Type|Description|Conditional?| |:--|:--|:--|:--|:--| |id|integer|Index of the access trunk|no| |name|string|Name of the access trunk|no| |billingId|string|The external reference of the peer trunk group.|no| |pop|object|Object describing the details of the Trunking access POP to which the trunk is connected|no| |weight|integer|Weight applicable to this access trunk|no| |priority|integer|Priority applicable to this access trunk|no| |primaryPeerIp|string|IP address of your PBX|yes| |primaryPeerPort|integer|Port of your PBX|yes| |ipWhitelist|string|A string giving a list of white listed IP addresses|yes| |authRequired|boolean|Flag indicating if authorization is required for this access trunk|no| |authUsername|string|Username used in authorization for this access trunk|yes| |authPassword|string|Password used in authorization for this access trunk|yes| |extra|object|Object containing extra data|no| |status|string|The synchronization status of the access trunk. Could be ok, pending, error or unknown|yes| |sipOptions|boolean|SIP Options. Default true.|no|

Example
json
{
    "authRequired": false,
    "extra": {},
    "id": 1,
    "ipWhitelist": "",
    "name": "RBEN Pepsi Newport",
    "billingId": "",
    "pop": {
        "id": 1,
        "inboundCalls": true,
        "name": "Wakefield",
        "outboundCalls": true,
        "transport": "UDP",
        "sipOptions": true
    },
    "primaryPeerIp": "10.0.0.1",
    "primaryPeerPort": 5060,
    "priority": 10,
    "weight": 10
}

Create a new access trunk

Use this endpoint to associate a new access trunk to an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on sip_add_access_trunk_trunkgroup event

Request

Endpoint

POST /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/access_trunks

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.access_trunks.create

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription to which you want to add a access trunk
trunkgroup_idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
namestringName of the access trunkyes
billingIdstringThe external reference of the peer trunk group.no
trunkingPopIdintegerIndex of the associated trunking popno
weightintegerWeight applicable to this access trunkno
priorityintegerPriority applicable to this access trunkno
primaryPeerIpstringIP address of your PBXno
primaryPeerPortintegerPort of your PBXno
ipWhiteliststringA string giving a list of white listed IP addressesno
authRequiredbooleanFlag indicating if authorization is required for this access trunkno
authUsernamestringUsername used in authorization for this access trunkno
authPasswordstringPassword used in authorization for this access trunkno
trunkLocalestringLocale setting for the trunk groupyes
extraobjectObject containing extra datano
sipOptionsbooleanSIP Options. Default true.no

Business Rules

If authorization is required, then the primary peer IP is not mandatory. If authorization is not required, then one of those IP addresses is required.

Example

json
{
  "authRequired": false,
  "extra": {},
  "ipWhitelist": "127.0.0.1",
  "name": "RBEN Test New",
  "billingId": "",
  "pops": [
    {
      "id": 1,
      "inboundCalls": false,
      "outboundCalls": true,
      "transport": "UDP"
    },
    {
      "id": 2,
      "inboundCalls": true,
      "outboundCalls": false,
      "transport": "UDP",
      "sipOptions": false
    }
  ],
  "primaryPeerIp": "10.1.2.3",
  "primaryPeerPort": 5678,
  "priority": 20,
  "weight": 12
}

Response

Status codes

ParameterDescription
200Access trunk has been added
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
accessTrunksarrayList containing all the access trunk objects createdno
Example
json
{
    "accessTrunks": [
        {
            "authRequired": false,
            "id": 17,
            "ipWhitelist": "127.0.0.1",
            "name": "RBEN Test New",
            "billingId": "",
            "pop": {
                "id": 1,
                "inboundCalls": false,
                "name": "Wakefield",
                "outboundCalls": true,
                "transport": "UDP"
            },
            "primaryPeerIp": "10.1.2.3",
            "primaryPeerPort": 5678,
            "priority": 20,
            "weight": 12
        },
        {
            "authRequired": false,
            "id": 18,
            "ipWhitelist": "127.0.0.1",
            "name": "RBEN Test New",
            "billingId": "",
            "pop": {
                "id": 2,
                "inboundCalls": true,
                "name": "Northampton",
                "outboundCalls": false,
                "transport": "UDP"
            },
            "primaryPeerIp": "10.1.2.3",
            "primaryPeerPort": 5678,
            "priority": 20,
            "weight": 12
        }
    ]
}

Modify an existing access trunk

Use this endpoint to modify an existing access trunk.

Once completed, a notification will be sent through webhook or email (if enabled) as described on sip_update_access_trunk_trunkgroup event

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/access_trunks/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.access_trunks.instance.update

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to modify the existing access trunk
trunkgroup_idintegerIndex of an existing trunk group
idintegerIndex of an existing access trunk linked to the trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
namestringName of the access trunkno
billingIdstringThe external reference of the peer trunk group.no
trunkingPopIdintegerIndex of the associated trunking popno
weightintegerWeight applicable to this access trunkno
priorityintegerPriority applicable to this access trunkno
primaryPeerIpstring or nullIP address of your PBX. Set to null to removeno
primaryPeerPortintegerPort of your PBXno
ipWhiteliststring or nullA string giving a list of white listed IP addresses. Set to null to removeno
authRequiredbooleanFlag indicating if authorization is required for this access trunkno
authUsernamestring or nullUsername used in authorization for this access trunk. Set to null to removeno
authPasswordstring or nullPassword used in authorization for this access trunk. Set to null to removeno
trunkLocalestringLocale setting for the trunk groupno
extraobjectObject containing extra datano
sipOptionsbooleanSIP Options. Default true.no

Business Rules

If authorization is required, then the primary peer IP is not mandatory. If authorization is not required, then one of those IP addresses is required. This is checked against new provided data and existing data for coherence.

Example

json
{
  "name": "Modified Access Trunk Test",
  "billingId": "",
  "weight": 8,
  "priority": 5,
  "primaryPeerIp": "10.1.1.2",
  "primaryPeerPort": 1234,
  "ipWhitelist": "127.0.0.1,10.1.2.34",
  "pop": {
    "inboundCalls": true,
    "outboundCalls": true,
    "transport": "UDP"
  }
}

Response

Status codes

ParameterDescription
200Access trunk has been modified
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body

|Parameter|Type|Description|Conditional?| |:--|:--|:--|:--|:--| |id|integer|Index of the access trunk|no| |name|string|Name of the access trunk|no| |billingId|string|The external reference of the peer trunk group.|no| |pop|object|Object describing the details of the Trunking access POP to which the trunk is connected|no| |weight|integer|Weight applicable to this access trunk|no| |priority|integer|Priority applicable to this access trunk|no| |primaryPeerIp|string|IP address of your PBX|yes| |primaryPeerPort|integer|Port of your PBX|yes| |ipWhitelist|string|A string giving a list of white listed IP addresses|yes| |authRequired|boolean|Flag indicating if authorization is required for this access trunk|no| |authUsername|string|Username used in authorization for this access trunk|yes| |authPassword|string|Password used in authorization for this access trunk|yes| |trunkLocale|string|Locale setting for the trunk group|yes| |extra|object|Object containing extra data|no| |sipOptions|boolean|SIP Options. Default true.|no|

Example
json
{
    "authRequired": false,
    "extra": {},
    "id": 5,
    "ipWhitelist": "127.0.0.1,10.1.2.34",
    "name": "Modified Access Trunk Test",
    "billingId": "",
    "pop": {
        "id": 1,
        "inboundCalls": true,
        "name": "Wakefield",
        "outboundCalls": true,
        "transport": "UDP"
    },
    "primaryPeerIp": "10.1.1.2",
    "primaryPeerPort": 1234,
    "weight": 8,
    "priority": 5
}

Delete an existing access trunk

Use this endpoint to remove an existing access trunk from an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on sip_remove_access_trunk_trunkgroup event

Request

Endpoint

DELETE /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/access_trunks/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.access_trunks.instance.delete

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to delete the access trunk
trunkgroup_idintegerIndex of an existing trunk group
idintegerIndex of an existing access trunk linked to the trunk group

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
204Access trunk has been deleted
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body

N/A

List all peer trunks of a trunk group

Use this endpoint to retrieve all peer trunks currently assigned to a trunk group.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/peer_trunks

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.peer_trunks.list

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
subscription_idintegerIndex of the subscription for which you want to list the existing trunk group
trunkgroup_idintegerIndex of the trunk group for which you want to list the existing peer trunks

URL/Query parameters

N/A

Response

Status codes

ParameterDescription
200One or more peer trunks found
400Error while processing the request
404No peer trunk found for the specified subscription
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
resultsintegerTotal number of results from the queryno
pagesintegerTotal number of pages according to pagination settingsno
pageintegerCurrent displayed page from the set of pagesno
peerTrunksarrayList containing all peer trunk of the trunk groupno
Example
json
{
  "page": 1,
  "pages": 1,
  "peerTrunks": [
    {
      "billingId": "tg-test-1",
      "domain": "",
      "id": 104,
      "name": "TG test 1",
      "pop": {
        "id": 2,
        "inboundCalls": true,
        "name": "Northampton",
        "outboundCalls": true
      },
      "uuid": "fec0205c-0ade-4e09-a708-50d68f9101d5"
    },
    {
      "billingId": "tg-test-1",
      "domain": "",
      "id": 105,
      "name": "TG test 1",
      "pop": {
        "id": 1,
        "inboundCalls": true,
        "name": "Wakefield",
        "outboundCalls": true
      },
      "uuid": "b241dd38-aa45-4343-b6c3-67c20c8ec3ae"
    }
  ],
  "results": 2
}

Get details of a specific peer trunk

Use this endpoint to retrieve the details of a peer trunk currently assigned to a trunk group.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/peer_trunks/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.peer_trunks.read

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
subscription_idintegerIndex of the subscription for which you want to list the existing trunk group
trunkgroup_idintegerIndex of the trunk group for which you want to list the existing peer trunks
idintegerIndex of an existing peer trunk

URL/Query parameters

N/A

Response

Status codes

ParameterDescription
200Details of the peer trunk could be retrieved
400Error while processing the request
404No peer trunk found for the specified subscription and peer trunk index
403The API consumer doesn't have sufficient rights to perform this action
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
billingIdstringThe external reference of the peer trunk.no
domainstringThe domain of the peer trunkno
extrastringExtra datano
idintegerIndex of the peer trunkno
popobjectThe POP of the peer trunkno
statusstringThe synchronization status of the peer trunk: error, pending, ok, unknownno
typestringThe type of the peer trunk: sip, msteams, webexc, webexcc, zoom, azure.no
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no
uuidstringThe unique ID (UUID) identifying the peer trunkno
Peer Trunk Group POP Read Object
ParameterTypeDescriptionConditional?
idintegerIndex of the POPno
namestringFriendly name of the POP.no
inboundCallsintegerInbound calls quantityno
outboundCallsintegerOutbound calls quantityno
Peer Trunk Group POP Object
ParameterTypeDescriptionConditional?
idintegerIndex of the POP. Only for POST.yes
inboundCallsintegerInbound calls quantityno
outboundCallsintegerOutbound calls quantityno
Example
json
{
  "billingId": "tg-test-1",
  "domain": "",
  "id": 104,
  "name": "TG test 1",
  "pop": {
    "id": 2,
    "inboundCalls": true,
    "name": "Northampton",
    "outboundCalls": true
  },
  "uuid": "fec0205c-0ade-4e09-a708-50d68f9101d5"
}

Create a new peer trunk

Use this endpoint to associate a new peer trunk to an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on sip_add_peer_trunk trunkgroup_event

Request

Endpoint

POST /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/peer_trunks

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.peer_trunks.create

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription to which you want to add a peer trunk
trunkgroup_idintegerIndex of an existing trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
billingIdstringThe external reference of the peer trunk groupno
extrastringExtra datano
namestringName of the peer trunk. Default is the name of the trunk group.no
popobjectThe POP of the peer trunkyes
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no

Example

json
{
    "billingId": "peer:test",
    "name": "Peer Test",
    "pop": {
        "id": 1,
        "inboundCalls": false,
        "outboundCalls": true
    }
}

Response

Status codes

ParameterDescription
201Peer trunk has been created
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
billingIdstringThe external reference of the peer trunk group.no
extrastringExtra datano
idintegerIndex of the peer trunkno
namestringName of the peer trunk.no
popobjectThe POP of the peer trunkno
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no
uuidstringUniversal unique id uniquely identifying the peer trunkno
Example
json
{
    "billingId": "peer:test",
    "id": 15,
    "name": "Peer Test",
    "pop": {
        "id": 1,
        "inboundCalls": false,
        "outboundCalls": true
    },
    "uuid": "a355b573-c1f1-49fc-bfb7-3d32ecc45860"
}

Modify an existing peer trunk

Use this endpoint to modify an existing peer trunk.

Once completed, a notification will be sent through webhook or email (if enabled) as described on sip_update_peer_trunk_trunkgroup event

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/peer_trunks/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.peer_trunks.instance.update

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to modify the existing peer trunk
trunkgroup_idintegerIndex of an existing trunk group
idintegerIndex of an existing peer trunk linked to the trunk group

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired?
billingIdstringThe external reference of the peer trunk group.no
extrastringExtra datano
namestringName of the peer trunk. Default is the name of the trunk group.no
popobjectThe POP of the peer trunkno
regionstringThe region of the peer trunk group (only for types: webexc, webexcc).no

Example

json
{
    "billingId": "peer:test-mod",
    "name": "Peer Test Mod",
    "pop": {
        "inboundCalls": true,
        "outboundCalls": false
    }
}

Response

Status codes

ParameterDescription
200Peer trunk has been modified
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No trunk group found for the specified subscription and tenant
500Uncatched error on server side

Success

Body
ParameterTypeDescriptionConditional?
billingIdstringThe external reference of the peer trunk group.no
extrastringExtra datano
idintegerIndex of the peer trunkno
namestringName of the peer trunkno
popobjectThe POP of the peer trunkno
uuidstringUniversal unique id uniquely identifying the peer trunkno
Example
json
{
    "billingId": "peer:test-mod",
    "id": 15,
    "name": "Peer Test Mod",
    "pop": {
        "id": 2,
        "inboundCalls": true,
        "outboundCalls": false
    },
    "uuid": "a355b573-c1f1-49fc-bfb7-3d32ecc45860"
}

Delete an existing peer trunk

Use this endpoint to remove an existing peer trunk from an existing trunk group.

Once completed, a notification will be sent through webhook or email (if enabled) as described on sip_remove_peer_trunk_trunkgroup event

Request

Endpoint

DELETE /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/{trunkgroup_id}/peer_trunks/{id}

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.instance.peer_trunks.instance.delete

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant to which the subscription belongs
sub_idintegerIndex of the subscription for which you want to delete the peer trunk
trunkgroup_idintegerIndex of an existing trunk group
idintegerIndex of an existing peer trunk linked to the trunk group

URL/Query parameters

N/A

Body

N/A

Response

Status codes

ParameterDescription
204Peer trunk has been deleted
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No peer trunk found for the specified trunk group, subscription and tenant
500Uncatched error on server side

Success

Body

N/A

Bulk create/update trunk groups

Bulk API to handle trunk groups.

This endpoint internally will call the create or update APIs. Once completed, a notification will not be sent through email.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/trunkgroups/bulk

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.bulk

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
subscription_idintegerIndex of a subscription to manage the bulk job for

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired
namestringBulk job descriptive nameyes
dataarrayList of trunk group bulk data objects to be created/updatedyes

Example

json
{
  "name": "Bulk create trunk groups",
  "data": [
    {
      "uuid": "5c70f993-63d8-4204-a806-3f7baae000bc",
      "name": "Bulk API TG 1",
      "callingFormat": "national_with_0",
      "calledFormat": "international_without_00",
      "maxCalls": 4,
      "maxIncomingCalls": 3,
      "maxOutgoingCalls": 2,
      "numbers": [
        "+3226260125",
        "+3226260126"
      ],
      "pilot": "+3226260125"
    }
  ]
}
Trunk Group bulk data objects
ParameterTypeDescriptionConditional?
namestringThe name.no
blockUnscreenedCallsbooleanBlock calls that have a CLI that doesn't belong to this trunk.no
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
cfaActivebooleanFlag enabling or disabling call forwarding always on the trunk group.no
cfaDestinationstringCall forwarding always destination.no
cfnrActivebooleanFlag enabling or disabling call forwarding not reachable on the trunk group.no
cfnrDestinationstringCall forwarding not reachable destination.no
cfnrTimerintegerTimer in seconds before call forwarding not reachable.no
maxCallsintegerMaximum simultaneous calls allowed for the trunk group.no
maxIncomingCallsintegerMaximum incoming calls allowed for the trunk group.no
maxOutgoingCallsintegerMaximum outgoing calls allowed for the trunk group.no
overwiteUnscreenedCallsWithPilotbooleanOverwrite the CLI to the pilot number for calls with a CLI that doesn't belong to this trunk.no
numbersarrayThe list of phone numbers.no
pilotstringThe pilot number of the trunk.no
uuidstringThe Trunk Group uuid (only for modify).yes

Response

Status codes

ParameterDescription
200All trunk groups were successfully updated
400None of trunk groups were successfully updated
403The API consumer doesn't have sufficient rights to perform this action
404The path tenant / subscription doesn't exist
500Uncaught error on server side

Body

ParameterTypeDescriptionConditional?
codeintegerError code (see below for a complete error list)no
reasonstringMessage providing more context to the error that occurredno
Success example
json
{
    "code": 3077,
    "reason": "Trunk Group bulk provisioning process is started"
}

Get trunk groups bulk jobs history

Retrieve the history of trunk groups bulk jobs runs related to the given subscription.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/trunkgroups/bulk_jobs

Authorization

Required role

tenants.instance.subscriptions.instance.trunkgroups.bulk.jobs

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
subscription_idintegerIndex of a subscription to retrieve the bulk jobs history for

URL/Query parameters

ParameterTypeDescriptionRequired
page_sizeintegerUsed for pagination, determines the maximum number of records on one page of results (defaults to 10)no
nextstringA token used to get the next records in the list. This token is taken back from the results of the previous callno
searchstringA case insensitive search on the bulk job title or kind (that contains the passed value)no
filtersarrayAn object representing the conditions to filter out the resultsno

Response

Status codes

ParameterDescription
200The list of the bulk jobs has been retrieved
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No bulk history found or the path tenant / subscription doesn't exist
500Uncaught error on server side

Success

Body
ParameterTypeDescriptionConditional?
bulksarrayThe list of the bulk jobs related to the given subscription_idno
resultsintegerTotal number of bulk jobs retrievedno
pagesintegerTotal number of pagesno
pageintegerCurrent pageno
nextstringA token used for infinite scrolling, to be used in the next call to retrieve subsequent records. Only present if the list of bulk jobs has to be continuedyes
Example
json
{
    "bulks": [
        {
            "created_on": "2026-01-09T12:02:14.667938",
            "id": 90,
            "job_id": "1767960134",
            "kind": "trunk_groups",
            "status": "success",
            "success_count": 1,
            "title": "Create trunk group",
            "total_count": 1,
            "updated_on": "2026-01-13T13:57:01.824744"
        },
        {
            "created_on": "2026-01-09T10:55:38.569230",
            "id": 89,
            "job_id": "1767956137",
            "kind": "trunk_groups",
            "status": "ongoing",
            "success_count": 0,
            "title": "Create trunk group",
            "total_count": 1,
            "updated_on": "2026-01-13T13:56:29.860690"
        }
    ],
    "page": 1,
    "pages": 1,
    "results": 2
}

Bulk create/update access trunks

Bulk API to handle access trunks.

This endpoint internally will call the create or update APIs. Once completed, a notification will not be sent through email.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/accesstrunks/bulk

Authorization

Required role

tenants.instance.subscriptions.instance.accesstrunks.bulk

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
subscription_idintegerIndex of a subscription to manage the bulk job for

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired
namestringBulk job descriptive nameyes
dataarrayList of access trunk bulk data objects to be created/updatedyes

Example

json
{
  "name": "Bulk create access trunks",
  "data": [
    {
      "trunkgroup": 81,
      "name": "Bulk API AT Test",
      "primaryPeerIp": "10.0.0.4",
      "primaryPeerPort": 5679,
      "priority": 5,
      "weight": 10,
      "pops": [
        {
          "id": 1,
          "inboundCalls": false,
          "outboundCalls": false,
          "realm": "public",
          "sipOptions": true,
          "transport": "UDP"
        },
        {
          "id": 2,
          "inboundCalls": true,
          "outboundCalls": true,
          "realm": "public",
          "sipOptions": false,
          "transport": "TCP"
        }
      ]
    }
  ]
}
Access Trunk bulk data objects
ParameterTypeDescriptionConditional?
namestringName of the access trunkno
billingIdstringThe external reference of the peer trunk group.no
authRequiredbooleanFlag indicating if authorization is required for this access trunkno
authUsernamestringUsername used in authorization for this access trunkno
authPasswordstringPassword used in authorization for this access trunkno
priorityintegerPriority applicable to this access trunkno
primaryPeerIpstringIP address of your PBXno
primaryPeerPortintegerPort of your PBXno
ipWhiteliststringA string giving a list of white listed IP addressesno
popsarrayThe list of pops to which the trunk is connected. See Access Trunk POP Objects.no
weightintegerWeight applicable to this access trunkno
uuidstringThe Access Trunk uuid (only for modify).yes
Access Trunk POP Objects
ParameterTypeDescriptionConditional?
idintegerIndex representing the access point in the network to which this trunk is connected (exclusive with popId).yes
popIdintegerPOP index representing the connected access trunk (exclusive with ip).yes
namestringFriendly name of the POPno
inboundCallsintegerInbound calls quantityno
outboundCallsintegerOutbound calls quantityno
transportstringTransport type. See Transport Protocols.no

Response

Status codes

ParameterDescription
200All access trunks were successfully updated
400None of access trunks were successfully updated
403The API consumer doesn't have sufficient rights to perform this action
404The path tenant / subscription doesn't exist
500Uncaught error on server side

Body

ParameterTypeDescriptionConditional?
codeintegerError code (see below for a complete error list)no
reasonstringMessage providing more context to the error that occurredno
Success example
json
{
    "code": 3078,
    "reason": "Access Trunk bulk provisioning process is started"
}

Get access trunks bulk jobs history

Retrieve the history of access trunks bulk jobs runs related to the given subscription.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/accesstrunks/bulk_jobs

Authorization

Required role

tenants.instance.subscriptions.instance.accesstrunks.bulk.jobs

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
subscription_idintegerIndex of a subscription to retrieve the bulk jobs history for

URL/Query parameters

ParameterTypeDescriptionRequired
page_sizeintegerUsed for pagination, determines the maximum number of records on one page of results (defaults to 10)no
nextstringA token used to get the next records in the list. This token is taken back from the results of the previous callno
searchstringA case insensitive search on the bulk job title or kind (that contains the passed value)no
filtersarrayAn object representing the conditions to filter out the resultsno

Response

Status codes

ParameterDescription
200The list of the bulk jobs has been retrieved
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No bulk history found or the path tenant / subscription doesn't exist
500Uncaught error on server side

Success

Body
ParameterTypeDescriptionConditional?
bulksarrayThe list of the bulk jobs related to the given subscription_idno
resultsintegerTotal number of bulk jobs retrievedno
pagesintegerTotal number of pagesno
pageintegerCurrent pageno
nextstringA token used for infinite scrolling, to be used in the next call to retrieve subsequent records. Only present if the list of bulk jobs has to be continuedyes
Example
json
{
    "bulks": [
        {
            "created_on": "2026-01-09T16:07:33.185840",
            "id": 102,
            "job_id": "1767974852",
            "kind": "accesstrunks",
            "status": "success",
            "success_count": 1,
            "title": "Create access trunk",
            "total_count": 1,
            "updated_on": "2026-01-09T16:07:35.426652"
        },
        {
            "created_on": "2026-01-09T14:39:19.618844",
            "id": 101,
            "job_id": "1767969559",
            "kind": "accesstrunks",
            "status": "ongoing",
            "success_count": 0,
            "title": "Create access trunk",
            "total_count": 1,
            "updated_on": "2026-01-09T14:39:19.618844"
        }
    ],
    "page": 1,
    "pages": 1,
    "results": 2
}

Bulk create/update peer trunks

Bulk API to handle peer trunks.

This endpoint internally will call the create or update APIs. Once completed, a notification will not be sent through email.

Request

Endpoint

PUT /api/v01/draas/{draas_instance}/tenants/{uuid}/subscriptions/{subscription_id}/peertrunks/bulk

Authorization

Required role

tenants.instance.subscriptions.instance.peertrunks.bulk

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
subscription_idintegerIndex of a subscription to manage the bulk job for

URL/Query parameters

N/A

Body
ParameterTypeDescriptionRequired
namestringBulk job descriptive nameyes
dataarrayList of peer trunk bulk data objects to be created/updatedyes

Example

json
{
    "name": "Bulk create peer trunks",
    "data": [
        {
            "uuid": "5c70f993-63d8-4204-a806-3f7baae000bc",
            "type": "msteams",
            "name": "API Bulk PT Test 1",
            "billingId": "api-bulk-tg-test-1",
            "callingFormat": "e164",
            "calledFormat": "e164",
            "peers": [
                {
                    "id": 1,
                    "billingId": "BillingID1",
                    "inboundCalls": false,
                    "outboundCalls": true
                },
                {
                    "popId": 2,
                    "billingId": "Billing ID 2",
                    "inboundCalls": true,
                    "outboundCalls": false
                }
            ]
        },
        {
            "uuid": "a417c3f3-cceb-4a1e-9298-ec2869d6b028",
            "type": "msteams",
            "name": "API Bulk PT Test 2",
            "billingId": "api-bulk-tg-test-2",
            "callingFormat": "e164",
            "calledFormat": "e164",
            "peers": []
        },
        {
            "uuid": "3b3d1326-8e1e-427b-a041-11190d4968bf",
            "type": "msteams",
            "name": "API Bulk PT Test 3",
            "billingId": "api-bulk-tg-test-3",
            "callingFormat": "e164",
            "calledFormat": "e164"
        }
    ]
}
Peer Trunk bulk data objects
ParameterTypeDescriptionConditional?
trunkgroupstringThe Trunk Group uuid.no
namestringThe name.no
typestrinThe type. Values in: msteams, webexc, webexcc, zoom, azure.no
billingIdstringThe external reference of the peer trunk group.no
calledFormatstringDetermines how the called number should be presented on the trunk. See Calling Format.no
callingFormatstringDetermines how the calling number should be presented on the trunk. See Calling Format.no
peersarrayThe list of peers to which the trunk is connected. See Access Trunk POP Objects.no
uuidstringThe Peer Trunk uuid (only for modify).yes
Peer Trunk Objects
ParameterTypeDescriptionConditional?
idintegerIndex representing the access point in the network to which this trunk is connected (exclusive with popId).yes
popIdintegerPOP index representing the connected peer trunk (exclusive with ip).yes
namestringFriendly name of the POP.no
inboundCallsintegerInbound calls quantity.no
outboundCallsintegerOutbound calls quantity.no

Response

Status codes

ParameterDescription
200All peer trunks were successfully updated
400None of peer trunks were successfully updated
403The API consumer doesn't have sufficient rights to perform this action
404The path tenant / subscription doesn't exist
500Uncaught error on server side

Body

ParameterTypeDescriptionConditional?
codeintegerError code (see below for a complete error list)no
reasonstringMessage providing more context to the error that occurredno
Success example
json
{
    "code": 3079,
    "reason": "Peer Trunk bulk provisioning process is started"
}

Get peer trunks bulk jobs history

Retrieve the history of peer trunks bulk jobs runs related to the given subscription.

Request

Endpoint

GET /api/v01/draas/{draas_instance}/tenants/{uuid}/peertrunks/bulk_jobs

Authorization

Required role

tenants.instance.subscriptions.instance.peertrunks.bulk.jobs

Path Parameters

ParameterTypeDescription
draas_instancestringSee common parameters
uuidstringA system generated unique ID (UUID) identifying the tenant managing the subscription
subscription_idintegerIndex of a subscription to retrieve the bulk jobs history for

URL/Query parameters

ParameterTypeDescriptionRequired
page_sizeintegerUsed for pagination, determines the maximum number of records on one page of results (defaults to 10)no
nextstringA token used to get the next records in the list. This token is taken back from the results of the previous callno
searchstringA case insensitive search on the bulk job title or kind (that contains the passed value)no
filtersarrayAn object representing the conditions to filter out the resultsno

Response

Status codes

ParameterDescription
200The list of the bulk jobs has been retrieved
400Error while processing the request
403The API consumer doesn't have sufficient rights to perform this action
404No bulk history found or the path tenant / subscription doesn't exist
500Uncaught error on server side

Success

Body
ParameterTypeDescriptionConditional?
bulksarrayThe list of the bulk jobs related to the given subscription_idno
resultsintegerTotal number of bulk jobs retrievedno
pagesintegerTotal number of pagesno
pageintegerCurrent pageno
nextstringA token used for infinite scrolling, to be used in the next call to retrieve subsequent records. Only present if the list of bulk jobs has to be continuedyes
Example
json
{
    "bulks": [
        {
            "created_on": "2026-01-12T16:09:30.368826",
            "id": 112,
            "job_id": "1768234169",
            "kind": "peertrunks",
            "status": "success",
            "success_count": 3,
            "title": "Create peer trunk",
            "total_count": 3,
            "updated_on": "2026-01-12T16:09:37.957719"
        },
        {
            "created_on": "2026-01-12T14:19:37.442654",
            "id": 111,
            "job_id": "1768227576",
            "kind": "peertrunks",
            "status": "ongoing",
            "success_count": 0,
            "title": "Create peer trunk",
            "total_count": 3,
            "updated_on": "2026-01-12T14:19:37.442654"
        }
    ],
    "page": 1,
    "pages": 1,
    "results": 2
}