Search in sources :

Example 1 with ExtensionHeader

use of javax.sip.header.ExtensionHeader in project load-balancer by RestComm.

the class TestSipListener method processRefer.

public void processRefer(RequestEvent requestEvent, ServerTransaction serverTransactionId) {
    try {
        SipProvider sipProvider = (SipProvider) requestEvent.getSource();
        Request request = requestEvent.getRequest();
        logger.info("shootist:  got a refer . ServerTxId = " + serverTransactionId);
        ServerTransaction st = requestEvent.getServerTransaction();
        if (st == null) {
            st = sipProvider.getNewServerTransaction(request);
        }
        inviteServerTid = st;
        Dialog dialog = st.getDialog();
        this.dialogCount++;
        this.dialog = dialog;
        logger.info("Shootme: dialog = " + dialog);
        Response response = protocolObjects.messageFactory.createResponse(referResponseToSend, request);
        sipETag = Integer.toString(new Random().nextInt(10000000));
        st.sendResponse(response);
        logger.info("shootist:  Sending " + referResponseToSend);
        List<Header> headers = new ArrayList<Header>();
        EventHeader eventHeader = (EventHeader) protocolObjects.headerFactory.createHeader(EventHeader.NAME, "Refer");
        headers.add(eventHeader);
        if (sendNotifyForRefer) {
            if (!referReceived) {
                referReceived = true;
                SubscriptionStateHeader subscriptionStateHeader = (SubscriptionStateHeader) protocolObjects.headerFactory.createHeader(SubscriptionStateHeader.NAME, "active;expires=3600");
                headers.add(subscriptionStateHeader);
                allMessagesContent.add("SIP/2.0 100 Trying");
                sendInDialogSipRequest(Request.NOTIFY, "SIP/2.0 100 Trying", "message", "sipfrag;version=2.0", headers, null);
                Thread.sleep(1000);
                headers.remove(subscriptionStateHeader);
                subscriptionStateHeader = (SubscriptionStateHeader) protocolObjects.headerFactory.createHeader(SubscriptionStateHeader.NAME, "terminated;reason=noresource");
                headers.add(subscriptionStateHeader);
                if (inviteRequest == null) {
                    ExtensionHeader extensionHeader = (ExtensionHeader) protocolObjects.headerFactory.createHeader("Out-Of-Dialog", "true");
                    headers.add(extensionHeader);
                }
                allMessagesContent.add("SIP/2.0 200 OK");
                sendInDialogSipRequest(Request.NOTIFY, "SIP/2.0 200 OK", "message", "sipfrag;version=2.0", headers, null);
            } else {
                SubscriptionStateHeader subscriptionStateHeader = (SubscriptionStateHeader) protocolObjects.headerFactory.createHeader(SubscriptionStateHeader.NAME, "active;expires=3600");
                headers.add(subscriptionStateHeader);
                sendInDialogSipRequest(Request.NOTIFY, "SIP/2.0 100 Subsequent", "message", "sipfrag;version=2.0", headers, null);
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
Also used : ExtensionHeader(javax.sip.header.ExtensionHeader) SubscriptionStateHeader(javax.sip.header.SubscriptionStateHeader) Request(javax.sip.message.Request) ArrayList(java.util.ArrayList) EventHeader(javax.sip.header.EventHeader) InvalidArgumentException(javax.sip.InvalidArgumentException) ParseException(java.text.ParseException) SipException(javax.sip.SipException) TransactionDoesNotExistException(javax.sip.TransactionDoesNotExistException) TransactionUnavailableException(javax.sip.TransactionUnavailableException) Response(javax.sip.message.Response) Random(java.util.Random) ReasonHeader(javax.sip.header.ReasonHeader) RequireHeader(javax.sip.header.RequireHeader) SIPETagHeader(javax.sip.header.SIPETagHeader) ContactHeader(javax.sip.header.ContactHeader) ReferToHeader(javax.sip.header.ReferToHeader) ViaHeader(javax.sip.header.ViaHeader) SIPIfMatchHeader(javax.sip.header.SIPIfMatchHeader) AuthorizationHeader(javax.sip.header.AuthorizationHeader) CallIdHeader(javax.sip.header.CallIdHeader) ContentLengthHeader(javax.sip.header.ContentLengthHeader) ExtensionHeader(javax.sip.header.ExtensionHeader) ExpiresHeader(javax.sip.header.ExpiresHeader) Header(javax.sip.header.Header) ReplacesHeader(gov.nist.javax.sip.header.extensions.ReplacesHeader) CSeqHeader(javax.sip.header.CSeqHeader) ContentTypeHeader(javax.sip.header.ContentTypeHeader) JoinHeader(gov.nist.javax.sip.header.extensions.JoinHeader) MaxForwardsHeader(javax.sip.header.MaxForwardsHeader) ToHeader(javax.sip.header.ToHeader) RouteHeader(javax.sip.header.RouteHeader) ProxyAuthorizationHeader(javax.sip.header.ProxyAuthorizationHeader) SubscriptionStateHeader(javax.sip.header.SubscriptionStateHeader) EventHeader(javax.sip.header.EventHeader) FromHeader(javax.sip.header.FromHeader) ProxyAuthenticateHeader(javax.sip.header.ProxyAuthenticateHeader) RecordRouteHeader(javax.sip.header.RecordRouteHeader) Dialog(javax.sip.Dialog) ServerTransaction(javax.sip.ServerTransaction) SipProvider(javax.sip.SipProvider)

Aggregations

JoinHeader (gov.nist.javax.sip.header.extensions.JoinHeader)1 ReplacesHeader (gov.nist.javax.sip.header.extensions.ReplacesHeader)1 ParseException (java.text.ParseException)1 ArrayList (java.util.ArrayList)1 Random (java.util.Random)1 Dialog (javax.sip.Dialog)1 InvalidArgumentException (javax.sip.InvalidArgumentException)1 ServerTransaction (javax.sip.ServerTransaction)1 SipException (javax.sip.SipException)1 SipProvider (javax.sip.SipProvider)1 TransactionDoesNotExistException (javax.sip.TransactionDoesNotExistException)1 TransactionUnavailableException (javax.sip.TransactionUnavailableException)1 AuthorizationHeader (javax.sip.header.AuthorizationHeader)1 CSeqHeader (javax.sip.header.CSeqHeader)1 CallIdHeader (javax.sip.header.CallIdHeader)1 ContactHeader (javax.sip.header.ContactHeader)1 ContentLengthHeader (javax.sip.header.ContentLengthHeader)1 ContentTypeHeader (javax.sip.header.ContentTypeHeader)1 EventHeader (javax.sip.header.EventHeader)1 ExpiresHeader (javax.sip.header.ExpiresHeader)1