public async Task <LineStatus> GetLineStatusAsync(string hostAddress, string lineEncoder = "ProgramL1") { // TODO: Get actual amount of lines from CCM and add to CodecInformation object to determine if it exists using (var socket = await ProdysSocketPool.TakeSocket(hostAddress)) { // If the device have multiple lines and encoders var deviceLineEncoder = string.IsNullOrEmpty(lineEncoder) || lineEncoder == "null" ? "ProgramL1" : lineEncoder; IkusNetLine statusSelectedLineEncoder = IkusNetLine.ProgramL1; try { statusSelectedLineEncoder = (IkusNetLine)Enum.Parse(typeof(IkusNetLine), deviceLineEncoder, true); } catch (Exception) { statusSelectedLineEncoder = IkusNetLine.ProgramL1; } log.Debug($"Trying to GetLineStatus statusSelectedLine: {statusSelectedLineEncoder} , hostAddress: {hostAddress}"); SendCommand(socket, new CommandIkusNetGetLineStatus { Line = statusSelectedLineEncoder }); var response = new IkusNetGetLineStatusResponse(socket); return(new LineStatus { LineEncoder = statusSelectedLineEncoder.ToString(), StatusCode = IkusNetMapper.MapToLineStatus(response.LineStatus), DisconnectReason = IkusNetMapper.MapToDisconnectReason(response.DisconnectionCode), RemoteAddress = response.Address }); } }
public LineStatus GetLineStatus(string hostAddress, int line) { using (var socket = GetConnectedSocket(hostAddress)) { SendCommand(socket, new CommandIkusNetGetLineStatus { Line = (IkusNetLine)line }); var response = new IkusNetGetLineStatusResponse(socket); return(new LineStatus { RemoteAddress = response.Address, StatusCode = (LineStatusCode)response.LineStatus, DisconnectReason = (DisconnectReason)response.DisconnectionCode, IpCallType = (IpCallType)response.IpCallType }); } }