protected override void Given()
 {
     _headerFactory = new SipStack().CreateHeaderFactory();
     _fromHeader = new SipFromHeaderBuilder().Build();
     StringBuilder sb = new StringBuilder();
     _fromHeaderBodyString = _fromHeader.FormatBodyToString();
 }
示例#2
0
        protected override void Given()
        {
            _headerFactory = new SipStack().CreateHeaderFactory();
            _fromHeader    = new SipFromHeaderBuilder().Build();
            StringBuilder sb = new StringBuilder();

            _fromHeaderBodyString = _fromHeader.FormatBodyToString();
        }
示例#3
0
        public SipFromHeader CreateFromHeader(SipAddress address, string tag)
        {
            Check.Require(address, "address");

            SipFromHeader h = new SipFromHeader();
            h.DisplayInfo = address.DisplayInfo;
            h.SipUri = address.Uri;
            h.Tag = tag;
            return h;
        }
示例#4
0
        public void SetHeader(SipHeaderBase header)
        {
            Check.Require(header, "header");

            switch (header.Name)
            {
            case SipHeaderNames.CSeq: _sceq = (SipCSeqHeader)header;
                break;

            case SipHeaderNames.CallId: _callId = (SipCallIdHeader)header;
                break;

            case SipHeaderNames.Contact: _contacts.Add((SipContactHeader)header);
                break;

            case SipHeaderNames.ContentLength: _contentLenght = (SipContentLengthHeader)header;
                break;

            case SipHeaderNames.ContentType: _contentType = (SipContentTypeHeader)header;
                break;

            case SipHeaderNames.From: _from = (SipFromHeader)header;
                break;

            case SipHeaderNames.MaxForwards: _maxForwards = (SipMaxForwardsHeader)header;
                break;

            case SipHeaderNames.To: _to = (SipToHeader)header;
                break;

            case SipHeaderNames.Via: _vias.Add((SipViaHeader)header);
                break;

            case SipHeaderNames.Subject: _subject = (SipSubjectHeader)header;
                break;

            case SipHeaderNames.Route: _routes.Add((SipRouteHeader)header);
                break;

            case SipHeaderNames.Expires: _expires = (SipExpiresHeader)header;
                break;

            case SipHeaderNames.RecordRoute: _recordRoutes.Add((SipRecordRouteHeader)header);
                break;

            case SipHeaderNames.Allow: _allow = (SipAllowHeader)header;
                break;

            case SipHeaderNames.UserAgent: _userAgent = (SipUserAgentHeader)header;
                break;

            default:
                throw new NotSupportedException(string.Format("The header with name {0} is not supported.", header.Name));
            }
        }
示例#5
0
        public SipFromHeader CreateFromHeader(SipAddress address, string tag)
        {
            Check.Require(address, "address");

            SipFromHeader h = new SipFromHeader();

            h.DisplayInfo = address.DisplayInfo;
            h.SipUri      = address.Uri;
            h.Tag         = tag;
            return(h);
        }
示例#6
0
 public SipMessageBuilder <T> WithNoHeaders()
 {
     _from         = null;
     _to           = null;
     _cSeq         = null;
     _callId       = null;
     _vias         = null;
     _maxForwards  = null;
     _contacts     = new SipHeaderList <SipContactHeader>();
     _recordRoutes = new SipHeaderList <SipRecordRouteHeader>();
     return(this);
 }
示例#7
0
 public SipMessageBuilder()
 {
     _from   = new SipFromHeaderBuilder().Build();
     _to     = new SipToHeaderBuilder().Build();
     _cSeq   = new SipCSeqHeaderBuilder().Build();
     _callId = new SipCallIdHeaderBuilder().Build();;
     _vias   = new SipViaHeaderListBuilder()
               .Add(new SipViaHeaderBuilder().Build())
               .Add(new SipViaHeaderBuilder().WithSentBy(TestConstants.IpEndPoint2).Build())
               .Build();
     _maxForwards = new SipMaxForwardsHeaderBuilder().Build();
     _contacts    = new SipContactHeaderListBuilder()
                    .Add(new SipContactHeaderBuilder().WithExpires(360).Build())
                    .Add(new SipContactHeaderBuilder().WithExpires(360).Build())
                    .Build();
     _recordRoutes = new SipRecordRouteHeaderListBuilder()
                     .Add(new SipRecordRouteHeaderBuilder().WithSipUri(TestConstants.AliceProxyUri).Build())
                     .Add(new SipRecordRouteHeaderBuilder().WithSipUri(TestConstants.BobProxyUri).Build())
                     .Build();
     //_contentLength = new SipContentLengthHeaderBuilder().Build();
     //_contentType = new SipContentTypeHeaderBuilder().Build();
 }
示例#8
0
        protected SipRequest CreateRequest(string method)
        {
            /*create the 'INVITE' message*/
            SipAddressFactory addressFactory = _stack.CreateAddressFactory();
            SipHeaderFactory  headerFactory  = _stack.CreateHeaderFactory();
            SipMessageFactory messageFactory = _stack.CreateMessageFactory();

            SipUri     senderSipUri     = addressFactory.CreateUri(string.Empty, new IPEndPoint(_ipAddress, 12345).ToString());
            SipAddress senderSipAddress = addressFactory.CreateAddress(string.Empty, senderSipUri);

            SipUri     receiverSipUri     = addressFactory.CreateUri(string.Empty, new IPEndPoint(_ipAddress, 23456).ToString());
            SipAddress receiverSipAddress = addressFactory.CreateAddress(string.Empty, senderSipUri);

            SipToHeader     toHeader     = headerFactory.CreateToHeader(receiverSipAddress);
            SipFromHeader   fromHeader   = headerFactory.CreateFromHeader(senderSipAddress, SipUtil.CreateTag());
            SipCSeqHeader   cseqHeader   = headerFactory.CreateSCeqHeader(method, 1);
            SipCallIdHeader callIdheader = headerFactory.CreateCallIdHeader(SipUtil.CreateCallId());
            SipViaHeader    viaHeader    = headerFactory.CreateViaHeader(_ipAddress, 12345, SipConstants.Udp,
                                                                         SipUtil.CreateBranch());
            SipMaxForwardsHeader maxForwardsHeader = headerFactory.CreateMaxForwardsHeader();
            SipRequest           request           = messageFactory.CreateRequest(
                receiverSipUri,
                method,
                callIdheader,
                cseqHeader,
                fromHeader,
                toHeader,
                viaHeader,
                maxForwardsHeader);

            if (method == SipMethods.Invite)
            {
                SipContactHeader contactHeader = headerFactory.CreateContactHeader(senderSipUri);
                request.Contacts.Add(contactHeader);
            }

            return(request);
        }
示例#9
0
        public SipRequest CreateRequest(SipUri requestUri, string method, SipCallIdHeader callId, SipCSeqHeader cSeq, SipFromHeader from, SipToHeader to, SipViaHeader viaHeader, SipMaxForwardsHeader maxForwards)
        {
            Check.Require(requestUri, "requestUri");
             Check.Require(method, "method");
             Check.Require(callId, "callId");
             Check.Require(cSeq, "cseq");
             Check.Require(from, "from");
             Check.Require(to , "to");
             Check.Require( viaHeader,"viaHeader");
             Check.Require(maxForwards,  "maxforwards");

            var message = new SipRequest();
            message.RequestLine.Method = method;
            message.RequestLine.Uri = requestUri;
            message.RequestLine.Version = SipConstants.SipTwoZeroString;
            message.CallId = callId;
            message.To = to;
            message.From = from;
            message.CSeq = cSeq;
            message.Vias.SetTopMost(viaHeader);
            message.MaxForwards = maxForwards;
            return message;
        }
示例#10
0
        public void RemoveHeader(string header)
        {
            Check.Require(header, "header");

            switch (header)
            {
            case SipHeaderNames.CSeq:
                _sceq = null;
                break;

            case SipHeaderNames.CallId:
                _callId = null;
                break;

            case SipHeaderNames.Contact:
                _contacts.Clear();
                break;

            case SipHeaderNames.ContentLength:
                _contentLenght = null;
                break;

            case SipHeaderNames.ContentType:
                _contentType = null;
                break;

            case SipHeaderNames.From:
                _from = null;
                break;

            case SipHeaderNames.MaxForwards:
                _maxForwards = null;
                break;

            case SipHeaderNames.To:
                _to = null;
                break;

            case SipHeaderNames.Via:
                _vias.Clear();
                break;

            case SipHeaderNames.Subject:
                _subject = null;;
                break;

            case SipHeaderNames.Route:
                _routes.Clear();
                break;

            case SipHeaderNames.Expires:
                _expires = null;
                break;

            case SipHeaderNames.RecordRoute:
                _recordRoutes.Clear();
                break;

            case SipHeaderNames.Allow:
                _allow = null;
                break;

            case SipHeaderNames.UserAgent:
                _userAgent = null;
                break;

            default:
                throw new NotSupportedException(string.Format("The header with name {0} is not supported.", header));
            }
        }
示例#11
0
        public SipRequest CreateRequest(SipUri requestUri, string method, SipCallIdHeader callId, SipCSeqHeader cSeq, SipFromHeader from, SipToHeader to, SipViaHeader viaHeader, SipMaxForwardsHeader maxForwards)
        {
            Check.Require(requestUri, "requestUri");
            Check.Require(method, "method");
            Check.Require(callId, "callId");
            Check.Require(cSeq, "cseq");
            Check.Require(from, "from");
            Check.Require(to, "to");
            Check.Require(viaHeader, "viaHeader");
            Check.Require(maxForwards, "maxforwards");

            var message = new SipRequest();

            message.RequestLine.Method  = method;
            message.RequestLine.Uri     = requestUri;
            message.RequestLine.Version = SipConstants.SipTwoZeroString;
            message.CallId = callId;
            message.To     = to;
            message.From   = from;
            message.CSeq   = cSeq;
            message.Vias.SetTopMost(viaHeader);
            message.MaxForwards = maxForwards;
            return(message);
        }
示例#12
0
 public SipMessageBuilder <T> WithFrom(SipFromHeader value)
 {
     _from = value;
     return(this);
 }
示例#13
0
        public void SetHeader(SipHeaderBase header)
        {
            Check.Require(header, "header");

            switch (header.Name)
            {
                case SipHeaderNames.CSeq: _sceq = (SipCSeqHeader)header;
                    break;
                case SipHeaderNames.CallId: _callId = (SipCallIdHeader)header;
                    break;
                case SipHeaderNames.Contact: _contacts.Add((SipContactHeader)header);
                    break;
                case SipHeaderNames.ContentLength: _contentLenght = (SipContentLengthHeader)header;
                    break;
                case SipHeaderNames.ContentType: _contentType = (SipContentTypeHeader)header;
                    break;
                case SipHeaderNames.From: _from = (SipFromHeader)header;
                    break;
                case SipHeaderNames.MaxForwards: _maxForwards = (SipMaxForwardsHeader)header;
                    break;
                case SipHeaderNames.To: _to = (SipToHeader)header;
                    break;
                case SipHeaderNames.Via: _vias.Add((SipViaHeader) header);
                    break;
                case SipHeaderNames.Subject: _subject = (SipSubjectHeader)header;
                    break;
                case SipHeaderNames.Route: _routes.Add((SipRouteHeader)header);
                    break;
                case SipHeaderNames.Expires: _expires = (SipExpiresHeader)header;
                    break;
                case SipHeaderNames.RecordRoute: _recordRoutes.Add((SipRecordRouteHeader)header);
                    break;
                case SipHeaderNames.Allow: _allow = (SipAllowHeader)header;
                    break;
                case SipHeaderNames.UserAgent: _userAgent = (SipUserAgentHeader)header;
                    break;
                default:
                    throw new NotSupportedException(string.Format("The header with name {0} is not supported.", header.Name));
            }
        }
示例#14
0
        public void RemoveHeader(string header)
        {
            Check.Require(header, "header");

            switch (header)
            {
                case SipHeaderNames.CSeq:
                    _sceq = null;
                    break;
                case SipHeaderNames.CallId:
                    _callId = null;
                    break;
                case SipHeaderNames.Contact:
                    _contacts.Clear();
                    break;
                case SipHeaderNames.ContentLength:
                    _contentLenght = null;
                    break;
                case SipHeaderNames.ContentType:
                    _contentType = null;
                    break;
                case SipHeaderNames.From:
                    _from = null;
                    break;
                case SipHeaderNames.MaxForwards:
                    _maxForwards = null;
                    break;
                case SipHeaderNames.To:
                    _to = null;
                    break;
                case SipHeaderNames.Via:
                    _vias.Clear();
                    break;
                case SipHeaderNames.Subject:
                    _subject =  null;;
                    break;
                case SipHeaderNames.Route:
                    _routes.Clear();
                    break;
                case SipHeaderNames.Expires:
                    _expires = null;
                    break;
                case SipHeaderNames.RecordRoute:
                    _recordRoutes.Clear();
                    break;
                case SipHeaderNames.Allow:
                    _allow = null;
                    break;
                case SipHeaderNames.UserAgent:
                    _userAgent = null;
                    break;
                default:
                    throw new NotSupportedException(string.Format("The header with name {0} is not supported.", header));
            }
        }