# MAP User's Guide

Copyright © 2003-2005 Motivity Telecom Inc.

Version: 1.0

Authors: Vance Shipley (`vances@motivity.ca`).

The MAP application is a protocol stack implementation of the Mobile Application Part procedures.

### Application

### Requirements

This application includes only the MAP procedures and must be used with a seperate application providing the TCAP service. The `tcap` application may be used in conjunction with the `sccp` and `nms` applications for a complete system.

### Process Communication

Figure 1-1 depicts the message paths between processes.

Figure 1-1

### Modules

##### `map`

This library module implements the user API for the application.

##### `map_sup`

This `supervisor` behaviour callback module implements the top level supervisor for the application.

##### `map_load_fsm`

This `gen_fsm` behaviour callback module implements the load control process.

##### `map_sap_sup`

This `supervisor` behaviour callback module implements the service access point (SAP) supervisors.

##### `map_pm_sup`

This `supervisor` behaviour callback module implements the protocol machine (PM) supervisors.

##### `map_dsm_dsm`

This `gen_fsm` behaviour callback module implements the dialogue state machines (DSM).

##### `map_psm_fsm`

This `gen_fsm` behaviour callback module implements the performing state machines (PSM).

##### `map_rsm_fsm`

This `gen_fsm` behaviour callback module implements the requesting state machines (RSM).

### Supervision Tree

The processes which make up the MAP application are all instantiated under a single supervisor. Figure 1-2 shows the structure of the supervision tree.

Figure 1-2

### Common Primitives

#### MAP-User → MAP

`{'MAP', 'OPEN', request, Parms}`
`{'MAP', 'CLOSE', request, Parms}`
`{'MAP', 'DELIMITER', request, Parms}`
`{'MAP', 'U-ABORT', request, Parms}`

#### MAP ← MAP-User

`{'MAP', 'OPEN', indication, Parms}`
`{'MAP', 'CLOSE', indication, Parms}`
`{'MAP', 'DELIMITER', indication, Parms}`
`{'MAP', 'U-ABORT', indication, Parms}`
`{'MAP', 'P-ABORT', indication, Parms}`
`{'MAP', 'NOTICE', indication, Parms}`

### GSM Primitives

#### MAP-User → MAP

`{'MAP', 'UPDATE_LOCATION', request, Parms}`
`{'MAP', 'CANCEL_LOCATION', request, Parms}`
...

#### MAP ← MAP-User

`{'MAP', 'UPDATE_LOCATION', indication, Parms}`
`{'MAP', 'CANCEL_LOCATION', indication, Parms}`
...

### ANSI Primitives

#### MAP-User → MAP

`{'MAP', 'REGNOT', request, Parms}`
`{'MAP', 'REGCANC', request, Parms}`
...

#### MAP ← MAP-User

`{'MAP', 'REGNOT', indication, Parms}`
`{'MAP', 'REGCANC', indication, Parms}`
...