$Revision: 1.15 $ Copyright (c) 2006 Xygnada Technology, Inc. This document identifies protocol abnormalities and describes how they are handled. Abnormalities arise naturally because MGD, ss7boost, and the remote SS7 node are independent and autonomous devices. Abnormalities also arise from protocol definition flaws and protocol implementation flaws. The protocol abnormality groups are: 1) resource exhaustion 2) termination of call during call setup 3) double use of resources 4) missing signals 5) reference to non-existent calls 6) messages arriving at inappropriate times 7) unrecognized or ill-formed messages 1.a) Outbound call, all circuits in trunk group busy MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | CallStartNack | | |<---------------| | |* see Note (i) | | | CallStart | | | NackAck | | |--------------->|* see Note (ii) | | | | Notes: i) MGD release callsetupid and other resources attached to call ii) ss7boost releases callsetupid and reserved span/chan 2.a) Outbound call, caller terminates before ACM from remote SS7 node MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM | | |--------------------->| | CallStartNack | | |--------------->| | | | REL | | |--------------------->| | | ACM | | |<---------------------| | CallStart | RLC | | NackAck |<---------------------| |<---------------| | | | | Notes: i) ACM may or may not arrive; if it does, ignore it 2.b) Outbound call, caller terminates, CallStartNack arrives after ACM arrives (race condition) MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM | | |--------------------->| | | ACM | |-+ |<---------------------| | |CallStartAck | | |<---------------| | | |CallStartNack | | | +------------->| | | | REL | | |--------------------->| | | ANS | | |<---------------------| | CallStart | RLC | | NackAck |<---------------------| |<---------------| | | | | Notes: i) ANS may or may not arrive; if it does, ignore it 2.c) Outbound call, caller terminates, CallStop arrives after ACM arrives MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM | | |--------------------->| | | ACM | | |<---------------------| | CallStartAck | | |<---------------| | | CallStop | | |--------------->| | | | REL | | |--------------------->| | | ANS | | |<---------------------| | | RLC | | CallStopAck |<---------------------| |<---------------| | | | | Notes: i) ANS may or may not arrive; if it does, ignore it 2.d) Outbound call, caller terminates, CallStartNack arrives after CON/ANS arrives from remote SS7 node (race condition) MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM | | |--------------------->| | | CON/ANS | |-+ |<---------------------| | |CallStartAck | | |<---------------| | | |CallAns | | |<---------------| | | |CallStartNack | | | +------------->| | | | REL | | |--------------------->| | CallStart | RLC | | NackAck |<---------------------| |<---------------| | | | | 2.e) Outbound call, called sends REL instead of ACM or CON MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM | | |--------------------->| | | REL | | |<---------------------| | CallStartNack | | |<---------------| | | CallStart | | | NackAck | | |--------------->| | | | RLC | | |--------------------->| | | | 2.f) Outbound call, called sends REL instead of ANS MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM | | |--------------------->| | | ACM | | |<---------------------| | CallStartAck | | |<---------------| | | | REL | | |<---------------------| | CallStop | | |<---------------| | | CallStopAck | | |--------------->| | | | RLC | | |--------------------->| | | | 2.g) Inbound call, caller terminates before T-digcollect expiry MGD ss7boost rmt SS7 node | | | | | IAM | | |<---------------------| | |\ | | | |__T-digcollect | | | | | | | | REL | | |<---------------------| | | | | | | * stop T-digcollect | | | | | | RLC | | |--------------------->| | | | 2.h) Inbound call, caller terminates before CallStartAck arrives (race condition) MGD ss7boost rmt SS7 node | | | | | IAM | | |<---------------------| | CallStart | | |<---------------| | | | REL | |-+ |<---------------------| | |CallStartNack | | |<---------------| | | |CallStartAck | | | +------------->| | | CallStart | | | NackAck | | |--------------->| | | | RLC | | |--------------------->| | | | Notes: i) CallStartAck is ignored 2.i) Inbound call, caller terminates before CallAnswer arrives (race condition) MGD ss7boost rmt SS7 node | | | | | IAM | | |<---------------------| | CallStart | | |<---------------| | | CallStartAck | | |--------------->| | | | ACM | | |--------------------->| | | REL | |-+ |<---------------------| | |CallStop | | |<---------------| | | |CallAnswer | | | +------------->| | | CallStopAck | | |--------------->| | | | RLC | | |--------------------->| | | | Notes: i) CallAnswer is ignored 2.j) Inbound call, called terminates after receiving CallStart MGD ss7boost rmt SS7 node | | | | | IAM | | |<---------------------| | CallStart | | |<---------------| | | CallStartNack | | |--------------->| | | | REL | | |--------------------->| | | RLC | | |<---------------------| | CallStart | | | NackAck | | |<---------------| | | | | 2.k) Inbound call, called terminates after sending CallStartAck MGD ss7boost rmt SS7 node | | | | | IAM | | |<---------------------| | CallStart | | |<---------------| | | CallStartAck | | |--------------->| | | | ACM | | |--------------------->| | CallStop | | |--------------->| | | | REL | | |--------------------->| | | RLC | | |<---------------------| | CallStopAck | | |<---------------| | | | | 2.l) Both sides terminate call simultaneously; case 1 MGD ss7boost rmt SS7 node | | | | CallStartNack | | |--------------->| +-----| | | REL | | | |--------------------->| | | REL | | | |<---------------+ | | | RLC | | |--------------------->| | | RLC | | |<---------------------| | CallStart | | | NackAck | | |<---------------| | | | | 2.m) Both sides terminate call simultaneously; case 2 MGD ss7boost rmt SS7 node | | | | CallStop | | |--------------->| +-----| | | REL | | | |--------------------->| | | REL | | | |<---------------+ | | | RLC | | |--------------------->| | | RLC | | |<---------------------| | CallStopAck | | |<---------------| | | | | 2.n) Both sides terminate call simultaneously; case 3 MGD ss7boost rmt SS7 node | | | | | REL | |-+ |<---------------------| | |CallStartNack | | |<---------------| | | |CallStartNack | | | +------------->| | | CallStart | | | NackAck | | |<---------------| | | CallStart | | | NackAck | | |--------------->| | | | RLC | | |--------------------->| | | | 2.o) Both sides terminate call simultaneously; case 4 MGD ss7boost rmt SS7 node | | | | | REL | |-+ |<---------------------| | |CallStop | | |<---------------| | | |CallStop | | | +------------->| | | CallStopAck | | |<---------------| | | CallStopAck | | |--------------->| | | | RLC | | |--------------------->| | | | 2.p) Both sides terminate call simultaneously; case 3 MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | |-+ | | | |CallStartNack | | |<---------------| | | |CallStartNack | | | +------------->| | | CallStart | | | NackAck | | |<---------------| | | CallStart | | | NackAck | | |--------------->| | | | | Notes: i) caused by timeout on MGD and all ckts busy on boost 2.x) Outbound call, RLC arrives..... 2.x) Inbound call, RLC arrives..... 3.a) Dual seizure, ss7boost is circuit controller MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM cic=3 | | |--------------------->| | | IAM cic=3 | | |<---------------------| | | | | | | Notes: i) IAM cic=3 from the remote SS7 node is ignored; the remote SS7 node is responsible for resolving the conflict ii) the outbound call is allow to mature using cic=3; refer to call_setup_protocol.txt section 1.a for a description of how the call matures 3.b) Dual seizure, remote SS7 node is circuit controller MGD ss7boost rmt SS7 node | | | | CallStart | | |--------------->| | | | IAM cic=3 | | |--------------------->| | | IAM cic=3 | | |<---------------------| | | IAM cic=12 | | |--------------------->| | | | Notes: i) the inbound call is allowed to mature using cic=3 ii) ss7boost automatically tries to find another circuit to use for the outbound call iii) the outbound call disposition depends on circuit availability 3.c) Double use of span/chan in ss7boost Fatal 3.d) Double use of call setup id in ss7boost Fatal 4) TBD 5.a) Reference to non-existent call at ss7boost All messages from MGD, excepting CallSetup and Reset, referring to non-existant calls with either the callsetupid or span/chan will result in a fatal exception message. 6.a) Unrecognized/ill-formed messages at ss7boost All unrecognized or ill-formed messages arriving at ss7boost are announced and discarded. Appendix A - Protocol Diagram Template --------------------------------------------------------- MGD ss7boost rmt SS7 node | | | |<---------------| | | | | |--------------->| | | | | | |--------------------->| | | | | |<---------------------| | | | |--------------->|<---------------------| | | | |<---------------|--------------------->| | | |