public void CreateStatefulProxyTest() { SIPTransactionEngine transactionEngine = new SIPTransactionEngine(); SIPTransport sipTransport = new SIPTransport(SIPDNSManager.Resolve, transactionEngine, new SIPUDPChannel(new IPEndPoint(IPAddress.Loopback, 3000)), false, false); SIPAppServerCore appServerCore = new SIPAppServerCore(sipTransport, null, null, null, null, null); sipTransport.Shutdown(); }
public void B2BOptionsStatefulProxyTest() { SIPTransactionEngine transactionEngine1 = new SIPTransactionEngine(); SIPTransport sipTransport1 = new SIPTransport(SIPDNSManager.Resolve, transactionEngine1, true, false); sipTransport1.AddSIPChannel(new SIPUDPChannel(new IPEndPoint(IPAddress.Loopback, 3000))); SIPAppServerCore appServerCore1 = new SIPAppServerCore(sipTransport1, null, statefulProxyCore1_StatefulProxyLogEvent, null, null, null); SIPTransactionEngine transactionEngine2 = new SIPTransactionEngine(); SIPTransport sipTransport2 = new SIPTransport(SIPDNSManager.Resolve, transactionEngine2, true, false); sipTransport2.AddSIPChannel(new SIPUDPChannel(new IPEndPoint(IPAddress.Loopback, 3001))); SIPAppServerCore appServerCore2 = new SIPAppServerCore(sipTransport2, null, statefulProxyCore2_StatefulProxyLogEvent, null, null, null); sipTransport1.SIPRequestOutTraceEvent += sipTransport1_SIPRequestOutTraceEvent; sipTransport1.SIPResponseInTraceEvent += sipTransport1_SIPResponseInTraceEvent; sipTransport2.SIPRequestInTraceEvent += sipTransport2_SIPRequestInTraceEvent; SIPRequest optionsRequest = GetOptionsRequest(SIPURI.ParseSIPURI("sip:127.0.0.1:3001"), 1, sipTransport1.GetDefaultTransportContact(SIPProtocolsEnum.udp).SocketEndPoint); sipTransport1.SendRequest(optionsRequest); Thread.Sleep(200); // Check the NUnit Console.Out to make sure there are SIP requests and responses being displayed. sipTransport1.Shutdown(); sipTransport2.Shutdown(); }
public void B2BInviteStatefulProxyTest() { SIPTransactionEngine transactionEngine1 = new SIPTransactionEngine(); SIPTransport sipTransport1 = new SIPTransport(SIPDNSManager.Resolve, transactionEngine1, true, false); IPEndPoint sipTransport1EndPoint = new IPEndPoint(IPAddress.Loopback, 3000); sipTransport1.AddSIPChannel(new SIPUDPChannel(sipTransport1EndPoint)); SIPAppServerCore statefulProxyCore1 = new SIPAppServerCore(sipTransport1, null, statefulProxyCore1_StatefulProxyLogEvent, null, null, null); SIPTransactionEngine transactionEngine2 = new SIPTransactionEngine(); SIPTransport sipTransport2 = new SIPTransport(SIPDNSManager.Resolve, transactionEngine2, true, false); IPEndPoint sipTransport2EndPoint = new IPEndPoint(IPAddress.Loopback, 3001); sipTransport2.AddSIPChannel(new SIPUDPChannel(sipTransport2EndPoint)); SIPAppServerCore statefulProxyCore2 = new SIPAppServerCore(sipTransport2, statefulProxyCore2_GetCanonicalDomain, statefulProxyCore2_StatefulProxyLogEvent, null, null, null); sipTransport1.SIPRequestOutTraceEvent += sipTransport1_SIPRequestOutTraceEvent; sipTransport1.SIPResponseInTraceEvent += sipTransport1_SIPResponseInTraceEvent; sipTransport2.SIPRequestInTraceEvent += sipTransport2_SIPRequestInTraceEvent; sipTransport2.SIPResponseOutTraceEvent += sipTransport2_SIPResponseOutTraceEvent; SIPRequest inviteRequest = GetInviteRequest(sipTransport1EndPoint, null, sipTransport2EndPoint); sipTransport1.SendRequest(inviteRequest); Thread.Sleep(200); // Check the NUnit Console.Out to make sure there are SIP requests and responses being displayed. sipTransport1.Shutdown(); sipTransport2.Shutdown(); }
public void B2BInviteTransactionUserFoundStatefulProxyTest() { SIPTransactionEngine transactionEngine1 = new SIPTransactionEngine(); SIPTransport sipTransport1 = new SIPTransport(SIPDNSManager.Resolve, transactionEngine1, true, false); IPEndPoint sipTransport1EndPoint = new IPEndPoint(IPAddress.Loopback, 3000); sipTransport1.AddSIPChannel(new SIPUDPChannel(sipTransport1EndPoint)); SIPAppServerCore statefulProxyCore1 = new SIPAppServerCore(sipTransport1, null, statefulProxyCore1_StatefulProxyLogEvent, null, null, null); SIPTransactionEngine transactionEngine2 = new SIPTransactionEngine(); SIPTransport sipTransport2 = new SIPTransport(SIPDNSManager.Resolve, transactionEngine2, true, false); IPEndPoint sipTransport2EndPoint = new IPEndPoint(IPAddress.Loopback, 3001); sipTransport2.AddSIPChannel(new SIPUDPChannel(sipTransport2EndPoint)); SIPAppServerCore statefulProxyCore2 = new SIPAppServerCore( sipTransport2, statefulProxyCore2_GetCanonicalDomain, statefulProxyCore2_StatefulProxyLogEvent, null, null, null); //statefulProxyCore2.GetExtensionOwner += new GetExtensionOwnerDelegate(statefulProxyCore2_GetExtensionOwner); sipTransport1.SIPRequestOutTraceEvent += sipTransport1_SIPRequestOutTraceEvent; sipTransport1.SIPResponseInTraceEvent += sipTransport1_SIPResponseInTraceEvent; sipTransport2.SIPRequestInTraceEvent += sipTransport2_SIPRequestInTraceEvent; sipTransport2.SIPResponseOutTraceEvent += sipTransport2_SIPResponseOutTraceEvent; //statefulProxyCore2.LoadDialPlan += new LoadDialPlanDelegate(statefulProxyCore2_LoadDialPlan); SIPRequest inviteRequest = GetInviteRequest(sipTransport1EndPoint, null, sipTransport2EndPoint); UACInviteTransaction uacInvite = sipTransport1.CreateUACTransaction(inviteRequest, new SIPEndPoint(SIPProtocolsEnum.udp, sipTransport2EndPoint), new SIPEndPoint(SIPProtocolsEnum.udp, sipTransport1EndPoint), null); uacInvite.SendInviteRequest(new SIPEndPoint(SIPProtocolsEnum.udp, sipTransport2EndPoint), inviteRequest); Thread.Sleep(1000); // Check the NUnit Console.Out to make sure there are SIP requests and responses being displayed. sipTransport1.Shutdown(); sipTransport2.Shutdown(); }
public void AckRecognitionUnitTest() { SIPTransport clientTransport = null; SIPTransport serverTransport = null; try { SIPTransactionEngine clientEngine = new SIPTransactionEngine(); // Client side of the INVITE. SIPEndPoint clientEndPoint = new SIPEndPoint(SIPProtocolsEnum.udp, new IPEndPoint(IPAddress.Loopback, 12013)); clientTransport = new SIPTransport(MockSIPDNSManager.Resolve, clientEngine, new SIPUDPChannel(clientEndPoint.GetIPEndPoint()), false); SetTransportTraceEvents(clientTransport); SIPTransactionEngine serverEngine = new SIPTransactionEngine(); // Server side of the INVITE. UASInviteTransaction serverTransaction = null; SIPEndPoint serverEndPoint = new SIPEndPoint(new IPEndPoint(IPAddress.Loopback, 12014)); serverTransport = new SIPTransport(MockSIPDNSManager.Resolve, serverEngine, new SIPUDPChannel(serverEndPoint.GetIPEndPoint()), false); SetTransportTraceEvents(serverTransport); serverTransport.SIPTransportRequestReceived += (localEndPoint, remoteEndPoint, sipRequest) => { Console.WriteLine("Server Transport Request In: " + sipRequest.Method + "."); serverTransaction = serverTransport.CreateUASTransaction(sipRequest, remoteEndPoint, localEndPoint, null); SetTransactionTraceEvents(serverTransaction); serverTransaction.GotRequest(localEndPoint, remoteEndPoint, sipRequest); }; SIPURI dummyURI = SIPURI.ParseSIPURI("sip:dummy@" + serverEndPoint); SIPRequest inviteRequest = GetDummyINVITERequest(dummyURI); inviteRequest.LocalSIPEndPoint = clientTransport.GetDefaultTransportContact(SIPProtocolsEnum.udp); // Send the invite to the server side. UACInviteTransaction clientTransaction = new UACInviteTransaction(clientTransport, inviteRequest, serverEndPoint, clientEndPoint, null); SetTransactionTraceEvents(clientTransaction); clientEngine.AddTransaction(clientTransaction); clientTransaction.SendInviteRequest(serverEndPoint, inviteRequest); Thread.Sleep(500); Assert.IsTrue(clientTransaction.TransactionState == SIPTransactionStatesEnum.Completed, "Client transaction in incorrect state."); Assert.IsTrue(serverTransaction.TransactionState == SIPTransactionStatesEnum.Confirmed, "Server transaction in incorrect state."); } finally { if (clientTransport != null) { clientTransport.Shutdown(); } if (serverTransport != null) { serverTransport.Shutdown(); } } }