Retrive extension groups

GET /extensions/group/list
Retrieve a list of extension groups.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • sort_by

    enum

    optional

    Values include "DEFAULT" and "Optional". Default value will be used when user has not specified value for this field.

Sample Request

https://example.com/api/extensions/group/list?access_token=196ACE20C6F34027895F7F95402BB164&pagesize=100&pagination=1&sort_by=DEFAULT

Response

Placeholders
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • sort_by

    enum

    optional

    Values include "DEFAULT" and "Optional". Default value will be used when user has not specified value for this field.
  • page_count

    integer

    required

    The total count of pages.
  • count

    integer

    required

    Current pagesize.
  • groups

    array

    required

    Collection of extension group objects.
    Show child attributes

Sample Response

{
    "pagination": 1,
    "pagesize": 100,
    "sort_by": "DEFAULT",
    "page_count": 100,
    "count": 100,
    "groups": [
        {
            "group_id": "5E7B5E37-4008-429C-85D3-183DD4D4A9D9",
            "group_name": "Example extension group",
            "members_count": 0
        },
        {
            "group_id": "__DEFAULT_EXTENSION_GROUP__",
            "group_name": "__DEFAULT_EXTENSION_GROUP__",
            "members_count": 0
        }
    ]
}

Reteive settings for extension group

GET /extensions/group/show
Retrieves settings of certain extension group.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • group_id

    string

    required

    Group ID.

Sample Request

https://example.com/api/extensions/group/show?access_token=196ACE20C6F34027895F7F95402BB164&group_id=Group+ID+1

Response

Placeholders
  • group_id

    string

    required

    Group ID
  • group_name

    string

    required

    Name of extension group.
  • group_description

    string

    required

    Description for current extension group.
  • enable_intercom

    boolean

    required

    Indicates if extension group members are allowed for intercom.
  • enable_external_call

    boolean

    required

    Indicates if extension group members are allowed to call external numbers
  • enable_management_console_access

    boolean

    required

    Indicates if extension group members are allowed to access the PortSIP PBX Management Console. IMPORTANT NOTE: Make sure that the Access Password configured is secured.
  • members

    array

    required

    Collection of extensions.
    Show child attributes

Sample Response

{
    "group_name": "Sample extension group",
    "group_description": "Sample extension group",
    "enable_intercom": true,
    "enable_external_call": true,
    "enable_management_console_access": true,
    "members": [
        "105",
        "106",
        "107"
    ]
}

Create an extension group

POST /extensions/group/create
Create a new extension group.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • group_name

    string

    required

    Name of extension group to be created.
  • group_description

    string

    optional

    Description for extension group to be created.
  • enable_intercom

    boolean

    required

    Indicates if extension group members are allowed for intercom.
  • enable_external_call

    boolean

    required

    Indicates if extension group members are allowed to call external numbers.
  • enable_management_console_access

    boolean

    required

    Indicates if extension group members are allowed to access the PortSIP PBX Management Console. IMPORTANT NOTE: Make sure that the Access Password configured is secure.
  • members

    array

    optional

    Collection of extensions.
    Show child attributes

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "group_name": "Sample extension group",
    "group_description": "Sample extension group",
    "enable_intercom": true,
    "enable_external_call": true,
    "enable_management_console_access": true,
    "members": [
        "105",
        "106",
        "107"
    ]
}

Response

Placeholders
  • group_id

    string

    required

    Group ID.
  • group_name

    string

    required

    Name of the group created.

Sample Response

{
    "group_id": "12",
    "group_name": "test"
}

Update extension group

POST /extensions/group/update
Modify the settings of an extension group.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • group_id

    string

    required

    Group ID for extension group to be modified.
  • group_name

    string

    required

    Name of extension group to be created.
  • group_description

    string

    optional

    Description for extension group to be created.
  • enable_intercom

    boolean

    required

    Indicates if extension group members are allowed for intercom.
  • enable_external_call

    boolean

    required

    Indicates if extension group members are allowed to call external numbers.
  • enable_management_console_access

    boolean

    required

    Indicates if extension group members are allowed to access the PortSIP PBX Management Console. IMPORTANT NOTE: Make sure that the Access Password configured is secure.
  • members

    array

    optional

    Collection of extensions.
    Show child attributes

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "group_id": "12",
    "group_name": "Sample extension group",
    "group_description": "Sample extension group",
    "enable_intercom": true,
    "enable_external_call": true,
    "enable_management_console_access": true,
    "members": [
        "105",
        "106",
        "107"
    ]
}

Response

Placeholders

Sample Response

Remove an extension group

POST /extensions/group/destroy
Delete an extension group.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • group_id

    string

    required

    Group ID.

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "group_id": "Sample extension group"
}

Response

Placeholders

Sample Response

Retrive a list of extensions

GET /extensions/list
Retrieves a list of extensions. A maximum of 100 extensions could be returned per request.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • sort_by

    enum

    optional

    Values include "DEFAULT" and "Optional". Default value will be used when user has not specified value for this field.

Sample Request

https://example.com/api/extensions/list?access_token=196ACE20C6F34027895F7F95402BB164&pagesize=100&pagination=1&sort_by=DEFAULT

Response

Placeholders
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • sort_by

    enum

    optional

    Values include "DEFAULT" and "Optional". Default value will be used when user has not specified value for this field.
  • page_count

    integer

    required

    The total count of pages.
  • count

    integer

    required

    Current pagesize.
  • extensions

    array

    required

    Collection of extension objects returned.
    Show child attributes

Sample Response

{
    "pagination": 1,
    "pagesize": 100,
    "sort_by": "DEFAULT",
    "page_count": 100,
    "count": 100,
    "extensions": [
        {
            "extension_number": "1001",
            "first_name": "Sample name",
            "last_name": "Sample name",
            "email": "sample@sample.com",
            "status": "OFFLINE",
            "user_agent": "",
            "phone_mac_address": "",
            "phone_model": ""
        }
    ]
}

Search a list of extensions

GET /extensions/search
Retrieves a list of extensions. A maximum of 100 extensions could be returned per request.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • condition

    string

    required

    Search condition.

Sample Request

https://example.com/api/extensions/search?access_token=196ACE20C6F34027895F7F95402BB164&condition=100a&pagesize=100&pagination=1

Response

Placeholders
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • page_count

    integer

    required

    The total count of pages.
  • count

    integer

    required

    Current pagesize.
  • extensions

    array

    required

    Collection of extension objects returned.
    Show child attributes

Sample Response

{
    "pagination": 1,
    "pagesize": 100,
    "page_count": 100,
    "count": 100,
    "extensions": {
        "extension_number": "1001",
        "first_name": "Sample name",
        "last_name": "Sample name",
        "email": "sample@sample.com",
        "status": "OFFLINE",
        "user_agent": "",
        "phone_mac_address": "",
        "phone_model": ""
    }
}

Create a new extension

POST /extensions/create
Create a new extension. Only tenant or admin user has access to this API.

Request

Placeholders
  • extension_number

    string

    required

    Number of extension to be created.
  • password

    string

    required

    Password of extension to be created.
  • web_access_password

    string

    required

    Access password of extension to be created.
  • profile

    object

    optional

    Profile settings for extension.
    Show child attributes
  • voice_mail

    object

    optional

    Voicemail settings for extension.
    Show child attributes
  • forward_rules

    object

    optional

    Settings for forwarding rules.
    Show child attributes
  • options

    object

    optional

    Settings in Options section.
    Show child attributes
  • office_hours

    object

    optional

    Settings for extension office hours.
    Show child attributes

Sample Request

{
    "extension_number": "1000",
    "password": "123456",
    "web_access_password": "123456",
    "profile": {
        "first_name": "first name",
        "last_name": "last name",
        "gender": "MALE",
        "email": "example@example.com",
        "mobile_phone": "123456",
        "work_phone": "123456",
        "home_phone": "123456",
        "twitter": "Placeholders",
        "facebook": "Placeholders",
        "linkedin": "Placeholders",
        "instagram": "Placeholders",
        "description": "Placeholders"
    },
    "options": {
        "enable_audio_record_calls": false,
        "enable_video_record_calls": false,
        "enable_extension": true
    },
    "voice_mail": {
        "enable_voicemail": true,
        "prompt_language": "en-us",
        "enable_vm_pin_auth": true,
        "voicemail_pin": "123456",
        "enable_play_caller_id": false,
        "msg_read_out_datetime": "DO_NOT_READ"
    },
    "forward_rules": {
        "available": {
            "no_answer_timeval": 20,
            "no_answer_action": "CONNECT_TO_VOICE_MAIL",
            "no_answer_action_value": "",
            "busy_action": "CONNECT_TO_VOICE",
            "busy_action_value": ""
        },
        "offline": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        },
        "dnd": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        },
        "away": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        }
    },
    "office_hours": {
        "office_hours_mode": "CUSTOM",
        "monday_from": "09:00",
        "monday_to": "17:00",
        "tuesday_from": "09:00",
        "tuesday_to": "17:00",
        "wednesday_from": "09:00",
        "wednesday_to": "17:00",
        "thursday_from": "09:00",
        "thursday_to": "17:00",
        "friday_from": "09:00",
        "friday_to": "17:00",
        "saturday_from": "09:00",
        "saturday_to": "17:00",
        "sunday_from": "09:00",
        "sunday_to": "17:00"
    }
}

Response

Placeholders

Sample Response

Retrive settings for extension

GET /extensions/show
Retrieves the settings of an extension.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension_number

    string

    required

    The count of extension.

Sample Request

https://example.com/api/extensions/show?access_token=196ACE20C6F34027895F7F95402BB164&extension_number=1000

Response

Placeholders
  • extension_number

    string

    required

    Number of extension to be created.
  • password

    string

    required

    Password of extension to be created.
  • web_access_password

    string

    required

    Access password of extension to be created.
  • profile

    object

    optional

    Profile settings for extension.
    Show child attributes
  • voice_mail

    object

    optional

    Voicemail settings for extension.
    Show child attributes
  • forward_rules

    object

    optional

    Settings for forwarding rules.
    Show child attributes
  • options

    object

    optional

    Settings in Options section.
    Show child attributes
  • office_hours

    object

    optional

    Settings for extension office hours.
    Show child attributes
  • belong_groups

    array

    optional

    belong_groups.
    Show child attributes

Sample Response

{
    "extension_number": "1000",
    "password": "123456",
    "web_access_password": "123456",
    "profile": {
        "first_name": "first name",
        "last_name": "last name",
        "gender": "MALE",
        "email": "example@example.com",
        "mobile_phone": "123456",
        "work_phone": "123456",
        "home_phone": "123456",
        "twitter": "Placeholders",
        "facebook": "Placeholders",
        "linkedin": "Placeholders",
        "instagram": "Placeholders",
        "description": "Placeholders"
    },
    "options": {
        "enable_audio_record_calls": false,
        "enable_video_record_calls": false,
        "enable_extension": true
    },
    "voice_mail": {
        "enable_voicemail": true,
        "prompt_language": "en-us",
        "enable_vm_pin_auth": true,
        "voicemail_pin": "123456",
        "enable_play_caller_id": false,
        "msg_read_out_datetime": "DO_NOT_READ"
    },
    "forward_rules": {
        "available": {
            "no_answer_timeval": 20,
            "no_answer_action": "CONNECT_TO_VOICE_MAIL",
            "no_answer_action_value": "",
            "busy_action": "CONNECT_TO_VOICE",
            "busy_action_value": ""
        },
        "offline": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        },
        "dnd": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        },
        "away": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        }
    },
    "office_hours": {
        "office_hours_mode": "CUSTOM",
        "monday_from": "09:00",
        "monday_to": "17:00",
        "tuesday_from": "09:00",
        "tuesday_to": "17:00",
        "wednesday_from": "09:00",
        "wednesday_to": "17:00",
        "thursday_from": "09:00",
        "thursday_to": "17:00",
        "friday_from": "09:00",
        "friday_to": "17:00",
        "saturday_from": "09:00",
        "saturday_to": "17:00",
        "sunday_from": "09:00",
        "sunday_to": "17:00"
    }
}

Retrive status of extensions

POST /extensions/status
Retrieves the current status of given extensions.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extensions

    array

    required

    Extension numbers array of which you want to get the status.
    Show child attributes

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "extensions": [
        "102"
    ]
}

Response

Placeholders

Sample Response

{
    "extension_status": [
        {
            "extension_number": "101",
            "status": "ON_CALL",
            "user_agent": ""
        }
    ]
}

Call a certain extension.

GET extensions/call
Call a certain extension.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension

    string

    required

    Extension number of which you want to call.
  • auth

    string

    required

    Password.
  • to

    string

    required

    Call to.
  • domain

    string

    required

    Domain.
  • src

    string

    required

    Source.

Sample Request

https://example.com/apiextensions/call?access_token=196ACE20C6F34027895F7F95402BB164&auth=example+password&domain=example+domain&extension=1000&src=example+source&to=1001

Response

Placeholders

Sample Response

Update an extension

POST /extensions/update
Modify the settings of an extension.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension_number

    string

    required

    Extension number.
  • profile

    object

    required

    Profile settings for extension.
    Show child attributes
  • options

    object

    required

    Options settings for extension.
    Show child attributes
  • forward_rules

    object

    required

    Forward rules for extension.
    Show child attributes
  • office_hours

    object

    required

    Office hours for extension.
    Show child attributes
  • voice_mail

    object

    required

    Voicemail for extension.
    Show child attributes

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "extension_number": "102",
    "profile": {
        "first_name": "first name",
        "last_name": "last name",
        "gender": "MALE",
        "email": "example@example.com",
        "mobile_phone": "123456",
        "work_phone": "123456",
        "home_phone": "123456",
        "twitter": "Placeholders",
        "facebook": "Placeholders",
        "linkedin": "Placeholders",
        "instagram": "Placeholders",
        "description": "Placeholders"
    },
    "options": {
        "enable_audio_record_calls": false,
        "enable_video_record_calls": false,
        "enable_extension": true
    },
    "forward_rules": {
        "available": {
            "no_answer_timeval": 20,
            "no_answer_action": "CONNECT_TO_VOICE_MAIL",
            "no_answer_action_value": "",
            "busy_action": "CONNECT_TO_VOICE",
            "busy_action_value": ""
        },
        "offline": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        },
        "dnd": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        },
        "away": {
            "office_hours_action": "CONNECT_TO_VOICE",
            "office_hours_action_value": "",
            "outside_office_hours_action": "CONNECT_TO_VOICE",
            "outside_office_hours_action_value": ""
        }
    },
    "office_hours": {
        "office_hours_mode": "CUSTOM",
        "monday_from": "09:00",
        "monday_to": "17:00",
        "tuesday_from": "09:00",
        "tuesday_to": "17:00",
        "wednesday_from": "09:00",
        "wednesday_to": "17:00",
        "thursday_from": "09:00",
        "thursday_to": "17:00",
        "friday_from": "09:00",
        "friday_to": "17:00",
        "saturday_from": "09:00",
        "saturday_to": "17:00",
        "sunday_from": "09:00",
        "sunday_to": "17:00"
    },
    "voice_mail": {
        "enable_voicemail": true,
        "prompt_language": "en-us",
        "enable_vm_pin_auth": true,
        "voicemail_pin": "123456",
        "enable_play_caller_id": false,
        "msg_read_out_datetime": "DO_NOT_READ"
    }
}

Response

Placeholders

Sample Response

Remove an extension

POST /extensions/destroy
Deletes a certain extension.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension_number

    string

    required

    Number of extension.

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "extension_number": "1000"
}

Response

Placeholders

Sample Response

Add greeting file for voicemail

POST /extensions/greeting_file/create
Adds a new greeting file for voicemail.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension_number

    string

    required

    Number of extension.
  • filename

    string

    optional

    Original name of uploaded file.
  • url

    string

    optional

    URL for download the greeting file.

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "extension_number": "1000",
    "filename": "some_filename.wav",
    "url": "some_url"
}

Response

Placeholders

Sample Response

Add greeting file for voicemail by curl

POST /api/extensions/greeting_file/form/add
Adds a new greeting file for voicemail by curl.

Request

"curl -H "username: admin" -H "password: admin" -H "number: 100" --form "fileupload=@transfer.wav" http://yourip:8899/api/extensions/greeting_file/form/add" or "curl -H "username: 100@domain" -H "password: 123456" --form "fileupload=@transfer.wav" http://yourip:8899/api/extensions/greeting_file/form/add"

Sample Request

Response

Placeholders

Sample Response

Setup greeting file for extension

POST /extensions/greeting_file/update
Sets default greeting file for extension user.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension_number

    string

    required

    Number of extension.
  • filename

    string

    required

    Name of uploaded file.

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "extension_number": "1000",
    "filename": "some_filename"
}

Response

Placeholders

Sample Response

Remove greeting file

POST /extensions/greeting_file/destroy
Removes a greeting file.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • extension_number

    string

    required

    Number of extension.
  • filename

    string

    required

    Name of greeting file to be deleted.

Sample Request

{
    "access_token": "196ACE20C6F34027895F7F95402BB164",
    "extension_number": "1000",
    "filename": "some_filename"
}

Response

Placeholders

Sample Response

Retrive greeting files

GET /extensions/greeting_file/list
Retrieves a list of greeting files available to certain extension.

Request

Placeholders
  • access_token

    string

    required

    Access token is a 32-byte string with validity of 30 seconds.
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • sort_by

    enum

    optional

    Values include "DEFAULT" and "Optional". Default value will be used when user has not specified value for this field.
  • extension_number

    string

    required

    Number of extension.

Sample Request

https://example.com/api/extensions/greeting_file/list?access_token=196ACE20C6F34027895F7F95402BB164&extension_number=1000&pagesize=100&pagination=1&sort_by=DEFAULT

Response

Placeholders
  • pagination

    integer

    required

    The pagination of paging.
  • pagesize

    integer

    optional

    The pagesize of paging.
  • sort_by

    enum

    optional

    Values include "DEFAULT" and "Optional". Default value will be used when user has not specified value for this field.
  • page_count

    integer

    required

    The total count of pages.
  • count

    integer

    required

    Current pagesize.
  • greetings

    array

    required

    Collection of greeting objects.
    Show child attributes

Sample Response

{
    "pagination": 1,
    "pagesize": 100,
    "sort_by": "DEFAULT",
    "page_count": 100,
    "count": 100,
    "default_file": "abcdfeg.wav",
    "files": [
        {
            "filename": "default.wav,",
            "enabled": true
        },
        {
            "filename": "qweqwrer.wav",
            "enabled": false
        }
    ]
}