new features 04/12/2024

This commit is contained in:
2024-12-04 15:01:24 +07:00
parent a5eb4e9157
commit 33cfd5d363
24 changed files with 947 additions and 135 deletions

View File

@@ -26,7 +26,6 @@ import java.util.List;
import lombok.Getter;
import lombok.Setter;
import org.pmw.tinylog.Logger;
import peers.Config;
import peers.XmlConfig;
@@ -125,16 +124,7 @@ public class UserAgent {
cseqCounter = 1;
String buf = "starting user agent [" +
"myAddress: " +
config.getLocalInetAddress().getHostAddress() + ", " +
"sipPort: " +
config.getSipPort() + ", " +
"userpart: " +
config.getUserPart() + ", " +
"domain: " +
config.getDomain() + "]";
Logger.info(buf);
//transaction user

View File

@@ -26,6 +26,7 @@ import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import lombok.Setter;
import org.pmw.tinylog.Logger;
import peers.Config;
@@ -47,10 +48,11 @@ public abstract class MessageReceiver implements Runnable {
private boolean isListening;
//private UAS uas;
@Setter
private SipServerTransportUser sipServerTransportUser;
private TransactionManager transactionManager;
private TransportManager transportManager;
private Config config;
private final TransactionManager transactionManager;
private final TransportManager transportManager;
private final Config config;
public MessageReceiver(int port, TransactionManager transactionManager,
@@ -83,10 +85,7 @@ public abstract class MessageReceiver implements Runnable {
} catch (UnsupportedEncodingException e) {
Logger.error("unsupported encoding", e);
}
if (RFC3261.DEFAULT_SIP_VERSION.equals(beginning)) {
return false;
}
return true;
return !RFC3261.DEFAULT_SIP_VERSION.equals(beginning);
}
protected void processMessage(byte[] message, InetAddress sourceIp,
@@ -115,10 +114,7 @@ public abstract class MessageReceiver implements Runnable {
}
return;
}
StringBuffer direction = new StringBuffer();
direction.append("RECEIVED from ").append(sourceIp.getHostAddress());
direction.append("/").append(sourcePort);
Logger.info(new String(message),direction.toString());
SipMessage sipMessage = null;
try {
sipMessage = transportManager.sipParser.parse(
@@ -158,7 +154,7 @@ public abstract class MessageReceiver implements Runnable {
SipHeaderParamName rportName = new SipHeaderParamName(
RFC3261.PARAM_RPORT);
String rport = topVia.getParam(rportName);
if (rport != null && "".equals(rport)) {
if (rport != null && rport.isEmpty()) {
topVia.removeParam(rportName);
topVia.addParam(rportName, String.valueOf(sourcePort));
}
@@ -193,13 +189,4 @@ public abstract class MessageReceiver implements Runnable {
return isListening;
}
public void setSipServerTransportUser(
SipServerTransportUser sipServerTransportUser) {
this.sipServerTransportUser = sipServerTransportUser;
}
// public void setUas(UAS uas) {
// this.uas = uas;
// }
}

View File

@@ -329,7 +329,6 @@ public class TransportManager {
}
datagramSocket.setSoTimeout(SOCKET_TIMEOUT);
datagramSockets.put(conn, datagramSocket);
Logger.info("added datagram socket " + conn);
}
socket = datagramSocket;
messageSender = new UdpMessageSender(conn.getRemoteInetAddress(),
@@ -409,7 +408,6 @@ public class TransportManager {
}
sipPort = datagramSocket.getLocalPort();
datagramSockets.put(sipTransportConnection, datagramSocket);
Logger.info("added datagram socket " + sipTransportConnection);
}
messageReceiver = new UdpMessageReceiver(datagramSocket,
transactionManager, this, config);
@@ -420,8 +418,7 @@ public class TransportManager {
//messageReceiver = new TcpMessageReceiver(port);
}
messageReceivers.put(sipTransportConnection, messageReceiver);
Logger.info("added " + sipTransportConnection + ": " + messageReceiver
+ " to message receivers");
return messageReceiver;
}

View File

@@ -44,15 +44,11 @@ public class UdpMessageSender extends MessageSender {
@Override
public synchronized void sendMessage(SipMessage sipMessage) {
Logger.debug("UdpMessageSender.sendMessage");
if (sipMessage == null) {
if (sipMessage == null) {
return;
}
byte[] buf = sipMessage.toString().getBytes();
sendBytes(buf);
String direction = "SENT to " + inetAddress.getHostAddress() +
"/" + port;
Logger.info(new String(buf), direction);
}
@Override