{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":853,"path":"api-reference/server-api-reference/NotifyConferenceUtils.md","title":"NotifyConferenceUtil - Scoped, Global","bundle":null,"doc_type":null,"release":"australia","body":"\n# NotifyConferenceUtil - Scoped, Global\n\nThe NotifyConferenceUtil API provides methods to manage Notify conference calls and SMS messages for various telephony service providers, such as Zoom and Webex.\n\nUsing the NotifyConferenceUtil API you can:\n\n-   Create new conference calls\n-   Add participants by phone number or user ID\n-   Remove participants from a conference call\n-   Mute participants in a conference call\n-   Unmute participants in a conference call\n-   Obtain the capabilities of a specified service provider\n-   End a conference call\n\nYou can use this API in both scoped and global scripts. To use this API you must activate the Conference Notify plugin \\(com.snc.notify\\) which requires a separate subscription. For details on activating this plugin, see [Activate Notify](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/servicenow-platform/t_ActivateNotify.md).\n\n**Parent Topic:**[Server API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/api-server.md)\n\n## NotifyConferenceUtils - NotifyConferenceUtils\\(\\)\n\nInstantiates a NotifyConferenceUtils object \\(constructor\\).\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n```\nfunction () {\n\tvar confGR = new GlideRecord('notify_conference_call');\n\tconfGR.get('76d3364d0b5133008e64aabcb4673a6d');\n\n\tvar confUtils = new NotifyConferenceUtils();\n\tvar actionResult = confUtils.addToConferenceByPhoneNumber(\"+917799555331\", confGR)\n\tif (actionResult.status)\n\t\tgs.info('Participant has been added to conference');\n\telse {\n\t\tgs.info('join operation failed');\n\t\tactionResult.warnMessages.forEach(function (msg) {\n\t\t\tgs.info(msg);\n\t\t});\n\t\tactionResult.errorMessages.forEach(function (msg) {\n\t\t\tgs.info(msg);\n\t\t})\n\t}\n})();\n```\n\n## NotifyConferenceUtils - addToConferenceByPhoneNumber\\(String toNumber, GlideRecord confGR\\)\n\nAdds a participant to a specified conference call using their phone number to identify the participant.\n\n<table id=\"table_lt1_kth_nhb\" class=\"parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\ntoNumber\n\n</td><td>\n\nString\n\n</td><td>\n\nPhone number of the participant to add to the conference call.\n\n</td></tr><tr><td>\n\nconfGR\n\n</td><td>\n\nGlideRecord\n\n</td><td>\n\nGlideRecord of the conference call to which to add the specified participant.Table: Notify Conference Call \\[notify\\_conference\\_call\\]\n\n</td></tr></tbody>\n</table><table id=\"table_mt1_kth_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nResults of the conference action.`<action>.status`: Status of the conference action.\n\n-   Data type: Boolean\n-   Possible values:\n    -   true: Conference action succeeded\n    -   false: Conference action failed\n\n`<action>.successMessages`: If *status* is true, success message\\(s\\), else empty.\n\n-   Data type: Array of Strings\n\n`<action>.warnMessages`: If *status* is false, any warning messages thrown during processing.\n\n-   Data type: Array of Strings\n\n`<action>.errorMessages`: If *status* is false, any error messages thrown during processing.\n\n-   Data type: Array of Strings\n\n</td></tr></tbody>\n</table>The following code example shows how to call this method.\n\n```\nfunction () {\n\tvar confGR = new GlideRecord('notify_conference_call');\n\tconfGR.get('76d3364d0b5133008e64aabcb4673a6d');\n\n\tvar confUtils = new NotifyConferenceUtils();\n\tvar actionResult = confUtils.addToConferenceByPhoneNumber(\"+917799555331\", confGR)\n\tif (actionResult.status)\n\t\tgs.info('Participant has been added to conference');\n\telse {\n\t\tgs.info('join operation failed');\n\t\tactionResult.warnMessages.forEach(function (msg) {\n\t\t\tgs.info(msg);\n\t\t});\n\t\tactionResult.errorMessages.forEach(function (msg) {\n\t\t\tgs.info(msg);\n\t\t})\n\t}\n})();\n```\n\n## NotifyConferenceUtils - addToConferenceByUserId\\(String userId, GlideRecord confGR\\)\n\nAdds a participant to the conference call referenced by the passed in GlideRecord using their unique user identifier.\n\n<table id=\"table_xld_mwh_nhb\" class=\"parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nuserId\n\n</td><td>\n\nString\n\n</td><td>\n\nSys ID of the participant to add to the specified conference call.Table: User \\[sys\\_user\\]\n\n</td></tr><tr><td>\n\nconfGR\n\n</td><td>\n\nGlideRecord\n\n</td><td>\n\nGlideRecord of the conference call to add the specified participant. Table: Notify Conference Call \\[notify\\_conference\\_call\\]\n\n</td></tr></tbody>\n</table><table id=\"table_yld_mwh_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nResults of the conference action.`<action>.status`: Status of the conference action.\n\n-   Data type: Boolean\n-   Possible values:\n    -   true: Conference action succeeded\n    -   false: Conference action failed\n\n`<action>.successMessages`: If *status* is true, success message\\(s\\), else empty.\n\n-   Data type: Array of Strings\n\n`<action>.warnMessages`: If *status* is false, any warning messages thrown during processing.\n\n-   Data type: Array of Strings\n\n`<action>.errorMessages`: If *status* is false, any error messages thrown during processing.\n\n-   Data type: Array of Strings\n\n</td></tr></tbody>\n</table>The following code example shows how to call this method.\n\n```\n(function () {\n\tvar confGR = new GlideRecord('notify_conference_call');\n\tconfGR.get('76d3364d0b5133008e64aabcb4673a6d');\n\n\tvar confUtils = new NotifyConferenceUtils();\n\tvar actionResult = confUtils.addToConferenceByUserId(gs.getUserID(), confGR)\n\tif (actionResult.status)\n\t\tgs.info('Participant has been added to conference');\n\telse {\n\t\tgs.info('join operation failed');\n\t\tactionResult.warnMessages.forEach(function (msg) {\n\t\t\tgs.info(msg);\n\t\t});\n\t\tactionResult.errorMessages.forEach(function (msg) {\n\t\t\tgs.info(msg);\n\t\t})\n\t}\n})();\n\n```\n\n## NotifyConferenceUtils - doConferenceAction\\(String action, Object data\\)\n\nPerforms the specified conference call action, such as starting/ending a conference call or joining, removing, muting, or unmuting participants from a conference call.\n\nYou can start a new conference call and add participants within a single call to this method or call the method multiple times to start the call and then manage participants separately. In addition, through the passed in data object, you can configure the method to:\n\n-   Save pointers in the conference call record to the specific record \\(source record\\), such as an incident or problem, that is the topic of discussion for the conference call.\n-   Allow/disallow multiple conference calls for a source record.\n-   Automatically log the participants that were in the conference call in the \"Work Notes\" field of the source record.\n-   Have a message read aloud when a participant answers an outgoing call from the conference.\n\n<table id=\"table_qqs_vdv_nhb\" class=\"parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\naction\n\n</td><td>\n\nString\n\n</td><td>\n\nDefines the conference call action to perform.The following are the available conference call actions:\n\n-   end: Terminates the conference call identified in **data.confId**.\n-   join: Adds the participant specified in the **data.items** array to the conference call identified in **data.confId**.\n-   kick: Removes the participant specified in the **data.items** array from the conference call identified in **data.confId**.\n-   multiJoin: Adds the participants specified in the **data.items** array to the conference call identified in **data.confId**\n-   multiKick: Removes the participants specified in the **data.items** array from the conference call identified in **data.confId**.\n-   multiMute: Mutes the participants specified in the **data.items** array on the conference call identified in **data.confId**.\n-   multiUnmute: Unmutes the participants specified in the **data.items** array from the conference call identified in **data.confId**.\n-   mute: Mutes the participant specified in the **data.items** array on the conference call identified in **data.confId**.\n-   selfJoin: Adds the currently logged in user to the conference call \\(no entry in **data.items** required.\\)\n-   start: Starts the conference call identified in **data.confId**.\n-   unmute: Unmutes the participant specified in the **data.items** array from the conference call identified in **data.confId**.\n\n</td></tr><tr id=\"data-row-NConf\"><td>\n\ndata\n\n</td><td>\n\nObject\n\n</td><td id=\"data-entry-NConf\">\n\nObject that describes the conference call.\n\n</td></tr><tr><td>\n\ndata.addToWorkNotes\n\n</td><td>\n\nBoolean\n\n</td><td id=\"data.addToWorkNotes-entry-NConf\">\n\nFlag that indicates whether to add information about the participants that were included in the conference call in the work notes field of the associated record. For this functionality to work, you must also specify values in the **data.table** and **data.sysId** parameters. These parameters identify the record in which to add the work notes.\n\nDefault: false\n\nActions for which this parameter is valid:\n\n-   join\n-   multiJoin\n-   selfJoin\n-   start\n\n</td></tr><tr><td>\n\ndata.allowMulticonference\n\n</td><td>\n\nBoolean\n\n</td><td id=\"data.allowMulticonference-entry-NConf\">\n\nFlag that indicates whether to allow multiple conference calls for a specific record at one time. For this functionality to work, you must also specify values in the **data.table** and **data.sysId** parameters. These parameters identify the record that is allowed to have multiple conference calls.\n\nDefault: false\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.confId\n\n</td><td>\n\nString\n\n</td><td id=\"data.confId-entry-NConf\">\n\nSys\\_id of the conference call. Table: Notify Conference Call \\[notify\\_conference\\_call\\]\n\nActions for which this parameter is required:\n\n-   end\n-   join\n-   multiJoin\n-   selfJoin\n\n**Note:** Participant actions such as mute, unmute, and kick don't require this parameter to be set as the method obtains this information from the Notify Conference Call Participant \\[notify\\_participant\\] table.\n\n</td></tr><tr><td>\n\ndata.fromNumber\n\n</td><td>\n\nString\n\n</td><td id=\"data.fromNumber-entry-NConf\">\n\nService provider number to call into for the conference call. Locate this value in the Number or Phone number column of the Notify Phone Number \\[notify\\_number\\] table.\n\nActions for which this parameter is required:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.isNewConference\n\n</td><td>\n\nBoolean\n\n</td><td id=\"data.isNewConference-entry-NConf\">\n\nFlag that indicates whether this is a new or an existing conference call. Valid values:\n\n-   true: New conference call\n-   false: Existing conference call\n\nDefault: false\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.items\n\n</td><td>\n\nArray\n\n</td><td id=\"data.items-entry-NConf\">\n\nInformation for each participant to include in the conference call. Valid array values:\n\n-   id: Sys\\_id of user; located in the User \\[sys\\_User\\] table.\n\nValid actions: join, multiJoin, start\n\n-   notifyParticipantId: Sys ID of the Notify participant; located in the Notify Participant \\[notify\\_participant\\] table.\n\nValid actions: join, kick, multiJoin, mute, start, unmute\n\n-   phoneNumber: Phone number of the participant. If this value is passed in conjunction with either the **id** or **notifyParticipantId**, this value supersedes the phone numbers in the user/participant record and is used to place the call.\n\nValid actions: join, multiJoin, start\n\n-   email: Email address of the participant.\n\nValid actions: join, multiJoin, start\n\n\n</td></tr><tr><td>\n\ndata.message\n\n</td><td>\n\nString\n\n</td><td id=\"data.message-entry-NConf\">\n\nMessage that is read aloud when a user answers the call, such as, \"P1 incident has been created please login to instance.\" Actions for which this parameter is valid:\n\n-   join\n-   multiJoin\n-   start\n\n</td></tr><tr><td>\n\ndata.serviceProvider\n\n</td><td>\n\nString\n\n</td><td id=\"data.serviceProvider-entry-NConf\">\n\nRequired. Name of conference service provider, such as Zoom or Webex. Actions for which this parameter is required:\n\n-   all\n\n</td></tr><tr><td>\n\ndata.sysId\n\n</td><td>\n\nString\n\n</td><td id=\"data.sys_id-entry-NConf\">\n\nSys\\_id of the source record to associate with the conference call. For example, if a conference call is held to discuss a specific incident or problem, put the sys\\_id of the incident or problem record in this value. This sys\\_id is stored in the Source column of the NotifyConference Call \\[notify\\_conference\\_call\\] table and can later be tracked.\n\nThis parameter is used in conjunction with the **data.Table**, **data.addToWorkNotes**, and **allowMulticonference** parameters.\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.table\n\n</td><td>\n\nString\n\n</td><td id=\"data.table-entry-NConf\">\n\nTable that contains the source record to associate with the conference call. A source record can be any record, such as an \"incident\" or \"problem\", that is the topic of discussion in the conference call. This table name is stored in the Table column of the NotifyConference Call \\[notify\\_conference\\_call\\] table and can be tracked.\n\nThis parameter is used in conjunction with the **data.sysId**, **data.addToWorkNotes**, and **allowMulticonference** parameters.\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr></tbody>\n</table><table id=\"table_rqs_vdv_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nResults of the conference action.`<action>.status`: Status of the conference action.\n\n-   Data type: Boolean\n-   Possible values:\n    -   true: Conference action succeeded\n    -   false: Conference action failed\n\n`<action>.successMessages`: If *status* is true, success message\\(s\\), else empty.\n\n-   Data type: Array of Strings\n\n`<action>.warnMessages`: If *status* is false, any warning messages thrown during processing.\n\n-   Data type: Array of Strings\n\n`<action>.errorMessages`: If *status* is false, any error messages thrown during processing.\n\n-   Data type: Array of Strings\n\n</td></tr></tbody>\n</table>```\n(function (confId) {\n\tvar confUtils = new NotifyConferenceUtils();\n\tvar data = confUtils.getConferenceInputDataTemplate();\n\tdata.table = 'incident';\n\tdata.sysId = '1234';\n\tdata.addToWorkNotes = false;\n\tdata.confId = confId;\n\tdata.message = 'p1 incident has been created';\n\tdata.fromNumber = 'twilio/Telephony driver number';\n\tdata.items.push({ id: 'user3SysId', phoneNumber: '+917799555332' });\n\tdata.items.push({ id: 'user4SysId', email: 'yln99518@gmail.com' });\n\n\tvar result = confUtils.doConferenceAction('start', data);\n\tif (result.status) {\n\t\tgs.info('Start conference action succeeded');\n\t} else\n\t\tgs.info('Start conference action failed');\n\n\tresult.errorMessages.forEach(function (msg) {\n\t\tgs.info(msg);\n\t});\n\tresult.warnMessages.forEach(function (msg) {\n\t\tgs.info(msg);\n\t});\n\tresult.successMessages.forEach(function (msg) {\n\t\tgs.info(msg);\n\t});\n})('activeConfSysId');\n\n```\n\n## NotifyConferenceUtils - getConferenceInputDataTemplate\\(\\)\n\nReturns a JSON data template to use with the doConferenceAction\\(\\) method. Using this template automatically structures the data object so that you don't have to manually create it.\n\nCall this method prior to calling the doConferenceAction\\(\\) method. For the desired conference call action, set the desired parameters within the template, and then pass the template in the doConferenceAction\\(\\) call. For additional information on the valid parameters for each action, see [doConferenceAction\\(\\)](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/NotifyConferenceUtils.md).\n\n**Note:** This is a helper method. You can also manually construct this object and pass that object into the doConferenceAction\\(\\) method and have the same outcome.\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n<table id=\"table_c2h_cwd_vhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\ndata\n\n</td><td>\n\nObject that describes the conference call.\n\n</td></tr><tr><td>\n\ndata.addToWorkNotes\n\n</td><td>\n\nFlag that indicates whether to add information about the participants that were included in the conference call in the work notes field of the associated record. For this functionality to work, you must also specify values in the **data.table** and **data.sysId** parameters. These parameters identify the record in which to add the work notes.\n\nDefault: false\n\nActions for which this parameter is valid:\n\n-   join\n-   multiJoin\n-   selfJoin\n-   start\n\n</td></tr><tr><td>\n\ndata.allowMultconference\n\n</td><td>\n\nFlag that indicates whether to allow multiple conference calls for a specific record at one time. For this functionality to work, you must also specify values in the **data.table** and **data.sysId** parameters. These parameters identify the record that is allowed to have multiple conference calls.\n\nDefault: false\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.confId\n\n</td><td>\n\nSys\\_id of the conference call. Table: Notify Conference Call \\[notify\\_conference\\_call\\]\n\nActions for which this parameter is required:\n\n-   end\n-   join\n-   multiJoin\n-   selfJoin\n\n**Note:** Participant actions such as mute, unmute, and kick don't require this parameter to be set as the method obtains this information from the Notify Conference Call Participant \\[notify\\_participant\\] table.\n\n</td></tr><tr><td>\n\ndata.fromNumber\n\n</td><td>\n\nService provider number to call into for the conference call. Locate this value in the Number or Phone number column of the Notify Phone Number \\[notify\\_number\\] table.\n\nActions for which this parameter is required:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.isNewConference\n\n</td><td>\n\nFlag that indicates whether this is a new or an existing conference call. Valid values:\n\n-   true: New conference call\n-   false: Existing conference call\n\nDefault: false\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.items\n\n</td><td>\n\nInformation for each participant to include in the conference call. Valid array values:\n\n-   id: Sys\\_id of user; located in the User \\[sys\\_User\\] table.\n\nValid actions: join, multiJoin, start\n\n-   notifyParticipantId: Sys ID of the Notify participant; located in the Notify Participant \\[notify\\_participant\\] table.\n\nValid actions: join, kick, multiJoin, mute, start, unmute\n\n-   phoneNumber: Phone number of the participant. If this value is passed in conjunction with either the **id** or **notifyParticipantId**, this value supersedes the phone numbers in the user/participant record and is used to place the call.\n\nValid actions: join, multiJoin, start\n\n-   email: Email address of the participant.\n\nValid actions: join, multiJoin, start\n\n\n</td></tr><tr><td>\n\ndata.message\n\n</td><td>\n\nMessage that is read aloud when a user answers the call, such as, \"P1 incident has been created please login to instance.\" Actions for which this parameter is valid:\n\n-   join\n-   multiJoin\n-   start\n\n</td></tr><tr><td>\n\ndata.serviceProvider\n\n</td><td>\n\nRequired. Name of conference service provider, such as Zoom or Webex. Actions for which this parameter is required:\n\n-   all\n\n</td></tr><tr><td>\n\ndata.sysId\n\n</td><td>\n\nSys\\_id of the source record to associate with the conference call. For example, if a conference call is held to discuss a specific incident or problem, put the sys\\_id of the incident or problem record in this value. This sys\\_id is stored in the Source column of the NotifyConference Call \\[notify\\_conference\\_call\\] table and can later be tracked.\n\nThis parameter is used in conjunction with the **data.Table**, **data.addToWorkNotes**, and **allowMulticonference** parameters.\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr><tr><td>\n\ndata.table\n\n</td><td>\n\nTable that contains the source record to associate with the conference call. A source record can be any record, such as an \"incident\" or \"problem\", that is the topic of discussion in the conference call. This table name is stored in the Table column of the NotifyConference Call \\[notify\\_conference\\_call\\] table and can be tracked.\n\nThis parameter is used in conjunction with the **data.sysId**, **data.addToWorkNotes**, and **allowMulticonference** parameters.\n\nActions for which this parameter is valid:\n\n-   start\n\n</td></tr></tbody>\n</table>```\n(function (confId) {\n\tvar confUtils = new NotifyConferenceUtils();\n\tvar data = confUtils.getConferenceInputDataTemplate();\n\tdata.confId = confId;\n\tvar result = confUtils.doConferenceAction('end', data);\n\tif (result.status) {\n\t\tgs.info('Conference call has been ended');\n\t} else\n\t\tgs.info('End conference call action failed');\n\n\tresult.errorMessages.forEach(function (msg) {\n\t\tgs.info(msg);\n\t});\n\tresult.warnMessages.forEach(function (msg) {\n\t\tgs.info(msg);\n\t});\n\tresult.successMessages.forEach(function (msg) {\n\t\tgs.info(msg);\n\t});\n})('activeConfSysId');\n```\n\n## NotifyConferenceUtils - getServiceProvidersCapabilities\\(\\)\n\nReturns the capabilities of all telephony service provider drivers in the instance.\n\nPossible capabilities include:\n\n-   archive: archives the conference after it ends\n-   beepOnLeave: plays a \"beep\" tone when a participant leaves the conference call\n-   beepOnJoin: plays a \"beep\" tone when a participant joins the conference call\n-   end: ends the identified conference call\n-   filesharing: allows file sharing between participants\n-   join: adds a participant to a conference call\n-   kick: removes a participant from a conference call\n-   multiJoin: adds multiple participants to a conference call\n-   multiKick: removes multiple participants from a conference call\n-   muteOnJoin: mutes a participant when they initially join a conference call\n-   multiUnmute: unmutes multiple participants for a conference call\n-   record: records conference calls\n-   recording: provides an on-screen indicator when the conference call is being recorded\n-   screenSharing: allows participant screens to be shared with the group\n-   selfJoin: adds the current logged in user to a conference call\n-   speaking: provides an on-screen message as to who is currently speaking\n-   start: starts the identified conference call\n-   unmute: unmutes a participant in a conference call\n\n|Name|Type|Description|\n|----|----|-----------|\n|None| | |\n\n<table id=\"table_bzh_qyg_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nKey-value pairs of the status of each driver capability.Valid values:\n\n -   isSupported = 0: capability is not supported\n-   isSupported = 1: capability is supported\n\n</td></tr></tbody>\n</table>List driver capabilities for all telephony service provider drivers in the instance.\n\n```\n(function () {\n\tvar confUtils = new NotifyConferenceUtils();\n\tvar providerToCapability = confUtils.getServiceProvidersCapabilites();\n\tfor (var provider in providerToCapability) {\n\t\tgs.info('{0} supported capabilities \\n\\n', provider);\n\t\tvar capabilities = providerToCapability[provider]\n\t\tfor (var cap in capabilities)\n\t\t\tif(confUtils.isActionSupported(capabilities[cap].isSupported))\n\t\t\t\tgs.info('\"{0}\" action supported', cap);\n\t\t\telse\n\t\t\t\tgs.info(\"'{0}' action is not supported by this conference driver\", cap);\n\t}\n})();\n\n```\n\nOutput: The method returns a node similar to the following for each active telephony service provider within the instance.\n\n```\n{\n    \"Telephony\": {\n        \"start\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"end\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"selfJoin\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"join\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiJoin\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"mute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiMute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"unmute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiUnmute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"kick\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiKick\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"record\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"speaking\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"recording\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"screenSharing\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"fileSharing\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"archive\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"muteOnJoin\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"beepOnJoin\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"beepOnLeave\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        }\n    }\n}\n\n```\n\n## NotifyConferenceUtils - isActionSupported\\(Number action\\)\n\nDetermines whether a Notify conference action is supported by a telephony service provider.\n\nTo use this method, you must first call the getServiceProviderCapabilities\\(\\) method. This method returns an object that contains information about the availability of each possible Notify conference action for each service provider configured in your instance.\n\nFor example:\n\n```\n{\n    \"Telephony\": {\n        \"start\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"end\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"selfJoin\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"join\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiJoin\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"mute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiMute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"unmute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiUnmute\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"kick\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"multiKick\": {\n            \"isSupported\": 1,\n            \"meta\": {}\n        },\n        \"record\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"speaking\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"recording\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"screenSharing\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"fileSharing\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"archive\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"muteOnJoin\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"beepOnJoin\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        },\n        \"beepOnLeave\": {\n            \"isSupported\": 0,\n            \"meta\": {}\n        }\n    }\n}\n```\n\n<table id=\"table_gsw_vd2_vhb\" class=\"parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\naction\n\n</td><td>\n\nNumber\n\n</td><td>\n\nValue of the **isSupported** parameter returned by the getServiceProvidersCapabilities\\(\\) method for a specific action and service provider.\n\n **Note:** Although the **isSupported** value may appear to be a Boolean, it is actually a Number. Do not try and evaluate the capabilities as Boolean values. Use this method as the associated values may be expanded in future versions.\n\n</td></tr></tbody>\n</table><table id=\"table_hsw_vd2_vhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nBoolean\n\n</td><td>\n\nFlag that indicates whether the telephony service provider supports the specified action.Valid values:\n\n -   true: action is supported by the service provider\n-   false: action is not supported by the service provider\n\n</td></tr></tbody>\n</table>```\n(function () {\n  var confUtils = new NotifyConferenceUtils();\n  var providerToCapability = confUtils.getServiceProvidersCapabilites();\n    for (var provider in providerToCapability) {\n      gs.info('{0} supported capabilities \\n\\n', provider);\n      var capabilities = providerToCapability[provider]\n      for (var cap in capabilities)\n        if (confUtils.isActionSupported(capabilities[cap].isSupported))\n          gs.info('\"{0}\" action supported', cap);\n        else\n          gs.info(\"'{0}' action is not supported by this conference driver\", cap);\n    }\n})();\n```\n\n## NotifyConferenceUtils - kickByParticipantGR\\(GlideRecord notifyParticipantGR\\)\n\nRemoves the participant associated with the passed in GlideRecord from the current conference call.\n\n<table id=\"table_inj_thh_nhb\" class=\"parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nnotifyParticipantGR\n\n</td><td>\n\nGlideRecord\n\n</td><td>\n\nGlideRecord object of the participant to remove from the conference call.Table: Notify Participant \\[notify\\_participant\\]\n\n</td></tr></tbody>\n</table><table id=\"table_jnj_thh_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nResults of the conference action.`<action>.status`: Status of the conference action.\n\n-   Data type: Boolean\n-   Possible values:\n    -   true: Conference action succeeded\n    -   false: Conference action failed\n\n`<action>.successMessages`: If *status* is true, success message\\(s\\), else empty.\n\n-   Data type: Array of Strings\n\n`<action>.warnMessages`: If *status* is false, any warning messages thrown during processing.\n\n-   Data type: Array of Strings\n\n`<action>.errorMessages`: If *status* is false, any error messages thrown during processing.\n\n-   Data type: Array of Strings\n\n</td></tr></tbody>\n</table>The following code example shows how to call this method.\n\n```\n(function () {\n    var confUtils = new NotifyConferenceUtils();\n    var participantGR = new GlideRecord('notify_participant');  // Participant record contains conf call ID\n    participantGR.get('validParticipantSysId');\n    var actionResult = confUtils.kickByParticipantGR(participantGR);\n    if (actionResult.status)\n        gs.info('Participant has been kicked out of conference');\n    else {\n        gs.info('kick operation failed');\n        actionResult.warnMessages.forEach(function (msg) {\n            gs.info(msg);\n        });\n        actionResult.errorMessages.forEach(function (msg) {\n            gs.info(msg);\n        })\n    }\n})()\n\n```\n\n## NotifyConferenceUtils - muteByParticipantGR\\(GlideRecord notifyParticipantGR\\)\n\nMutes the participant associated with the passed in GlideRecord on the current conference call.\n\n<table id=\"table_vpk_ckh_nhb\" class=\"parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nnotifyParticipantGR\n\n</td><td>\n\nObject\n\n</td><td>\n\nGlideRecord object of the participant to mute.Table: Notify Participant \\[notify\\_participant\\]\n\n</td></tr></tbody>\n</table><table id=\"table_wpk_ckh_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nResults of the conference action.`<action>.status`: Status of the conference action.\n\n-   Data type: Boolean\n-   Possible values:\n    -   true: Conference action succeeded\n    -   false: Conference action failed\n\n`<action>.successMessages`: If *status* is true, success message\\(s\\), else empty.\n\n-   Data type: Array of Strings\n\n`<action>.warnMessages`: If *status* is false, any warning messages thrown during processing.\n\n-   Data type: Array of Strings\n\n`<action>.errorMessages`: If *status* is false, any error messages thrown during processing.\n\n-   Data type: Array of Strings\n\n</td></tr></tbody>\n</table>The following code example shows how to call this method.\n\n```\n(function () {\n    var confUtils = new NotifyConferenceUtils();\n    var participantGR = new GlideRecord('notify_participant');\n    participantGR.get('validSysId');\n    var actionResult = confUtils.muteByParticipantGR(participantGR);\n    if (actionResult.status)\n        gs.info('Participant has been muted');\n    else {\n        gs.info('mute operation failed');\n        actionResult.warnMessages.forEach(function (msg) {\n            gs.info(msg);\n        });\n        actionResult.errorMessages.forEach(function (msg) {\n            gs.info(msg);\n        })\n    }\n})()\n```\n\n## NotifyConferenceUtils - unmuteByParticipantGR\\(GlideRecord notifyParticipantGR\\)\n\nUnmutes the participant associated with the passed in GlideRecord on the current conference call.\n\n|Name|Type|Description|\n|----|----|-----------|\n|notifyParticipantGR|GlideRecord|GlideRecord object of the participant to unmute. These records are located in the Notify Participant \\[notify\\_participant\\] table.|\n\n<table id=\"table_cyp_zqh_nhb\" class=\"returns\"><thead><tr><th>\n\nType\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nObject\n\n</td><td>\n\nResults of the conference action.`<action>.status`: Status of the conference action.\n\n-   Data type: Boolean\n-   Possible values:\n    -   true: Conference action succeeded\n    -   false: Conference action failed\n\n`<action>.successMessages`: If *status* is true, success message\\(s\\), else empty.\n\n-   Data type: Array of Strings\n\n`<action>.warnMessages`: If *status* is false, any warning messages thrown during processing.\n\n-   Data type: Array of Strings\n\n`<action>.errorMessages`: If *status* is false, any error messages thrown during processing.\n\n-   Data type: Array of Strings\n\n</td></tr></tbody>\n</table>```\n(function () {\n    var confUtils = new NotifyConferenceUtils();\n    var participantGR = new GlideRecord('notify_participant');\n    participantGR.get('validSysId');\n    var actionResult = confUtils.unmuteByParticipantGR(participantGR);\n    if (actionResult.status)\n        gs.info('Participant has been Unmuted');\n    else {\n        gs.info('Unmute operation failed');\n        actionResult.warnMessages.forEach(function (msg) {\n            gs.info(msg);\n        });\n        actionResult.errorMessages.forEach(function (msg) {\n            gs.info(msg);\n        })\n    }\n})();\n\n```\n\n"}}