public void test_codec_registration() { var userName = "******"; DeleteRegisteredSip(userName); // Add new var sipMessage = new SipRegistrationMessage() { Ip = GetRandomLocationIpAddress(), Port = 5060, UnixTimeStamp = GetUnixTimeStamp(DateTime.Now), Sip = new SipUri(userName), UserAgent = "ProntoNet LC v6.8.1", Username = userName, ToDisplayName = "Test", Expires = 60 }; // Assert var result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.CodecAdded, result.ChangeStatus); // Update only timestamp. Should return nothing changed. // Act sipMessage.UnixTimeStamp = GetUnixTimeStamp(DateTime.Now.AddSeconds(1)); // Assert result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.NothingChanged, result.ChangeStatus); // Update location. Should return status updated. // Act sipMessage.Ip = GetRandomLocationIpAddress(); // Assert result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.CodecUpdated, result.ChangeStatus); // Only timestamp sipMessage.UnixTimeStamp = GetUnixTimeStamp(DateTime.Now.AddSeconds(2)); result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.NothingChanged, result.ChangeStatus); // Update display name. Should return status updated. // Act sipMessage.ToDisplayName = "New display name"; // Assert result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.CodecUpdated, result.ChangeStatus); // Update user agent sipMessage.UserAgent = "Quantum/3.4.3"; result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.CodecUpdated, result.ChangeStatus); // Only timestamp sipMessage.UnixTimeStamp = GetUnixTimeStamp(DateTime.Now.AddSeconds(3)); result = SipMessageManager.RegisterCodec(sipMessage); Assert.AreEqual(SipEventChangeStatus.NothingChanged, result.ChangeStatus); }
public SipEventHandlerResult RegisterCodec(SipRegistrationMessage sipMessage) { var userAgentRegistration = new UserAgentRegistration( sipUri: sipMessage.Sip.UserAtHost, userAgentHeader: sipMessage.UserAgent, username: sipMessage.Sip.UserAtHost, displayName: string.IsNullOrEmpty(sipMessage.ToDisplayName) ? sipMessage.FromDisplayName : sipMessage.ToDisplayName, registrar: sipMessage.Registrar, ipAddress: sipMessage.Ip, port: sipMessage.Port, expirationTimeSeconds: sipMessage.Expires, serverTimeStamp: sipMessage.UnixTimeStamp ); return(_sipRepository.UpdateRegisteredSip(userAgentRegistration)); }
private SipRegistrationMessage ParseRegistration(KamailioSipEvent kamailioData) { var registration = new SipRegistrationMessage() { Sip = new SipUri(kamailioData.FromUri), Username = kamailioData.AuthUser, // TODO: Obsolete. To be removed. FromDisplayName = ParseDisplayName(kamailioData.FromDisplayName), ToDisplayName = ParseDisplayName(kamailioData.ToDisplayName), UserAgent = kamailioData.UserAgentHeader, Registrar = kamailioData.Registrar, RegType = kamailioData.RegType, Ip = kamailioData.Ip.SenderIp, Port = kamailioData.Ip.SenderPort, Expires = kamailioData.Expires, UnixTimeStamp = kamailioData.TimeStamp }; return(registration); }
private SipRegistrationMessage ParseRegistration(KamailioData kamailioData) { var registration = new SipRegistrationMessage() { Ip = kamailioData.GetField("si"), Port = ParseInt(kamailioData.GetField("sp")), UnixTimeStamp = ParseLong(kamailioData.GetField("TS")), Sip = new SipUri(kamailioData.GetField("fu")), FromDisplayName = ParseDisplayName(kamailioData.GetField("fn")), UserAgent = kamailioData.GetField("ua"), Username = kamailioData.GetField("Au"), ToDisplayName = ParseDisplayName(kamailioData.GetField("tn")), Expires = ParseInt(kamailioData.GetField("Expires"), DefaultExpireValue), // Not in use //ToUsername = kamailioData.GetField("rU"), //RequestedSip = new SipUri(kamailioData.GetField("ru")), //ReceivedIp = kamailioData.GetField("Ri"), //ReceivedPort = ParseInt(kamailioData.GetField("Rp")), //CallId = kamailioData.GetField("ci"), }; return(registration); }