Sufficit.Asterisk.FastAGI
1.25.930.2114
dotnet add package Sufficit.Asterisk.FastAGI --version 1.25.930.2114
NuGet\Install-Package Sufficit.Asterisk.FastAGI -Version 1.25.930.2114
<PackageReference Include="Sufficit.Asterisk.FastAGI" Version="1.25.930.2114" />
<PackageVersion Include="Sufficit.Asterisk.FastAGI" Version="1.25.930.2114" />
<PackageReference Include="Sufficit.Asterisk.FastAGI" />
paket add Sufficit.Asterisk.FastAGI --version 1.25.930.2114
#r "nuget: Sufficit.Asterisk.FastAGI, 1.25.930.2114"
#:package Sufficit.Asterisk.FastAGI@1.25.930.2114
#addin nuget:?package=Sufficit.Asterisk.FastAGI&version=1.25.930.2114
#tool nuget:?package=Sufficit.Asterisk.FastAGI&version=1.25.930.2114
Sufficit.Asterisk.FastAGI
Description
Sufficit.Asterisk.FastAGI
provides a high-performance FastAGI server implementation for .NET applications, enabling Asterisk to delegate dialplan control to external applications efficiently. This library allows you to create complex, dynamic call logic using the full power of .NET while maintaining excellent performance and reliability.
Features
High-Performance Server
- Asynchronous FastAGI server with high concurrency support
- Connection pooling and efficient resource management
- Script routing system for organizing call logic
- Automatic request parsing and response formatting
- Exception handling and error recovery
- Comprehensive logging and diagnostics
Advanced Call Control
- Full AGI command support - Answer, Dial, Playback, Record, etc.
- DTMF handling - Wait for digits, get user input
- Variable management - Get/Set channel variables
- Call flow control - Conditional logic and branching
- Database integration - Direct database access during calls
- External API integration - REST calls during call processing
Flexible Architecture
- Script-based routing - Map URLs to specific call handlers
- Dependency injection support for business logic
- Middleware pipeline for request/response processing
- Custom authentication and authorization
- Health monitoring and metrics collection
Framework Support
- Multi-target framework support (.NET Standard 2.0, .NET 7, 8, 9)
- ASP.NET Core integration for web-based scenarios
- Background service support for standalone applications
- Modern async/await patterns throughout
FastAGI vs Traditional AGI
FastAGI offers significant advantages over traditional AGI:
- Network-based communication - No process spawning overhead
- Connection pooling - Reuse connections for better performance
- Scalability - Handle multiple concurrent calls efficiently
- Language flexibility - Use any .NET language for call logic
- Rich debugging - Full debugging capabilities in your IDE
Installation
dotnet add package Sufficit.Asterisk.FastAGI
Usage
For detailed usage examples and documentation, see USAGE.md.
License
This project is licensed under the MIT License.
References and Thanks
This project stands on the shoulders of giants in the Asterisk .NET community. We are deeply grateful to the original authors and contributors who paved the way:
Reference Projects
Asterisk.NET by roblthegreat - A foundational library that provided essential insights into AGI protocol implementation, command formatting, and response parsing patterns that informed our FastAGI architecture.
AsterNET by AsterNET Team - An excellent reference for AGI command implementations, channel variable handling, and network communication patterns with Asterisk servers.
These projects were crucial in understanding AGI protocol specifications, connection handling, and the intricacies of communicating with Asterisk over network sockets. Our implementation leverages this collective knowledge while introducing modern server architecture and performance optimizations.
Made with ❤️ by the Sufficit Team
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNetCore.Http.Connections.Common (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Logging (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Logging.Configuration (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Options (>= 9.0.9 && < 10.0.0)
- Sufficit.Asterisk.Shared (>= 1.25.825.1916)
- System.Text.Json (>= 9.0.9 && < 10.0.0)
- System.Threading.Channels (>= 9.0.9 && < 10.0.0)
-
net7.0
- Microsoft.AspNetCore.Http.Connections.Common (>= 7.0.20 && < 8.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0 && < 8.0.0)
- Microsoft.Extensions.Logging (>= 7.0.0 && < 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.1 && < 8.0.0)
- Microsoft.Extensions.Logging.Configuration (>= 7.0.0 && < 8.0.0)
- Microsoft.Extensions.Options (>= 7.0.1 && < 8.0.0)
- Sufficit.Asterisk.Shared (>= 1.25.825.1916)
- System.Text.Json (>= 8.0.5 && < 9.0.0)
-
net8.0
- Microsoft.AspNetCore.Http.Connections.Common (>= 8.0.20 && < 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2 && < 10.0.0)
- Microsoft.Extensions.Logging (>= 8.0.1 && < 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.3 && < 10.0.0)
- Microsoft.Extensions.Logging.Configuration (>= 8.0.1 && < 10.0.0)
- Microsoft.Extensions.Options (>= 8.0.2 && < 10.0.0)
- Sufficit.Asterisk.Shared (>= 1.25.825.1916)
- System.Text.Json (>= 8.0.6 && < 10.0.0)
-
net9.0
- Microsoft.AspNetCore.Http.Connections.Common (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Logging (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Logging.Configuration (>= 9.0.9 && < 10.0.0)
- Microsoft.Extensions.Options (>= 9.0.9 && < 10.0.0)
- Sufficit.Asterisk.Shared (>= 1.25.825.1916)
- System.Text.Json (>= 9.0.9 && < 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.25.930.2114 | 146 | 9/30/2025 |
1.25.904.1753 | 167 | 9/4/2025 |
1.25.827.1501 | 200 | 8/27/2025 |
1.25.826.2149 | 202 | 8/26/2025 |
1.25.824.3 | 103 | 8/24/2025 |
1.25.712.1726 | 117 | 7/12/2025 |
1.25.710.42 | 162 | 7/10/2025 |
1.25.628.2319 | 108 | 6/28/2025 |
1.25.611.1839 | 305 | 6/11/2025 |
1.25.611.1801 | 298 | 6/11/2025 |