6.3 Generic Call Control
29.1983GPPOpen Service Architecture (OSA) Application Programming Interface (API) - Part 1Release 1999TS
The Generic Call Control SCF provides the basic call control capabilities for the API. It allows calls to be instantiated from the network and routed through the network. The call model is based around a central call model that has zero to two call legs that are active (i.e., being routed or connected), each of which represents the logical relationship between the call and an address. However, the application does not have direct access to the call legs. Generic Call Control supports functionality to allow call routing and call management for Camel Phase 3 and earlier services.
Generic Call Control is represented by the IpCallManager and IpCall interfaces that interface to services provided by the network. Some methods are asynchronous, in that they do not lock a thread into waiting whilst a transaction performs. In this way, the client machine can handle many more calls, than one that uses synchronous message calls. To handle responses and reports, the developer must implement IpAppCallManager and IpAppCall.
Figure 6‑9: Generic Call Control Packages
Figure 6-10: Generic Call Control Class diagram Interface Classes
This section contains the detailed interface specifications of the interfaces shown in the Generic Call Control Class diagram.
6.3.1 Interface Classes
6.3.1.1 IpAppCallControlManager
<<Interface>> IpAppCallControlManager |
callAborted(callReference : in TpSessionID) : TpResult callEventNotify(callReference : in TpCallIdentifier , eventInfo : in TpCallEventInfo , assignmentID : in TpAssignmentID , appInterface : out IpAppCallRefRef) : TpResult callNotificationInterrupted() : TpResult callNotificationContinued(): TpResult |
6.3.1.2 IpCallControlManager
<<Interface>> IpCallControlManager |
enableCallNotification(appInterface : in IpAppCallControlManagerRef , eventCriteria : in TpCallEventCriteria , assignmentID : out TpAssignmentIDRef) : TpResult disableCallNotification(assignmentID : in TpAssignmentID) : TpResult changeCallNotification(assignmentID : in TpAssignmentID , eventCriteria : in TpCallEventCriteria) : TpResult getCriteria(eventCriteria : out TpCallEventCriteriaResultSet) : TpResult |
6.3.1.3 IpAppCall
<<Interface>> IpAppCall |
routeRes(callSessionID : in TpSessionID , eventReport : in TpCallReport, callLegSessionID : in TpSessionID) : TpResult routeErr(callSessionID : in TpSessionID , errorIndication : in TpCallError, callLegSessionID : in TpSessionID) : TpResult getCallInfoRes(callSessionID : in TpSessionID , callInfoReport : in TpCallInfoReport) : TpResult getCallInfoErr(callSessionID : in TpSessionID , errorIndication : in TpCallError) : TpResult superviseCallRes(callSessionID : in TpSessionID , report : in TpCallSuperviseReport , usedTime : in TpDuration) : TpResult superviseCallErr(callSessionID : in TpSessionID , errorIndication : in TpCallError) : TpResult callFaultDetected(callSessionID : in TpSessionID , fault : in TpCallFault) : TpResult callEnded(callSessionID : in TpSessionID , report : in TpCallEndedReport ) : TpResult |
6.3.1.4 IpCall
<<Interface>> IpCall |
routeReq(callSessionID : in TpSessionID , responseRequested : in TpCallReportRequestSet , targetAddress : in TpAddress , originatingAddress : in TpAddress , originalDestinationAddress : in TpAddress , redirectingAddress : in TpAddress , appInfo : in TpCallAppInfoSet , callLegSessionID : out TpSessionIDRef ) : TpResult release(callSessionID : in TpSessionID , cause : in TpCallReleaseCause) : TpResult deassignCall(callSessionID : in TpSessionID) : TpResult getCallInfoReq(callSessionID : in TpSessionID , callInfoRequested : in TpCallInfoType) : TpResult setCallChargePlan(callSessionID : in TpSessionID , callChargePlan : in TpCallChargePlan) : TpResult superviseCallReq(callSessionID : in TpSessionID , time : in TpDuration , treatment : in TpCallSuperviseTreatment) : TpResult setAdviceOfCharge(callSessionID : in TpSessionID , aOCInfo : in TpAoCInfo , tariffSwitch : in TpDuration) : TpResult |