RTP/src/model/SIP180Ringing.java

66 lines
2.5 KiB
Java
Raw Normal View History

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
}