Ergänzungen
This commit is contained in:
parent
77657a69f5
commit
fd3cf75524
@ -6,6 +6,8 @@
|
||||
|
||||
package controller;
|
||||
|
||||
import controller.commands.CommandAnnehmen;
|
||||
import controller.commands.CommandBeenden;
|
||||
import controller.commands.CommandInvite;
|
||||
import controller.commands.CommandRegister;
|
||||
import gui.Hauptfenster;
|
||||
@ -36,6 +38,8 @@ public class CommandController implements ActionListener
|
||||
{
|
||||
view.getBtn1().addActionListener(this);
|
||||
view.getBtn2().addActionListener(this);
|
||||
view.getBtnannehmen().addActionListener(this);
|
||||
view.getBtnbeenden().addActionListener(this);
|
||||
}
|
||||
public void registerCommands()
|
||||
{
|
||||
@ -43,13 +47,15 @@ public class CommandController implements ActionListener
|
||||
|
||||
invoker.addCommand(view.getBtn1(), new CommandRegister(model, view));
|
||||
invoker.addCommand(view.getBtn2(), new CommandInvite(model, view));
|
||||
invoker.addCommand(view.getBtnannehmen(), new CommandAnnehmen(model,view));
|
||||
invoker.addCommand(view.getBtnbeenden(), new CommandBeenden(model, view));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
Object key = e.getSource();
|
||||
|
||||
|
||||
invoker.executeCommand(key);
|
||||
|
||||
}
|
||||
|
56
src/controller/commands/CommandAnnehmen.java
Normal file
56
src/controller/commands/CommandAnnehmen.java
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package controller.commands;
|
||||
|
||||
import controller.CommandInterface;
|
||||
import gui.Hauptfenster;
|
||||
import java.util.logging.Logger;
|
||||
import logger.OhmLogger;
|
||||
import model.VoIP;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Normal
|
||||
*/
|
||||
public class CommandAnnehmen implements CommandInterface
|
||||
{
|
||||
private static final Logger lginvite = OhmLogger.getLogger();
|
||||
private VoIP model;
|
||||
private Hauptfenster view;
|
||||
public CommandAnnehmen(VoIP model, Hauptfenster view)
|
||||
{
|
||||
this.model = model;
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute()
|
||||
{/*
|
||||
try
|
||||
{
|
||||
view.getTxtArea().append("Anruf von" + "xxxxxx" + " annehmen?\n");
|
||||
model.acceptcall(view.getTxtcallIP().getText(),view.getTxtServerIP().getText(), 5078);
|
||||
}
|
||||
catch (ParseException|InvalidArgumentException|SdpException|SipException ex)
|
||||
{
|
||||
view.getTxtArea().append("Anruf konnte nicht angenommen werden\n");
|
||||
lginvite.getLogger(CommandAnnehmen.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
*/
|
||||
}
|
||||
@Override
|
||||
public void undo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isundoable()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
55
src/controller/commands/CommandBeenden.java
Normal file
55
src/controller/commands/CommandBeenden.java
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package controller.commands;
|
||||
|
||||
import controller.CommandInterface;
|
||||
import gui.Hauptfenster;
|
||||
import java.util.logging.Logger;
|
||||
import logger.OhmLogger;
|
||||
import model.VoIP;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Normal
|
||||
*/
|
||||
public class CommandBeenden implements CommandInterface
|
||||
{
|
||||
private static final Logger lginvite = OhmLogger.getLogger();
|
||||
private VoIP model;
|
||||
private Hauptfenster view;
|
||||
public CommandBeenden(VoIP model, Hauptfenster view)
|
||||
{
|
||||
this.model = model;
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute()
|
||||
{/*
|
||||
try
|
||||
{
|
||||
view.getTxtArea().append("Anruf beenden\n");
|
||||
model.cancelcall();
|
||||
}
|
||||
catch (ParseException|InvalidArgumentException|SdpException|SipException ex)
|
||||
{
|
||||
view.getTxtArea().append("Einladung fehlgeschlagen\n");
|
||||
lginvite.getLogger(CommandBeenden.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}*/
|
||||
}
|
||||
@Override
|
||||
public void undo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isundoable()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
@ -36,8 +36,9 @@ public class CommandInvite implements CommandInterface
|
||||
public void execute()
|
||||
{
|
||||
try
|
||||
{ view.getTxtArea().append("Einladung an " + view.getTxtcallIP().getText() + " gesendet\n");
|
||||
model.sendInvitation(view.getTxtcallIP().getText(), 5078);
|
||||
{
|
||||
view.getTxtArea().append("Einladung an " + view.getTxtcallIP().getText() + " gesendet\n");
|
||||
model.sendInvitation(view.getTxtcallIP().getText(),view.getTxtServerIP().getText(), 5078);
|
||||
}
|
||||
catch (ParseException|InvalidArgumentException|SdpException|SipException ex)
|
||||
{
|
||||
|
@ -37,8 +37,7 @@ public class CommandRegister implements CommandInterface
|
||||
try
|
||||
{
|
||||
view.getTxtArea().append("Registrierung an " + view.getTxtServerIP().getText() + " gesendet\n");
|
||||
System.out.println("Test: "+ view.getTxtServerIP().getText());
|
||||
model.sendRegister(view.getTxtServerIP().getText(), 5078);
|
||||
model.sendRegister(view.getTxtServerIP().getText(), 5060);
|
||||
|
||||
}
|
||||
catch (ParseException|InvalidArgumentException|SipException ex)
|
||||
|
@ -63,11 +63,16 @@
|
||||
<Property name="text" type="java.lang.String" value="Anrufen"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="jButton1">
|
||||
<Component class="javax.swing.JButton" name="btnannehmen">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Annehmen"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JButton" name="btnbeenden">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Beenden"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Container class="javax.swing.JPanel" name="jPanel3">
|
||||
@ -99,7 +104,7 @@
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="jLabel3">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="Call IP:"/>
|
||||
<Property name="text" type="java.lang.String" value="Call User:"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
@ -124,7 +129,7 @@
|
||||
</Component>
|
||||
<Component class="javax.swing.JTextField" name="txtcallIP">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" value="xxx.xxx.xxx.xxx"/>
|
||||
<Property name="text" type="java.lang.String" value="name"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
|
@ -11,6 +11,21 @@ package gui;
|
||||
*/
|
||||
public class Hauptfenster extends javax.swing.JFrame
|
||||
{
|
||||
/**
|
||||
* @return the btnannehmen
|
||||
*/
|
||||
public javax.swing.JButton getBtnannehmen()
|
||||
{
|
||||
return btnannehmen;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the btnbeenden
|
||||
*/
|
||||
public javax.swing.JButton getBtnbeenden()
|
||||
{
|
||||
return btnbeenden;
|
||||
}
|
||||
/**
|
||||
* @return the btn1
|
||||
*/
|
||||
@ -75,7 +90,8 @@ public class Hauptfenster extends javax.swing.JFrame
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
btn1 = new javax.swing.JButton();
|
||||
btn2 = new javax.swing.JButton();
|
||||
jButton1 = new javax.swing.JButton();
|
||||
btnannehmen = new javax.swing.JButton();
|
||||
btnbeenden = new javax.swing.JButton();
|
||||
jPanel3 = new javax.swing.JPanel();
|
||||
jPanel4 = new javax.swing.JPanel();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
@ -101,8 +117,11 @@ public class Hauptfenster extends javax.swing.JFrame
|
||||
btn2.setText("Anrufen");
|
||||
jPanel1.add(btn2);
|
||||
|
||||
jButton1.setText("Annehmen");
|
||||
jPanel1.add(jButton1);
|
||||
btnannehmen.setText("Annehmen");
|
||||
jPanel1.add(btnannehmen);
|
||||
|
||||
btnbeenden.setText("Beenden");
|
||||
jPanel1.add(btnbeenden);
|
||||
|
||||
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);
|
||||
|
||||
@ -116,7 +135,7 @@ public class Hauptfenster extends javax.swing.JFrame
|
||||
jLabel2.setText("Server IP:");
|
||||
jPanel4.add(jLabel2);
|
||||
|
||||
jLabel3.setText("Call IP:");
|
||||
jLabel3.setText("Call User:");
|
||||
jPanel4.add(jLabel3);
|
||||
|
||||
jPanel3.add(jPanel4);
|
||||
@ -131,7 +150,7 @@ public class Hauptfenster extends javax.swing.JFrame
|
||||
txtServerIP.setText("xxx.xxx.xxx.xxx");
|
||||
jPanel2.add(txtServerIP);
|
||||
|
||||
txtcallIP.setText("xxx.xxx.xxx.xxx");
|
||||
txtcallIP.setText("name");
|
||||
jPanel2.add(txtcallIP);
|
||||
|
||||
jPanel3.add(jPanel2);
|
||||
@ -194,7 +213,8 @@ public class Hauptfenster extends javax.swing.JFrame
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JButton btn1;
|
||||
private javax.swing.JButton btn2;
|
||||
private javax.swing.JButton jButton1;
|
||||
private javax.swing.JButton btnannehmen;
|
||||
private javax.swing.JButton btnbeenden;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
private javax.swing.JLabel jLabel2;
|
||||
private javax.swing.JLabel jLabel3;
|
||||
|
@ -40,7 +40,7 @@ import logger.OhmLogger;
|
||||
public class VoIP implements SipListenerExt
|
||||
{
|
||||
Hauptfenster view; //später entfernen wegen Zugriff
|
||||
private static final Logger lg = OhmLogger.getLogger();
|
||||
private static final Logger lg = OhmLogger.getLogger();
|
||||
SipFactory sipFactory; // Used to access the SIP API.
|
||||
SipStack sipStack; // The SIP stack.
|
||||
SipProvider sipProvider; // Used to send SIP messages.
|
||||
@ -49,19 +49,21 @@ public class VoIP implements SipListenerExt
|
||||
AddressFactory addressFactory; // Used to create SIP URIs.
|
||||
ListeningPoint listeningPoint; // SIP listening IP address/port.
|
||||
Properties properties; // Other properties.
|
||||
|
||||
|
||||
private int counter;
|
||||
private int myPort = 5060;
|
||||
|
||||
private String myName = "129";
|
||||
private String protocolTyp = "UDP";
|
||||
private String myIPAddress;
|
||||
private String proxyAddress;
|
||||
|
||||
Boolean invite;
|
||||
|
||||
int tag = (new Random()).nextInt();
|
||||
private int branch = hashCode();
|
||||
Address contactAddress;
|
||||
private ContactHeader contactHeader;
|
||||
|
||||
|
||||
|
||||
public VoIP(Hauptfenster view) //Konstruktor für eigene Daten
|
||||
{
|
||||
@ -70,7 +72,7 @@ public class VoIP implements SipListenerExt
|
||||
{
|
||||
//wird an sich erstmal nicht gebraucht aber später sinnvoll um eigene Daten zu initialisieren
|
||||
String abc = InetAddress.getLocalHost().getHostAddress();
|
||||
/*
|
||||
invite = true;
|
||||
this.myIPAddress = InetAddress.getLocalHost().getHostAddress();
|
||||
|
||||
this.sipFactory = SipFactory.getInstance();
|
||||
@ -86,11 +88,12 @@ public class VoIP implements SipListenerExt
|
||||
this.sipProvider.addSipListener(this);
|
||||
this.contactAddress = this.addressFactory.createAddress("sip:129@" + this.myIPAddress + ":" + this.myPort); //+ ":" + this.myPort
|
||||
this.contactHeader = this.headerFactory.createContactHeader(contactAddress);
|
||||
*/
|
||||
|
||||
//proxyAddress = "";
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.out.println("Shit");
|
||||
System.out.println("Fehler bei Initialisierung eigener Addresse");
|
||||
System.exit(-1);
|
||||
}
|
||||
|
||||
@ -104,12 +107,10 @@ public class VoIP implements SipListenerExt
|
||||
|
||||
public void sendRegister(String serverIP, int serverPort) throws ParseException, InvalidArgumentException, SipException
|
||||
{
|
||||
System.out.println("Test");
|
||||
System.out.println(serverIP);
|
||||
lg.info("Vorbereiten des Registrierungs Headers");
|
||||
//Address addressto = this.addressFactory.createAddress("sip:"+serverIP); //evtl. mit Port: sip:192.168.100.11:5060
|
||||
Address addressto = this.addressFactory.createAddress("sip:192.168.100.11");
|
||||
System.out.println("Warum" + addressto);
|
||||
proxyAddress = serverIP + ":"+ serverPort;
|
||||
Address addressto = this.addressFactory.createAddress("sip:"+proxyAddress); //evtl. mit Port: sip:192.168.100.11:5060
|
||||
//Address addressto = this.addressFactory.createAddress("sip:192.168.100.11");
|
||||
ToHeader to = this.headerFactory.createToHeader(addressto, null); // Integer.toString(tag) address + tag
|
||||
URI requestURI = addressto.getURI();
|
||||
CallIdHeader callId = this.sipProvider.getNewCallId();
|
||||
@ -128,9 +129,12 @@ public class VoIP implements SipListenerExt
|
||||
this.sipProvider.sendRequest(request);
|
||||
lg.info("Erfolgreiches Senden der Registrierung");
|
||||
}
|
||||
public void sendInvitation(String sipaddresse, int serverPort)throws ParseException, InvalidArgumentException, SipException, SdpException
|
||||
|
||||
public void sendInvitation(String sipaddresse, String proxyaddresse, int serverPort) throws ParseException, InvalidArgumentException, SipException, SdpException
|
||||
{
|
||||
Address addressto = this.addressFactory.createAddress("sip:"+sipaddresse); //evtl. mit Port: sip:192.168.100.11:5060
|
||||
invite = true;
|
||||
Address addressto = this.addressFactory.createAddress("sip:"+sipaddresse+"@"+proxyaddresse); //evtl. mit Port: sip:192.168.100.11:5060
|
||||
//Address addressto = this.addressFactory.createAddress("sip:121@192.168.100.11");
|
||||
ToHeader to = this.headerFactory.createToHeader(addressto, null); // Integer.toString(tag) address + tag
|
||||
URI requestURI = addressto.getURI();
|
||||
CallIdHeader callId = this.sipProvider.getNewCallId();
|
||||
@ -146,9 +150,10 @@ public class VoIP implements SipListenerExt
|
||||
request.addHeader(contactHeader);
|
||||
request.addHeader(allow);
|
||||
request.addHeader(expire);
|
||||
|
||||
|
||||
ContentTypeHeader content = headerFactory.createContentTypeHeader("application", "sdp");
|
||||
request.addHeader(content);
|
||||
|
||||
request.setContent(createSDPHeader(), content);
|
||||
System.out.println("---Invitation Header---");
|
||||
System.out.println(request);
|
||||
@ -197,13 +202,14 @@ public class VoIP implements SipListenerExt
|
||||
//Aktive Kommunikation
|
||||
else if ((Request.INVITE).equals(requestEvent.getRequest().getMethod())) // Invite von anderem Benutzer
|
||||
{
|
||||
view.getTxtArea().append("Werde von xxx angerufen\n");
|
||||
FromHeader abc = (FromHeader) requestEvent.getRequest().getHeader("From");
|
||||
String name = abc.getName();
|
||||
view.getTxtArea().append("Werde von "+name+" angerufen\n");
|
||||
lg.info("Hab Invitation bekommen");
|
||||
try
|
||||
{
|
||||
//Trying Message to Server (Response Trying)
|
||||
|
||||
System.out.println("----REquest HEader----");
|
||||
|
||||
Response responsetry = this.messageFactory.createResponse(100, requestEvent.getRequest());
|
||||
responsetry.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via"));
|
||||
responsetry.addHeader((FromHeader) requestEvent.getRequest().getHeader("From"));
|
||||
@ -217,7 +223,7 @@ public class VoIP implements SipListenerExt
|
||||
responsetry.addHeader(supp);
|
||||
responsetry.addHeader(allow);
|
||||
this.sipProvider.sendResponse(responsetry);
|
||||
view.getTxtArea().append("Trying geschickt");
|
||||
view.getTxtArea().append("Trying geschickt\n");
|
||||
lg.info("Trying ist raus");
|
||||
|
||||
//Ringing Message to Server (Responste Ringing)
|
||||
@ -238,10 +244,11 @@ public class VoIP implements SipListenerExt
|
||||
AllowEventsHeader allowevent = this.headerFactory.createAllowEventsHeader("talk,hold");// für was gebraucht
|
||||
responsering.addHeader(allowevent);
|
||||
this.sipProvider.sendResponse(responsering);
|
||||
view.getTxtArea().append("Ringing geschickt");
|
||||
view.getTxtArea().append("Ringing geschickt\n");
|
||||
|
||||
//Jetzt kommt 200 Ok SIP Header + SDP (SIP/SDP)
|
||||
//Sdp Header erstellen nächster Schritt
|
||||
invite = false;
|
||||
System.out.println(requestEvent.getDialog());
|
||||
Response okandSDP = this.messageFactory.createResponse(Response.OK, requestEvent.getRequest());
|
||||
//okandSDP.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via"));
|
||||
@ -316,14 +323,13 @@ public class VoIP implements SipListenerExt
|
||||
|
||||
//Zusätzliche Register Header nach Unauthorzied
|
||||
//Create Request Header
|
||||
System.out.println("----REQUEST HEADER2----");
|
||||
Request request = this.messageFactory.createRequest(requestURI, "REGISTER", callId, cSeq, from, to, via, maxForwards);
|
||||
request.addHeader(contactHeader);
|
||||
request.addHeader(allow);
|
||||
request.addHeader(expire);
|
||||
request.addHeader(auth);
|
||||
this.sipProvider.sendRequest(request);
|
||||
view.getTxtArea().append("Erfolgreich registriert");
|
||||
view.getTxtArea().append("Erfolgreich registriert\n");
|
||||
}
|
||||
catch (ParseException | SipException | InvalidArgumentException ex)
|
||||
{
|
||||
@ -337,6 +343,7 @@ public class VoIP implements SipListenerExt
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public SessionDescription createSDPHeader() throws SdpException
|
||||
{
|
||||
/*
|
||||
@ -352,33 +359,46 @@ public class VoIP implements SipListenerExt
|
||||
sessionDescription.setConnection(sdpFactory.createConnection("IN", "IP4", myIPAddress));
|
||||
|
||||
//Media Body
|
||||
String sdpformat[] =
|
||||
{
|
||||
"0", "4", "18",
|
||||
};
|
||||
Vector mediavec = new Vector();
|
||||
mediavec.add(sdpFactory.createMediaDescription("audio", 6022, 1, "RTP/AVP", sdpformat)); //(Übertragungstyp, Port, anzahl der Ports, Verbindungstyp,..)
|
||||
//Media Attribute
|
||||
mediavec.add(sdpFactory.createAttribute("sendrecv", null));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "0 PCMU/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "4 G723/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "18 G729A/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("ptime", "20"));
|
||||
if (invite = true)
|
||||
{
|
||||
String sdpformat[] =
|
||||
{
|
||||
"0", "4", "8", "18",
|
||||
};
|
||||
mediavec.add(sdpFactory.createMediaDescription("audio", 6022, 1, "RTP/AVP", sdpformat)); //(Übertragungstyp, Port, anzahl der Ports, Verbindungstyp,..)
|
||||
//Media Attribute
|
||||
mediavec.add(sdpFactory.createAttribute("sendrecv", null));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "0 PCMU/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "4 G723/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "8 PCMA/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("rtpmap", "18 G729/8000"));
|
||||
mediavec.add(sdpFactory.createAttribute("ptime", "20"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
sessionDescription.setAttributes(mediavec);
|
||||
|
||||
return sessionDescription;
|
||||
}
|
||||
|
||||
|
||||
//Get Methoden falls man mal die Parameter braucht
|
||||
public void cancelcall()
|
||||
{
|
||||
|
||||
}
|
||||
public String getmyName()
|
||||
{
|
||||
return myName;
|
||||
}
|
||||
|
||||
public Integer getMyPort()
|
||||
{
|
||||
return myPort;
|
||||
}
|
||||
|
||||
public String getMyIPAdress()
|
||||
{
|
||||
return myIPAddress;
|
||||
|
@ -29,7 +29,7 @@ public class Start
|
||||
|
||||
view.getLblmyIP().setText(InetAddress.getLocalHost().getHostAddress());
|
||||
view.getTxtServerIP().setText("192.168.100.11");
|
||||
view.getTxtcallIP().setText("192.168.100.xxx");
|
||||
view.getTxtcallIP().setText("121");
|
||||
//view.setExtendedState(view.MAXIMIZED_BOTH);
|
||||
view.setSize(300, 200);
|
||||
view.setTitle("TestOberfläche VoIP Phone");
|
||||
|
Loading…
x
Reference in New Issue
Block a user