All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.restcomm.protocols.ss7.sccp.impl.Ss7ExtSccpDetailedInterface Maven / Gradle / Ivy

The newest version!
/*
 * TeleStax, Open Source Cloud Communications  Copyright 2012.
 * and individual contributors
 * by the @authors tag. See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */

package org.restcomm.protocols.ss7.sccp.impl;

import javolution.util.FastMap;

import org.restcomm.protocols.ss7.sccp.NetworkIdState;
import org.restcomm.protocols.ss7.sccp.RemoteSccpStatus;
import org.restcomm.protocols.ss7.sccp.Router;
import org.restcomm.protocols.ss7.sccp.impl.message.SccpAddressedMessageImpl;
import org.restcomm.protocols.ss7.sccp.parameter.SccpAddress;
import org.restcomm.protocols.ss7.ss7ext.Ss7ExtSccpInterface;

/**
*
* @author sergey vetyutnev
*
*/
public interface Ss7ExtSccpDetailedInterface extends Ss7ExtSccpInterface {

    /**
     * Initiating of sccp-ext
     * @param sccpStackImpl
     */
    void init(SccpStackImpl sccpStackImpl);

    /**
     * Invoking before of sccp stack start for starting of sccp-ext
     * @param persistDir
     * @param name
     */
    void startExtBefore(String persistDir, String name);

    /**
     * Invoking after of sccp stack start for starting of sccp-ext
     * @param router
     * @param sccpManagement
     */
    void startExtAfter(Router router, SccpManagement sccpManagement);

    /**
     * Invoking before of sccp stack stop for stopping of sccp-ext
     */
    void stopExt();

    /**
     * Force of removing of configured SCCP resources at sccp-ext level
     */
    void removeAllResourses();

    /**
     * Getting of dpc o which a message will be routed depending on calledPartyAddress, callingPartyAddress andmsgNetworkId
     * @param calledPartyAddress
     * @param callingPartyAddress
     * @param msgNetworkId
     * @return
     */
    int findDpsForAddresses(SccpAddress calledPartyAddress, SccpAddress callingPartyAddress, int msgNetworkId);

    /**
     * Invoking of a GT translatio function
     * @param ctx
     * @param msg
     * @throws Exception
     */
    void translationFunction(SccpRoutingCtxInterface ctx, SccpAddressedMessageImpl msg) throws Exception;

    /**
     * Invoked when a remote signal point becomes allowed
     * @param affectedPc
     * @param remoteSccpStatus
     */
    void onAllowRsp(int affectedPc, RemoteSccpStatus remoteSccpStatus);

    /**
     * Invoked when a remote signal point becomes prohibited
     * @param affectedPc
     * @param remoteSccpStatus
     * @param remoteSpc
     */
    void onProhibitRsp(int affectedPc, RemoteSccpStatus remoteSccpStatus, RemoteSignalingPointCodeImpl remoteSpc);

    /**
     * Invoked when a congestion level for a remote signal point was changed of defined
     * @param affectedPc
     * @param restrictionLevel
     * @param levelEncreased
     */
    void onRestrictionLevelChange(int affectedPc, int restrictionLevel, boolean levelEncreased);

    /**
     * Returns a list of networkId areas with a congestion / availability states
     * @param affectedPc
     * @return
     */
    FastMap getNetworkIdList(int affectedPc);

    /**
     * Adding of an extension part of a remote signal point when a RemoteSignalingPoint creating
     * @param remoteSignalingPointCodeImpl
     * @return
     */
    RemoteSignalingPointCodeExt createRemoteSignalingPointCodeExt(RemoteSignalingPointCodeImpl remoteSignalingPointCodeImpl);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy