package org.mobicents.slee.sipevent.server.subscription;
import javax.sip.ServerTransaction;
import javax.sip.header.ContentTypeHeader;
import javax.slee.SbbLocalObject;
import org.mobicents.slee.sipevent.server.subscription.pojo.SubscriptionKey;
/**
* Callback interface of {@link SubscriptionControlSbb}, to receive info from
* {@link ImplementedSubscriptionControlSbbLocalObject}
*
* @author martins
*
*/
public interface ImplementedSubscriptionControlParentSbbLocalObject extends
SbbLocalObject {
/**
* Used by {@link ImplementedSubscriptionControlSbbLocalObject} to notify
* that the authorization of a subscription has changed
*
* @param subscriber
* @param notifier
* @param eventPackage
* @param eventId
* @param authorizationCode
*/
public void authorizationChanged(String subscriber, String notifier,
String eventPackage, String eventId, int authorizationCode);
/**
*
* Used by {@link ImplementedSubscriptionControlSbbLocalObject} to provide
* the authorization to a new subscription request.
*
* @param subscriber
* @param notifier
* @param key
* @param expires
* @param responseCode
* @param serverTransaction
* if the subscription request was for a sip subscription then
* this param must provide the server transaction provided on the
* authorization request
*/
public void newSubscriptionAuthorization(String subscriber,
String subscriberDisplayName, String notifier, SubscriptionKey key,
int expires, int responseCode, boolean eventList, ServerTransaction serverTransaction);
/**
* Through this method the subscription control sbb can be informed that the
* state of the notifier has changed, allowing subscribers to be notified.
*/
public void notifySubscribers(String notifier, String eventPackage,
Object content, ContentTypeHeader contentTypeHeader);
/**
* Requests notification on a specific subscription, providing the content.
*
* @param key
* @param content
* @param contentTypeHeader
*/
public void notifySubscriber(SubscriptionKey key, Object content,
ContentTypeHeader contentTypeHeader);
}