Is it possible to get a list of users in a Call Queue?
Tags: call queues
Apr 21, 2016 at 10:10pm • 5 replies • 0 likes
hamoody-abdulla
I am in need of getting a dynamic list of users that are part of a call queue. Is there a way to this with the API? Can someone point in the right direction? My end game is wanting to get the number of available users in a call queue by checking presence for each user that would be returned from the list I am looking for. Thanks in advance.
5 Answers
If you are getting issue with your app after it moved into production and want to change the permission in prod, either you need to contact the dev support team to do this on behalf of you or you can clone the app, add/remove the required permission in the new app created, push it to production and cancel/suspend the existing application in the production
0
Yes, there was a breaking change which was introduced late last week which causes you to require the ReadPresence API permission when you are using eventFilters which are presence events for an extension.
Try adding that permission and see if this resolves your issue.
Try adding that permission and see if this resolves your issue.
0
Thanks for the help. This helped me get the data I needed. However, once I had everything working in the sandbox, I applied for production and my subscription events stopped working. I can still do normal API calls and I can subscribe to events, but I do not receive any events. I pointed my app back to the sandbox and I still do not receive any events. Can you shed some light as to what could be wrong or do I need to post another question/issue.
I have also created another simple app that only subscribes to my extension presence and it still does not receive events. There are no error messages on either app.
Thanks
I have also created another simple app that only subscribes to my extension presence and it still does not receive events. There are no error messages on either app.
Thanks
0
Yes, you can do this with the RingCentral API.
Setup an application which has the permissions: Read Accounts, Read Presence
First, you'll want to authenticate using RingCentral Admin credentials to obtain an access_token.
POST
You will use the Extension API resource and filter by type = "Department" in the query parameters to fetch the list of Call Queue/Groups in your account. This will provide the extension information for the Call Queue/Group (you want the ID for the group).
GET
RESPONSE EXAMPLE:
You can then make a request to get the Department (using the DEPARTMENT_ID property value from the previous request). This gives you the list of members for that particular Call Queue/Group.
GET
RESPONSE EXAMPLE:
Then you create a new subscription and provide it an array of event filters (event filters are the records.uri + "/presence" from the Department members call response in the previous step). This will create a new subscription for your application and it will start receiving the event notifications in your handler.
POST
Body:
This URI for the API Developer Guide provides good information about how to interpret and use the aggregated presence status: https://developers.ringcentral.com/api-docs/latest/index.html#!#AggregatedPresence.html
Let me know if this is what you wanted.
Setup an application which has the permissions: Read Accounts, Read Presence
First, you'll want to authenticate using RingCentral Admin credentials to obtain an access_token.
POST
https://platform.devtest.ringcentral.com/restapi/oauth/token
You will use the Extension API resource and filter by type = "Department" in the query parameters to fetch the list of Call Queue/Groups in your account. This will provide the extension information for the Call Queue/Group (you want the ID for the group).
GET
https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/extension?status=Enabled&type=Department<br>
RESPONSE EXAMPLE:
{ "uri" : "YOUR EXTENSION URI;,
"records" : [ {
"uri" : "INDIVIDUAL_DEPARTMENT_URI;,
"id" : DEPARTMENT_ID,
"extensionNumber" : "1",
"contact" : {
"firstName" : "Generic Queue",
"company" : "Goofy Goobers",
"email" : "benjamin.dean@ringcentral.com"
},
"name" : "Generic Queue",
"type" : "Department",
"status" : "Enabled",
"permissions" : {
"admin" : {
"enabled" : false
},
"internationalCalling" : {
"enabled" : false
}
},
"profileImage" : {
"uri" : "URI_TO_PROFILE_IMAGE";
}
} ],
"paging" : {
"page" : 1,
"totalPages" : 1,
"perPage" : 100,
"totalElements" : 1,
"pageStart" : 0,
"pageEnd" : 0
},
"navigation" : {
"firstPage" : {
"uri" : "IF_MORE_THAN_ONE_PAGE_FIRST_PAGE_URI";
},
"lastPage" : {
"uri" : "IF_MORE_THAN_ONE_PAGE_LAST_PAGE_URI";
}
}
You can then make a request to get the Department (using the DEPARTMENT_ID property value from the previous request). This gives you the list of members for that particular Call Queue/Group.
GET
https://platform.devtest.ringcentral.com/restapi/v1.0/account/~/department//members<br>
RESPONSE EXAMPLE:
{ "uri" : "REQUEST_URI";,
"records" : [ {
"uri" : "https://platform.devtest.ringcentral.com<b>/restapi/v1.0/account/111111111/extension/123456789</b>"
;,
"id" : 133128004,
"extensionNumber" : "101"
}, {
"uri" : "https://platform.devtest.ringcentral.com<b>/restapi/v1.0/account/111111111/extension/012345678</b>"
;,
"id" : 133165004,
"extensionNumber" : "102"
}, {
"uri" : "https://platform.devtest.ringcentral.com<b>/restapi/v1.0/account/133128004/extension/098765432</b>"
;,
"id" : 664573005,
"extensionNumber" : "103"
}, {
"uri" : "https://platform.devtest.ringcentral.com<b>/restapi/v1.0/account/133128004/extension/023456789</b>"
;,
"id" : 134694004,
"extensionNumber" : "104"
} ],
"paging" : {
"page" : 1,
"totalPages" : 1,
"perPage" : 100,
"totalElements" : 4,
"pageStart" : 0,
"pageEnd" : 3
},
"navigation" : {
"firstPage" : {
"uri" : "FIRST_PAGE_URI";
},
"lastPage" : {
"uri" : "LAST_PAGE_URI";
}
}
}
Then you create a new subscription and provide it an array of event filters (event filters are the records.uri + "/presence" from the Department members call response in the previous step). This will create a new subscription for your application and it will start receiving the event notifications in your handler.
POST
https://platform.devtest.ringcentral.com/restapi/v1.0/subscription?aggregated=true<br>
Body:
{"eventFilters":["/restapi/v1.0/account/11111111/extension/123456789/presence","/restapi/v1.0/account/11111111/extension/012345678/presence", etc...],"deliveryMode":{"transportType":"PubNub","encryption":false}}Your application will then be notified of the presence events for each of those extensions. Additionally, since we used the "aggregated=true" query parameter on when creating the subscription, you will receive the bootstrap data your application may require during initialization.
This URI for the API Developer Guide provides good information about how to interpret and use the aggregated presence status: https://developers.ringcentral.com/api-docs/latest/index.html#!#AggregatedPresence.html
Let me know if this is what you wanted.
0
A new Community is coming to RingCentral!
Posts are currently read-only as we transition into our new platform.We thank you for your patience
during this downtime.
Try Workflow Builder
Did you know you can easily automate tasks like responding to SMS, team messages, and more? Plus it's included with RingCentral Video and RingEX plans!Try RingCentral Workflow Builder