Find Me/Follow Me GraphQL APIs
This page describes the GraphQL API for Find Me/Follow Me.
Scope: gql:findmefollow
- 1.1 Fetch Follow Me
- 1.2 Enable Follow Me
- 1.3 Disable Follow Me
- 1.4 Update Follow Me
- 2 Enums
- 2.1 ringstrategiesv2
- 2.2 externalcidmode
Fetch Follow Me
Returns the follow me settings for a single extension.
API - fetchFollowMe
API Parameters
Name | Field | Type | Default | Description |
---|---|---|---|---|
extensionId | Mandatory | ID |
| Specifiy the extension to fetch follow me details. |
API Query Fields
Types with a ! exclamation mark are guaranteed to be non-null.
Name | Type | Description |
---|---|---|
id | ID! | The ID of an object |
status | Boolean | Status of the request |
message | String | Message for the request |
enabled | Boolean! | If enabled, any call to this extension will go to this follow me instead, including directory calls by name from IVRs. If disabled, calls will go only to the extension. However, destinations that specify FollowMe will come here. This setting is often used in conjunction with VmX Locater, where you want a call to ring the extension, and then only if the caller chooses to find you do you want it to come here. |
extensionId | ID! | Follow Me Extension Number |
strategy | Ring strategy for `followMeList` | |
ringTime | Int | Time in seconds that the phones will ring. Max 60 seconds |
followMePrefix | String | CID Name Prefix like `Sales:` |
followMeList | String | The numbers that will be dialed. Numbers are `-` separated. External numbers should have a `#` suffix. |
callerMessage | ID | System Recording ID. Announcement played to caller |
noAnswerDestination | String | Destination after `followMeList` is rung and there was no answer |
alertInfo | String | Alert Info can be used for distinctive ring with SIP devices. If you are having issues, see the "Enforce RFC7462" option found in Settings > Advanced Settings. |
confirmCalls | Boolean | Enable this if you are calling external numbers that need confirmation. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the `ringall` ring strategy |
receiverMessageConfirmCall | ID | System Recording ID. Message to be played to the person RECEIVING the call, if `confirmCalls` is enabled. |
receiverMessageTooLate | ID | System Recording ID. Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1. |
ringingMusic | String | Default `Ring`. Custom values will be the category name of "On Hold Music". |
initialRingTime | Int | Initial Ring Time. This is the number of seconds to ring the primary extension prior to proceeding to the `followMeList`. The extension can also be included in the `followMeList`. A 0 setting will bypass this. |
enableCalendar | Boolean | Enable calendar for follow me (either group or single calendar) |
matchCalendar | Boolean | This determines how matching an event is handled (`enableCalendar` must be true to activate). If true, then follow me will match whenever there is an event. If false, follow me will match whenever no event is present |
calendar | ID | Calendar ID |
calendarGroup | ID | Calendar Group ID |
overrideRingerVolume | Int | Ringer Volume Override. Note: This is only valid for Sangoma phones at this time |
externalCallerIdMode | Choose the CID Mode from the `externalcidmode` enum. Default is `default`. | |
fixedCallerId | String | Fixed CID Value. Fixed value to replace the CID with used with `externalCallerIdMode` fixed modes. Should be in a format of digits only with an option of E164 format using a leading `+`. |
API Examples:
API Request (fetchFollowMe)
query {
fetchFollowMe(extensionId: "101") {
id
message
status
enabled
extensionId
strategy
ringTime
followMePrefix
followMeList
callerMessage
noAnswerDestination
alertInfo
confirmCalls
receiverMessageConfirmCall
receiverMessageTooLate
ringingMusic
initialRingTime
voicemail
enableCalendar
calendar
calendarGroup
matchCalendar
overrideRingerVolume
externalCallerIdMode
fixedCallerId
}
} |
API Response (fetchFollowMe)
{
"data": {
"fetchFollowMe": {
"id": "ZXh0ZW5zaW9uOaEwMw==",
"message": "Record found successfully",
"status": true,
"enabled": false,
"extensionId": "101",
"strategy": "ringallv2",
"ringTime": 20,
"followMePrefix": null,
"followMeList": "101-2317094162#",
"callerMessage": null,
"noAnswerDestination": "ext-local,101,dest",
"alertInfo": null,
"confirmCalls": null,
"receiverMessageConfirmCall": null,
"receiverMessageTooLate": null,
"ringingMusic": "Ring",
"initialRingTime": 7,
"voicemail": "default",
"enableCalendar": null,
"calendar": null,
"calendarGroup": null,
"matchCalendar": true,
"overrideRingerVolume": null,
"externalCallerIdMode": "default",
"fixedCallerId": null
}
}
} |
Enable Follow Me
Enable follow me for the specified extension.
API - enableFollowMe
API Input
Name | Field | Type | Default | Description |
---|---|---|---|---|
extensionId | Mandatory | ID |
| Specify the extension to enable follow me |
API Examples:
API Request (enableFollowMe)
mutation {
enableFollowMe(input: {
extensionId: "101"
}) { message status }
} |
API Response (enableFollowMe)
Disable Follow Me
Disable follow me for the specified extension.
API - disableFollowMe
API Input
Name | Field | Type | Default | Description |
---|---|---|---|---|
extensionId | Mandatory | ID |
| Specify the extension to disable follow me |
API Examples:
API Request (disableFollowMe)
API Response (disableFollowMe)
Update Follow Me
Update the follow me settings. You can only set a value for either calendar or calendarGroup, but not both.
API - updateFollowMe
API Input
Types with a ! exclamation mark are required input parameters.
Name | Type | Description |
---|---|---|
extensionId | ID! | Follow Me Extension Number |
enabled | Boolean! | If enabled, any call to this extension will go to this follow me instead, including directory calls by name from IVRs. If disabled, calls will go only to the extension. However, destinations that specify FollowMe will come here. This setting is often used in conjunction with VmX Locater, where you want a call to ring the extension, and then only if the caller chooses to find you do you want it to come here. |
strategy | Ring strategy for `followMeList` | |
ringTime | Int | Time in seconds that the phones will ring. Max 60 seconds |
followMePrefix | String | CID Name Prefix like `Sales:` |
followMeList | String | The numbers that will be dialed. Numbers are `-` separated. External numbers should have a `#` suffix. |
callerMessage | ID | System Recording ID. Announcement played to caller |
noAnswerDestination | String | Destination after `followMeList` is rung and there was no answer |
alertInfo | String | Alert Info can be used for distinctive ring with SIP devices. If you are having issues, see the "Enforce RFC7462" option found in Settings > Advanced Settings. |
confirmCalls | Boolean | Enable this if you are calling external numbers that need confirmation. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the `ringall` ring strategy |
receiverMessageConfirmCall | ID | System Recording ID. Message to be played to the person RECEIVING the call, if `confirmCalls` is enabled. |
receiverMessageTooLate | ID | System Recording ID. Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1. |
ringingMusic | String | Default `Ring`. Custom values will be the category name of "On Hold Music". |
initialRingTime | Int | Initial Ring Time. This is the number of seconds to ring the primary extension prior to proceeding to the `followMeList`. The extension can also be included in the `followMeList`. A 0 setting will bypass this. |
enableCalendar | Boolean | Enable calendar for follow me (either group or single calendar) |
matchCalendar | Boolean | This determines how matching an event is handled (`enableCalendar` must be true to activate). If true, then follow me will match whenever there is an event. If false, follow me will match whenever no event is present |
calendar | ID | Calendar ID |
calendarGroup | ID | Calendar Group ID |
overrideRingerVolume | Int | Ringer Volume Override. Note: This is only valid for Sangoma phones at this time |
externalCallerIdMode | Choose the CID Mode from the `externalcidmode` enum. Default is `default`. | |
fixedCallerId | String | Fixed CID Value. Fixed value to replace the CID with used with `externalCallerIdMode` fixed modes. Should be in a format of digits only with an option of E164 format using a leading `+`. |
API Examples:
API Request (updateFollowMe)
API Response (updateFollowMe)
Enums
In GraphQL, the enum type is special kind of scalar that is restricted to a particular set of allowed values. When passed as input for a mutation, it should not be quoted like a string. However, due to the nature of JSON, when returned from a query it will be quoted.
ringstrategiesv2
Value | Description |
---|---|
ringallv2 | Ring Extension for duration set in Initial Ring Time, and then, while continuing call to extension (only if extension is in the Group List), ring `followMeList` for duration set in `ringTime`. |
ringallv2prim | Ring Extension for duration set in Initial Ring Time, and then, while continuing call to extension (only if extension is in the Group List), ring `followMeList` for duration set in `ringTime`. If the primary extension (first in list) is occupied, the other extensions will not be rung. If the primary is FreePBX DND, it won't be rung. If the primary is FreePBX CF unconditional, then all will be rung |
ringall | Ring all available channels until one answers (default) |
ringallprim | Ring all available channels until one answers. If the primary extension (first in list) is occupied, the other extensions will not be rung. If the primary is FreePBX DND, it won't be rung. If the primary is FreePBX CF unconditional, then all will be rung |
hunt | Take turns ringing each available extension |
huntprim | Take turns ringing each available extension. If the primary extension (first in list) is occupied, the other extensions will not be rung. If the primary is FreePBX DND, it won't be rung. If the primary is FreePBX CF unconditional, then all will be rung |
memoryhunt | Ring first extension in the list, then ring the 1st and 2nd extension, then ring 1st 2nd and 3rd extension in the list.... etc |
memoryhuntprim | Ring first extension in the list, then ring the 1st and 2nd extension, then ring 1st 2nd and 3rd extension in the list.... etc. If the primary extension (first in list) is occupied, the other extensions will not be rung. If the primary is FreePBX DND, it won't be rung. If the primary is FreePBX CF unconditional, then all will be rung |
firstavailable | Ring only the first available channel |
firstnotonphone | Ring only the first channel which is not offhook - ignore CW |
externalcidmode
Value | Description |
---|---|
default | Default: Transmits the Callers CID if allowed by the trunk. |
fixed | Fixed CID Value: Always transmit the Fixed CID Value below. |
extern | Outside Calls Fixed CID Value: Transmit the Fixed CID Value below on calls that come in from outside only. Internal extension to extension calls will continue to operate in default mode. |
did | Use Dialed Number: Transmit the number that was dialed as the CID for calls coming from outside. Internal extension to extension calls will continue to operate in default mode. There must be a DID on the inbound route for this. This will be BLOCKED on trunks that block foreign CallerID |
forcedid | Force Dialed Number: Transmit the number that was dialed as the CID for calls coming from outside. Internal extension to extension calls will continue to operate in default mode. There must be a DID on the inbound route for this. This WILL be transmitted on trunks that block foreign CallerID |