static void Main(string[] args) { try { endPoint = new StasisEndpoint("ipaddress", 8088, "username", "password"); // Create a message actionClient to receive events on actionClient = new AriClient(endPoint, "playrec_test"); actionClient.OnStasisStartEvent += c_OnStasisStartEvent; actionClient.OnStasisEndEvent += c_OnStasisEndEvent; actionClient.OnRecordingFinishedEvent += ActionClientOnRecordingFinishedEvent; actionClient.Connect(); bool done = false; while (!done) { var lastKey = Console.ReadKey(); switch (lastKey.KeyChar.ToString()) { case "*": done = true; break; } } actionClient.Disconnect(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.ReadKey(); } }
public static void SetupAriEndpoint() { _logger.Information("Creating Endpoint"); var appName = ArkeCallFlowService.Configuration.GetSection("appSettings:AsteriskAppName").Value; var endpoint = new StasisEndpoint( ArkeCallFlowService.Configuration.GetSection("appSettings:AsteriskHost").Value, int.Parse(ArkeCallFlowService.Configuration.GetSection("appSettings:AriPort").Value), ArkeCallFlowService.Configuration.GetSection("appSettings:AsteriskUser").Value, ArkeCallFlowService.Configuration.GetSection("appSettings:AsteriskPassword").Value ); _logger.Information($"Registering endpoint {endpoint.AriEndPoint}:{endpoint.Host}:{endpoint.Port} with AriClient"); _ariClient = new AriClient(endpoint, appName); _logger.Information("Adding AriClient to CallFlowService"); var container = ObjectContainer.GetInstance(); container.RegisterSingleton <IAriClient>(() => _ariClient); _sipApi = new ArkeSipApiClient(_ariClient, _logger); container.RegisterSingleton(_sipApi); _logger.Information("Registering API Layer"); container.RegisterSingleton <ISipApiClient>(_sipApi); container.RegisterSingleton <ISipBridgingApi>(_sipApi); container.RegisterSingleton <ISipLineApi>(_sipApi); container.RegisterSingleton <ISipPromptApi>(_sipApi); container.RegisterSingleton <ISipRecordingApi>(_sipApi); container.RegisterSingleton <ISoundsApi>(_sipApi); }
private ApplicationProxy(IBackendProvider provider, StasisEndpoint endpoint, string appName, ILogger logger) { _provider = provider; _endpoint = endpoint; AppName = appName; Created = DateTime.Now; Logger = logger; // Init _dialogues = new ConcurrentDictionary <string, IDialogue>(); _client = new AriClient(_endpoint, AppName) { EventDispatchingStrategy = EventDispatchingStrategy.DedicatedThread }; _restClient = new RestClient(_endpoint.AriEndPoint) { Authenticator = new HttpBasicAuthenticator(_endpoint.Username, _endpoint.Password) }; ActiveDialogues = new List <IDialogue>(); // Register this app name with the backend provider _provider.RegisterApplication(AppName); // Init event handler _client.OnUnhandledEvent += _client_OnUnhandledEvent; _client.OnConnectionStateChanged += _client_OnConnectionStateChanged; }
public Command(StasisEndpoint info, string path) { Client = new RestClient(info.AriEndPoint) { Authenticator = new HttpBasicAuthenticator(info.Username, info.Password) }; Request = new RestRequest(path); }
public Command(StasisEndpoint info, string path) { Client = new RestClient(info.AriEndPoint) { Authenticator = new HttpBasicAuthenticator(info.Username, info.Password) }; Request = new RestRequest(path); }
public static ApplicationProxy Create(IBackendProvider provider, StasisEndpoint endpoint, string appName, ILogger logger) { logger.LogInformation("Starting Application Proxy for {0}", appName); var rtn = new ApplicationProxy(provider, endpoint, appName, logger); Instances.Add(rtn); rtn.Start(); return(rtn); }
public Command(StasisEndpoint info, string path) { Client = new RestClient(info.AriEndPoint) { Authenticator = new HttpBasicAuthenticator(info.Username, info.Password) }; Request = new RestRequest(path) { Serializer = new RestSharp.Portable.Serializers.JsonSerializer() }; }
public SampleSSSO() { StasisEndpoint endpoint = new StasisEndpoint("127.0.0.1", 7004, "root", "123", false); ariMain = new ARIMain(endpoint, "AsteriskSSSO", this); this.MaxWaitingTime = 30; this.RetryCount = 3; this.PinLength = 4; DoWork(); }
public ARIMain(StasisEndpoint endpoint, string app, ISSSO _ssso) { ariClient = new AriClient(endpoint, app); ariClient.Connect(); ssso = _ssso; ariClient.OnStasisStartEvent += AriClient_OnStasisStartEvent; ariClient.OnChannelHangupRequestEvent += AriClient_OnChannelHangupRequestEvent; ariClient.OnChannelDtmfReceivedEvent += AriClient_OnChannelDtmfReceivedEvent; dtmfTimer = new Timer(dtmfTimerDoWork, lockObject, TimeSpan.Zero, TimeSpan.FromSeconds(1)); }
/// <summary> /// Конструктор /// </summary> public AsteriskAriClient(ILogger logger, IOptions <AsteriskOptions> options, IHostApplicationLifetime applicationLifetime, AsteriskAriSmsService smsService) { _logger = logger; _applicationLifetime = applicationLifetime; _smsService = smsService; var ariOptions = options.Value; var endpoint = new StasisEndpoint(ariOptions.Ip, ariOptions.Port, ariOptions.Username, ariOptions.Password); Start(endpoint); }
public Command(StasisEndpoint info, string path) { Client = new RestClient(info.AriEndPoint) { Authenticator = new HttpBasicAuthenticator(info.Username, info.Password) #if NETSTANDARD , IgnoreResponseStatusCode = true #endif }; Request = new RestRequest(path) { Serializer = new RestSharp.Portable.Serializers.JsonSerializer() }; }
private void Start(StasisEndpoint endpoint) { try { _logger.Information("Starting Asterisk ARI!"); var ariClient = new AriClient(endpoint, AppName); ariClient.OnConnectionStateChanged += AriClientOnConnectionStateChanged; ariClient.Connect(); _ariClient = ariClient; _endpointHost = endpoint.Host; } catch (HttpRequestException ex) { _logger.Error($"Ошибка подключения к Asterisk ARI. Host: {endpoint.Host}:{endpoint.Port}, Endpoint: {endpoint.AriEndPoint}", ex); throw; } }
public WebSocketEventProducer(StasisEndpoint connectionInfo, string application) { _connectionInfo = connectionInfo; _application = application; }
public RestActionConsumer(StasisEndpoint connectionInfo) { _connectionInfo = connectionInfo; }
public WebSocketEventProducer(StasisEndpoint connectionInfo, string application) { _connectionInfo = connectionInfo; _application = application; }