static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/console const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; const string workspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string taskQueueSid = "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; var urls = new PolicyUrlUtils(workspaceSid, taskQueueSid); var allowFetchSubresources = new Policy($"{urls.TaskQueue}/**", HttpMethod.Get); var allowUpdates = new Policy(urls.TaskQueue, HttpMethod.Post); var policies = new List <Policy> { allowFetchSubresources, allowUpdates }; // By default, tokens are good for one hour. // Override this default timeout by specifiying a new value (in seconds). // For example, to generate a token good for 8 hours: var capability = new TaskRouterCapability( accountSid, authToken, workspaceSid, null, policies: policies, expiration: DateTime.UtcNow.AddSeconds(28800) // 60 * 60 * 8 ); Console.WriteLine(capability.ToJwt()); }
static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/console // To set up environmental variables, see http://twil.io/secure const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); const string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"); const string workspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; var urls = new PolicyUrlUtils(workspaceSid); var allowFetchSubresources = new Policy($"{urls.Workspace}/**", HttpMethod.Get); var allowUpdatesSubresources = new Policy($"{urls.Workspace}/**", HttpMethod.Post); var allowDeleteSubresources = new Policy($"{urls.Workspace}/**", HttpMethod.Delete); var policies = new List <Policy> { allowFetchSubresources, allowUpdatesSubresources, allowUpdatesSubresources }; // By default, tokens are good for one hour. // Override this default timeout by specifiying a new value (in seconds). // For example, to generate a token good for 8 hours: var capability = new TaskRouterCapability( accountSid, authToken, workspaceSid, null, policies: policies, expiration: DateTime.UtcNow.AddSeconds(28800)); // 60 * 60 * 8 Console.WriteLine(capability.ToJwt()); }
static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/console // To set up environmental variables, see http://twil.io/secure const string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID"); const string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN"); const string workspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string workerSid = "WKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; var updateActivityFilter = new Dictionary <string, Policy.FilterRequirement> { { "ActivitySid", Policy.FilterRequirement.Required } }; var urls = new PolicyUrlUtils(workspaceSid, workerSid); var allowActivityUpdates = new Policy(urls.Worker, HttpMethod.Post, postFilter: updateActivityFilter); var allowTasksUpdate = new Policy(urls.AllTasks, HttpMethod.Post); var allowReservationUpdate = new Policy(urls.AllReservations, HttpMethod.Post); var allowWorkerFetches = new Policy(urls.Worker, HttpMethod.Get); var allowTasksFetches = new Policy(urls.AllTasks, HttpMethod.Get); var allowReservationFetches = new Policy(urls.AllReservations, HttpMethod.Get); var allowActivityFetches = new Policy(urls.Activities, HttpMethod.Get); var policies = new List <Policy> { allowActivityUpdates, allowTasksUpdate, allowReservationUpdate, allowWorkerFetches, allowTasksFetches, allowReservationFetches }; // By default, tokens are good for one hour. // Override this default timeout by specifiying a new value (in seconds). // For example, to generate a token good for 8 hours: var capability = new TaskRouterCapability( accountSid, authToken, workspaceSid, workerSid, policies: policies, expiration: DateTime.UtcNow.AddSeconds(28800)); // 60 * 60 * 8 Console.WriteLine(capability.ToJwt()); }
static void Main(string[] args) { // Find your Account Sid and Auth Token at twilio.com/console const string accountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string authToken = "your_auth_token"; const string workspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; const string workerSid = "WKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; var updateActivityFilter = new Dictionary <string, Policy.FilterRequirement> { { "ActivitySid", Policy.FilterRequirement.Required } }; var urls = new PolicyUrlUtils(workspaceSid, workerSid); var allowActivityUpdates = new Policy(urls.Worker, HttpMethod.Post, postFilter: updateActivityFilter); var allowTasksUpdate = new Policy(urls.AllTasks, HttpMethod.Post); var allowReservationUpdate = new Policy(urls.AllReservations, HttpMethod.Post); var policies = new List <Policy> { allowActivityUpdates, allowTasksUpdate, allowReservationUpdate }; // By default, tokens are good for one hour. // Override this default timeout by specifiying a new value (in seconds). // For example, to generate a token good for 8 hours: var capability = new TaskRouterCapability( accountSid, authToken, workspaceSid, null, policies: policies, expiration: DateTime.UtcNow.AddSeconds(28800)); // 60 * 60 * 8 Console.WriteLine(capability.ToJwt()); }
public ActionResult Agent_desktop() { string workerSid = Request.Params.Get("WorkerSid"); TwilioClient.Init(_accountSid, _authToken); var activityDictionary = new Dictionary <string, string>(); var activities = ActivityResource.Read(_workspaceSid); foreach (var activity in activities) { activityDictionary.Add(activity.FriendlyName, activity.Sid); } var updateActivityFilter = new Dictionary <string, Policy.FilterRequirement> { { "ActivitySid", Policy.FilterRequirement.Required } }; var urls = new PolicyUrlUtils(_workspaceSid, workerSid); var allowActivityUpdates = new Policy(urls.Worker, HttpMethod.Post, postFilter: updateActivityFilter); var allowTasksUpdate = new Policy(urls.AllTasks, HttpMethod.Post); var allowReservationUpdate = new Policy(urls.AllReservations, HttpMethod.Post); var allowWorkerFetches = new Policy(urls.Worker, HttpMethod.Get); var allowTasksFetches = new Policy(urls.AllTasks, HttpMethod.Get); var allowReservationFetches = new Policy(urls.AllReservations, HttpMethod.Get); var allowActivityFetches = new Policy(urls.Activities, HttpMethod.Get); var policies = new List <Policy> { allowActivityUpdates, allowTasksUpdate, allowReservationUpdate, allowWorkerFetches, allowTasksFetches, allowReservationFetches }; var capability = new TaskRouterCapability( _accountSid, _authToken, _workspaceSid, workerSid, policies: policies); var workerToken = capability.ToJwt(); var scopes = new HashSet <IScope> { { new IncomingClientScope(Request.Params.Get("WorkerSid")) }, { new OutgoingClientScope(_applicationSid) } }; var webClientCapability = new ClientCapability(_accountSid, _authToken, scopes: scopes); var token = capability.ToJwt(); ViewBag.worker_token = workerToken; ViewBag.client_token = webClientCapability.ToJwt(); ViewBag.caller_ID = _called_id; ViewBag.activties = activityDictionary; return(View()); }