16
Introduction to SS7 – Part 4 Konrad Hammel Sangoma Technologies

Introduction to SS7 – Part 4 Konrad Hammel Sangoma Technologies

Embed Size (px)

Citation preview

Introduction to SS7 – Part 4Konrad Hammel

Sangoma Technologies

2

SMG-SS7 – Basic Setup

SMG-SS7

Application Server(i.e. Asterisk, FreeSWITCH)

IP Netowrk

1-32 T1/E1

SIP

T1/E1

Telco SSP

3

• All sig and voice channels go to 1 system• Can talk to multiple application servers• Can handle up to 32 E1s

• What if the customer has more E1s?• What happens if there is a hardware failure?• What if the customer has voice only E1s going to

a different physical location?

SMG-SS7 – Basic Setup

4

SMG-SS7 – Distributed Setup

SMG-SS7Sig GWProcID 1

SMG-SS7Voice GWProcID 2

SMG-SS7Voice GWProcID 9

Application Server(i.e. Asterisk, FreeSWITCH)

...

IP Netowrk

1-32

T1/

E1

1-32 T1/E11-32 T1/E1

SIP

Relay TCP

T1/E1

Telco SSP

5

• “Multiple systems acting as 1”• Voice T1/E1s can be balanced over multiple

systems• Voice GWs can fail with out customer loosing

everything• Voice GWs can be located in different

geographical locations since inter-system communication is over IP

SMG-SS7 – Distributed Setup

6

• The simplest form of information exchange between two software modules is one module calling a predefined function of the other, restricting both modules to the same process space. However, modules can reside indifferent process spaces, with processes running on the same processor, different processors, or on two different machines. Relay software provides a communication channel to exchange information between two software modules independent of process space.

(Relay – Service Definition, page 1-1)

Trillium’s Relay

7

Trillium’s Layer Communication

MTP2EntityID = 0x16InstanceID = 1

ProcId = 1

MTP3EntityID = 0x15InstanceID = 1

ProcId = 1

System Services

Queue (FIFO)

SPstTsk()

msg

msg

msg

msg

msg

msg

Queue (FIFO)

msg

msg

snActvTsk()

8

typedef struct pst /* parameters for SPstTsk */

{

ProcId dstProcId; /* destination processor id (U16) */

ProcId srcProcId; /* source processor id (U16) */

Ent dstEnt; /* destination entity (U8) */

Inst dstInst; /* destination instance (U8) */

Ent srcEnt; /* source entity (U8) */

Inst srcInst; /* source instance (U8) */

Prior prior; /* priority (U8) */

Route route; /* route (U8) */

Event event; /* event (U8) */

Region region; /* region (U8) */

Pool pool; /* pool (U8) */

Selector selector; /* selector (U8) */

CmIntfVer intfVer; /* interface version (U16) */

} Pst;

Pst Structure

9

Trillium’s Layer Communication - Relay

MTP3EntityID = 0x15InstanceID = 1

ProcId = 1

Queue (FIFO)

msg

msg

snActvTsk()

MTP2EntityID = 0x16InstanceID = 1

ProcId = 2

System Services

Queue (FIFO)

msg

msg

msg

msg

msg

msg

Relay

Relay

System Services

Queue (FIFO)

msg

msg

msg

msg

msg

msg

SPstTsk()

TC

P

10

Relay Channels in SMG-SS7

ProcID 1

Listen

Server

Proc ID 2

Listen

Client

Proc ID 3

Listen

Client

Server

Connection Request

Data Transfer

11

Back to SMG-SS7

A10X

Wanpipe

LibSangoma

Layer 1

MTP2

MTP3

ISUP

ftmod_sng_ss7FreeTDM_IO

FreeTDM Core

FreeSWITCH

Call Control

SS

RELAY

Voice

Sig

Proc ID 1SigGW

A10X

Wanpipe

LibSangoma

Layer 1

MTP2

ftmod_sng_ss7FreeTDM_IO

FreeTDM Core

FreeSWITCH

Call Control

SS

RELAY

Voice

Sig

Proc ID 2MGW

A10X

Wanpipe

LibSangoma

ftmod_sng_ss7FreeTDM_IO

FreeTDM Core

FreeSWITCH

Call Control

SS

RELAY

Voice

Proc ID 3MGW

Isup ckt Id 1000-1999

Isup ckt Id 2000-2999

Isup ckt Id 3000-3999

12

• Sig Channels– MTP3/ISUP runs on ProcId 1 only– MTP2/Layer1 can run on any ProcId– Each channel gets a unique ID value, and has

it’s ProcId stored during configuration• Voice Channels

– Ckts config info is stored in all systems (cc_spans)

– Ckt ID values are based on ProcID• i.e. Proc 1 has 1000-1999

Details of Relay in SMG-SS7

13

• Most messages (IAM, ACM, ANM, RSC, etc) are destined for 1 circuit only so we “hacked” ISUP to check the ckt ID and redirect the messages accordingly

• Group messages (GRS, CGB, etc) aren’t allowed to span E1/T1 lines so ISUP again can use the ckt ID to redirect the message

• Global messages (resume and pause) are broadcasted to all ProcIds

Handling ISUP messages

14

Procedure on Relay Loss/Recovery

ProcID 1

• Loss– Send a BLO for all circuits

on procID that is no longer reachable

– Deactivate all sig links on ProcID

• Recovery– Send UBL for all circuits on

procId that is now reachable– Activate all sig links on

ProcID

ProcID 2-9• Loss

– Bring sig_status to “down” for all ckts and throw Relay flag

– Sig links will fail on their own

• Recovery– Send Layer manager status

request for all circuits, if “unequipped” re-configure, if “equipped” sync the block state of circuit, clear relay flag

– Sig links will be activated by ProcID 1

15

THANK YOU.