Является ли Asternet AriClient поток безопасным
Безопасен ли поток AsternetAri AriClient? Пример. Если у меня есть API-интерфейс, который пользователи могут использовать для телефонных звонков, можно ли использовать один статический AriClient или он будет прерываться, когда несколько пользователей попытаются сделать вызов одновременно.
Кроме того, если AriClient не является потокобезопасным, можно ли создавать новый AriClient при каждом запросе (каждый со своим собственным StasisEndpoint)
Ниже приведен пример статической реализации, которую я хотел бы сделать (это нормально):
public static class Asterisk
{
private static ConcurrentDictionary<String, String> Tracker;
private static AriClient Client;
private static String Address;
private static String Port;
private static String Application;
static Asterisk()
{
var tracker = new ConcurrentDictionary<String, String>();
var application = ConfigurationManager.AppSettings["DialerApplication"].ToString();
var address = ConfigurationManager.AppSettings["DialerAddress"].ToString();
var port = ConfigurationManager.AppSettings["DialerPort"].ToString();
var username = ConfigurationManager.AppSettings["DialerUsername"].ToString();
var password = ConfigurationManager.AppSettings["DialerPassword"].ToString();
var bridge = Guid.NewGuid().ToString();
Client = new AriClient(new StasisEndpoint(address, Convert.ToInt32(port), username, password), application);
Address = address;
Port = port;
Application = application;
Tracker = tracker;
Client.OnStasisStartEvent += OnStartEvent;
Client.OnStasisEndEvent += OnEndEvent;
Client.Connect();
}
public static Bridge CreateBridge(String bridgeType)
{
var id = Guid.NewGuid().ToString().ToUpper();
var app = Application.ToString();
var bridge = Client.Bridges.Create(bridgeType, id, app);
Client.Applications.Subscribe(app, "bridge:" + id);
return bridge;
}
}