package net.java.slee.resource.mgcp;
import jain.protocol.ip.mgcp.message.CreateConnection;
import jain.protocol.ip.mgcp.message.NotificationRequest;
import jain.protocol.ip.mgcp.message.parms.CallIdentifier;
import jain.protocol.ip.mgcp.message.parms.ConnectionIdentifier;
import jain.protocol.ip.mgcp.message.parms.EndpointIdentifier;
import jain.protocol.ip.mgcp.message.parms.RequestIdentifier;
import java.util.List;
/**
* Sbb interface to interact with the Mgcp RA.
*
* @author eduardomartins
*
*/
public interface JainMgcpProvider extends jain.protocol.ip.mgcp.JainMgcpProvider {
/**
* Retrieves a connection activity for the specified {@link ConnectionIdentifier}. The activity is created if does not exists.
* @param connectionIdentifier
* @return
*/
public MgcpConnectionActivity getConnectionActivity(ConnectionIdentifier connectionIdentifier, EndpointIdentifier endpointIdentifier);
/**
* Retrieves a connection activity for an unknown {@link ConnectionIdentifier}, to be used when sending {@link CreateConnection} events and receive further related messages from a Mgcp Server. The activity is created if does not exists.
*
* @param transactionHandle the event to be send by server, which the Resource Adaptor will use to learn the returned {@link ConnectionIdentifier}
* @return
*/
public MgcpConnectionActivity getConnectionActivity(int transactionHandle, EndpointIdentifier endpointIdentifier);
public List<MgcpConnectionActivity> getConnectionActivities(EndpointIdentifier endpointIdentifier);
/**
* Retrieves an endpoint activity for the specified {@link EndpointIdentifier}. The activity is created if does not exists.
*
* @return
*/
public MgcpEndpointActivity getEndpointActivity(EndpointIdentifier endpointIdentifier);
/**
* Retrieves an unique transaction handler to be used on mgcp messages
* @return
*/
public int getUniqueTransactionHandler();
/**
* Retrieves an unique valid {@link CallIdentifier} to be used on mgcp commands.
* @return
*/
public CallIdentifier getUniqueCallIdentifier();
/**
* Retrieves an unique valid {@link RequestIdentifier} to be used on {@link NotificationRequest} commands.
* @return
*/
public RequestIdentifier getUniqueRequestIdentifier();
}