Ejemplo n.º 1
0
        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
                });
            }
        }
Ejemplo n.º 2
0
        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
                });
            }
        }