I am following a guide here https://www.twilio.com/docs/taskrouter/quickstart/ruby/agent-ui-add-project and encountered an issue when updating an activity or reservation's status.
This is the full error logged on the browser console VM272:1 POST https://event-bridge.twilio.com/v1/wschannels/AC509cc0d468c2924356d7f1f071254995/WK01bf75406b9b5bd6f56711507289386d 403 (Policies defined such that we cannot access the given resource)
In my controller, here's how the policy for activities and reservations are defined
allow_activity_updates = Twilio::JWT::TaskRouterCapability::Policy.new(
Twilio::JWT::TaskRouterCapability::TaskRouterUtils
.all_activities(workspace_sid), 'POST', true
)
capability.add_policy(allow_activity_updates)
allow_reservation_updates = Twilio::JWT::TaskRouterCapability::Policy.new(
Twilio::JWT::TaskRouterCapability::TaskRouterUtils
.all_reservations(workspace_sid, worker_sid), 'POST', true
)
capability.add_policy(allow_reservation_updates)
Javascript part
worker.update({"ActivitySid":nextActivitySid}, function(error, worker) {
if(error) {
console.log(error.code);
console.log(error.message);
} else {
console.log(worker.activityName); // "Offline"
}
});
The activity and reservation listeners are working well, just when I need to update it is having an issue.
This is now resolved by Twilio's Support. Resolution is this missing capability which is not present on the docs.
allow_worker_update = Twilio::JWT::TaskRouterCapability::Policy.new(
Twilio::JWT::TaskRouterCapability::TaskRouterUtils
.worker(workspace_sid, worker_sid), 'POST', true
)
capability.add_policy(allow_worker_update)