protected TransportOutputChannel(IDefaultCommunicationTimeouts timeouts, EndpointAddress to, Uri via, bool manualAddressing, MessageVersion messageVersion) : base(timeouts) { ManualAddressing = manualAddressing; MessageVersion = messageVersion; _to = to; _via = via; if (!manualAddressing && _to != null) { Uri toUri; if (_to.IsAnonymous) { toUri = MessageVersion.Addressing.AnonymousUri(); } else if (_to.IsNone) { toUri = MessageVersion.Addressing.NoneUri(); } else { toUri = _to.Uri; } if (toUri != null) { XmlDictionaryString dictionaryTo = new ToDictionary(toUri.AbsoluteUri).To; _toHeader = ToHeader.Create(toUri, dictionaryTo, messageVersion.Addressing); } _anyHeadersToAdd = _to.Headers.Count > 0; } }
public void It_returns_URI_as_content() { var header = new ToHeader("http://example.com"); var content = header.Write(); Assert.AreEqual(1, content.Count()); var textNode = content.First() as XText; Assert.AreEqual("http://example.com", textNode.Value); }
public void It_reads_URI_from_content() { var content = new List <XNode> { new XText("http://example.com") }; var header = new ToHeader(); header.Read(content); Assert.AreEqual("http://example.com", header.Uri); }
private void CreateCommonHeaders(SipUser sipUser, LocalSipUserAgentServer localSipUas, SipTransportManager sipTransportManager) { this.viaHeader = new ViaHeader(localSipUas, sipTransportManager.SipProtocol, sipTransportManager.SipTransport); this.fromHeader = new FromHeader(sipUser, localSipUas, sipTransportManager.SipProtocol); this.toHeader = new ToHeader(localSipUas, sipTransportManager.SipProtocol); this.callIdHeader = new CallIdHeader(); this.contactHeader = new ContactHeader(localSipUas, sipTransportManager.SipProtocol); this.routeHeader = new RouteHeader(localSipUas, sipTransportManager.SipProtocol); this.userAgent = new UserAgentHeader(); this.expiresHeader = new ExpiresHeader(); this.maxForwards = new MaxForwardsHeader(); this.allowHeader = new AllowHeader(); this.contentLength = new ContentLength(body); }
public void BeforeSerialize(SoapMessage message) //ObjectOut { if(onClientOrServer == OnClientOrServer.Unknown) onClientOrServer = OnClientOrServer.Client; if(System.Environment.OSVersion.Platform != PlatformID.WinCE) { //NOTE this only works if you handle StreamOut/In too //NOTE this only works on .NETfx //TimestampHeader timestampHeader = new TimestampHeader(300); //message.Headers.Add(timestampHeader); if(onClientOrServer == OnClientOrServer.Server) { ActionHeader actionHeader = new ActionHeader(message.Action + "Response"); //else check what the inAction is RelatesToHeader relatesToHeader = null; if(inMessageId != null) relatesToHeader = new RelatesToHeader(inMessageId); ToHeader toHeader = null; if(inReplyTo != null) toHeader = new ToHeader(inReplyTo); //TODO ReferenceProperties message.Headers.Add(actionHeader); if(relatesToHeader != null) message.Headers.Add(relatesToHeader); if(toHeader != null) message.Headers.Add(toHeader); } else { //if(EndPoint == EndPointType.Addressing) ActionHeader actionHeader = new ActionHeader(message.Action); FromHeader fromHeader = new FromHeader(null); MessageIdHeader messageIdHeader = new MessageIdHeader(null); ToHeader toHeader = new ToHeader(message.Url); //TODO Subscription would need a ReplyTo header for asynch web services //ReplyToHeader replyToHeader = new ReplyToHeader("http://tempuri.org/RespondToClientCall/"); ReplyToHeader replyToHeader = new ReplyToHeader(message.Url); //just respond normally? message.Headers.Add(replyToHeader); message.Headers.Add(actionHeader); message.Headers.Add(fromHeader); message.Headers.Add(messageIdHeader); message.Headers.Add(toHeader); } //else //routing //pathHeader pHeader = new pathHeader(message.Action, message.Url, null); //message.Headers.Add(pHeader); } return; }
public void BeforeSerialize(SoapMessage message) //ObjectOut { if(System.Environment.OSVersion.Platform != PlatformID.WinCE) { //NOTE this only works if you handle StreamOut/In too //NOTE this only works on .NETfx TimestampHeader timestampHeader = new TimestampHeader(300); message.Headers.Add(timestampHeader); //if(EndPoint == EndPointType.Addressing) ActionHeader actionHeader = new ActionHeader(message.Action); //FromHeader fromHeader = new FromHeader(null); ReplyToHeader replyToHeader = new ReplyToHeader(null); MessageIdHeader messageIdHeader = new MessageIdHeader(null); ToHeader toHeader = new ToHeader(message.Url); message.Headers.Add(actionHeader); //message.Headers.Add(fromHeader); message.Headers.Add(replyToHeader); message.Headers.Add(messageIdHeader); message.Headers.Add(toHeader); //else //routing //pathHeader pHeader = new pathHeader(message.Action, message.Url, null); //message.Headers.Add(pHeader); } return; }