protected override void When() { var ok = _receivedBye.CreateResponse(SipResponseCodes.x200_Ok); _network.SendTo(SipFormatter.FormatMessage(ok), _testClientUaEndPoint, _phoneUaEndPoint); _waitForOkByeProcessed.WaitOne(TimeSpan.FromSeconds(3)); }
public void Parse_InValidFormats_ExpectToThrowExceptions() { String[] strings = { "\r\n\r\n", /*empty message*/ " ", /*empty message*/ "junk\r\n", /*invalid firsline*/ "\r\n\r\n invalid firsline\r\n", /*invalid firsline*/ "REGISTER sip:192.168.0.1 SIP/2.0\r\n NAME : \r\n" /*fails, first line is folded = ends with NAME*/ }; int exceptions = 0; foreach (string s in strings) { try { var listenerStub = new SipParserListenerStub(); var bytes = SipFormatter.FormatToBytes(s); new SipParser(listenerStub).Parse(bytes, 0, bytes.Length); } catch (ParseException e) { exceptions++; } } exceptions.Should().Be(strings.Length); }
protected override void When() { _originalResponse = new SipRequestBuilder().Build().CreateResponse(SipResponseCodes.x200_Ok); var bytes = SipFormatter.FormatMessage(_originalResponse); _sipResponse = _parser.Parse(new DatagramPacketBuilder().WithDataBytes(bytes).Build()) as SipResponse; }
protected override void When() { var response = _receivedInvite.CreateResponse(SipResponseCodes.x487_Request_Terminated); _network.SendTo(SipFormatter.FormatMessage(response), _testClientUaEndPoint, _phoneUaEndPoint); _waitforProcessed.WaitOne(); }
protected override void When() { var ack = CreateAckRequest(_invite, _okResponse); _network.SendTo(SipFormatter.FormatMessage(ack), _testClientUaEndPoint, _phoneUaEndPoint); _waitForAckProcessed.WaitOne(); }
protected override void When() { var cancelRequest = CreateCancelRequest(_invite); _network.SendTo(SipFormatter.FormatMessage(cancelRequest), _testClientUaEndPoint, _phoneUaEndPoint); WaitHandle.WaitAll(waitHandles, 2000 * 100); }
protected override void Given() { base.Given(); SipRequest sipMessage = new SipRequestBuilder().Build(); _bytes = SipFormatter.FormatMessage(sipMessage); }
private static void OnSendRequest(object state) { var id = (int)state; var client = new UdpClient(); Interlocked.Increment(ref _currentThreadCount); //if (_currentThreadCount == ThreadCount) // _threadsGoEvent.Set(); //// thread should wait until all threads are ready, to try the server. //if (!_threadsGoEvent.WaitOne(60000, true)) // Assert.False(true, "Start event was not triggered."); var request = new SipRequestBuilder().WithCSeq(new SipCSeqHeaderBuilder().WithSequence(id).Build()).Build(); try { var bytes = SipFormatter.FormatMessage(request); client.Send(bytes, bytes.Length, _listenerEndPoint); } catch (Exception e) { Console.WriteLine("failed to send: " + id); lock (_failedThreads) _failedThreads.Add(id); } }
public void Parse_ValidFormats_ExpectNotToFail() { String[] strings = { "REGISTER sip:192.168.0.1 SIP/2.0\r\nName: Value\r\n\r\n", /*default format*/ "REGISTER sip:192.168.0.1 SIP/2.0\r\nNAME : \r\n" + /*folded line*/ " Value\r\n\r\n", "REGISTER sip:192.168.0.1 SIP/2.0\r\nNAME: Value, Value\r\n\r\n", /*comma separated values on same line*/ "REGISTER sip:192.168.0.1 SIP/2.0\r\nName :Value\r\n\r\n" /*support white spaces after name*/ //"REGISTER sip:192.168.0.1 SIP/2.0\r\nNAME: Value\r\n\r\n", //"REGISTER sip:192.168.0.1 SIP/2.0\r\nname: Value\r\n\r\n", //"REGISTER sip:192.168.0.1 SIP/2.0\r\n naME : Value\r\n\r\n", fails because first line is folded line and so does not end with SIP/2.0 }; foreach (string s in strings) { var listenerStub = new SipParserListenerStub(); var bytes = SipFormatter.FormatToBytes(s); new SipParser(listenerStub).Parse(bytes, 0, bytes.Length); listenerStub.OnRequestExecuteReceived.Should().NotBeNull(); listenerStub.OnResponseExecuteReceived.Should().BeNull(); listenerStub.OnCompleteExecuteReceived.Should().BeTrue(); listenerStub.OnHeaderExecuteReceived.Should().NotBeEmpty(); listenerStub.OnHeaderExecuteReceived["Name"].Should().NotBeEmpty(); } }
protected override void When() { _originalRequest = new SipRequestBuilder().Build(); var bytes = SipFormatter.FormatMessage(_originalRequest); _sipMessage = _parser.Parse(new DatagramPacketBuilder().WithDataBytes(bytes).Build()) as SipRequest; }
protected override void When() { var ok = _receivedCancel.CreateResponse(SipResponseCodes.x481_Call_Transaction_Does_Not_Exist); _network.SendTo(SipFormatter.FormatMessage(ok), _testClientUaEndPoint, _phoneUaEndPoint); _waitforProcessed.WaitOne(); }
protected override void When() { var bye = CreateByeRequest(_invite, _receivedRingingResponse); _network.SendTo(SipFormatter.FormatMessage(bye), TestConstants.IpEndPoint1, TestConstants.IpEndPoint2); _waitForByeReceived.WaitOne(); }
protected override void GivenOverride() { _network.SendTo(SipFormatter.FormatMessage(_invite), TestConstants.IpEndPoint1, TestConstants.IpEndPoint2); _wait.WaitOne(TimeSpan.FromMilliseconds(_longtimeSpan + 500)); //_wait.WaitOne(); _phone.InternalState.Should().Be(_stateProvider.GetRinging()); /*required assertion*/ }
protected override void When() { _call.Stop(); var ringing = CreateRingingResponse(_receivedInvite, SipUtil.CreateTag()); _network.SendTo(SipFormatter.FormatMessage(ringing), _testClientUaEndPoint, _phoneUaEndPoint); _waitingforRingingProcessed.WaitOne(); }
protected override void When() { _toTag = SipUtil.CreateTag(); var provResponse = CreateResponse(_receivedInvite, _toTag, SipResponseCodes.x486_Busy_Here); _network.SendTo(SipFormatter.FormatMessage(provResponse), _testClientUaEndPoint, _phoneUaEndPoint); _waitingforResponseProcessed.WaitOne(); }
protected override void When() { /*send ok to cancel*/ var ok = _receivedCancel.CreateResponse(SipResponseCodes.x200_Ok); _network.SendTo(SipFormatter.FormatMessage(ok), _testClientUaEndPoint, _phoneUaEndPoint); _waitforOkProcessed.WaitOne(); }
protected override void When() { var provResponse = CreateOkResponse(_receivedInvite, _toTag); _network.SendTo(SipFormatter.FormatMessage(provResponse), _testClientUaEndPoint, _phoneUaEndPoint); _waitingforOkProcessed.WaitOne(); _waitingForAckReceived.WaitOne(3000); /*test also if ack is received by testclient.*/ }
protected override void When() { _toTag = SipUtil.CreateTag(); var provResponse = CreateRingingResponse(_receivedInvite, _toTag); _network.SendTo(SipFormatter.FormatMessage(provResponse), _testClientUaEndPoint, _phoneUaEndPoint); _ringingProcessed.WaitOne(); }
protected override void When() { _network.SendTo(SipFormatter.FormatMessage(_invite), TestConstants.IpEndPoint1, TestConstants.IpEndPoint2); Thread.Sleep(TimeSpan.FromSeconds(1)); _network.SendTo(SipFormatter.FormatMessage(_invite), TestConstants.IpEndPoint1, TestConstants.IpEndPoint2); _wait.WaitOne(TimeSpan.FromSeconds(1)); // _wait.WaitOne(); /*debug*/ }
protected override void GivenOverride() { _network.SendTo(SipFormatter.FormatMessage(_invite), _testClientUaEndPoint, _phoneUaEndPoint); _waitingforInviteProcessed.WaitOne(); _phone.InternalState.Should().Be(_stateProvider.GetRinging()); /*required assertion*/ _incomingCall.Accept(); _waitingforOkReceived.WaitOne(); _phone.InternalState.Should().Be(_stateProvider.GetWaitForAck()); /*required assertion*/ }
public void ProcessRequest(SipRequestEvent requestEvent) { WriteToLog(">>>>" + SipFormatter.FormatMessageEnvelope(requestEvent.Request) + Environment.NewLine); requestEvent.Response = requestEvent.Request.CreateResponse(SipResponseCodes.x200_Ok); requestEvent.IsHandled = true; _sipProvider.SendResponse(requestEvent.Response); WriteToLog("<<<<" + SipFormatter.FormatMessageEnvelope(requestEvent.Response) + Environment.NewLine); }
protected override void Given() { base.Given(); _originalBody = new DataBytesBuilder().WithText("body").Build(); var sipMessage = new SipRequestBuilder() .WithBody(_originalBody) .WithContentLength(4).Build(); _bytes = SipFormatter.FormatMessage(sipMessage); }
private void _btnSend_Click(object sender, EventArgs e) { if (_txtMessage.Text == string.Empty) { MessageBox.Show("Can not send an empty message"); } UdpClient udpClient = new UdpClient(AddressFamily.InterNetwork); var bytes = SipFormatter.FormatToBytes(_txtMessage.Text); udpClient.Send(bytes, bytes.Length, SipUtil.ParseIpEndPoint(_txtSendTo.Text)); }
protected override void When() { var f = new SipStack(); var messageFacttory = f.CreateMessageFactory(); var headerFactory = f.CreateHeaderFactory(); foreach (string message in _messages) { var parserContext = new SipParserContext(messageFacttory, headerFactory); parserContext.ParseCompleted += (s, e) => _subjectFoldedRequest.Add((SipRequest)e.Message); parserContext.Parse(SipFormatter.FormatToBytes(message)); } }
protected override void Given() { base.Given(); _vias = new SipViaHeaderListBuilder() .Add(new SipViaHeaderBuilder().WithSentBy(TestConstants.IpEndPoint1).Build()) .Add(new SipViaHeaderBuilder().WithSentBy(TestConstants.IpEndPoint2).Build()).Build(); var sipMessage = new SipRequestBuilder() .WithNoHeaders() .WithVias(_vias).Build(); _bytes = SipFormatter.FormatMessage(sipMessage); }
private void WriteToLog(IList <SipMessage> messages) { var sb = new StringBuilder(); foreach (var m in messages) { sb.AppendLine(SipFormatter.FormatMessageEnvelope(m)); } _txtLog.Text += sb.ToString(); _txtLog.SelectionStart = _txtLog.Text.Length; _txtLog.ScrollToCaret(); }
public void Parse_DoesNotStartWithLAQOUT_ExpectThrowException() { String[] strings = { "To: sip:1.1.1.1:222>", }; for (int i = 0; i < strings.Length; i++) { var p = new SipToHeaderParser(); var result = p.Parse(strings[i]); Assert.AreEqual(strings[i], SipFormatter.FormatHeader(result)); } }
public void Parse_ToUriDoesNotHavePortSpecified_ExpectToUseDefaultPort5060() { String[] strings = { "To: <sip:1.1.1.1>", }; for (int i = 0; i < strings.Length; i++) { var p = new SipToHeaderParser(); var result = p.Parse(strings[i]); Assert.AreEqual(strings[i], SipFormatter.FormatHeader(result)); } }
private void _btnRegister_Click(object sender, EventArgs e) { try { var requestUri = AddressFactory.CreateUri(null, "registrar." + MainForm.Configuration.RegistrarDomain); var toAddressUri = AddressFactory.CreateUri("hannes", MainForm.Configuration.RegistrarDomain); var toAddress = AddressFactory.CreateAddress("hannes", toAddressUri); var toHeader = HeaderFactory.CreateToHeader(toAddress); var fromHeader = HeaderFactory.CreateFromHeader(toAddress, SipUtil.CreateTag()); var cseqHeader = HeaderFactory.CreateSCeqHeader(SipMethods.Register, 1028); var callId = SipUtil.CreateCallId(); var callIdheader = HeaderFactory.CreateCallIdHeader(callId); var viaHeader = HeaderFactory.CreateViaHeader(SipProvider.ListeningPoint.Address, SipProvider.ListeningPoint.Port, SipConstants.Udp, SipUtil.CreateBranch()); var maxForwardsHeader = HeaderFactory.CreateMaxForwardsHeader(); var request = MessageFactory.CreateRequest( requestUri, SipMethods.Register, callIdheader, cseqHeader, fromHeader, toHeader, viaHeader, maxForwardsHeader); var proxyServerUri = AddressFactory.CreateUri(null, MainForm.SipStack.OutBoundProxy.ToString()); var localHostUri = AddressFactory.CreateUri(null, MainForm.SipProvider.ListeningPoint.ToString()); var routeHeader = HeaderFactory.CreateRouteHeader(proxyServerUri); var contactHeader = HeaderFactory.CreateContactHeader(localHostUri); request.Routes.Add(routeHeader); request.Contacts.Add(contactHeader); EventAggregator.Instance.Publish( new LogEvent(">>>>" + SipFormatter.FormatMessageEnvelope(request) + Environment.NewLine)); if (_chbSendStateFull.Checked) { var transaction = SipProvider.CreateClientTransaction(request); transaction.SendRequest(); } else { SipProvider.SendRequest(request); } } catch (Exception ex) { MainForm.HandleException(ex); } }
public void Parse_ContainsNonNumericSequence_ExpectThrowException() { String[] strings = { "CSeq: 1002a REGISTER", }; for (int i = 0; i < strings.Length; i++) { var p = new SipCSeqHeaderParser(); var result = p.Parse(strings[i]); Assert.AreEqual(strings[i], SipFormatter.FormatHeader(result)); } }