/*
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2018 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//
//  File:               Facility_Operations.asn
//  Prodnr:             CNL 113 435
//  Rev:                R3C
//  Updated:            2012-06-27
//  Contact:            http://ttcn.ericsson.se
//  Reference:          
*/ 
Facility-Operations

DEFINITIONS

::=

BEGIN

IMPORTS

OPERATION
FROM Remote-Operations-Information-Objects {
joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}

 statusRequest
FROM Revised-Status-Request-Procedure 
 { itu-t identified-organization etsi(0) 196 
   revised-status-request-procedure(17)}

  explicitReservationCreationControl,
  explicitReservationManagement,
  explicitReservationCancel
FROM Revised-Explicit-Network-Controlled-Channel-Reservation 
{ itu-t identified-organization etsi(0) 196
  revised-explicit-network-controlled-channel-reservation(12)}
  
  userUserService
FROM Revised-UUS-Operations 
{itu-t identified-organization etsi (0) 286 operations-and-errors (1)} 

  
  begin3PTY,
  end3PTY
FROM Revised-Three-Party-Operations 
{itu-t identified-organization etsi (0) 188 operations-and-types (1)}

  
  activationOcb,
  activationStatusNotificationOcb,
  deactivationOcb,
  deactivationStatusNotificationOcb,
  interrogationOcb,
  disableOcb,
  ocbInvoked
FROM Revised-Outgoing-Call-Barring-Operations-and-Errors 
{itu-t identified-organization etsi(0) 1001 operations-and-errors(1)}

  
  mWIActivate,
  mWIDeactivate,
  mWIIndicate
FROM Revised-MWI-Operations-and-Errors 
{itu-t identified-organization etsi (0) 745 operations-and-errors (1)}

  
  mCIDRequest
FROM Revised-MCID-Operations 
{itu-t identified-organization etsi (0) 130 operations-and-errors (1)} 

  
  callFPH 
FROM Revised-Freephone-Operations  
{itu-t identified-organization etsi (0) 210 operations-and-errors (1)}

  
  chargingRequest,
  aOCSCurrency,
  aOCSSpecialArr,
  aOCDCurrency,
  aOCDChargingUnit,
  aOCECurrency,
  aOCEChargingUnit
FROM Revised-Advice-of-Charge-Operations 
{itu-t identified-organization etsi (0) 182 operations-and-errors (1)}

  
  callInfoRetain,
  eraseCallLinkageID,
  cCBSRequest,
  cCBSDeactivate,
  cCBSInterrogate,
  cCBSErase,
  cCBSRemoteUserFree,
  cCBSCall,
  cCBSStatusRequest,
  cCBSBFree,
  cCBSStopAlerting
FROM Revised-CCBS-Operation-and-Errors 
{itu-t identified-organization etsi(0) 359 operations-and-errors (1)}
  
  
  cUGCall
FROM Revised-Closed-User-Group-Service-Operations 
{itu-t identified-organization etsi (0) 138 operations-and-errors (1)}


  cCBS-T-Request,
  cCBS-T-Call,
  cCBS-T-Suspend,
  cCBS-T-Resume,
  cCBS-T-RemoteUserFree,
  cCBS-T-Available
FROM Revised-CCBS-private-networks-Operations-and-Errors 
{itu-t identified-organization etsi (0) 359 private-networks-operations-and-errors (2)}

  
  beginCONF,
  addCONF,
  splitCONF,
  dropCONF,
  isolateCONF,
  reattachCONF,
  partyDISC
FROM Revised-Conference-Add-On-Operations 
{itu-t identified-organization etsi (0) 185 operations-and-types (1)}  
  
  activationDiversion,
  deactivationDiversion,
  activationStatusNotificationDiv,
  deactivationStatusNotificationDiv,
  interrogationDiversion,
  interrogateServedUserNumbers,
  diversionInformation,
  callDeflection,
  callRerouting,
  divertingLegInformation1,
  divertingLegInformation2,
  divertingLegInformation3
FROM Revised-Diversion-Operations 
{itu-t identified-organization etsi (0) 207 operations-and-errors (1)}  
  
  ectLinkIdRequest,
  ectExecute,
  requestSubaddress,
  subaddressTransfer,
  explicitEctExecute,  
  ectLoopTest,
  ectInform
FROM Revised-Explicit-Call-Transfer-Operations-and-Errors 
{itu-t identified-organization etsi (0) 369 operations-and-errors (1)}  
  
  identificationOfCharge 
FROM Revised-Advice-of-Charge-Interaction-Operations 
{itu-t identified-organization etsi (0) 195 operations-and-errors (1)};   
  

Supported-Facility-Operations OPERATION ::= 
  {
  statusRequest |

  explicitReservationCreationControl |
  explicitReservationManagement |
  explicitReservationCancel |

  userUserService |
  
  begin3PTY |
  end3PTY |
  
  activationOcb |
  activationStatusNotificationOcb |
  deactivationOcb |
  deactivationStatusNotificationOcb |
  interrogationOcb |
  disableOcb |
  ocbInvoked |
  
  mWIActivate |
  mWIDeactivate |
  mWIIndicate |
  
  mCIDRequest |
  
  callFPH | 
  
  chargingRequest |
  aOCSCurrency |
  aOCSSpecialArr |
  aOCDCurrency |
  aOCDChargingUnit |
  aOCECurrency |
  aOCEChargingUnit |
  
  callInfoRetain |
  eraseCallLinkageID |
  cCBSRequest |
  cCBSDeactivate |
  cCBSInterrogate |
  cCBSErase |
  cCBSRemoteUserFree |
  cCBSCall |
  cCBSStatusRequest |
  cCBSBFree |
  cCBSStopAlerting |
  
  cUGCall |

  cCBS-T-Request |
  cCBS-T-Call |
  cCBS-T-Suspend |
  cCBS-T-Resume |
  cCBS-T-RemoteUserFree |
  cCBS-T-Available |
  
  beginCONF |
  addCONF |
  splitCONF |
  dropCONF |
  isolateCONF |
  reattachCONF |
  partyDISC |
  
  activationDiversion |
  deactivationDiversion |
  activationStatusNotificationDiv |
  deactivationStatusNotificationDiv |
  interrogationDiversion |
  interrogateServedUserNumbers |
  diversionInformation |
  callDeflection |
  callRerouting |
  divertingLegInformation1 |
  divertingLegInformation2 |
  divertingLegInformation3 |
  
  ectLinkIdRequest |
  ectExecute |
  requestSubaddress |
  subaddressTransfer |
  explicitEctExecute |
  ectLoopTest |
  ectInform |
  
  identificationOfCharge 
  
  }


END
