2019-07-30 11:37:54 +00:00
|
|
|
/*
|
|
|
|
* 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 model;
|
|
|
|
|
2019-07-30 17:14:55 +00:00
|
|
|
import java.util.logging.Level;
|
|
|
|
import java.util.logging.Logger;
|
|
|
|
import javax.sip.RequestEvent;
|
|
|
|
import javax.sip.header.CSeqHeader;
|
|
|
|
import javax.sip.header.CallIdHeader;
|
|
|
|
import javax.sip.header.ContactHeader;
|
|
|
|
import javax.sip.header.FromHeader;
|
|
|
|
import javax.sip.header.HeaderFactory;
|
|
|
|
import javax.sip.header.ToHeader;
|
|
|
|
import javax.sip.header.ViaHeader;
|
|
|
|
import javax.sip.message.MessageFactory;
|
|
|
|
import javax.sip.message.Response;
|
|
|
|
import logger.OhmLogger;
|
2019-07-30 11:37:54 +00:00
|
|
|
/**
|
2019-07-30 17:26:19 +00:00
|
|
|
* Erstellt den Ringing Header, wird als zweites gesendet sobald man einen Anruf bekommt
|
|
|
|
* Wiederholen bis User das Telefon abnimmt oder nichtmehr angerufen wird
|
|
|
|
*
|
2019-07-30 11:37:54 +00:00
|
|
|
* @author Jan
|
|
|
|
*/
|
2019-07-31 15:54:37 +00:00
|
|
|
public class SIP180Ringing
|
2019-07-30 17:14:55 +00:00
|
|
|
{
|
|
|
|
private Response responseRing;
|
|
|
|
public static final Logger lgRing = OhmLogger.getLogger();
|
2019-07-30 11:37:54 +00:00
|
|
|
//private SubmissionPublisher<Integer> publisherZahl;
|
|
|
|
|
2019-07-31 15:54:37 +00:00
|
|
|
public SIP180Ringing(RequestEvent requestEvent, String myTag, ContactHeader contact,
|
|
|
|
HeaderFactory headerFactory, MessageFactory messageFactory)
|
2019-07-30 11:37:54 +00:00
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
2019-07-31 15:54:37 +00:00
|
|
|
responseRing = messageFactory.createResponse(180, requestEvent.getRequest());
|
|
|
|
responseRing.addHeader((ViaHeader) requestEvent.getRequest().getHeader("Via"));
|
|
|
|
responseRing.addHeader((FromHeader) requestEvent.getRequest().getHeader("From"));
|
2019-07-30 17:14:55 +00:00
|
|
|
//persönlichen Tag muss beim To-Header ergänzt werden
|
2019-07-31 15:54:37 +00:00
|
|
|
ToHeader tempTo = ((ToHeader) requestEvent.getRequest().getHeader("To"));
|
2019-07-30 17:14:55 +00:00
|
|
|
tempTo.setTag(myTag);
|
|
|
|
responseRing.addHeader(tempTo);
|
|
|
|
responseRing.addHeader((CallIdHeader) requestEvent.getRequest().getHeader("Call-ID"));
|
2019-07-31 15:54:37 +00:00
|
|
|
responseRing.addHeader((CSeqHeader) requestEvent.getRequest().getHeader("Cseq"));
|
2019-07-30 17:14:55 +00:00
|
|
|
responseRing.addHeader(contact);
|
|
|
|
responseRing.addHeader(headerFactory.createSupportedHeader("replace,path,timer"));
|
2019-07-31 15:54:37 +00:00
|
|
|
responseRing.addHeader(headerFactory.createAllowHeader("NOTIFY,INVITE,ACK,CANCEL,BYE,REFER,INFO,OPTIONS,MESSAGE"));
|
|
|
|
responseRing.addHeader(headerFactory.createAllowEventsHeader("talk,hold,refer")); //für was wird er gebraucht
|
2019-07-30 17:26:19 +00:00
|
|
|
lgRing.info("180-Ringing Header erstellt");
|
2019-07-30 11:37:54 +00:00
|
|
|
}
|
|
|
|
catch (Exception ex)
|
|
|
|
{
|
2019-07-30 17:14:55 +00:00
|
|
|
lgRing.getLogger(SIPmodel.class.getName()).log(Level.SEVERE, null, ex);
|
2019-07-30 11:37:54 +00:00
|
|
|
}
|
|
|
|
}
|
2019-07-30 17:14:55 +00:00
|
|
|
/**
|
|
|
|
* @return the responseRing
|
|
|
|
*/
|
|
|
|
public Response getResponseRing()
|
|
|
|
{
|
|
|
|
return responseRing;
|
|
|
|
}
|
2019-07-30 11:37:54 +00:00
|
|
|
}
|