SS7 v Asterisk PBX

Softwarová pobočková ústředna Asterisk je popsána v samostatném článku.
V rámci zkoumání nových možností využití softwarové pobočkové ústředny Asterisk jsme se zaměřili na testy open source řešení, která do Asterisku implementují podporu signalizace číslo 7 (SS7).

Chan_ss7 a Asterisk libss7

Možností jak do Asterisku přidat SS7 je hned několik. My jsme vyzkoušeli dvě řešení:

  • ovladač pro SS7 kanál (chan_ss7)
  • knihovna Asterisk libss7.

Chan_ss7 je vyvíjen komerční společností SIFIRA, avšak zdrojový kód byl uvolněn jako svobodný software.
Libss7 pochází přímo od vývojářů Asterisku a tato knihovna je součástí vývojové verze zdrojového kódu.
Více informací o instalaci a konfiguraci chan_ss7 a libss7 lze nalézt v technické zprávě CESNET technical report "Asterisk and SS7".

Testování

Propojení s veřejnou ústřednou

Po úspěšné instalaci a konfiguraci obou SS7 řešení na Linuxové servery jsme provedli testy jejich funkcí.
Ve spolupráci s Výzkumným a vývojovým centrem a společností Vodafone se nám podařilo propojit Asterisk PBX s veřejnou telefonní ústřednou pomocí signalizace SS7.
Na fyzické vrstvě bylo spojení realizováno jedním okruhem E1. Ten je v případě serveru na kterém je spuštěn Asterisk zakončen v hardwarových kartách s PCI rozhraním (výrobci Digium, Sangoma). Na straně ústředny Ericsson AXE je okruh ukončen v digitálních jednotkách pro připojení digitálních spojovacích vedení.
Chan_ss7 i libss7 knihovna se pak automaticky spouští se startem pobočkové ústředny Asterisk.
Po inicializaci signalizačních a hovorových kanálů jsme provedli úspěšná testovací volání směrem do veřejné telefonní sítě i zpět.

Testy shody

Druhým krokem bylo ověření implementace SS7 podle doporučení ITU-T. Naším záměrem bylo provést ve spolupráci se společností Sitronics TS (býv. STROM telecom) testy shody (conformance tests) podle doporučení ITU-T Q.784 a Q.785. Bohužel protokolový tester Tektronix K1297 vyžadoval inicializaci hovorových kanálů provedenou protistranou (Asterisk PBX). Avšak ani jedno z uvedených řešení tuto funkci nepodporuje, a tak nebylo možné tyto testy provést.

Zátěžové testy

Ve spolupráci se společností Sunrise Telecom a HKE jsme provedli zátěžové testy obou řešení. K testování jsme využili protokolový tester STT Multi-Service Analyzer, který pracuje jako protokolový analyzátor a také jako simulátor signalizačních zpráv. STT-MSA je schopen v módu simulace signalizačního bodu generovat od jednoho do dvou miliónů hovorů za hodinu.
Propojení mezi testovaným serverem a protokolovým testerem bylo realizováno jedním E1 rozhraním s 30 hovorovými kanály a jedním signalizačním kanálem.
Výsledky měření zahrnují:

  • záznam signalizační výměny
  • záznamy o provedených hovorech (CDR)
  • statistiky signalizačních zpráv
  • statistiky provedených hovorů

Signalizační výměna

Součástí zátěžových testů byla také kontrola výměny signalizačních zpráv. Na obrázku jsou uvedeny příklady inicializace signalizačního spoje při použití chan_ss7 a libss7. Zprávy SLTM/SLTA provádí test nově sestaveného signalizačního spoje, při kterém dojde k výměně testovacího vzorku, který musí být identický. Další zprávy TRA (Traffic Restart Allowed) indikují ukončení výměny směrovacích informací v přenosové (MTP) vrstvě a CBD (changeback declaration) potvrzuje přenos signalizace po současném sig. spoji. Dále je vidět, že u libss7 dojde k výměně zpráv zahajujících reset hovorových kanálů (GRS/GRA), zatímco chan_ss7 nikoliv.
(SP 806 reprezentuje Asterisk, SP 2001 protokolový tester)

Obr. 1: Inicializace signalizačního spoje

Zátěžový test chan_ss7

  • Doba měření: 12 minut
  • Počet požadovaných spojení: cca 10 000
  • Počet úspěšných spojení: 100%
  • Diagram typického testovacího hovoru:

Testovací hovor

Následující obrázek znázorňuje počty požadovaných a sestavených spojení. První graf vyjadřuje závislost celkového počtu spojení na čase a druhý počet současně aktivních hovorů (v průměru 13 hovorů za sekundu).

Zátěžový test chan_ss7

Během testů byly hovory spolehlivě sestavovány. Vyskytla se pouze jediná odchylka od standardní signalizační procedury. V daném případě vyslal Asterisk zprávu REL shodně s protokolovým testerem (rozdíl 40 ms), avšak i tento hovor byl ukončen zprávou potvrzující rozpad spojení (RLC).

Zátěžový test libss7

  • Doba měření: 12 minut
  • Počet požadovaných spojení: cca 10 000
  • Počet úspěšných spojení: prvních 30%

Asterisk využívající knihovnu libss7 má zpočátku testu potíže s obsluhou zátěže. Často nastává situace, kdy testovaný Asterisk posílá zprávu REL těsně před příchodem REL z druhé strany. Ikdyž je ve zprávě jako důvod rozpadu spojení uváděno „Normal call clearing“, jde pravděpodobně o rozpad z důvodů nedostatku prostředků pro zpracování volání. Zde je porovnání standardní a výše zmíněné signalizační výměny:

Rozpad volání ze strany testovaného Asterisku

Krom počátečního zpomalení obsluhy dochází přibližně v třetině testu k ukončení obsluhy SS7 volání pobočkovou ústřednou Asterisk. I v opakovaném testu došlo k totálnímu rozpadu spojení a následující grafy ukazují, že tato událost nastává přibližně po šesti minutách a 3 700 obsloužených hovorech. Druhý graf udává počet obsloužených volání za sekundu.

Libss7 zátežový test

Test neexistujicích CIC

Vyzkoušeli jsme test, ve kterém jsou posílány signalizační zprávy pro neexistující čísla hovorových kanálů (CIC).
V případě libss7 došlo k upozornění dohledu na chybnou signalizační zprávu. Výpis z příkazové řádky Asterisku:
16:43:45 - IAM on unconfigured CIC 32
16:44:12 - REL on unconfigured CIC 32
a tato zpráva byla ignorována:

Test neexistujicích CIC - libss7

Zajímavější je ovšem reakce chan_ss7 na nenakonfigurovaný CIC. V tomto dojde k pokusu o odpověď, avšak ta je poslána na signalizační bod s kódem „0“. Následně proběhne test signalizačního spoje a požadavek je zrušen protokolovým testerem zprávou REL.

Test neexistujicích CIC - chan_ss7

Zhodnocení chan_ss7 a libss7

Chan_ss7 i libss7 zvládají základní typy signalizačních zpráv SS7. Dokáží spolupracovat navzájem mezi sebou, a také s veřejnou ústřednou Ericsson AXE.
Při testování jejich shody s doporučeními jsme narazili na nekompatibilitu protokolového testeru a testovaných řešení.
V případě zátěžových testů se chan_ss7 chová stabilně. Naproti tomu u Asterisk PBX využívající knihovnu libss7 dojde po určité době k ukončení funkčnosti a je nutno aplikaci restartovat.
V případě testů na neexistující čísla okruhů (CIC) jsme narazili na chybné chování chan_ss7.

Úplná Technická Zpráva

cs/swahw/ss7.txt · Poslední úprava: 2007/12/03 16:38 autor: rudinsj
Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0