コード例 #1
0
        /// <summary>
        /// 目录订阅请求
        /// </summary>
        /// <returns></returns>
        private SIPRequest SubscribeCatalog(SIPEndPoint remoteEndPoint, string remoteSIPId)
        {
            string fromTag = CallProperties.CreateNewTag();
            int    cSeq    = CallHelpers.CreateNewCSeq();
            string callId  = CallProperties.CreateNewCallId();

            SIPURI        remoteUri  = new SIPURI(remoteSIPId, remoteEndPoint.ToHost(), "");
            SIPURI        localUri   = new SIPURI(LocalSIPId, LocalEP.ToHost(), "");
            SIPFromHeader from       = new SIPFromHeader(null, localUri, fromTag);
            SIPToHeader   to         = new SIPToHeader(null, remoteUri, null);
            SIPRequest    catalogReq = _transport.GetRequest(SIPMethodsEnum.SUBSCRIBE, remoteUri);

            catalogReq.Header.From    = from;
            catalogReq.Header.Contact = new List <SIPContactHeader>
            {
                new SIPContactHeader(null, localUri)
            };
            catalogReq.Header.Allow       = null;
            catalogReq.Header.To          = to;
            catalogReq.Header.UserAgent   = SIPConstants.SIP_USERAGENT_STRING;
            catalogReq.Header.Event       = "Catalog";//"presence";//"Catalog;id=1894";
            catalogReq.Header.Expires     = 60000;
            catalogReq.Header.CSeq        = cSeq;
            catalogReq.Header.CallId      = callId;
            catalogReq.Header.ContentType = "application/MANSCDP+xml";//"Application/MANSCDP+xml"

            return(catalogReq);
        }
コード例 #2
0
        public async Task Greeting_Success_RepositoryCalled()
        {
            // Arrange
            var mockRepository = new Mock <IGreetRepository>();

            var mockCall = CallHelpers.CreateAsyncUnaryCall(new HelloReply {
                Message = "Test"
            });
            var mockClient = new Mock <Tester.TesterClient>();

            mockClient
            .Setup(m => m.SayHelloUnaryAsync(
                       It.IsAny <HelloRequest>(), null, null, CancellationToken.None))
            .Returns(mockCall);

            var worker = new Worker(mockClient.Object, mockRepository.Object);

            // Act
            await worker.StartAsync(CancellationToken.None);

            // Assert
            mockRepository.Verify(v => v.SaveGreeting("Test"));
        }
コード例 #3
0
        public async Task Greeting_Error_ExceptionThrown()
        {
            // Arrange
            var mockRepository = new Mock <IGreetRepository>();
            var mockClient     = new Mock <Tester.TesterClient>();

            mockClient
            .Setup(m => m.SayHelloUnaryAsync(It.IsAny <HelloRequest>(), null, null, CancellationToken.None))
            .Returns(CallHelpers.CreateAsyncUnaryCall <HelloReply>(StatusCode.InvalidArgument));

            var worker = new Worker(mockClient.Object, mockRepository.Object);

            // Act & Assert
            try
            {
                await worker.StartAsync(CancellationToken.None);

                Assert.Fail();
            }
            catch (RpcException ex)
            {
                Assert.AreEqual(StatusCode.InvalidArgument, ex.StatusCode);
            }
        }
コード例 #4
0
        /// <summary>
        /// 查询设备目录请求
        /// </summary>
        /// <returns></returns>
        private SIPRequest QueryItems(SIPEndPoint remoteEndPoint, string remoteSIPId)
        {
            string fromTag = CallProperties.CreateNewTag();
            string toTag   = CallProperties.CreateNewTag();
            int    cSeq    = CallHelpers.CreateNewCSeq();
            string callId  = CallProperties.CreateNewCallId();

            SIPURI        remoteUri  = new SIPURI(remoteSIPId, remoteEndPoint.ToHost(), "");
            SIPURI        localUri   = new SIPURI(LocalSIPId, LocalEP.ToHost(), "");
            SIPFromHeader from       = new SIPFromHeader(null, localUri, fromTag);
            SIPToHeader   to         = new SIPToHeader(null, remoteUri, null);
            SIPRequest    catalogReq = _transport.GetRequest(SIPMethodsEnum.MESSAGE, remoteUri);

            catalogReq.Header.From        = from;
            catalogReq.Header.Contact     = null;
            catalogReq.Header.Allow       = null;
            catalogReq.Header.To          = to;
            catalogReq.Header.UserAgent   = SIPConstants.SIP_USERAGENT_STRING;
            catalogReq.Header.CSeq        = cSeq;
            catalogReq.Header.CallId      = callId;
            catalogReq.Header.ContentType = "application/MANSCDP+xml";

            return(catalogReq);
        }