WELCOME [ Log In · Register ]        SITE [ Search · Page Index · Recent Changes ]    RSS

SMG-SS7 Install - Distributed Asterisk

 

 

Distributed-architecture.jpg

 

In a distributed architecture the load of handling the SS7 Signalling and Voice is run on a different system from the system running Asterisk.  The benefits this setup is that load processing is dispersed over multiple systems allowing the Asterisk box to perform more functions then just transcoding (i.e. extensive voicemail, larger dialplans, conferencing, etc)

The two systems are linked using a LAN, ideally a LAN only for the two systems.  The Woomera protocol uses Ulaw or Alaw encoding which is not the best encoding for sharing bandwidth on Ethernet links.

 


 

Asterisk System Install

  1. Install Asterisk
  2. Install Chan_Woomera
  3. Configure Chan_Woomera

 

SMG-SS7 System Install

  1. Downloading SMG-SS7
  2. Downloading the SS7boxd Binary
  3. Creating the configuration Files
  4. Installing SMG-SS7 Stage 1
  5. installing SMG-SS7 Stage 2
  6. Finalizing Configuration

 

 


 

Installing Asterisk

Installing Asterisk is a mandatory step.

  1. Download the latest stable copy of Asterisk from the Asterisk website to /usr/src/ (Sangoma recommended location):
    http://downloads.asterisk.org/pub/telephony/asterisk/
  2. Un-archive the downloaded tar-ball
    # tar xfz asterisk<tab>
  3. Change directory to the newly created directory
    # cd asterisk<tab>
  4. Setup the build environment for Asterisk by running "./configure"
    # ./configure
  5. Compile the sources by running "make"
    # make
  6. Install the compiled sources by running "make install"
    # make install
  7. Install the sample configuration files by running "make samples"
    # make samples

 

 


Installing Chan_Woomera

For a distributed install you can get the Chan_Woomera 2 ways:  from the SMG-SS7 install packages under /smg/chan_woomera.trunk or you can do an SVN checkout.  For the first option simply copy the directory from the SMG-SS7 box to your Asterisk box...we recommend placing it with the rest of the sources in /usr/src/.  To perform and SVN checkout of the latest Chan_Woomera code:

  1. Go to /usr/src/
  2. Perform the SVN checkout
    # svn co https://www.sangomapbx.com/svn/chan_woomera/trunk chan_woomera.trunk
  3. Compile the Chan_woomera source files...telling them where the Asterisk source files are
    # make PBXDIR=<asterisk src location>
  4. Install the compiled sources and woomera.conf file
    # make install

 


Configuring Chan_Woomera

There are 2 values in /etc/asterisk/woomera.conf that need to be updated so that Chan_Woomera communicates with the correct SMG-SS7 system:

  1. "host" --> this value needs to be changed to the IP address of the system that is running SMG-SS7
  2. "audio_ip" --> this value needs to be changed to the IP address of the network interface where SMG-SS7 will be sending audio packets to on the Asterisk box

 


Downloading SMG-SS7

SMG-SS7 has a type version as well as a package version.  The type version indicates the major and minor revision of ss7boxd and sangoma_isupd.  i.e. 2.1, 2.2, 2.3, etc  The main method of versioning in SMG-SS7 is the date code that the suite was packaged.  i.e. smgss7-itu-2.5.XXX.tgz

The SMG-SS7 packages also come in the 2 variants of SS7: ITU and ANSI.  Please make sure to download the correct variant for your install.

  1. Download the latest date coded SMG-SS7 package from Sangoma's FTP server to /usr/src/ (Sangoma recommended location):
    Latest ---->  2.6 release:  ftp://ftp.sangoma.com/linux/smg/2.6/ 
    Old --------> 2.5 release: ftp://ftp.sangoma.com/linux/smg/2.5/
  2. Un-archive the tar-ball
    # tar xfz smgss7-itu-<ver>.XXX<tab>
  3. Change directory to the newly created directory
    # cd smgss7<tab>

 


 Downloading the SS7boxd Binary

The ss7boxd binary is the only file that is licensed and therefore it must be downloaded separately from the rest of the SMG-SS7 package

  1. Open a new web browser and go to https://www.sangomapbx.com/ss7box/
  2. Enter the "eth0" MAC address from the SMG-SS7 server
  3. Enter the "Self Point Code" of your server in the correct version (ITU or ANSI)
  4. Enter the "user key" provided to you when you bought your SMG-SS7 license.
  5. Press the "Submit" key to continue
  6. A page will appear showing the status of the ss7boxd build...the build can take several minutes
  7. Once the build has been completed hight light and save all the text on the page to a safe location as the page shows you the user key, the MAC address this build is for, the SPC this build is for, the auth key (used in the next step), and lastly a link to download the actual file
  8. Use "wget" and the link from the web build to save the "ss7boxd-<user key>" file to /usr/src/smginstall<verison> directory
  9. Copy the "ss7boxd-<user key>" file to "ss7boxd"

 


Creating the Configuration files

The configuration files for SMG-SS7 are created using a 2-step process.  First, you fill in important information into an easy to read Google Docs Spreadsheet.  The spreadsheet is then exported as a CSV file to the target machine where it is the input to a script that creates the final configuration files used by the various components of SMG-SS7.

NOTE: YOU WILL NEED A GOOGLE DOCS ACCOUNT TO SAVE YOUR CONFIGURATION FOR FUTURE USE BUT NOT VIEW AND USE ONE TIME

  1. Open the template spreadsheet
    2.6 release - smgss7 cfg file - smgcfg-template-v08
    2.5 release - smgss7 cfg file - smgcfg-template-v06
  2. Create a personal copy of the spreadsheet
    • Click File, Create A Copy, and name it accordingly.
  3. Fill in the correct information for your system
    Ports Section
    • The "wanpipeX" value is a sequential number from 1 that is unique
    • Run "wanrouter hwprobe" to see the "pci_slot", and "pci_bus" value for your cards
    • The "fe_line" value is the port number on the card
    • The "tdmv_span" value is a sequential number from 1 that is unique to only 1 port voice port.  If the port only has signaling channels (no voice CICs) leave the value blank
    • The "ss7boost trk" is formula cell...please do not modify it
    • The "use" is always "ss7"...at this time non SMG-SS7 ports need to be configured manually after wards
      -
    ss7box Section

    • The SPC is the "self point code" of the system...it is the unique point code for your system.
    • The "authcode" is the authorization code you get from building the ss7boxd binary
    • The "mtp2" section is a list of mtp2 links mapping them to a physical port
      • "mtp2-index" -> sequential unique index value from 0
      • "linkset" -> the linkset value, starting from 0.  A linkset is a set of links to an single APC
      • "link" -> a unique value, starting from 0, for each link in the link set
      • "wanpipeX" -> the wanpipeX number from the ports section identifying the card and port that has the mtp2 link
      • "slot" -> the time slot of the E1/T1 that carries the mtp2 traffic
      • "clear chan" -> this option tells ss7boxd that this is a 56kbps channel over a 64kbps time slot
      • "basic error" -> this option enables either "basic error" correction or "PCR" correction on this mtp2 link.  PCR is used only on satellite links
    • The "mtp3" section is a list of mtp3 links mapping them to mtp2 links
      • "mtp3-index" -> sequential unique index value from 0
      • "APC" -> this is the point code of the switch on the other end of the mtp2 link
      • "slt_size" -> this value does not need to changed
      • "prio" -> this value does not need to be changed
      • "ni" -> this value does not need to be changed
    • The "path" section is list mtp3 link indexes and a possible alternative mtp3 link index to the same APC
      • "path" -> sequential unique index value from 0
      • "LS-A" -> this is the mtp3-index value that this path can reach
      • "LS-B" -> this is an alternative mtp3-index value that goes to the same APC (normally this is already defined in the mtp3 section...so leave this as "na")
    • The "outbound route" section is a list of paths that can be used to reach all known SS7 switches (STPs and SSPs)
      • "outbound rte" -> sequential unique index value from 0
      • "DPC" -> this is the point code that this route can reach
      • "rtg protocol" -> this value can only be "mtp3" at this time.
      • "prim. path" -> this is the primary path index to use to reach this point code
      • "alt. path" -> this is an alternate path index that can be used to reach this point code (this is only filled in for SSPs as STPs would use the LS-B value to list an alternate)
      • "crosslink" -> this value does not need to be changed
    • The "inbound route" section is a list of all CICs and the location of the ISUP daemon and MSUs should be routed to
      • "inbound rte" -> sequential unique index value from 0
      • "DPC" -> this is the SPC...on inbound messages the DPC field of the MSU is the SPC of the system
      • "OPC" -> this is the point code of the SSP that these CICs are connected to
      • "CIC start" -> this is the lowest numbered CIC that is connected between the DPC and OPC
      • "CIC end" -> this is the highest numbered CIC that is connected between the DPC and OPC
      • "lcl addr" -> this is the ip address that ss7boxd will be listening to for messages from sangona_isupd that meet the DPC, OPC, and CIC requirements listed
      • "lcl port" -> this is the port number that ss7boxd will be listening to for messages from sangoma_isupd that meet the DPC, OPC, and CIC requirements listed
      • "rmt addr" -> this is the ip address that ss7boxd will send MSUs that meet the DPC, OPC, and CIC requirements listed
      • "rmt port" -> this is the port address that ss7boxd will send MSUs that meet the DPC, OPC, and CIC requirements listed
      -
    ISUP Section

    • The "tg" section is a list of all Trunk groups that this sangoma_isupd will handle
      • "t/g" -> sequential unique index value from 0
      • "DPC" -> point code for the SSP that this trunk group be connected to
      • "prio" -> this value does not need to be changed
      • "ni" -> this value does not need to be changed
      • "hunt" -> cic hunt direction...up=ascending, down=descending
      • "overlap" -> allow outbound overlap dialing or append "F" to dialed number on IAM
      • "NADI prefix" -> NADI value is sent from dial plan or use default clg NADI for all outbound calls
      • "def clg NADI" -> default clg NADI when NADI prefix = n
      • "inb TMR 3.1" -> allow incoming calls to request 3.1k audio
      • "inb TMR sp" -> allowing incoming calls to request Speech
      • "def outb CPC" -> set the default outgoing CPC value
      • "send IAM c/e" -> send IAM to dialplan via RDNIS string <EXPERIMENTAL>
      -
    • the "trunks" section is a list of all trunks that this sangoma_isupd will handle
      • "cic-tg" -> sequential unique index value from 0
      • "ss7boost trk" -> the ss7boost trunk value from the ports section that these cics are using
      • "chan" -> the time slots on the trunk that will be used for voice.  NOTE: to enter 1-31 prefix with ' character, to leave gaps use .
      • "CIC base" -> the CIC number for the first channel
      • "t/g" -> the tg index value that these CICs belong to
  4. Export the spreadsheet as a CSV file and copy the file to /usr/src/smginstall<version> directory
    • Click "File"->"Export"->"CSV Sheet Only", this will open a new browser window showing the CSV version of the spreadsheet
    • Start a new SSH connection to the SMG-SS7 server
    • Change directory to your smginstall directory
      • cd /usr/src/smginstall<tab>
    • Start a new file called config-ss7.csv
      • vi config-ss7.csv
    • Copy and paste the text from the browser window to the config-ss7.csv file
    • Save and exit the file
  5. Parse the CSV file using smgcfg04.py script to create the final configuration files.
    # ./smgcfg06.py -f config-ss7.csv

 


Installing SMG-SS7 Stage 1

Stage 1 installs the Sangoma driver, creates various folders, and copies the configuration files from the install directory to their finally location

  1. Start the installation
    # ./smginstall install
  2. The installer will try to stop Asterisk, existing SMG-SS7, and any existing Wanpipes and ask the user to confirm success
  3. The installer will then install the Sangoma driver, since you have already run the pre-test the driver should install with out problem and the process should be familiar.
  4. Choose install option #4 if you are only installing SMG-SS7, option #5 if you want Wanpipe to also compile with Dahdi support (Dahdi must be installed)
  5. Do not install the start up scripts, this should be done manually once proper operation as been confirmed
  6. Install the sample extensions.conf contexts if you are new to SMG-SS7
  7. Once the install is finished you will be returned to the Linux command prompt

 


 

Installing SMG-SS7 Stage 2

Stage 2 checks your system logger and setups the SMG-SS7 log files, compiles and installs SMG and Chan_woomera.

  1. In Stage 1 the installer created /smg and copied the SMG and Chan_woomera sources file there.  Change directory to /smg
  2. Start the installer passing in the arguments for SS7
    # ./install -ss7
  3. Once the installer gets to Chan_Woomera it will fail (since there are no Asterisk sources) and ask if you would like to continue, say Yes
  4. Once successfully installed you can move on to finalizing the configuration

 


Finalizing Configuration

At this point there are a few configuration options that need to be changed manually

  1. SMG needs to be told which network interface to listen to for Woomera Client connections. 
    • Open /etc/sangoma_mgd.conf
    • Change the "media_ip" value to the IP address of the network interface on the SMG-SS7 box that is connected to the LAN where the Asterisk server is also