/// <summary>
        /// 设备目录查询
        /// </summary>
        /// <param name="deviceId">目的设备编码</param>
        public void DeviceCatalogQuery()
        {
            if (LocalEndPoint == null)
            {
                OnSIPServiceChange(RemoteSIPId, SipServiceStatus.Wait);
                return;
            }
            lock (RemoteTrans)
            {
                foreach (var trans in RemoteTrans)
                {
                    SIPEndPoint remoteEndPoint = SIPEndPoint.ParseSIPEndPoint(trans.Key);

                    SIPRequest   catalogReq = QueryItems(remoteEndPoint, trans.Value);
                    CatalogQuery catalog    = new CatalogQuery()
                    {
                        CommandType = CommandType.Catalog,
                        DeviceID    = trans.Value,
                        SN          = new Random().Next(1, ushort.MaxValue)
                    };
                    string xmlBody = CatalogQuery.Instance.Save <CatalogQuery>(catalog);
                    catalogReq.Body = xmlBody;
                    Transport.SendRequest(remoteEndPoint, catalogReq);
                }
            }
            //_catalogTask = new TaskTiming(catalogReq, Transport);
            //this.SendRequestTimeout += _catalogTask.MessageSendRequestTimeout;
            //_catalogTask.Start();
        }
        /// <summary>
        /// 设备目录查询
        /// </summary>
        /// <param name="deviceId">目的设备编码</param>
        public void DeviceCatalogQuery(string deviceId)
        {
            if (LocalEndPoint == null)
            {
                OnSIPServiceChange(deviceId, SipServiceStatus.Wait);
                return;
            }
            string       fromTag    = CallProperties.CreateNewTag();
            string       toTag      = CallProperties.CreateNewTag();
            int          cSeq       = CallProperties.CreateNewCSeq();
            string       callId     = CallProperties.CreateNewCallId();
            SIPRequest   catalogReq = QueryItems(fromTag, toTag, cSeq, callId);
            CatalogQuery catalog    = new CatalogQuery()
            {
                CommandType = CommandType.Catalog,
                DeviceID    = deviceId,
                SN          = new Random().Next(9999)
            };
            string xmlBody = CatalogQuery.Instance.Save <CatalogQuery>(catalog);

            catalogReq.Body = xmlBody;
            Transport.SendRequest(RemoteEndPoint, catalogReq);
            _catalogTask             = new TaskTiming(catalogReq, Transport);
            this.SendRequestTimeout += _catalogTask.MessageSendRequestTimeout;
            _catalogTask.Start();
        }
Beispiel #3
0
        /// <summary>
        /// 目录订阅
        /// </summary>
        /// <param name="deviceId">目的设备编码</param>
        public void DeviceCatalogSubscribe(SIPEndPoint remoteEP, string remoteID)
        {
            SIPRequest   catalogReq = SubscribeCatalog(remoteEP, remoteID);
            CatalogQuery catalog    = new CatalogQuery()
            {
                CommandType = CommandType.Catalog,
                DeviceID    = remoteID,
                SN          = new Random().Next(1, ushort.MaxValue)
                              //StartTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"),
                              //EndTime = DateTime.Now.AddYears(1).ToString("yyyy-MM-ddTHH:mm:ss")
            };
            string xmlBody = CatalogQuery.Instance.Save <CatalogQuery>(catalog);

            catalogReq.Body = xmlBody;
            SendRequest(remoteEP, catalogReq);
        }
 /// <summary>
 /// 设备目录查询
 /// </summary>
 /// <param name="deviceId">目的设备编码</param>
 public void DeviceCatalogQuery()
 {
     lock (_remoteTransEPs)
     {
         foreach (var item in _remoteTransEPs)
         {
             SIPEndPoint  remoteEP   = SIPEndPoint.ParseSIPEndPoint("udp:" + item.Key);
             SIPRequest   catalogReq = QueryItems(remoteEP, item.Value);
             CatalogQuery catalog    = new CatalogQuery()
             {
                 CommandType = CommandType.Catalog,
                 DeviceID    = item.Value,
                 SN          = new Random().Next(1, ushort.MaxValue)
             };
             string xmlBody = CatalogQuery.Instance.Save <CatalogQuery>(catalog);
             catalogReq.Body = xmlBody;
             SendRequest(remoteEP, catalogReq);
         }
     }
 }
 public void MobileDataSubscription(string devID)
 {
     lock (_remoteTransEPs)
     {
         foreach (var item in _remoteTransEPs)
         {
             SIPEndPoint remoteEP          = SIPEndPoint.ParseSIPEndPoint("udp:" + item.Key);
             SIPRequest  eventSubscribeReq = QueryItems(remoteEP, devID);
             //eventSubscribeReq.Method = SIPMethodsEnum.SUBSCRIBE;
             CatalogQuery catalog = new CatalogQuery()
             {
                 CommandType = CommandType.MobilePosition,
                 DeviceID    = devID,
                 SN          = new Random().Next(1, ushort.MaxValue)
             };
             string xmlBody = CatalogQuery.Instance.Save <CatalogQuery>(catalog);
             eventSubscribeReq.Body = xmlBody;
             SendRequest(remoteEP, eventSubscribeReq);
         }
     }
 }
 public CatalogEntry GetValue(CatalogQuery query)
 {
     return(GetValue(query.CatalogName, query.Filter));
 }
        public async Task <IActionResult> GetCategoryDetails([FromRoute] CatalogQuery query)
        {
            CatalogDetailDto categoryInFull = await _dispatcher.QueryAsync <CatalogDetailDto>(query);

            return(Ok(categoryInFull));
        }