[Asterisk-ss7] Let us design an open source SS7 interfaceforAsterisk

Matthew Crocker matthew at crocker.com
Mon May 16 08:41:51 CDT 2005

The D channel in a PRI is a subset of ISUP/SS7.  It is cannot handle  
a full SS7 stack or features.

In order for Asterisk to become a true 'soft switch' it needs to be  
able to handle ISUP and TCAP (LNP, 800 dips, ANI-Triggers).  The ISUP/ 
TCAP can get into Asterisk via 2 methods.

  1).  Traditional packet based SS7 where a 56kbps data channel  
carrying SS7 is plugged directly into a port on the Asterisk machine.

     For more information take a look at the TDM400P-SS7 Drivers  
found on openss7.org  They work with the Digium boards.   Asterisk  
would terminate the MTP1, 2 & 3 and gain access to the ISUP/TCAP  
messages carried over the SS7 link

2).  SS7 over IP (SIGTRAN).   The ISUP/TCAP messages would arrive at  
the Asterisk box over an IP connection using SCTP.  The ISUP/TCAP  
could originate at an SS7 to IP gateway or come direct from an SS7  
over IP provider. Verisign is already offering SS7oIP gateway  
service.  The RBOCs are starting to provide it as well.  This is  
normally not done over the Internet but with a private T1 based IP  

  For more information on SIGTRAN and SCTP take a look at http:// 
www.sigtran.org and RFC2960 (http://www.ietf.org/rfc/rfc2960.txt)

IMHO, I think option 2 is the best,  option 1 can be added later if  
needed.   Option 2 gives flexibility in gateways and/or gateway  
providers.  It also removes a lot of the headaches from dealing with  
MTP1 & MTP2.   Linux already supports SCTP in the kernel (linux 2.4  
module) so the only thing that needs to be done is handling ISUP &  
TCAP (chan_isup, chan_tcap) ????

When dealing with SS7 you get a 'point code', (like an IP address).    
You need to plug into the network somewhere, normally it is into an  
STP (think SS7 Router).  Once you establish a connection to the  
network you need to build ISUP routes over that network to the  
various devices on the network. Devices include tandems and End  
Office switches,  LNP databases, etc...   When you need to make a  
call you first send TCAP messages to find the correct LNP  
information, then you send ISUP messages to the proper switch to  
create the call.   When you get a 1000 block of numbers, you publish  
them in the LERG with the point code for the switch handling the  

With SS7oIP your point code is routed over the SS7 network to your  
SS7oIP gateway.  The gateway takes the ISUP/TCAP messages, wraps them  
in SCTP packets and sends them to your switch via IP.  One SCTP  
packet can contain more than one message (SCTP data chunk).

Verizon requires that I connect directly to the STP (SS7 routers) in  
each LATA that I want to send/receive calls in.  Verisign already has  
connections to all of the Verizon STPs so one connection to Verisign  
(over IP) gets me all of the Verizon STPs.  I can then build ISUP  
routes over that to the switches I need.  Initially I would only need  
ISUP routes to the access tandem, PSAP tandem and LNP database.  I  
would also need IMTs between my media gateway and the access & PSAP  
tandems in each LATA.  Once I had enough outbound calls during busy  
hour to fill a DS-1 to a single EO, I'm required to build IMTs  
directly to the EO. I would then need an ISUP route to that EO as  
well.  All of the point-code, routing information is contained in the  
ISUP/TCAP messages.

The asterisk 'call flow' the way I see it,  please correct me if I'm  

PSTN -> Asterisk -> SIP phone call using SS7.

1).  ISUP message comes into Asterisk containing the called number  
information  (chan_isup)
2). Asterisk determines the correct SIP extension (extensions.conf)  
and sends a SIP message to the phone (chan_sip)
3). The phone rings,  a customer answers.  The phone sends a SIP  
message back to Asterisk notifying it of the answer (chan_sip)
4). Asterisk determines the correct IMT/Media gateway needed to  
handle the call (from tandem?  from end office?,  available trunks...)
5). Asterisk sends a message to the media gateway to reserve a  
certain channel/port and assign it to SIP, phone IP ... (chan_mgcp)
6). Asterisk sends an ISUP message to the originating switch with  
information on which trunk to send the call down (chan_sip)
7). Originating PSTN switch reserves the trunk and connects the  
caller to it
8). The Media gateway turns the trunk data into g.729 and sends it to  
the SIP phone.
9)  <Conversation>
10). SIP phone hangs up, sends a message to Asterisk (chan_sip)
11). Asterisk sends a message to the media gateway to clean up the  
call (chan_mgcp)
12). Asterisk sends a message to the PSTN switch to clean up the call  

During the entire call process Asterisk needs to maintain the state  
of the call, and the media gateway IMT trunks
Asterisk would need to maintain a 'map' of the network containing all  
of the Media Gateways, their trunks and which switches they are  
connected to.  MG #1, Trunk #1 connected to Tandem (point code) as  
Trunk #1 in Trunk Group #1 ....  Asterisk would also need to maintain  
the relevant parts of the LERG for outbound call routing (NPA-NXX  
goes to EO (point code) which can be reached via the access tandem  
and trunk group #1)

A lot of the work is already out there, as open source.  It just  
needs to be put together.

On May 16, 2005, at 8:42 AM, CARDOSO Jorge Miguel wrote:

> Some Cisco Gw's support a feature called "MGCP PRI BackHaul", this  
> means the bearer channels can be controlled using MGCP and PSTN  
> signalling (ss7) can be exchanged between Softswitch and PSTN using  
> TCP.
> Regards,
> Jorge Cardoso
> Race Vanderdecken wrote:
>> Okay, there seems to be agreement as to how to do this. Doing ISUP  
>> and
>> TCAP is what I have heard from others I have proposed the same  
>> questions
>> to in the past.
>> Running the SS7 to PSTN interface on a "cisco" type box also has been
>> recommended by others. By "cisco" I mean any certified box that is
>> available to most of the VoIP guys. Having to purchase an X thousand
>> dollar box is not going to work. Have any of you looked at  
>> ss7box.com?
>> So, we need to create a SS7 socket interface to asterisk.
>> I have built several socket interfaces in the past that have  
>> worked in
>> commercial products. All were based on Stevens' Unix Programming and
>> Networking books.
>> Where do I find the socket interface on our "cisco" ss7 box?
> _______________________________________________
> Asterisk-SS7 mailing list
> Asterisk-SS7 at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-ss7

Matthew S. Crocker
Vice President
Crocker Communications, Inc.
Internet Division
PO BOX 710
Greenfield, MA 01302-0710

More information about the Asterisk-SS7 mailing list