Upload
zoe-ryan
View
232
Download
2
Tags:
Embed Size (px)
Citation preview
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