Improve Telnyx CallRingGroup
This commit is contained in:
parent
967fbddf8b
commit
f8b3958f1c
|
|
@ -6,9 +6,11 @@ using Elsa.Activities.ControlFlow;
|
|||
using Elsa.Activities.Telnyx.Client.Models;
|
||||
using Elsa.Activities.Telnyx.Client.Services;
|
||||
using Elsa.Activities.Telnyx.Models;
|
||||
using Elsa.Activities.Telnyx.Services;
|
||||
using Elsa.Activities.Telnyx.Webhooks.Models;
|
||||
using Elsa.Activities.Telnyx.Webhooks.Payloads.Call;
|
||||
using Elsa.Activities.Temporal;
|
||||
using Elsa.ActivityResults;
|
||||
using Elsa.Attributes;
|
||||
using Elsa.Builders;
|
||||
using Elsa.Design;
|
||||
|
|
@ -153,10 +155,9 @@ namespace Elsa.Activities.Telnyx.Activities
|
|||
private void BuildPrioritizedHuntFlow(IOutcomeBuilder builder) =>
|
||||
builder
|
||||
.ForEach(() => Extensions, iterate => iterate
|
||||
.Then<ResolveExtension>(a => a.WithExtension(context => context.GetInput<string>()))
|
||||
.Then<Dial>(a => a
|
||||
.WithConnectionId(() => CallControlAppId)
|
||||
.WithTo(context => context.GetInput<string>())
|
||||
.WithTo(async context => await ResolveExtensionAsync(context, context.GetInput<string>()!))
|
||||
.WithTimeoutSecs(() => (int) RingTime.TotalSeconds)
|
||||
.WithFrom(() => From)
|
||||
.WithFromDisplayName(() => FromDisplayName)
|
||||
|
|
@ -195,7 +196,6 @@ namespace Elsa.Activities.Telnyx.Activities
|
|||
.WithCallControlIdA(() => CallControlId)
|
||||
.WithCallControlIdB(() => CallAnsweredPayload!.CallControlId))
|
||||
.ThenTypeNamed(CallBridgedPayload.ActivityTypeName)
|
||||
.ThenTypeNamed(CallBridgedPayload.ActivityTypeName)
|
||||
.Then<Finish>(finish => finish.WithOutcome("Connected").WithOutput(() => CallAnsweredPayload));
|
||||
|
||||
fork
|
||||
|
|
@ -206,10 +206,9 @@ namespace Elsa.Activities.Telnyx.Activities
|
|||
fork
|
||||
.When("Dial Everyone")
|
||||
.ParallelForEach(() => Extensions, iterate => iterate
|
||||
.Then<ResolveExtension>(a => a.WithExtension(context => context.GetInput<string>()))
|
||||
.Then<Dial>(a => a
|
||||
.WithConnectionId(() => CallControlAppId)
|
||||
.WithTo(context => context.GetInput<string>())
|
||||
.WithTo(async context => await ResolveExtensionAsync(context, context.GetInput<string>()!))
|
||||
.WithTimeoutSecs(() => (int) RingTime.TotalSeconds)
|
||||
.WithFrom(() => From)
|
||||
.WithFromDisplayName(() => FromDisplayName)
|
||||
|
|
@ -225,6 +224,13 @@ namespace Elsa.Activities.Telnyx.Activities
|
|||
collection.Add(dialResponse);
|
||||
CollectedDialResponses = collection;
|
||||
}
|
||||
|
||||
private static async Task<string> ResolveExtensionAsync(ActivityExecutionContext context, string extension)
|
||||
{
|
||||
var extensionProvider = context.GetService<IExtensionProvider>();
|
||||
var resolvedExtension = await extensionProvider.GetAsync(extension, context.CancellationToken);
|
||||
return resolvedExtension?.Number ?? extension;
|
||||
}
|
||||
|
||||
object IActivityPropertyDefaultValueProvider.GetDefaultValue(PropertyInfo property) => Duration.FromSeconds(20);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue