Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Core module APIs are useful to create , modify , delete extensions and fetch the values of existing configured extensions. 

Table of Contents
stylenone

Create Extension

Creating an extension into Freepbx/PBXact system.

...

API Name  addExtension API.

API Parameters -

Name

Required

Type

Default

Description

extensionId

Mandatory

ID

Unique string to specify the extension number.

name

Mandatory

string

Display name

tech

Optional

String

pjsip

SIP Technology device driver. If not specify then will use PJSIP to create the extension.

Accepted values:  "sip" or "pjsip".

channelName

Optional

String

Channel name in case if using DAHDI

callerID

Optional

String

The CallerID name for calls from this user will be set to this name. Recommended to use "name" not the number.

outboundCID

Optional

String

This overrides the caller id when dialling out a trunk. This setting will override the common outbound caller id set in the trunk.

emergencyCID

Optional

String

This caller id will always be set when dialing out an outbound route flagged as emergency. The emergency CID overrides all other caller id settings.

email

Mandatory

String

User Email address to use for services such as voicemail, user management and fax etc.

vmEnable

Optional

Boolean

True

Voicemail enable / disable

vmPassword

Optional

String

Voicemail password. If not specify then user can access the voicemails without any password/pin.

umEnable

Optional

Boolean

True

User manager enable/disable. If enabled mandatory to set umPassword

umGroups

Optional

String

1

User manager group. if not specified will use all user(1) created at the time of installation. In case of multiple add comma separated values.

umPassword

Oprional

String

Set passwords for user management. Its mandatory to set password if umEnable is set to true.

maxContacts

Optional

Integer

1

Set max_contacts value for chan_pjsip extension.

Query Parameters 

Code Block
status
message

API Request 

Code Block
1. Api to add Extension
 
GQLAPI:  /admin/api/api/gql
 
parameters:
 
mutation {
    addExtension(
        input: {
            extensionId: 9090090115
            name: "api test"
            tech: "pjsip"
            channelName: "APi Test2"
            outboundCid: "12345678901"
            email: "xyzabc@gmailcom"
            umGroups: "1"
            umEnable: true
            umPassword: "password"
            vmPassword: "asda"
            vmEnable: true
            callerID: "234234324"
            emergencyCid: "1221333331"
            clientMutationId: "test1231"
            maxContacts: "3"
        }
    ) {
        status
        message
    }
}

API Response 

Code Block
{
  "data": {
    "addExtension": {
      "status": true,
      "message": "Extension has been created Successfully"
    }
  }
}

Update Extension

Update extension in FreePBX/PBXACT to do any modification of an existing extension parameters.

...

API Name  updateExtension API.

API Parameters -

Name

Required

Type

Default

Description

extensionId

Mandatory

ID

Unique string to specify the extension number.

name

Mandatory

string

Display name

tech

Optional

String

SIP Technology device driver. If not specify then will use PJSIP to create the extension.

Accepted values:  "sip" or "pjsip".

channelName

Optional

String

Channel name in case if using DAHDI

callerID

Optional

String

The Caller ID name for calls from this user will be set to this name. Recommended to use "name" not the number.

outboundCID

Optional

String

This overrides the caller id when dialing out a trunk. This setting will override the common outbound caller id set in the trunk.

emergencyCID

Optional

String

This caller id will always be set when dialing out an outbound route flagged as emergency. The emergency CID overrides all other caller id settings.

email

Optional

String

User Email address to use for services such as voicemail, user management and fax etc.

vmEnable

Optional

Boolean

True

Voicemail enable / disable. If enabled mandatory to set umPassword.

vmPassword

Optional

String

Voicemail password. If not specify then user can access the voicemails without any password/pin.

umEnable

Optional

Boolean

True

User manager enable/disable

umGroups

Optional

String

User manager group. if not specified will use all user(1) created at the time of installation

umPassword

Oprional

String

Set passwords for user management. Its mandatory to set password if umEnable is set to true.

extPassword

Optional

String

Set a secret/password for extension.

maxContacts

Optional

Integer

1

Set max_contacts value for chan_pjsip extension.

Query Parameters 

Code Block
status
message
clientMutationId

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
  mutation {
    updateExtension(
        input: {
            extensionId: 9090090111
            name: "api test"
            tech: "pjsip"
            channelName: "APi Test2"
            outboundCid: "12345678901"
            email: "xyzabc@gmailcom"
            umGroups: "1"
            umEnable: true
            umPassword: "password"
            vmPassword: "password"
            vmEnable: true
            callerID: "234234324"
            emergencyCid: "1221333331"
            clientMutationId: "test1231"
            extPassword: "secret"
            maxContacts: "4"
        }
      ) {
            status
            message
            clientMutationId
       }
}

API Response 

Code Block
{
  "data": {
    "updateExtension": {
      "status": true,
      "message": "Extension has been updated",
      "clientMutationId": "test1231"
    }
  }
}

Delete Extension

Delete an Extension from Freepbx/PBXACT

...

API Name  deleteExtension API.

API Parameters -

Name

Required

Type

Default

Description

extensionId

Mandatory

ID

Extension number

Query Parameters 

Code Block
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
mutation {
    deleteExtension(
        input: { extensionId: 9090090115 }
    ) {
        status
        message
    }
}

API Response 

Code Block
{
  "data": {
    "deleteExtension": {
      "status": true,
      "message": "Extension has been deleted"
    }
  }
}

Create Range of Extensions

...

API Name: createRangeofExtension API

API Parameters - 

Name

Required

Type

Default

Description

startExtension

Mandatory

ID

First Extension number to create/configure.

name

Optional

String

The caller id name which we want to append along with the extension number.

channelName

Optional

String

Channel name in case if using DAHDI

tech

Optional

String

PJSIP

SIP Technology device driver. If we want to convert extension from one driver type to other for example chan_sip to pjsip conversion.

numberOfExtensions

Mandatory

ID

Number of extensions to create/configure.

outboundCid

Optional

String

This overrides the caller id when dialling out a trunk. This setting will override the common outbound caller id set in the trunk.

emergencyCid

Optional

String

This caller id will always be set when dialing out an outbound route flagged as emergency. The emergency CID overrides all other caller id settings.

email

Optional

String

User Email address to use for services such as voicemail, user management and fax etc.

vmEnable

Optional

Boolean

True

Voicemail enable / disable

vmPassword

Optional

String

Voicemail password. If not specify then user can access the voicemails without any password/pin.

umEnable

Optional

Boolean

True

User manager enable/disable

umGroups

Optional

String

User manager group. if not specified will use all user(1) created at the time of installation

Query Parameters 

Code Block
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
mutation {
    createRangeofExtension(
        input: {
            startExtension: 110
            numberOfExtensions: 2
            tech: "pjsip"
            channelName: "pjsip"
            name: "APi Test2"
            outboundCid: "12345678901"
            email: "xyzabc@gmailcom"
            umEnable: true
            umGroups: "1"
            vmEnable: true
            vmPassword: "123451"
            emergencyCid: "1221333331"
            clientMutationId: "test1231"
        }
    ) {
    message
        status
    }
}

API Response 

Code Block
{
  "data": {
    "createRangeofExtension": {
      "message": "Extension's has been created Successfully",
      "status": "true"
    }
  }
}

Fetch a particular extension detail

API Name :  fetchExtension 

API Parameters: 

Name

Required

Type

Default

Description

id

Mandatory

ID

Extension Id to query

API Parameters to query

Query Parameters 

Code Block
  status
  message
  id
  extensionId
  user {
    name
    outboundCid
    voicemail
    ringtimer
    noanswer
    noanswerDestination
    noanswerCid
    busyCid
    sipname
    password
    extPassword
  }
  coreDevice {
    deviceId
    dial
    devicetype
    description
    emergencyCid
    tech
    callerId
    sipdriver
    user {
      name
      outboundCid
      voicemail
      ringtimer
      sipname
  }
}

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
{
  fetchExtension(extensionId: "9090090110") {
    status
    message
    id
    extensionId
    user {
      name
      outboundCid
      voicemail
      ringtimer
      noanswer
      noanswerDestination
      noanswerCid
      busyCid
      sipname
      password
      extPassword
    }
    coreDevice {
      deviceId
      dial
      devicetype
      description
      emergencyCid
      
     }
    }
  }

API Response 

Code Block
{
  "data": {
    "fetchExtension": {
      "status": true,
      "message": "Extension found successfully",
      "id": "ZXh0ZW5zaW9uOjkwOTAwOTAxMTA=",
      "extensionId": "9090090110",
      "user": {
        "name": "APi Test2",
        "outboundCid": "12345678901",
        "voicemail": "default",
        "ringtimer": 0,
        "noanswer": "",
        "noanswerDestination": "",
        "noanswerCid": "",
        "busyCid": "",
        "sipname": "",
        "password" : "password",
        "extPassword": "ecc6de2001ceb217a04d5d9ac90f3e1123444c"
      },
      "coreDevice": {
        "deviceId": "9090090110",
        "dial": "PJSIP/9090090110",
        "devicetype": "fixed",
        "description": "APi Test2",
        "emergencyCid": "",
      }
    }
  }
}

Fetch all Extensions Details 

...

API Parameters to query

Query Parameters 

Code Block
status
message
totalCount
extension {
   id
   extensionId
   user {
     name
     password
     outboundCid
     ringtimer
     noanswer
     sipname
     password
     extPassword
    }
    coreDevice {
        deviceId
        dial
        devicetype
        description
        emergencyCid
        tech
        callerId
        sipdriver
   }
}

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
{
    fetchAllExtensions {
        status
        message
        totalCount
        extension {
            id
            extensionId
            user {
              name
              password
              outboundCid
              ringtimer
              noanswer
              sipname
              password
              extPassword
            }
              coreDevice {
              deviceId
              dial
              devicetype
              description
              emergencyCid
            }
        }
    }
}

API Response 

Code Block
{
  "data": {
    "fetchAllExtensions": {
      "status": true,
      "message": "Extension's found successfully",
      "totalCount": 4,
      "extension": [
        {
          "id": "ZXh0ZW5zaW9uOg==",
          "extensionId": "100",
          "user": {
            "name": "100",
            "password": "",
            "outboundCid": "",
            "ringtimer": 0,
            "noanswer": "",
            "sipname": "",
            "password" : "password",
            "extPassword": "ecc6de2001ceb217a04d5d9ac90f3e1123444c"
          },
          "coreDevice": {
            "deviceId": "100",
            "dial": "PJSIP/100",
            "devicetype": "fixed",
            "description": "100",
            "emergencyCid": ""
          }
        },
        {
          "id": "ZXh0ZW5zaW9uOg==",
          "extensionId": "101",
          "user": {
            "name": "101",
            "password": "",
            "outboundCid": "",
            "ringtimer": 0,
            "noanswer": "",
            "sipname": "",
            "password": "password",
            "extPassword": "ecc6de2001ceb217a04d5d9ac90f3e1123444c"
          },
          "coreDevice": {
            "deviceId": "101",
            "dial": "PJSIP/101",
            "devicetype": "fixed",
            "description": "101",
            "emergencyCid": ""
          }
        }]
  }
}

Fetch all valid extensions 

...

API Parameters to query

Query Parameters 

Code Block
status
message
count
extension {
   id
   extensionId
   user {
     name
     password
     outboundCid
     ringtimer
     noanswer
     sipname
     password
     extPassword
    }
    coreDevice {
        deviceId
        dial
        devicetype
        description
        emergencyCid
        tech
        callerId
        sipdriver
   }
}

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
{
    fetchAllValidExtensions {
        status
        message
        count
        extension {
            id
            extensionId
            user {
              name
              password
              outboundCid
              ringtimer
              noanswer
              sipname
              password
              extPassword
            }
              coreDevice {
              deviceId
              dial
              devicetype
              description
              emergencyCid
            }
        }
    }
}

API Response 

Code Block
{
  "data": {
    "fetchAllValidExtensions": {
      "status": true,
      "message": "Valid core extensions",
      "count": 2,
      "extension": [
        {
          "id": "ZXh0ZW5zaW9uOg==",
          "extensionId": "100",
          "user": {
            "name": "100",
            "password": "",
            "outboundCid": "",
            "ringtimer": 0,
            "noanswer": "",
            "sipname": "",
            "password" : "password",
            "extPassword": "ecc6de2001ceb217a04d5d9ac90f3e1123444c"
          },
          "coreDevice": {
            "deviceId": "100",
            "dial": "PJSIP/100",
            "devicetype": "fixed",
            "description": "100",
            "emergencyCid": ""
          }
        },
        {
          "id": "ZXh0ZW5zaW9uOg==",
          "extensionId": "101",
          "user": {
            "name": "101",
            "password": "",
            "outboundCid": "",
            "ringtimer": 0,
            "noanswer": "",
            "sipname": "",
            "password": "password",
            "extPassword": "ecc6de2001ceb217a04d5d9ac90f3e1123444c"
          },
          "coreDevice": {
            "deviceId": "101",
            "dial": "PJSIP/101",
            "devicetype": "fixed",
            "description": "101",
            "emergencyCid": ""
          }
        }]
  }
}

Add Inbound Route

Creating inbound route into Freepbx/PBXact system.

...

API Name  addInboundRoute API.

API Parameters -

Name

Required

Type

Default

Description

extension

Optional

string

Define the expected DID Number if your trunk passes DID on incoming calls. if did not pass this field then show default value as `Any` in the user interface

cidnum

Optional

string

Define the CallerID Number to be matched on incoming calls, if did not pass this field then show default value as `Any` in the user interface

description

Optional

String

Provide a meaningful description of what this incoming route is

privacyman

Optional

Boolean

If no CallerID has been received, Privacy Manager will ask the caller to enter their phone number. If an user/extension has Call Screening enabled, 

the incoming caller will be prompted to say their name when the call reaches the user/extension.

alertinfo

Optional

String

ALERT_INFO can be used for distinctive ring with SIP devices.

ringing

Optional

Boolean

Some devices or providers require RINGING to be sent before ANSWER. You'll notice this happening if you can send calls directly to a phone, 

but if you send it to an IVR, it won't connect the call.

mohclass

Optional

String

Set the MoH class that will be used for calls that come in on this route. For example, choose a type appropriate for routes coming in from a 

country which may have announcements in their language.

grppre

Optional

String

CID name prefix

delay_answer

Optional

Integer

An optional delay to wait before processing this route. Setting this value will delay the channel from answering the call. 

This may be handy if external fax equipment or security systems are installed in parallel and you would like them to be able to seize the line.

pricid

Optional

Boolean

This effects CID ONLY routes where no DID is specified. If checked, calls with this CID will be routed to this route, even if there is a route to the DID that was called. 
Normal behavior is for the DID route to take the calls. If there is a specific DID/CID route for this CID, that route will still take the call when that DID is called

pmmaxretries

Optional

String

Number of attempts the caller has to enter a valid CallerID. Default value is 3

pmminlength

Optional

String

Minimum amount of digits CallerID needs to contain in order to be considered valid. Default value is 10

reversal

Optional

Boolean

On PRI channels the carrier will send a signal if the caller indicates a billing reversal. 
When checked this route will reject calls that indicate a billing reversal if supported

rvolume

Optional

String

Override the ringer volume. Note: This is only valid for Sangoma phones at this time. Default value is 0

fanswer

Optional

Boolean

Set to Yes to force the call to be answered at this time

destination

Mandatory

String

Destination for route. for example value like this, extension (100) :`from-did-direct,100,1`

Query Parameters 

Code Block
inboundRoute {
               id
             }
status
message

API Request 

Code Block
1. Api to add inbound route
 
GQLAPI:  /admin/api/api/gql
 
parameters:
 
mutation {
    addInboundRoute(input: {
          extension:"71667"
          cidnum:"1232abc"
          description:"Lorem Ipsum"
          privacyman:false
          alertinfo:"Lorem Ipsum"
          ringing:true
          mohclass:"Lorem Ipsum"
          grppre:"ABC"
          delay_answer:12
          pricid:false
          pmmaxretries:"123"
          pmminlength:"12"
          reversal:true
          rvolume:"12"
          fanswer:true
          destination:"1233"
    }) {
        inboundRoute {
          id
        }
        status
        message
    }
}

API Response 

Code Block
{
  "data": {
    "addInboundRoute": {
      "inboundRoute": {
        "id": "71667/1232abc"
      }
      "status": true,
      "message": "Inbound Route created successfully"
    }
  }
}

Update Inbound Route

Updating inbound route into Freepbx/PBXact system.

...

API Name  updateInboundRoute API.

API Parameters -

Name

Required

Type

Default

Description

oldExtension

Optional

string

Old Extension. Used to change the current extension

oldCidnum

Optional

string

Old CID Num. Used to change the current cid number 

extension

Mandatory

string

Define the expected DID Number if your trunk passes DID on incoming calls.

cidnum

Mandatory

string

Define the CallerID Number to be matched on incoming calls

description

Optional

String

Provide a meaningful description of what this incoming route is

privacyman

Optional

Boolean

If no CallerID has been received, Privacy Manager will ask the caller to enter their phone number. If an user/extension has Call Screening enabled, 

the incoming caller will be prompted to say their name when the call reaches the user/extension.

alertinfo

Optional

String

ALERT_INFO can be used for distinctive ring with SIP devices.

ringing

Optional

Boolean

Some devices or providers require RINGING to be sent before ANSWER. You'll notice this happening if you can send calls directly to a phone, 

but if you send it to an IVR, it won't connect the call.

mohclass

Optional

String

Set the MoH class that will be used for calls that come in on this route. For example, choose a type appropriate for routes coming in from a 

country which may have announcements in their language.

grppre

Optional

String

CID name prefix

delay_answer

Optional

Integer

An optional delay to wait before processing this route. Setting this value will delay the channel from answering the call. 

This may be handy if external fax equipment or security systems are installed in parallel and you would like them to be able to seize the line.

pricid

Optional

Boolean

This effects CID ONLY routes where no DID is specified. If checked, calls with this CID will be routed to this route, even if there is a route to the DID that was called. 
Normal behavior is for the DID route to take the calls. If there is a specific DID/CID route for this CID, that route will still take the call when that DID is called

pmmaxretries

Optional

String

Number of attempts the caller has to enter a valid CallerID. Default value is 3

pmminlength

Optional

String

Minimum amount of digits CallerID needs to contain in order to be considered valid. Default value is 10

reversal

Optional

Boolean

On PRI channels the carrier will send a signal if the caller indicates a billing reversal. 
When checked this route will reject calls that indicate a billing reversal if supported

rvolume

Optional

String

Override the ringer volume. Note: This is only valid for Sangoma phones at this time. Default value is 0

fanswer

Optional

Boolean

Set to Yes to force the call to be answered at this time

destination

Mandatory

String

Destination for route

Query Parameters 

Code Block
inboundRoute {
               id
             }
status
message

API Request 

Code Block
1. Api to update inbound route
 
GQLAPI:  /admin/api/api/gql
 
parameters:
mutation {
    updateInboundRoute(input: {
          oldExtension:"71667"
          oldCidnum:"1232lorem"
          extension:"9999"
          cidnum:"9999Lorem"
          description:"Lorem Ipsum"
          privacyman:false
          alertinfo:"Lorem Ipsum"
          ringing:true
          mohclass:"Lorem Ipsum"
          grppre:"ABC"
          delay_answer:12
          pricid:false
          pmmaxretries:"123"
          pmminlength:"12"
          reversal:true
          rvolume:"12"
          fanswer:true
          destination:"1233"
    }) {
        inboundRoute {
          id
        }
        status
        message
    }
}

API Response 

Code Block
{
  "data": {
    "updateInboundRoute": {
      "inboundRoute": {
        "id": "71667/1232lorem"
      }
      "status": true,
      "message": "Inbound Route updated successfully"
    }
  }
}

Remove Inbound Route

Remove inbound route from Freepbx/PBXact system.

...

API Name  removeInboundRoute API.

API Parameters -

Name

Required

Type

Default

Description

id

Mandatory

string

Inbound Route Id

Query Parameters 

Code Block
status
message
deletedId

API Request 

Code Block
1. Api to remove inbound route
 
GQLAPI:  /admin/api/api/gql
 
parameters:
 
mutation {
    removeInboundRoute(input: {
        id:"71667/1232lorem"
    }) {
        status
        message
        deletedId
    }
}

API Response 

Code Block
{
  "data": {
    "removeInboundRoute": {
      "status": true,
      "message": "Inbound Route deleted successfully",
      "deletedId": "71667/1232lorem"
    }
  }
}

Fetch All Inbound Routes

API Name :  allInboundRoutes

...

API Parameters to query

Query Parameters 

Code Block
inboundRoutes {
        id
        extension
        cidnum
        description
        privacyman
        alertinfo
        ringing
        mohclass
        grppre
        delay_answer
        pricid
        pmmaxretries
        pmminlength
        reversal
        rvolume
        fanswer
        destinationConnection
     }

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
{
  allInboundRoutes{
    inboundRoutes {
            id
            extension
            cidnum
            description
            privacyman
            alertinfo
            ringing
            mohclass
            grppre
            delay_answer
            pricid
            pmmaxretries
            pmminlength
            reversal
            rvolume
            fanswer
            destinationConnection
         }
    }
}

API Response 

Code Block
{
  "data": {
    "allInboundRoutes": {
      "inboundRoutes": [
        {
          "id": "71667/1232dsds",
          "extension": "71667",
          "cidnum": "1232dsds",
          "description": "Lorem Ipsum",
          "privacyman": false,
          "alertinfo": "Lorem Ipsum",
          "ringing": true,
          "mohclass": "Lorem Ipsum",
          "grppre": "ABC",
          "delay_answer": 12,
          "pricid": false,
          "pmmaxretries": 12,
          "pmminlength": 12,
          "reversal": false,
          "rvolume": 12,
          "fanswer": false,
          "destinationConnection": "Extensions: 4001 Extension 4001"
        }
      ]
    }
  }
}

Fetch Inbound Route

API Name :  inboundRoute

...

API Parameters to query

Query Parameters 

Code Block
id
extension
cidnum
description
privacyman
alertinfo
ringing
mohclass
grppre
delay_answer
pricid
pmmaxretries
pmminlength
reversal
rvolume
fanswer
destinationConnection

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
 
query {
    inboundRoute( id: "71667/1232dsds") {
          id
          extension
          cidnum
          description
          privacyman
          alertinfo
          ringing
          mohclass
          grppre
          delay_answer
          pricid
          pmmaxretries
          pmminlength
          reversal
          rvolume
          fanswer
          destinationConnection
    }
}

API Response 

Code Block
{
  "data": {
    "inboundRoute": {
      "id": "71667/1232dsds",
      "extension": "71667",
      "cidnum": "1232dsds",
      "description": "Lorem Ipsum",
      "privacyman": false,
      "alertinfo": "Lorem Ipsum",
      "ringing": true,
      "mohclass": "Lorem Ipsum",
      "grppre": "ABC",
      "delay_answer": 12,
      "pricid": false,
      "pmmaxretries": 12,
      "pmminlength": 12,
      "reversal": false,
      "rvolume": 12,
      "fanswer": false,
      "destinationConnection": "Extensions: 4001 Extension 4001"
    }
  }
}

Create Core Device

Creating an core device into Freepbx/PBXact system.

...

API Name  addCoreDevice API.

API Parameters -

Name

Required

Type

Default

Description

id

Mandatory

ID

Give your device a unique integer ID. The device will use this ID to authenticate to the system.

tech

Mandatory

String

pjsip

Technology driver type

dial

Mandatory

String

How to dial this device, this should not be changed unless you know what you are doing.

devicetype

Mandatory

String

Devices can be fixed or adhoc. Fixed devices are always associated to the same extension/user. Adhoc devices can be logged into and logged out of by users.

description

Optional

String

The CallerID name for this device will be set to this description until it is logged into.

user

Optional

String

Fixed devices will always mapped to this user. Adhoc devices will be mapped to this user by default.

emergency_cid

Optional

String

This CallerID will always be set when dialing out an Outbound Route flagged as Emergency. The Emergency CID overrides all other CallerID settings.

Query Parameters 

Code Block
status
message

API Request 

Code Block
1. Api to add Core Device
 
GQLAPI:  /admin/api/api/gql
 
parameters:
 
mutation {
    addCoreDevice(input: {
        id:111223345
        tech:"pjsip"
        description:"Lorem Ipsum"
        dial:"222333"
        devicetype:"Lorem"
        user:"222333"
        emergency_cid:"222333"
    }){
        message
        status
    }
}

API Response 

Code Block
{
  "data": {
    "addCoreDevice": {
      "message": "Core device has been created successfully",
      "status": true
    }
  }
}

Update Core Device

Updating an core device into Freepbx/PBXact system.

...

API Name  updateCoreDevice API.

API Parameters -

Name

Required

Type

Default

Description

id

Mandatory

ID

Give your device a unique integer ID. The device will use this ID to authenticate to the system.

tech

Mandatory

String

pjsip

Technology driver type

dial

Mandatory

String

How to dial this device, this should not be changed unless you know what you are doing.

devicetype

Mandatory

String

Devices can be fixed or adhoc. Fixed devices are always associated to the same extension/user. Adhoc devices can be logged into and logged out of by users.

description

Optional

String

The CallerID name for this device will be set to this description until it is logged into.

user

Optional

String

Fixed devices will always mapped to this user. Adhoc devices will be mapped to this user by default.

emergency_cid

Optional

String

This CallerID will always be set when dialing out an Outbound Route flagged as Emergency. The Emergency CID overrides all other CallerID settings.

Query Parameters 

Code Block
status
message

API Request 

Code Block
1. Api to update Core Device
 
GQLAPI:  /admin/api/api/gql
 
parameters:
 
mutation {
    updateCoreDevice(input: {
        id:111223345
        tech:"pjsip"
        description:"Lorem Ipsum Updated"
        dial:"222333"
        devicetype:"Lorem"
        user:"222333"
        emergency_cid:"222333"
    }){
        message
        status
    }
}

API Response 

Code Block
{
  "data": {
    "updateCoreDevice": {
      "message": "Core device has been updated successfully",
      "status": true
    }
  }
}

Fetch a particular core device details

API Name :  fetchCoreDevice

API Parameters: 

Name

Required

Type

Default

Description

device_id

Mandatory

ID

Device Id to query

API Parameters to query

Query Parameters 

Code Block
deviceId
tech
dial
devicetype
user {
  id
}
description
emergencyCid

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
{
  fetchCoreDevice(device_id: "111223345") {
      deviceId
      tech
      dial
      devicetype
      user {
        id
      }
      description
      emergencyCid
  }
}

API Response 

Code Block
{
  "data": {
    "fetchCoreDevice": {
      "deviceId": "111223345",
      "tech": "pjsip",
      "dial": "PJSIP/111223345",
      "devicetype": "fixed",
      "user": {
        "id": "Y29yZXVzZXI6"
      },
      "description": "Lorem Ipsum updated",
      "emergencyCid": ""
    }
  }
}

Fetch all Core Device Details 

...

API Parameters to query

Query Parameters 

Code Block
coreDevice{
    deviceId
    tech
    callerId
    sipdriver
    dial
    devicetype
    user {
      id
    }
    description
    emergencyCid
}
totalCount
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
{
    fetchAllCoreDevices {
        coreDevice{
          deviceId
          tech
          dial
          devicetype
          user {
            id
          }
          description
          emergencyCid
        }
        totalCount
        status
        message
    }
}

API Response 

Code Block
{
    "data": {
        "fetchAllCoreDevices": {
            "coreDevice": [
                {
                    "deviceId": "10007",
                    "tech": "pjsip",
                    "dial": "PJSIP/10007",
                    "devicetype": "fixed",
                    "user": {
                        "id": "Y29yZXVzZXI6MTAwMDc="
                    },
                    "description": "Test",
                    "emergencyCid": ""
                },
                {
                    "deviceId": "1002",
                    "tech": "pjsip",
                    "dial": "PJSIP/1002",
                    "devicetype": "fixed",
                    "user": {
                        "id": "Y29yZXVzZXI6"
                    },
                    "description": "Testing-ABC",
                    "emergencyCid": ""
                }
            ],
            "totalCount": 134,
            "status": true,
            "message": "Core Device's found successfully"
        }
    }
}

Delete Core Device

Delete an Core Device from Freepbx/PBXACT

...

API Name  deleteCoreDevice API.

API Parameters -

Name

Required

Type

Default

Description

id

Mandatory

ID

Device number

Query Parameters 

Code Block
deletedId
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
mutation {
      deleteCoreDevice(input: {
          id:"1114334"
      }){
          deletedId
          message
          status
      }
  }

API Response 

Code Block
{
  "data": {
    "deleteCoreDevice": {
      "deletedId": "1114334",
      "message": "Core device has been deleted successfully",
      "status": true
    }
  }
}

Update Advance Setting's

API Name  updateAdvanceSettings API.

API Parameters -

Name

Required

Type

Default

Description

keyword

Mandatory

Enum

Keyword of the settings which needs to updated

value

Mandatory

string

Value of the settings

Query Parameters 

Code Block
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
mutation {
    updateAdvanceSettings(input: {
        keyword:AS_DISPLAY_FRIENDLY_NAME
        value:"0"
    }){
        message
        status
    }
}

API Response 

Code Block
{
    "data": {
        "updateAdvanceSettings": {
            "message": "Setting's updated successfully",
            "status": true
        }
    }
}

Fetch a particular advance settings details

API Name :  fetchAdvanceSetting

API Parameters: 

Name

Required

Type

Default

Description

keyword

Mandatory

String

Keyword of the settings which needs to be fetched

API Parameters to query

Query Parameters 

Code Block
keyword
value
name
category
description
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
 
query{
  fetchAdvanceSetting(keyword:"HTTPENABLED") {
    keyword
    value
    name
    category
    description
    status
    message
  }
}

API Response 

Code Block
{
  "data": {
    "fetchAdvanceSetting": {
      "keyword": "HTTPENABLED",
      "value": "0",
      "name": "Enable the mini-HTTP Server",
      "category": "Asterisk Builtin mini-HTTP server",
      "description": "Whether the Asterisk HTTP interface is enabled or not. This is for Asterisk, it is not directly related for FreePBX usage and the value of this setting is irrelevant for accessing core FreePBX settings. Default is no.",
      "status": true,
      "message": "Setting's found successfully"
    }
  }
}

Fetch all Advance Settings Details 

...

API Parameters to query

Query Parameters 

Code Block
settings{
   keyword
   value
   name
   category
   description
}
status
message

API Request 

Code Block
GQLAPI: /admin/api/api/gql
 
Parameters:
 
query{
  fetchAllSettings {
      settings{
        keyword
        value
        name
        category
        description
      }
      status
      message
  }
}

API Response 

Code Block
{
  "data": {
    "fetchAllAdvanceSettings": {
      "settings": [
        {
          "keyword": "AS_DISPLAY_FRIENDLY_NAME",
          "value": "0",
          "name": "Display Friendly Name",
          "category": "Advanced Settings Details",
          "description": "Normally the friendly names will be displayed on this page and the internal freepbx_conf configuration names are shown in the tooltip. If you prefer to view the configuration variables, and the friendly name in the tooltip, set this to false.."
        },
        {
          "keyword": "AS_DISPLAY_READONLY_SETTINGS",
          "value": "0",
          "name": "Display Readonly Settings",
          "category": "Advanced Settings Details",
          "description": "This will display settings that are readonly. These settings are often internally used settings that are not of interest to most users. Since they are readonly they can only be viewed."
        },
        {
          "keyword": "AS_OVERRIDE_READONLY",
          "value": "0",
          "name": "Override Readonly Settings",
          "category": "Advanced Settings Details",
          "description": "Setting this to true will allow you to override un-hidden readonly setting to change them. Settings that are readonly may be extremely volatile and have a high chance of breaking your system if you change them. Take extreme caution when electing to make such changes."
        }
      ],
      "status": true,
      "message": "Setting's found successfully"
    }
  }
}