Building CAMEL-Based Applications

Customized Applications for Mobile network Enhanced Logic (CAMEL), a 3GPP standard (TS 23.078), is the signaling protocol used to provide mobile IN in SS7 networks.

XTML CAMEL Data Types

The SCE provides XTML data types that are strongly-typed objects, which differ from other XTML data types because they have a well-defined set of properties.

The SCE JavaScript Editor window displays these properties, as shown in the following image.

_images/CAMELjavascriptEdB2.png

Strongly-typed objects make it easier to work with complex, well-structured sets of data that are commonly used across many applications. Application maintenance is easier when using these strongly-typed objects because all developers are storing and accessing information in similar, well-understood patterns.

The following XTML strongly-typed objects represent all the information related to these specific CAMEL messages that are either sent or received by the application server.

  • Initial DP

  • CAMELConnect

  • CAMELContinue

  • CAMELError

  • CAMELRelease

Many of the PACs listed under CAMEL on the Actions tab in the workspace pane operate on these data types or return one of these objects as a result of their action. Grouping all the information associated with the object makes it easier for an application to construct and manage CAMEL messages.

Common Properties

All CAMEL objects include the following properties.

Property

Description

sccp_src

SCCP address of the message source.

sccp_dest

SCCP address of the message destination.

tcap_op_code

Code that describes the type of message.

The optional parameters that are available for each object are defined by 3GPP in the ETSI TS 123 078 V3.3.0 (2000-01) Technical Specification.

CAMELConnect Properties

Property

Description

AlertingPattern

Indicates the kind of alerting pattern to be applied.

GenericNumbers

Contains the generic number used to convey the additional calling party number, which could be used to modify the calling line ID presented to the called user.

ChargeNumber

ANI of the calling party.

LegToBeConnected

Indicates the party in the call to collect information from or, when absent, indicates the ‘outgoing’ leg created with Connect, Continue, or Continue With Argument.

SuppressionOfAnnouncment

Indicates that announcements or tones generated as a result of unsuccessful call setup should be suppressed.

OCSIApplicable

Indicates that the O-CSI, if present, should be applied on the outgoing leg.

NaOliInfo

Identifies the type of number in the NA charge number.

Bor_InterrogationRequested

Indicates the beginning of a recording.

Suppress_N_CSI

Indicates that N-CSI should be suppressed.

Initial DP Properties

Property

Description

CalledPartyNumber

Contains the number used to identify the called party in the forward direction. For the VT calls, this is the MSISDN received in the Provide Roaming Number. If the MSISDN is not available, the basic MSISDN is used.

CallingPartyNumber

Contains the calling party number to identify the calling party or the origin of the call.

CallingPartyCatagory

Indicates the type of calling party.

CGEncountered

Indicates the triggers invoked when a charge gate is encountered.

IPSSPCapabilities

Indicates which SRF resources are supported within the gsmSSF and are available or, if absent, indicates that no gsmSRF is attached and available.

LocationNumber

For mobile originated calls, represents the location of the calling party. For all other call scenarios, contains the location number received in incoming ISUP signaling.

OriginalCCalledPartyID

Contains the dialed digits if the call has met call forwarding on the route to the gsmSSF.

Extensions

Indicates the order in which AIN triggers are invoked within the context of an originating or termination call portion.

HighLayerCompatibility

Indicates the type of the high layer compatibility used to determine the ISDN-teleservice of a connected ISDN terminal.

AdditionalCallingParyNumber

Calling party number provided by the access signaling system of the calling user.

BearerCapability

Identifies the bearer capability of the user, which may be the calling or called party.

EventTypeBCSM

Indicates the armed BCSM DP event, resulting in the Initial DP IF.

RedirectingPartyID

Provides the Directory Number (DN) of the last redirecting party.

RedirectionInformation

Indicates the reason for forwarding the call from the Directory Number (DN) of the first and last redirecting party and indicates the number of forwards that have occurred.

Cause

Indicates the cause specific to the armed BCSM DP event and is applicable to DP Route_Select_Failure and DP T_Busy. The cause may be used by the SCF to decide about the further handling of the call.

ServiceInteractionIndicator

Sent if it is received in the ISUP message or due to previous CAMEL processing.

Carrier

Provides the carrier selection information and the identification of the primary carrier that a call was routed to.

Cug_Index

Used to select a CUG for an outgoing call or to indicate an incoming CUG call. Indices are passed between the user and the network and have significance only within the context of a user’s subscription.

Cug_Interlock

Unique identifier of a CUG within a network. The interlock code is passed from the point of origin to the destination in a CUG call to identify the CUG which has been invoked.

Cug_OutgoingAccess

Indication passed from the point of origin to the destination in a CUG call to indicate that the calling user has subscribed to the outgoing access inter-CUG accessibility subscription option.

IMSI

Identifies the mobile subscriber.

SubscriberState

Indicates the status of the mobile subscriber, which are one of the following:

  • CAMELBusy: The mobile subscriber is engaged on a transaction for a mobile originating or terminated circuit-switched call.

  • NetworkDeterminedNotReachable: The network can determine from its internal data that the mobile subscriber is not reachable.

  • AssumedIdle: The state of the mobile subscriber is neither “CAMELBusy” nor “NetworkDeterminedNotReachable”.

  • Not provided from VLR.

LocationInformation

Indicates the location of the served subscriber. The elements contained in this parameter are specified in 3G TS 23.018 ([3]).

Ext_BasicServiceCode

Indicates the type of basic service.

CallReferenceNumber

May be used by the gsmSCF for inclusion in a network optional gsmSCF call record. It has to be coupled with the identity of the MSC which allocated it in order to define unambiguously the identity of the call. For MO calls, the call reference number is set by the serving VMSC and included in the MO call record. For MT calls, the call reference number is set by the GMSC and included in the RCF call record in the GMSC and in the MT call record in the terminating MSC. For VT calls, the call reference number is set by the GMSC and included in the RCF call record in the GMSC and in the MT call record in the terminating MSC. For CF calls, the call reference number is set by the GMSC and included in the CF record in the forwarding MSC.

MscAddress

For MO calls, the MSC Address carries the international E.164 address of the serving VMSC. For MT calls, the MSC Address carries the international E.164 address of the GMSC. For VT calls, the MSC Address carries the international E.164 address of the serving VMSC. For CF calls, the MSC Address carries the international E.164 address of the forwarding MSC.

CalledPartyBCDNumber

Contains the number used to identify the called party in the forward direction. The number contained in this parameter shall be identical to the number received over the access network. It may include service selection information or carrier selection information dialed by the subscriber.

TimeAndTimezone

Contains the time that the gsmSSF was triggered and the time zone the gsmSSF resides in.

CallForwardingSS_Pending

Present in the following cases if the Initial DP IF is sent from the GMSC:

  • The GMSC has received an FTN in the 1st Send Routing Info ack IF from the HLR.

  • The GMSC has received an FTN in the 2nd Send Routing Info ack IF from the HLR and no relationship with the gsmSCF exists at that moment.

  • The GMSC has received the Resume Call Handling IF from the VMSC and no relationship with the gsmSCF exists at that moment.

Present in the following cases if the Initial DP IF is sent from the VMSC:

  • Conditional call forwarding is invoked and no relationship with the gsmSCF exists at that moment.

  • Call deflection is invoked and no relationship with the gsmSCF exists at that moment.

InitialDPArgExtension

Contains the extension of the Initial Data Point argument.

CAMELRelease Properties

Property

Description

AllCallSegments

Indicates that all active requests shall be canceled.

XTML CAMEL Events

XTML CAMEL events are listed on the Events tab in the workspace pane.

These CAMEL events are triggered when the corresponding messages are received by the SIGTRAN agent:

  • CamelConnect

  • CamelContinue

  • CamelError

  • CamelRelease

  • InitialDP

XTML CAMEL PACs

The function of each CAMEL PAC is to create and send the specific message with the same name. For example, the Connect PAC sends a connect message, and the Release PAC sends an release message.

This section defines the unique tabs included in the Properties window and the standard results available for each PAC listed under CAMEL on the Actions tab in the workspace pane.

For more information about the common Description tab and Custom tab, see Build Functions and Custom Results.

CAMEL Connect

The CAMEL Connect PAC creates and sends a Connect message.

Properties

The CAMEL Connect PAC includes the General and Optional tabs.

General
_images/CAMELConnect_general.png
General Fields

Field Name

Description

Destination Routing Address

The digits representing where the called number is stored.

Linked ID

Links subsequent messages together in a single dialog.

Previous Message

Message you are responding to.

Error/Response Timeout

The amount of time to wait for an error or response before timing out completely.

Response Timeout

The amount of time to wait for a response but not completely timing out because the error response can still be received.

Response

The response/result message from the SIGTRAN agent. Either a plain object indicating success or a SIGTRAN error object.

Optional

The Optional tab allows you to add applicable parameters to the CAMEL Connect PAC.

Add Parameters

  1. Click Add.

  2. In the Parameter field, select an optional property to apply to the PAC.

  3. In the Value field, type the value for the selected parameter.

Note

Click Insert to add a parameter below the parameter currently selected. Click Delete to remove a parameter from the PAC.

Exit Paths

In addition to the default result exit path, the CAMEL Connect PAC also includes the result exit paths listed in the following table.

Exit Path

Description

Success

Points to the next PAC to be executed in the event that the operation is successful.

Error

Points to the next PAC to be executed in the event that the operation returned an error.

Timeout

Points to the next PAC to be executed in the event that the operation times out.

CAMEL Continue

The CAMEL Continue PAC creates and sends a Continue message.

Properties

The CAMEL Continue PAC includes the General tab.

General
_images/CAMELContinue_general.png
General Fields

Field Name

Description

Linked ID

Links subsequent messages together in a single dialog.

Previous Message

Message you are responding to.

Error/Response Timeout

The amount of time to wait for an error or response before timing out completely.

Response Timeout

The amount of time to wait for a response but not completely timing out because the error response can still be received.

Response

The response/result message from the SIGTRAN agent. Either a plain object indicating success or a SIGTRAN error object.

Exit Paths

In addition to the default result exit path, the CAMEL Continue PAC also includes the result exit paths listed in the following table.

Exit Path

Description

Success

Points to the next PAC to be executed in the event that the operation is successful.

Error

Points to the next PAC to be executed in the event that the operation returned an error.

Timeout

Points to the next PAC to be executed in the event that the operation times out.

Initial Detection Point

The Initial Detection Point PAC creates and sends an Initial Detection Point message.

Properties

The Initial Detection Point PAC includes the General and Optional tabs.

General
_images/IDP_general.png
General Fields

Field Name

Description

SCCP Address

The SCCP address of where the message is to be sent.

Service Key

Supports sending a 10-digit “calling directory number” in a query and/or sending a 6-digit controlled code for Automatic Call Gap (ACG) in a response message.

CAMEL Version

Specify the 3GPP version of CAMEL protocol.

Return Immediately

If selected, the system will not wait for an acknowledgment from the SIGTRAN Agent before continuing to the next action.

Error/Response Timeout

The amount of time to wait for an error or response before timing out completely.

Response Timeout

The amount of time to wait for a response but not completely timing out because the error response can still be received.

Response

The response/result message from the SIGTRAN agent. Either a plain object indicating success or a SIGTRAN error object.

Optional

The Optional tab allows you to add applicable parameters to the Initial Detection Point PAC.

Add Parameters

  1. Click Add.

  2. In the Parameter field, select an optional property to apply to the PAC.

  3. In the Value field, type the value for the selected parameter.

Note

Click Insert to add a parameter below the parameter currently selected. Click Delete to remove a parameter from the PAC.

Exit Paths

In addition to the default result exit path, the Initial Detection Point PAC also includes the result exit paths listed in the following table.

Exit Path

Description

Success

Points to the next PAC to be executed in the event that the operation is successful.

Error

Points to the next PAC to be executed in the event that the operation returned an error.

Timeout

Points to the next PAC to be executed in the event that the operation times out.

CAMEL Release

The CAMEL Release PAC creates and sends a Release message.

Properties

The CAMEL Release PAC includes the General and Optional tabs.

General
_images/CAMELRelease_general.png
General Fields

Field Name

Description

Linked ID

Links subsequent messages together in a single dialog.

Previous Message

Message you are responding to.

Error/Response Timeout

The amount of time to wait for an error or response before timing out completely.

Response Timeout

The amount of time to wait for a response but not completely timing out because the error response can still be received.

Response

The response/result message from the SIGTRAN agent. Either a plain object indicating success or a SIGTRAN error object.

Optional

The Optional tab allows you to add applicable parameters to the CAMEL Release PAC.

Add Parameters

  1. Click Add.

  2. In the Parameter field, select an optional property to apply to the PAC.

  3. In the Value field, type the value for the selected parameter.

Note

Click Insert to add a parameter below the parameter currently selected. Click Delete to remove a parameter from the PAC.

Exit Paths

In addition to the default result exit path, the CAMEL Release PAC also includes the result exit paths listed in the following table.

Exit Path

Description

Success

Points to the next PAC to be executed in the event that the operation is successful.

Error

Points to the next PAC to be executed in the event that the operation returned an error.

Timeout

Points to the next PAC to be executed in the event that the operation times out.

Error Handling

Error handling is a critical component of CAMEL application development. Sometimes an error is the only way that a transaction terminates, and if that error is not properly handled, the transaction will not terminate and a license can be locked.

Errors can occur locally within the application or remotely. Local errors are caused by a failure to send the message from the PAC. For example, attempting to send a message to an unavailable point code or subsystem number, not including the appropriate required parameters in a PAC, or network-related errors.

Local errors can be handled immediately by the application. Each PAC has a Returns field that accepts an object variable. When a local error occurs, the object specified in this field is populated with the error information and exits on its error path.

Remote errors are generated by a remote machine. In a remote error, the message is sent successfully, but an error notification is received back from a switch at a later point in the call flow.

Remote errors are more difficult to capture because they can happen at any point once the message has been sent. Remote errors are handled using the SigTranNotification event. This event has one parameter that is an error object with the same signature as the Returns object in the PAC. To handle a remote error, use either the Wait for PAC to wait for a response or the SigtranNotification to a message you sent or add an event handler for SigtranNotification in your application.

SigTranNotification Event

When an application sends a query from the application server, it is important to have a SigTranNotification to handle the remote error. In this situation the application is waiting for either a response or an error before the transaction ends. If neither the response nor the error are received, the transaction does not end and a transaction license is locked.

When an application responds to queries from the application server, handling the remote error case is not as important. In this case, the transaction ends once the application responds to a query with a final response and a transaction license is not locked.

Application Development Guidelines

The following are guidelines to follow when developing applications:

  • Use the Returns object to handle local errors for the application. This field is optional, but good development practices recommend that you use this field for all PACs in your application.