Sunteți pe pagina 1din 124

Universitatea Tehnic Gh.

Asachi Ia{i Facultatea de Electronic {i Telecomunica]ii


Sec]ia Sisteme {i Re]ele de Comunica]ii

ndrumtor

Conf. Dr. Ing. Petrut Duma


Absolvent

Iolanda Alecsandrescu
Promo]ia 2000

Reea Digital cu Servicii Integrate de Band Larg


Semnalizrile Interfeei Utilizator-Reea
Mesajele de Eliberare a Legturii i Mesajele Diverse

C u pr i n s :
1. Introducere 2. Principii de semnalizare 1. Generaliti 2. Particulariti ale semnalizrii n ISDN 3. Reele ATM 1. Generaliti 2. Servicii B-ISDN 3. Principii ATM 4. Transmisii optice i arhitectura B-ISDN 5. Funcii ale straturilor i UNI 6. Aspecte ale IN 4. Modelul CORBA 1. Vedere de ansamblu asupra CORBA 2. Concepte CORBA 3. Obiecte 4. Mediu computaional deschis i distribuit 5. Integrarea i reutilizarea componentelor 6. Limbaj de definire a interfeelor 7. Evoluia B-ISDN ctre CORBA 5. Mesajele Q.2931, ale UNI B-ISDN 1. Generaliti 2. Capabiliti reglementate prin Q.2931 3. Structura de mesaje a Q.2931 4. Mesajele de eliberarea legturii i mesajele diverse 5. Elementele informaionale pentru mesajele de eliberarea legturii i pentru mesajele diverse 6. Anexa 1 Cod C++: Parser2.cpp 7. Anexa 2 Cod C++: Parser3.hpp 8. Anexa 3 Cod C++: Parser4.hpp 9. Anexa 4 Cod C++: Parser5.hpp 10. Anexa 5 Definiii 11. Anexa 6 Abrevieri Abrevieri n Parser 12. Anexa 7 Bibliografie pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina pagina 1.1 2.1 2.4 3.1 3.3 3.4 3.6 3.9 3.13 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5.1 5.3 5.5 5.7 5.9 6.1 7.1 8.1 9.1 10.1 11.1 11.7 12.1

Capitolul 1
I n t r o d u ce r e
nc din cele mai vechi timpuri, oamenii au simit nevoia de comunicare ntre ei, nu numai direct, dar i atunci cnd distane mari i despreau. Iat de ce au fost trimii soli, mesageri sau porumbei cltori sau s-a dat foar n ar. ns de atunci i pn acum, aceste metode au fost nlocuite de ctre radio-televiziune, de telefonia fix sau mobil sau chiar de ctre Internet, ca urmare a evoluiei permanente a societii umane att n plan spiritual, ct i economic. Aadar, odat cu aceast dezvoltare social i datorit vitezei ridicate a progresului tehnic, una dintre cele mai rapide evoluii o nregistreaz telecomunicaiile. Acest domeniu, mpletindu-se cu cel al calculatoarelor are o influen nu numai asupra economiei, a societii n ansamblu, ct i a individului, pentru care calculatorul, mai ales conectat la Internet, a devenit nu numai accesibil i util, dar aproape indispensabil, la fel ca i telefonul. Putem vorbi deci, n aceste condiii, despre o puternic convergen ntre tehnica de calcul i telecomunicaii, impus de informatizarea continua a societii. Implicit, are loc o dezvoltare perpetu a reelelor de comunicaie. Utilizarea microprocesoarelor i a softului de comand i control au permis realizarea centrelor de comutaie, n spe a centralelor telefonice, digitale, care conduc spre o reea inteligent (IN Inteligent Network). Reelele inteligente au capacitatea de a lua decizii pe baza programelor i datelor memorate, asigurnd conectarea att cu abonaii ct i cu alte reele inteligente sau alte resurse. Arhitectura reelelor nzestrate deja cu un anumit nivel de inteligen permite luarea de decizii fr a fi necesar constituirea unui traseu fizic. Semnalizarea se face sub form de pachete, vehiculate permanent n reea, fr a fi necesar comutarea circuitelor, iar descifrarea mesajelor fcndu-se n programe organizate sub forma inteligenei distribuite. Astfel, se urmrete adoptarea modelului CORBA (Common Object Request Broker Architecture), n care obiectele-aplicaie, asemeni unor platforme soft mobile, dei gzduite de calculatoare diferite, sunt la dispoziia ntregii reele i sunt apelate la cerere. Datele prelucrate de calculator cresc mereu n volum i diversitate, n timp ce sistemele de telecomunicaii vehiculeaz diverse semnale i servicii n form digital (semnale vocale, date, telegrafie, e-mail, Internet, etc.). Se urmrete i ntr-o anumit msur s-a reuit deja integrarea acestor servicii ntr-o infrastructur unic, sub forma ISDN (Integrated Services Digital Network). Chiar dac, actualmente, reeaua numeric cu servicii integrate (ISDN) este soluia acceptat de comunitatea internaional de telecomunicaii n ceea ce privete echipamentele i serviciile asigurate, obiectivul pe termen lung este obinerea de medii integrate de comunicaii, n care toate serviciile sunt asigurate de o reea de transport universal a informaiilor. ntre timp, sunt necesare soluii intermediare pentru a asigura diferite servicii utilizatorilor. n ceea ce privete transmisia, pentru comutaia i transportul informaiei n reeaua digital cu servicii integrate de band larg (B-ISDN Broadband Integrated Services Digital Network) a fost elaborat modul de transfer asincron (ATM Asynchronous Transfer Mode). n acest mod, informaiile, indiferent de natura lor, sunt decupate n celule de lungime fix. n vederea asigurrii suportului fizic, sunt dezvoltate sistemele digitale de transmisie care realizeaz transportul informaiei digitale prin fibrele optice cu debite binare de transmisie de ordinul Gbiilor/s. n vederea stabilirii protocolului de semnalizare la nivelul interfeei utilizator reea (UNI User-Network Interface) a unei reele B-ISD, urmnd recomandrilor Centrului Consultativ Internaional de Telegrafie i Telefonie (CCITT), n februarie 1995, a

Pagina 1.1

1. Introducere
fost adoptat de ctre Uniunea Internaional a Telecomunicaiilor (ITU-T) Recomandarea Q.2931. Avnd n vedere acest protocol, se urmrete pentru B-ISDN, mbuntirea performanelor de comutaie. Astfel, clasic, n B-ISDN stabilirea unei legturi ntre dou terminale (calculatoare echipate cu cartele ATM) se face prin intermediul centrului de comutaie (care poate fi o central telefonic switch in cross connection mode) prin intermediul softului de comand i control (call-control), semnalizrile fcndu-se pe un canal de semnalizare #0.5, sub form de mesaje. Aceste mesaje sunt interpretate de unitatea call-control, care le nelege i ia deciziile necesare pentru stabilirea i controlul legturii. n acest caz, centrul de comutaie este opac utilizatorului, avnd un soft de comand i control prestabilit i fix. Din aceste considerente, o soluie ce se ncerc a mbria este ilustrat n figura 4.7 i prezentat n continuare. Se implementeaz pe o staie de lucru un soft Parser care s analizeze semnalele vehiculate de reea. Semnalizrile se fac de aceast dat pe alt canal dect #0.5 i sunt transparente pentru centrul de comutaie, care nu nelege dect c trebuie s predea legtura parserului. Acesta analizeaz i interpreteaz mesajele, ns spre deosebire de unitatea call-control din centrul de comutaie, nu se rezum la stabilirea i controlul legturii cu un alt terminal, ci apeleaz metode CORBA de pe o alt platform, pe care este implementat un soft de comand i control call-control CORBizat. Acesta, pe lng posibilitatea stabilirii legturii cu un alt terminal, poate oferi utilizatorului o gam mult mai larg de servicii inclusiv stabilirea legturii cu reele inteligente i mai ales i se ofer utilizatorului posibilitatea de a modifica, adapta i completa aciunile softului de comand i control. Prezenta lucrare, mpreun cu lucrarea de diplom a D-lui Ciprian Coma, ofer informaii despre CORBA, IN (reele inteligente), ATM, semnalizrile ISDN i are ca finalitate implementarea n C++ a unui parser i descrierea n IDL (Interface Definition Language) a metodelor CORBA, care trebuie invocate de parser, dup ce n prealabil sunt compilate de un compilator IDL-C++, cum este OrbixWeb. Este prezentat astfel o modalitate prin care se poate realiza deschiderea softului de comand i control, oferindu-se utilizatorilor posibilitatea manipulrii i modelrii acestui soft, lucru ce duce la sporirea gradului de inteligen a B-ISDN, constituind un pas nainte n dezvoltarea reelelor de comunicaii.

Pagina 1.2

Capitolul 2
Principii de semnalizare
1. Generalit]i Semnalizarea a devenit un aspect din ce n ce mai important al serviciilor digitale nou aprute n domenii precum comunicaiile vocale, de date, video sau aplicaiile multimedia. Semnalizarea reprezint transferul n timp real a informaiilor legate de servicii, ntre utilizator i reea sau ntre diferite entiti ale reelei, n scopul stabilirii unei comunicaii de la un capt la altul. Pentru aceasta a fost necesar dezvoltarea unor interfee. Conceptul de interfa a nodurilor reelei (NNI), dar mai ales acela de interfa ntre utilizator i reea (UNI) nu reprezint un element de noutate n sine, ci noutatea o constituie evoluia acestora. Tot semnalizri ntre utilizator i reea sunt, spre exemplu, i semnalizrile necesare stabilirii legturii unui utilizator telefonic cu un mediu de comutaie privat (PBX). n acest caz semnalizrile se bazeaz fie pe fluxuri de cureni sau ntreruperi ale acestora, fie pe transmiterea unor secvene n ton sau pe aplicarea de diferite tensiuni. Locul acestora a fost treptat treptat ocupat de semnalizri sofisticate pentru reele digitale cu servicii integrate (ISDN), pentru sisteme bazate pe transmiterea de cadre (frame relay - FR) i transmisiuni de celule n mod asincron (cell relay - ATM). Astfel a fost posibil apariia unor servicii sofisticate, cum ar fi, spre exemplu, apelurile bazate pe cri de credit. Odat cu dezvoltarea de servicii, aa numite, din ce n ce mai inteligente, care vin n sprijinul identificrii apelanilor, n sprijinul utilizatorilor mobili i a aplicaiilor informatice, a aprut necesitatea utilizrii unui canal comun special pentru semnalizri (CCS), n particular pentru sistemul de semnalizri numrul 7 (SS7). Cnd n reelele publice, prin anii 60, i-au fcut apariia calculatoarele, acestea au trebuit adaptate astfel nct s neleag tonurile de apel, tonurile de ocupat, .a.m.d. Acest lucru presupune limitri cantitative ale informaiei vehiculate n astfel de comunicaii. Din aceste considerente, pasul urmtor a fost trecerea la aa numitele semnalizri funcionale, prin care dispozitivul, fie el comutator, fie utilizator, era comandat, ce anume s fac, prin intermediul instruciunilor primite n cadrul unor mesaje de date. Acest sistem a funcionat cu succes ani de zile n reelele ce vehiculau pachete de date i a fost introdus i n mediile de telecomunicaii. Dac la nceput semnalizarea se fcea n band, mpreun cu informaia util din punctul de vedere al utilizatorului, mai trziu s-a trecut la folosirea unui canal logic separat. Acest gen de semnalizare, sugerat n figura 2.1, este necesar n serviciile ce utilizeaz conexiuni virtual comutate (SVC), Re]ea
CCS7
sau

Comuta]ie

Echipament Utilizator

"Call Control"

Echipament Utilizator

UNI

NNI

Figura 2.1: Semnalizare pe canal separat

Pagina 2.1

2. Principii de semnalizare
adic n medii ISDN, de transmisiuni de cadre sau de transmisiuni de celule. SVC este o cale logic ntre doi utilizatori, care permite transferul de informaii ntre acetia, chiar dac ntre ei nu exist o conexiune fizic stabilit permanent pe durata schimbului de informaii dintre ei. Conectivitatea celor doi este asigurat prin asocierea de etichete pachetelor de informaie, etichete pe baza crora sunt dirijate prin reea, posibil chiar i pe ci diferite, fiecare pachet. Pentru optimizarea transferului de informaii, ISO a adoptat un model de comunicaii, numit model de referin de interconectare a sistemelor deschise (OSI). n cadrul acestui model se utilizeaz noiunea de strat, care desemneaz un set de funcii de comunicaii. Au fost definite apte straturi: 1). Stratul fizic (stratul de la nivelul cel mai jos) la nivelul acestuia are loc transmisia bit cu bit; 2). Stratul legtur de date realizeaz transferul de cadre (blocuri) de date ntre dou puncte ale comunicaiei; 3). Stratul reea opereaz transferuri, adresri sau multiplexri, la nivelul unei singure subreele; 4). Stratul transport la acest nivel se pot realiza comunicaii punct la punct cu un grad redus de complexitate; 5). Stratul sesiune pune la dispoziie funcii de coordonare i sincronizare; 6). Stratul prezentare se ocup de sintaxa transferurilor (incluznd aici codarea caracterelor); 7). Stratul aplicaie (stratul de nivel cel mai nalt) sunt suportate la acest nivel funcii definite de utilizator, referitoare la diferite asocieri sau transferuri de fiiere sau directoare. Straturile 1-3 se numesc straturi inferioare, iar straturile 4-7 sunt considerate ca fiind straturi ierarhic superioare. Relaia ntre dou oricare straturi adiacente este aceea de utilizator de serviciu (stratul de nivel mai nalt) i ofertant de serviciu (stratul mai jos). Dou straturi adiacente comunic ntre ele, schimbnd primitive unul cu cellalt, prin intermediul punctelor de acces serviciu (SAP). De asemenea, dou straturi de acelai rang (N) dar aparinnd unor OSI (A i B) diferite comunic ntre ele prin intermediul straturilor inferioare lor (N-1). Primitivele refer schimbul de date ntre dou straturi alturate i delimiteaz dou categorii generice de servicii: cu confirmare i fr confirmare. Un serviciu cu confirmare are n alctuire patru primitive: 1. Cererea stratul N-A indic stratului (N-1)-A o cerere de serviciu de la stratul N-B; 2. Indicaia stratul (N-1)-B, care comunic direct prin intermediul unui protocol specific cu stratul (N-1)-A, transmite stratului N-B cererea de serviciu a stratului N-A; 3. Rspunsul stratul N-B rspunde la cererea de serviciu ctre stratul (N-1)-B; 4. Confirmarea transmiterea mesajului de rspuns de la (N-1)-A la N-A. n transferul de informaii ntre dou straturi de acelai rang (N), aparinnd dou OSI diferite (A i B), se definesc unitile de date de protocol (PDU). N-PDU (PDU a stratului N) conine protocolul de control al informaiei propriu stratului N (N-PCI) i unitatea de date de serviciu primit prin N-SAP de la stratul superior ( (N+1)-SDU ).
Managementul planurilor Managementul straturilor Plan de Control Plan Utilizator

Straturi nalte Straturi nalte Straturi Adaptare ATM Strat ATM Strat Fizic

Figura 2.2: Model de Referin pentru Protocol B-ISDN

Pagina 2.2

2. Principii de semnalizare
n arhitectura ISDN, aa cum am menionat anterior, s-a urmrit separarea logic a informaiei utilizatorului de cea de semnalizare. n aceast direcie s-a adoptat i un protocol de semnalizare, denumit protocol ISDN - model de referin (PRM ISDN). Este vorba despre o structur stratificat, ilustrat n figura 2.2, pentru N-ISDN, FR, dar i pentru B-ISDN. Aceast structur, dup cum se poate observa i din figura 2.3, este compatibil cu structura modelului OSI, dar o echivalen clar ntre cele dou este nc n studiu. PRM-ISDN modeleaz transferul, controlul i managementul informaiei i este compus, din punct de vedere logistic, din planul utilizatorului, planul de control i un plan de management. Planul utilizatorului, prin structura sa stratificat, ofer utilizatorului informaia transferat. Planul de control are de asemenea o structur stratificat i realizeaz funcii de control al apelului i conexiunii (CC Call Control). Planul de management realizeaz supravegherea i supervizarea reelei i presupune de fapt dou aspecte: managementul la nivel de plan, care realizeaz funcii privind sistemul ca ntreg, efectund coordonarea tuturor planurilor, i managementul la nivel de strat, care implementeaz funcii ce refer resursele i parametrii entitilor de protocol. Separarea informaiei de control de informaia util prezint o gam de avantaje: Se nregistreaz o cretere a potenialului de integrare a semnalelor vocale, de date sau a altor aplicaii multimedia. De vreme ce calea informaional nu mai are de suportat i semnalele de control, logica sa poate fi simplificat, ceea ce nseamn avantaje din punctul de vedere al vitezei i preului. Se poate realiza optimizarea independent a celor dou ci. Aceast separare se poate face n diferite modaliti, printre care: separarea la nivel fizic a interfeelor sau separarea la nivel logic, utiliznd aceeai interfa fizic. Astfel, n ISDN, FR i ATM s-a procedat n maniera urmtoare: 1). Toate procedurile de control au loc pe canale logice separate, utiliznd proceduri de protocol integrate n serviciile de telecomunicaii; 2). Procedurile de transfer de date utilizeaz n comun acelai strat OSI 1 i o parte din funciile stratului OSI 2. Figura 2.3 arat cu claritate necesitatea ncorporrii a dou tipuri de protocoale n echipamentul terminal al utilizatorului.
Echipament Utilizator Plan Control CC Legtur de Date Strat Fizic Str. 4-7 Strat Reea Legtur de Date Strat Fizic Plan Utilizator UNI Obs: CC include straturile OSI Reea, Transport, Sesiune, Prezentare i Aplicaie CC Legtur de Date Strat Fizic

Re]ea
CC Legtur de Date Strat Fizic

Echipament Utilizator Plan Control CC Legtur de Date Strat Fizic Str. 4-7 Strat Reea Legtur de Date Strat Fizic Plan Utilizator

CCS7
Protocol de semnalizare

ATM ATM Fizic Fizic

ATM ATM Fizic Fizic

Figura 2.3: Cerinele de protocol ale echipamentului terminal

Pagina 2.3

2. Principii de semnalizare
2. Particularit]i ale semnalizrii n ISDN Recomandarea ITU-T Q.931 din 1992 specific procedurile pentru stabilirea, meninerea i eliberarea conexiunilor unei reele n cadrul interfeei UNI ISDN pentru controlul legturilor de baz (BCC - Basic Call Control). Aceste proceduri se refer la servicii de baz ale ISDN. Procedurile adiionale cerute de servicii suplimentare sunt specificate n Recomandarea ITU-T Q.932. Procedurile de semnalizare sunt bazate pe schimburile de mesaje pe canalul D la nivel de baz i primar. Canalul D este un canal logic separat disponibil al interfeei. Procedurile descrise n standard sunt pentru controlul conexiunilor cu comutare de circuite, conexiunilor de semnalizare utilizator-utilizator i al conexiunilor cu comutare de pachete. Stratul 3, care corespunde straturilor OSI Reea, Transport, Sesiune, Prezentare i Aplicaie, folosete n cadrul echipamentului utilizator funciile puse la dispoziie de ctre stratul 2, adic stratul ATM (corespunztor stratului legtur de date a modelului OSI). Trebuie precizat c asocierea straturilor 1-3 din PRM ISDN cu straturile 1-7 din modelul OSI este relativ. n continuare, sunt enumerate funciile stratului 3 PRM pentru UNI ISDN: Procesarea primitivelor pentru comunicarea cu stratul Legtur de Date; Generarea i interpretarea mesajelor stratului 3 n vederea comunicrii cu un strat de acelai rang, dar aparinnd unui alt sistem; Administrarea temporizrilor i a entitilor logice folosite n procedurile de control al legturii; Administrarea resurselor de acces, incluznd canalele B; Asigurarea consistenei serviciilor oferite n raport cu cererile utilizatorilor; Rutarea i comutarea; Controlul conexiunilor reelei; Asigurarea fluxului de informaie de la utilizator la reea i invers; Multiplexarea conexiunilor de reea; Segmentarea i reasamblarea; Detecia erorilor procedurale; Corectarea erorilor procedurale; Secvenierea; Controlul congestiilor i a fluxului de date util. Semnalizrilor le sunt asociate proceduri care pot fi detaliate algoritmic. Procedurile sunt implementate independent de utilizatori, fiind entiti de sine stttoare. Procedurile sunt transparente pentru utilizatori, n timp ce mesajele, ca reacii ale procedurilor, sunt vizibile acestor utilizatori. Aspectele importante incluse n semnalizarea ISDN sunt: Generaliti privind controlul legturii; Definirea funcional i coninutul mesajului; Codarea elementelor informaionale (IE); Descrierea diverselor proceduri de control a legturii. Procedurile de semnalizare ISDN, definite prin protocolul Q.931 au fost grupate n patru categorii, grupare ce-i va pune amprenta asupra evoluiilor ulterioare ale ISDN: Proceduri de control a legturilor cu comutare de circuite; Proceduri pentru comunicaii cu comutare de pachete; Proceduri pentru capabilitatea de semnalizare a utilizatorilor; Proceduri pentru comunicaii n mod circuit, multirat (pe o rat de baz de 64kbps).

Pagina 2.4

Capitolul 3
Re]ele ATM
1. Generalit]i n prezent, majoritatea reelelor sunt dedicate anumitor scopuri precise, precum telefonia, CATV, transferul de date cu comutare de circuite sau de pachete. Unele aplicaii, precum facsimilul, utilizeaz reeaua telefonic existent deja. Utilizarea reelelor preexistente nu este ns posibil ntotdeauna, deoarece la implementarea lor iniial nu s-a inut cont de nevoile serviciilor viitoare. Astfel, transferul de date prin reeaua telefonic este limitat de limea de band, flexibilitatea i calitatea echipamentelor de transmisii analogice vocale. Reelele telefonice au fost proiectate pentru servicii de band constant, aa nct utilizarea lor pentru un trafic de date cu rat de bit variabil necesit adaptri destul de costisitoare. Deoarece reeaua telefonic public nu a fost capabil s suporte eficient serviciile non-vocale cerute de clieni, au luat fiin alte reele, fie ele publice sau private. Un exemplu concludent de reea de date extins este Internet-ul. n acest context a aprut i ideea de reea digital cu servicii integrate (ISDN), care s suporte att transmisii vocale, ct i non-vocale. Ca standard ISDN a fost definit o interfa denumit acces de baz, cuprinznd dou canale B de 64kbii/s i un canal D de 16kbii/s pentru semnalizare. Dup cum se poate remarca i n tabelele de mai jos, un alt tip de interfa, acces primar, cu o rat de bit brut de aproximativ 1.5Mbii/s sau 2Mbii/s ofer flexibilitate n alocarea canalelor de mare vitez H sau a unei mixturi de canale B i H plus un canal de semnalizare de 64kbii/s. Canal B H0 H11 H12 D16 D64 Canale ISDN Rat de bit Interfa 64kbps Acces de baz 384kbps Acces primar 1536kbps Acces primar 1920kbps Acces primar 16kbps Acces de baz 64kbps Acces primar Structuri ale interfeelor Interfa Rat de bit brut Structur Acces de baz 192kbps 2B+D16 Acces primar 1544kbps 23B+D64 3H0+D64 H11 etc. Acces primar 2048kbps 30B+D64 5H0+D64 H12+D64 etc.

ISDN original este bazat pe reeaua telefonic digital, caracterizat de limea canalului de 64kbps. Aceast rat de bit este derivat din cerinele unei transmisii vocale de 3.4kHz (eantionare pe 8 bii cu o frecven de 8kHz). ISDN pe 64 kbii/s este la baz o reea cu comutare de circuite dar poate oferi acces i la servicii cu comutare de pachete. Printre beneficiile acestei reele se numr: Utilizarea unei interfee utilizator reea comune pentru accesul unei varieti de servicii Capabiliti de semnalizare n afara benzii utile; Integrarea serviciilor; Adugarea unor servicii noi sau mbuntite. Cea mai mare rat de bit oferit de ISDN bazat pe 64kbps este de aproximativ 1.5Mbii/s sau de 2Mbii/s. Conectarea la unele reele locale (LAN) sau transmiterea de imagini n micare cu o rezoluie bun pot necesita n multe cazuri rate de bit considerabil

Pagina 3.1

3. Reele ATM
mai mari. Astfel s-a impus conceperea i implementarea unei reele de band larg (BISDN). La nceput ideea concret a B-ISDN era pur-i-simplu: De a aduga noi canale rapide spectrului existent de canale; De a defini noi interfee utilizator-reea de band larg; S se bazeze pe protocoalele ISDN 64kbii/s i doar s le modifice i s le mbunteasc pe acestea numai dac este cazul. Aadar, n ntmpinarea B-ISDN se prevedeau pentru canale rate de bit de 3234Mbii/s i n jur de 45Mbii/s, 70Mbii/s i 135-139Mbii/s. Canalele corespunztoare au fost denumite H2, H3, H4. Aceste rate de bit erau orientate ctre ratele de bit ale ierarhiei plesiocrone (Recomandarea ITU-T G.702), astfel nct canalele H puteau fi transmise n semnalele nivelului ierarhic corespunztor. (Ierarhia plesiocron este definit de un set de rate de bit i o serie de scheme de multiplexare pentru multiplexarea ctorva, nu neaprat sincron, canale ISDN 64Kbii/s pentru obinerea unor semnale cu rate de bit mai mari.) Aceste canale de band larg s-au dovedit a fi rigide n ceea ce privete planificarea ratelor de bit pentru serviciile de band larg viitoare, care nu erau nc pe deplin clarificate. Acest lucru a condus la anumite susceptibiliti n ceea ce privete utilizarea conceptului de canal H. Toate dilemele i ndoielile au fost ndeprtate prin adoptarea unui model de interfaare bazat pe spargerea complet a ncrcturii informaionale n buci mai mici, numite celule, fiecare celul fiind capabil a purta informaii privitoare la orice tip de conexiune. n principiu, B-ISDN este potrivit att pentru utilizatori interesai n servicii de afaceri ct i pentru cei rezideniali; adic att pentru comunicaii de date, ct i pentru distribuie de canale TV sau altfel de faciliti pentru divertisment.

Pagina 3.2

3. Reele ATM
2. Servicii B-ISDN B-ISDN suport att servicii cu rat de bit constant, ct i variabil: date, voce, ca i transmisii de imagini n micare sau chiar servicii multimedia, care pot combina date, voce i imagini. Pentru ilustrarea capabilitilor B-ISDN pot fi utilizate cteva exemple. n mediile de afaceri videoconferinele sunt bine cunoscute, dei neutilizate n mod comun, ca fiind metode ce faciliteaz schimbul rapid i eficient de informaii ntre oameni, scutinduse o serie de cheltuieli de transport. n viitor, odat i cu creterea calitii transmisiilor, poate chiar peste calitatea TV, serviciul de videoconferine va deveni un instrument important al telecomunicaiilor. O alt facilitate a B-ISDN const n stabilirea de legturi de date de vitez mare ntre reele utilizator. Utilizatorii rezideni se pot bucura de oferta combinat de text, grafic, sunet, imagini statice sau filme ce ofer informaii referitoare la centre turistice, magazine sau evenimente culturale, ca i servicii video interactive sau video la cerere. Rolul de baz al reelelor ATM este transportul i rutarea (de exemplu multiplexarea, transmisia i comutarea) celulelor ATM. Transmisia ATM se mai numete i transmisie de celule (cell relaying). Reeaua nu are nevoie s cunoasc nimic referitor la aplicaia punct-la-punct ce este transmis pe reea. Utilizatorii pot utiliza serviciile ATM pentru schimburi de date, voce, imagini sau combinaii ale acestora, fr ca reeaua s aib habar ce anume transmite. Acest lucru stimuleaz utilizatorii s diversifice gama de aplicaii, precum multimedia, transmis prin reeaua ATM. Potrivit Recomandrii ITU-T I.211, serviciile sunt clasificate n servicii interactive i servicii de distribuie. Serviciile interactive cuprind servicii conversaionale, de mesagerie i servicii la cerere, pe cnd serviciile de distribuie pot fi mprite n servicii cu i fr controlul prezentrii individuale a utilizatorului. Serviciile de mesagerie cuprind servicii de pot pentru sunet, imagini i/sau documente. Serviciile la cerere pot fi utilizate, de exemplu, pentru obinerea unor filme video n orice moment sau pentru a accesa librrii soft. Serviciile conversaionale permit schimburi mutuale de date, documente ntregi, imagini sau sunet. n final, ca exemple de servicii de distribuie pot fi menionate publicaiile electronice, distribuia de programe TV, eventual de calitate mbuntit pe viitor, de exemplu televiziunea de nalt definiie (HDTV). n vederea unei mai bune evidene a cerinelor reelei, s-a ncercat categorisirea caracteristicilor tehnice ale aplicaiilor majore B-ISDN, conform tabelului de mai jos: Serviciu Rat de bit (Mbii/s) Coeficient Transmisii de date (conexiuni orientate) 1.5 pn la 130 1 50 Transmisii de date (fr conexiune) 1.5 pn la 130 1 50 Transfer/Cerere de documente 1.5 pn la 45 1 20 Videoconferin/Videotelefonie 1.5 pn la 130 1 5 Video la cerere 1.5 pn la 130 1 20 Distribuie TV 30 pn la 130 1 Distribuie HDTV 130 1 Coeficient = (Rata de bit de vrf) / (Rata de bit medie) Reeaua B-ISD a fost implementat astfel nct s satisfac toate aceste cerine de servicii venite din partea utilizatorilor.

Pagina 3.3

3. Reele ATM
3. Principii ATM Modul de transfer asincron este considerat a fi mediul n care a fost construit BISDN. Trebuie menionat pentru nceput c termenul de transfer include att aspectul de transmisie ct i de comutare. n ATM, toate informaiile ce urmeaz a fi transferate sunt mpachetate n pachete de lungime fix numite celule. Aceste celule au un cmp de 48 octei de informaie i un antet de 5 octei. n timp ce cmpul de informaie este disponibil utilizatorului, antetul conine informaii ce faciliteaz funcionalitatea stratului ATM, n special identificarea celulelor dup etichete. Antet 5 octei Cmp informaional 48 octei

Structura celulei ATM ATM utilizeaz un cmp etichet n interiorul fiecrui antet de celul pentru a identifica o comunicaie. Din acest punct de vedere, ATM seamn cu modul de transfer convenional de pachete. Ca tehnic de comutare a pachetelor, ATM poate oferi comunicaii cu rate de bit individual croite dup necesiti, incluznd rate de bit variabile. Termenul asincron din denumirea ATM se refer la faptul c, n contextul unei transmisiuni multiplexate, celulele alocate unor conexiuni pot ajunge la destinaie ntr-o ordine aleatoare, dup cum arat i figura 3.1. n modul de transfer sincron (STM), o unitate de date asociat unui canal dat poate fi identificat prin poziia sa n cadrul transmis, pe cnd n ATM o unitate de date sau o celul asociat unui canal virtual specific poate apare n orice poziie. Flexibilitatea alocrii ratelor de bit n STM este restrns, deoarece se utilizeaz canale de rate de bit predefinite ( de exemplu B, H2) i cadrele convenionale de transmisie au o structur rigid.
Fant temporal Mod de Transfer Sincron

Canal 1 Canal 2

Canal n

Canal 1 Canal 2

Canal n

Cadru periodic

Celul

Mod de Transfer Asincron Canal


neutilizat

Canal 1

Canal 5

Canal 1

Canal 7

Canal 1

Informaie Util

Antet

Semnalizare Cadru

Figura 3.1: Principiile STM i ATM

Pagina 3.4

3. Reele ATM
Aceasta, n mod normal, nu va permite structurarea individual a ncrcturii informaionale sau va permite o selectare destul de limitat de combinaii de canale la interfaa corespunztoare la momentul subscrierii. Altfel, reeaua ar trebui s gzduiasc o multitudine de interfee diferite, lucru care nu este de dorit. n reelele bazate pe ATM, multiplexarea i comutarea celulelor este independent de aplicaia real. Astfel, acelai echipament poate n principiu face fa att conexiunilor de rat de bit sczut, ct i conexiunilor de rat de bit ridicat, fie c este vorba de un flux informaional mediu sau de vrf. Flexibilitatea accesrii reelelor B-ISD (bazate pe ATM) este dat de suportarea de ctre conceptul de transport a celulelor a ideii de interfa unic ce poate fi utilizat de o varietate de utilizatori ce acceseaz servicii diferite. Totui, conceptul de ATM ridic i o serie ntreag de probleme. De exemplu, impactul pierderii unei celule, ntrzieri de transmitere a celulelor sau ntrzieri variate ale celulelor n cazul unei caliti determinate a serviciului. De asemenea ATM mai i motenete o serie de dificulti precum sunt cele legate de tarifare sau ecouri. n concluzie, deoarece n prezent reelele sunt caracterizate de coexistena comutrii de circuite i a celei de pachete, B-ISDN se bazeaz pe o singur metod, numit ATM, care combin avantajele celor dou tehnici. Prima necesit doar o procesare i semnalizri reduse, i, odat stabilit conexiunea cu comutare de circuite, ntrzierea transferului informaiei este mic i constant. A doua este mult mai flexibil n ceea ce privete rata de transfer a biilor asociat conexiunilor individuale (virtuale). Implementarea acestor canale virtuale este realizat prin celule de lungime fix (relativ mic) i ofer posibilitatea operrii att n transmisii comutate sau multiplexate. Utilizarea celulelor scurte n ATM i ratele mari de transfer implicate determin ntrzieri de transfer i variaii ale acestor ntrzieri care sunt destul de mici pentru a permite aplicarea acestei tehnici ntr-o gama larg de servicii, inclusiv servicii n timp real precum cele vocale sau video. Abilitatea ATM de multiplexare i comutare la nivel de celule suport alocarea de rate de bit flexibile. Arhitectura global a protocolului reelelor ATM cuprinde: Capabiliti comune tuturor serviciilor de transfer a celulelor; Funcii de adaptare la servicii specifice pentru maparea informaiilor din straturile superioare n celule ATM. Exemple sunt mpachetarea/despachetarea fluxului de bii n/din celule ATM i segmentarea/reasamblarea blocurilor mai mari n/din celule ATM. O alt trstur important a reelelor ATM este posibilitatea de grupare a canalelor virtuale n aa-numitele ci virtuale, caracteristic la care vom reveni.

Pagina 3.5

3. Reele ATM
4. Transmisii optice {i arhitectura B-ISDN Dezvoltarea puternic a echipamentelor optice economice de transmisie este sprijinul esenial al B-ISDN. Transmisiile optice sunt caracterizate de: Atenuare mic pe fibra optic (permite distanarea repetoarelor); Band larg de transmisie; Diametru redus (volum i greutate mici); Flexibilitate mecanic ridicat a fibrei; Imunitate fa de cmpurile electro-magnetice; Probabilitate de eroare a transmisiei mic; Lipsa interferenelor convorbirilor pe fibre; Sustragerea informaiei mult mai dificil. Benzile mari de band a sistemelor de transmisie optice n mod curent pn la 2.5Gbii/s pot fi transportai pe o legtur optic au condus la implementarea lor timpurie n reele publice pentru a suporta servicii existente precum telefonia. Reelele locale (LAN) bazate pe transmisii pe fibre optice sunt destul de rspndite n prezent, vehiculnd rate de bit de ordinul sutelor de Mbii/s. Astfel, pentru B-ISDN exist bune perspective, mai ales atunci este vorba i de distane considerabile. n B-ISDN o rat de bit de aproximativ 150Mbii/s poate fi tipic oferit utilizatorilor prin intermediul UNI. De asemenea, prin fibra optic se transmit rate de bit mai ridicate, costul echipamentelor electronice de transmisie relativ la capacitile de transmisie fiind avantajos. Dezvoltarea sistemelor de transmisie, n principal pe fibr optic, cu probabiliti de eroare reduse simplific concepia reelei, spre exemplu prin reducerea funciilor legtur de date. Modelul arhitectural B-ISDN este descris n Recomandarea ITU-T I.327. Conform acesteia, transferul informaiei i capabilitile de semnalizare, dup cum arat i figura 3.2 conin: Capaciti de band larg; Capabiliti ale 64kbii/s ISDN; Semnalizri utilizator-reea; Semnalizri ntre centrele de comutaie; Semnalizri utilizator-utilizator.
Capabiliti de band larg

Terminal

Funcii locale
Capabiliti 64kbps ISDN

Funcii locale

Terminal sau Sursa serviciului

Semnalizri utilizator-reea

Capabiliti de semnalizare ntre centre de comutaie Semnalizri utilizator-utilizator (sau utilizator-reea)

Figura 3.2: Capabilitile transferului de informaiei i a semnalizrii n B-ISDN

Pagina 3.6

3. Reele ATM
n reelele B-ISDN, antetul celulelor poart informaia necesar identificrii celulelor aparinnd aceluiai canal virtual. Celulele sunt asociate dup cerere, n funcie de sursa activitii i de resursele disponibile. ATM garanteaz integritatea secvenial a celulelor, n sensul c este imposibil suprapunerea n reea a unei celule aparinnd unui canal virtual peste o celul aparinnd aceluiai canal virtual, trimis mai devreme. ATM este o tehnic orientat conexiune. O legtur n interiorul stratului ATM const din una sau mai multe conexiuni, fiecreia fiindu-i asociat in identificator. Aceti identificatori rmn nemodificai pe durata conexiunii. Informaia de semnalizare pentru o conexiune dat este transportat utiliznd un identificator separat (semnalizare n afara benzii utile). Dei este o tehnic orientat conexiune, ATM ofer i o capacitate de transfer flexibil, comun tuturor serviciilor, inclusiv celor fr conexiune. Aceasta se realizeaz prin dou ci. Prima este stabilirea totui a unei conexiuni B-ISDN prin care sunt transmise serviciile care n LAN din care provin sunt fr conexiune. O a doua cale, i cea mai utilizat, este aceea a transmiterii informaiei utile n mesaje scurte i independente, odat cu informaia de rutare i adresare. n acest caz integritatea secvenial a informaiei nu mai este garantat. Recomandarea ITU-T I.311 prezint structura stratificat a B-ISDN, aa cum apare ea i n figura 3.3. Pentru reeaua de transport ATM funciile sunt mprite n dou pri, respectiv funciile de transport ale stratului fizic i funciile de transport ale stratului ATM. Att stratul fizic precum i stratul ATM sunt ierarhic structurate. Astfel, stratul fizic este format din: Nivelul cii de transmisie; Nivelul seciunii digitale; Nivelul seciunii de regenerare. Stratul ATM are dou nivele ierarhice, adic: Nivelul canalelor virtuale; Nivelul cilor virtuale. Acestea sunt definite dup cum urmeaz: Calea de transmisie se ntinde ntre elementele de reea care asambleaz i dezasambleaz ncrctura informaional a sistemului de transmisie (aceasta refer informaia util i mpreun cu informaiile suplimentare necesare transmisiei formeaz semnalul complet).
Funciile straturilor nalte

Canal virtual

B-ISDN
Reea de transport ATM

Funciile de transport ale stratului ATM


Cale virtual

Cale de transmisie

Funciile de transport ale stratului fizic

Seciune digital

Seciunea de regenerare

Figura 3.3: Structura stratificat a B-ISDN

Pagina 3.7

3. Reele ATM
Seciunea digital se ntinde ntre elementele de reea care asambleaz sau dezasambleaz fluxul de bii sau de octei (bytes). Seciunea de regenerare este o poriune din seciunea digital i se ntinde ntre dou regeneratoare adiacente. Canalul virtual (VC) este un concept utilizat pentru descrierea transportului unidirecional al celulelor ATM asociate printr-o valoare comun i unic de identificare. Acest identificator este denumit identificator de canal virtual (VCI) i este inclus n antetul celulelor. Calea virtual (VP) este un concept utilizat n descrierea transportului unidirecional al celulelor aparinnd canalelor ce sunt asociate printr-o valoare comun de identificare. Aceast valoare este denumit identificator de cale virtual (VPI) i este de asemenea inclus n antetul celulei. Figura 3.4 arat relaiile ntre canalul virtual, calea virtual i calea de transmisie. O cale de transmisie poate cuprinde cteva ci virtuale i fiecare cale virtual la rndul ei poate fi purttoarea ctorva canale virtuale. Conceptul de cale virtual permite gruparea ctorva canale virtuale. Acest lucru este foarte util pentru comunicaiile ntre diverse reele locale, mai ales n managementul traficului i n rutare (aceasta fcndu-se adesea conform unor scheme de rutare predefinite). n privina nivelelor stratului ATM (VC i VP), este nevoie s se disting legturile de conexiuni; n contextul acestei lucrri se consider conexiunea la nivel de canal virtual a fi un mijloc de transport a celulelor ATM ntre un punct n care valoarea VCI este asignat i punctul n care valoarea este translat sau tears. Similar, pentru conexiunea la nivel de cale virtual. O nlnuire de conexiuni de VC este denumit legtur prin canal virtual (VCC), iar o concatenare de conexiuni de VP se numete legtur prin cale virtual (VPC). Fiecare conexiune VP este implementat printr-o cale de transmisie, care ierarhic cuprinde seciuni digitale i, implicit, i seciuni de regenerare. n ceea ce privete comutarea, aceasta se poate realiza att cu comutatoare (switch), ct i prin conexiuni ncruciate (cross-connect). n ambele cazuri ns are loc comutarea fie la nivel de VC sau de VP, astfel nct ntr-o VCC/VPC valoarea VCI/VPI va fi translat de ctre entitile de comutare a VC/VP. Comutarea se face la nivel de VC sau VP i nu la nivel de celule, deoarece reelele de comutare nu ar face fa uor cerinelor din punctul de vedere al benzii de frecven i al ntrzierilor de transmisie. Pentru realizarea comutrii sunt necesare mai multe subsisteme, precum multiplexoare, module de band larg ale liniilor de abonat, module de band larg ale trunchiurilor de linii, dar componentele cele mai importante sunt elementul de comutare i suma acestora, adic reeaua de comutare; componente pentru care exist variate soluii tehnice i arhitecturi. n ceea ce privete switch-urile i cross-connect-urile, diferena major dintre acestea o constituie funcia de control. n cazul primului, controlul aparine mesajelor de semnalizare, n timp ce al doilea este controlat prin managementul reelei. Cele dou pot fi din punct de vedere hard-ware identice, dar difer din punct de vedere al soft-ului.
VC VC VC VP VP VP VP VC VC VC

Cale de transmisie

VP VP

Figura 3.4: Relaiile ntre VC, VP i cile de transmisie

Pagina 3.8

3. Reele ATM
5. Func]ii ale straturilor {i UNI B-ISDN se bazeaz pe modelul stratificat PRM prezentat n capitolul 2. Recomandarea ITU-T I.321 descrie funciile stratului fizic, stratului ATM i stratului de adaptare ATM. Aceste funcii sunt incluse n tabelul de mai jos. Funcii ale straturilor nalte Convergen Segmentare i reasamblare (S&R) Controlul fluxului generic Generare/extragere de antet celul Translarea celulelor VPI/VCI Multiplexare/demultiplexare celule Decuplarea ratelor celulelor Generarea/verificarea secvenei HEC Delimitarea celulelor Adaptarea cadrelor de transmisie Generarea/recuperarea cadrelor transmisiei Sincronizare de bit Mediul fizic CT - Convergena transmisiei MF - Mediul fizic Straturi nalte SC AAL S&R ATM

Managementul straturilor

CT

MF AAL - Stratul de adaptare ATM SC - Substratul de convergen

Pentru descrierea funciilor straturilor este necesar definirea unor termeni. Astfel, vom nelege prin celul idle (la nivelul stratului fizic) o celul inactiv care este inserat sau extras de ctre stratul fizic pentru a realiza adaptarea fluxului de celule la grania dintre stratul ATM i stratul fizic. Celul asignat (la nivelul stratului ATM) este celula ce ofer un serviciu unei aplicaii utiliznd stratul ATM. Funciile stratului fizic Stratul fizic este divizat n substratul mediului fizic i substratul de convergen a transmisiei. Substratul MF este cel mai inferior substrat i include numai funcii dependente de mediul fizic. Acesta ofer capabiliti pentru transmisia biilor, incluznd alinierea de bit. Codarea de linie i, dac este necesar, conversia electric-optic tot la nivelul acestui substrat este disponibil. n multe cazuri, mediul fizic poate fi fibra optic, dar la fel de bine poate fi i cablu coaxial sau cablu cu o pereche de fire rsucite. Funciile de transmisie sunt specifice mediului. Funciile de sincronizare de bit urmresc generarea i recepia formelor de und care sunt potrivite fiecrui mediu, inserarea i extragerea informaiei de sincronizare i codarea de linie dac este necesar. Substratul de convergen a transmisiei realizeaz cinci funcii. Cea mai inferioar funcie este generarea i recuperarea cadrelor de transmisie. Adaptarea cadrelor transmisiei este responsabil de aciunile ce sunt necesare pentru adaptarea fluxului de celule la structura ncrcturii informaionale a sistemului de transmisie n direcia de transfer. n cealalt direcie este extras fluxul de celule din cadrul transmis. Cadrul poate fi echivalentul celulei (fr a utiliz o ierarhie structural superioar), al unei ierarhii digitale sincrone (SDH) sau al unei structurri conforme Recomandrii ITU-T G.703. n cazul BISDN UNI, ITU-T propune utilizarea unei ierarhii sincrone sau a unei structuri echivalente celulei.

Pagina 3.9

Startul fizic

3. Reele ATM
Delimitarea celulelor este mecanismul prin care receptorul reface graniele celulelor. Acest mecanism este descris n Recomandarea ITU-T I.432. Generarea secvenei HEC se face n sensul de transmitere. Secvena HEC este introdus n cmpul rezervat ei n interiorul antetului. La recepie, valoarea este recalculat i comparat cu valoarea primit. Dac este posibil, erorile de antet sunt corectate, altfel se renun la celul. n sensul de transmitere, mecanismul de decuplare de rat a celulelor introduce celule idle pentru a adapta rata celulelor ATM la capacitatea de ncrcare informaional a sistemului. La recepie mecanismul suprim toate celulele idle. Funciile stratului ATM Caracteristicile acestui strat sunt independente de mediul fizic. Au fost identificate la acest nivel patru funcii. La transmisie, celule din VP-uri i VC-uri independente sunt multiplexate ntr-un flux de celule rezultant, prin intermediul funciei de multiplexare a celulelor. n mod normal, fluxul compozit este discontinuu. La recepie, funcia de demultiplexare a celulelor opereaz separarea fluxului de celule recepionat n fluxuri de celule individuale corespunztoare VP i VC. Translarea VPI i VCI este realizat n nodurile de comutaie ATM cu switch-uri i/sau n mod cross-connect. n interiorul unui nod VP valoarea VPI este translat pentru fiecare celul sosit ntr-o nou valoare VPI pentru celule de la ieire. Funcia de generare/extragere de antet al celulei este aplicat la punctele terminale ale stratului ATM. La transmisie, dup ce a fost primit de la stratul AAL cmpul informaional, este adugat antetul celulei ATM, fr valoarea HEC. Valorile VPI/VCI pot fi translate prin identificatorul SAP. n direcia cealalt, funcia de extragere scoate antetul celulei. Numai celulele din cmpul de informaie sunt trecute n stratul AAL. Aceast funcie poate de asemenea transla un VPI/VCI ntr-un identificator SAP. Funcia de control al fluxului generic (GFC) este definit numai pentru B-ISDN UNI i suport controlul fluxului de trafic dintr-o reea client. Funciile stratului de adaptare ATM AAL este subdivizat n substratul de segmentare i reasamblare (S&R) i substratul de convergen. Funciile stratului AAL sunt descrise n Recomandarea ITU-T I.362. AAL este situat ntre stratul ATM i straturile superioare. PDU-urile straturilor superioare sunt mapate n cmpurile informaionale ale celulelor ATM. Entitile AAL schimb informaii cu entiti AAL echivalente din alte sisteme, realiznd funcii AAL. Funciile eseniale ale substratului S&R sunt, la transmisie, segmentarea PDU-urilor de rang superior n mrimi potrivite pentru cmpul informaional al celulei ATM (48 octei) i, la recepie, reasamblarea cmpurilor informaionale particulare n PDU-uri superioare. Substratul de convergen este dependent de serviciu i pune la dispoziie servicii AAL prin AAL-SAP. La nivelul straturilor superioare, printre alte funcii, se asigura i maparea la protocoale internet TCP/IP, ca i la protocoalele reelelor frame relay (FR). FR a aprut ca o dezvoltare a ISDN, dar la implementarea fizic au existat probleme, spre deosebire de ISDN, FR suportnd conexiuni virtuale permanente. Acum FR suport conexiuni virtuale comutate, dar a rmas implementat la nivel de LAN. FR este o tehnic orientat conexiune ce prezint avantajele unei rutri rapide i directe, o unor ntrzieri reduse i a unei utilizri eficiente a resurselor. Pentru a minimiza numrul de protocoale AAL, ITU-T a propus o clasificare a serviciilor AAL, conform urmtorilor parametri: Sincronizare; Rata de bit; Modul conexiunii.

Pagina 3.10

3. Reele ATM
n tabelul de mai jos sunt prezentate combinaiile i clasele AAL posibile. Clas A Clas B Clas C Clas D Sincronizarea surs-destinaie Necesar Nu se cere Rat de bit Constant Variabil Mod de conectare Prin conexiune Fr conexiune n continuare prezentm cteva exemple de servicii din diferite clase: Clas A: aplicaii cu rat de bit constant audio/convorbiri, emulri circuite, video de rat debit constant; Clas B: aplicaii cu rat de bit variabil aplicaii n timp real, precum audio sau video comprimat; Clas C: servicii de date de tip conexiune; Clas D: servicii de date fr conexiune; Clas X: servicii nerestricionate de rate de bit sau mod de transmisie. n B-ISDN sunt definite patru categorii de protocoale AAL specifice: AAL tip 1: utilizat n aplicaii de clas A; AAL tip 2: utilizat n aplicaii de clas B; AAL tip : pentru a fi utilizate n servicii de date de clase C i D (iniial tipurile 3 i 4 au fost separate); AAL tip 5: o funcie AAL simplificat de nivel mai jos utilizat att n planul utilizatorului (suportnd de exemplu TCP/IP) ct i n planul de control. B-ISDN UNI exploateaz pe deplin flexibilitatea ATM. Astfel, informaia ce este transferat de interfa este structurat n celule ATM. Nici o celul nu este pre-asociat aplicaiilor specifice ale utilizatorului; utilizarea celulelor se poate modifica dinamic n interfa. Ratele de bit au fost specificate pentru stratul fizic al interfeei a fi 150Mbii/s i 600Mbii/s. Trebuie reinut c ratele de bit disponibile utilizatorului sunt puin mai reduse datorit informaiilor suplimentare necesare operrii stratului fizic, ATM i AAL. Interfaa de 150Mbii/s este simetric din punctul de vedere al ratei de transmisie, oferind 150Mbii att n direcia utilizator-reea ct i reea-utilizator. Acest tip de interfa va fi folosit cu precdere pentru servicii interactive, precum telefonia, videotelefonia i servicii de date. Extinderea unei astfel de interfee la rate de bit mai mari apare n mod natural. A fost astfel conceput o interfa simetric de 600Mbii/s. Utilizatorii care au trafic mare doar n sensul reea-utilizator au la dispoziie o interfa asimetric de 600Mbii/s. Aceast interfa ofer 600Mbii/s de la reea la utilizator, iar n sensul utilizator-reea ofer 150Mbii/s. Aceasta este potrivit unui utilizator rezidenial de exemplu, care dorete s i se difuzeze mai multe canale de televiziune, dar este mai puin interesat de serviciile interactive. Au fost definite interfee pe dou rate de bit, din dou motive: necesitatea unui numr destul de restrns de interfee, pe de o parte, i costurile efective ale interfeelor, pe de alt parte. Ratele de bit ale interfeei la nivelul stratului fizic sunt: 155,520Mbii/s i 622,080Mbii/s. Capabilitatea de transfer a interfeei la nivelul straturilor superioare stratului fizic este de 149,760Mbii/s, respectiv 599,040Mbii/s (=4x149,760). n stadiile nceptoare ale dezvoltrii unei reele B-ISD se pot defini din motive economice i alte interfee cu rate de transfer mai mici. Aceste rate de bit sunt identice ratelor minime de bit ale SDH, conform Recomandrii ITU-T G.707. SDH este o ierarhie de transmisie adoptat n 1988, bazat pe conceptul numit reea optic sincron nord-american (SONET), dezvoltat n scopurile: De a stabili un standard pentru transmisiile optice, venind astfel n ntmpinarea varietilor de implementri dependente de productor de sisteme i interfee de transmisii optice;

Pagina 3.11

3. Reele ATM
De a oferi faciliti de transmisie cu flexibilitate n adugarea sau renunarea la unele capabiliti n scopul simplificrii multiplexrii i demultiplexrii, n comparaie cu PDH deja existent; De a putea oferi o gam larg de semnale adiionale care au rolul de a facilita supravegherea modului de operare al reelei i implementarea aplicaiilor de ntreinere a reelei, care n PDH sunt realizate cu mare dificultate. SDH are flexibilitatea de a transporta diferite tipuri de semnale, precum canalele ISDN, n acord cu Recomandarea ITU-T I.412, sau celulele ATM. Aadar, SDH, fiind un concept universal de transmisie, a fost propus ca structur de interfa B-ISDN. O astfel de implementare a UNI are avantajul unei compatibiliti depline cu NNI. Aceasta evit celelalte conversii necesare ale semnalelor care sunt trimise de un utilizator prin reea ctre ali utilizatori. Aceast proprietate este extrem de util, mai ales n fazele incipiente ale implementrii fizice a B-ISDN, cnd nu exist nc o infrastructur complet. Totui, utilizarea B-ISDN UNI bazat pe SDH are i o serie de inconveniente. n principal o serie din semnalele suplimentare generate n SDH, ca i o serie de funcii cerute de SDH sunt inutile pentru o UNI structurat n celule. De asemenea, inseria celulelor ATM de la mai multe terminale ntr-un cadru SDH printr-o configuraie pasiv este aproape imposibil pentru transmisii lungi, datorit ntrzierilor variate individuale i a ratelor de bit mari implicate. Din aceste motive au fost standardizate dou interfee: una bazat pe SDH i una bazat pe multiplexare de celule. Dei pentru interfaa bazat pe structuri celulare nu exist limitri n privina alegerii ratelor de bit, totui ITU-T a adoptat aceleai rate de bit pentru ambele tipuri de interfee pentru a uura conlucrarea ntre reele bazate pe UNI SDH i respectiv pe UNI celular.

Cadru de octei i semnalizare suplimentar

Celul ATM UNI bazat pe SDH

125 s

Celul ATM

Celul semnalizri suplimentare UNI celular

Figura 3.5: Opiuni n realizarea UNI

Pagina 3.12

3. Reele ATM
6. Aspecte ale IN Conceptul de reea inteligent (IN) nu a fost dezvoltat pentru B-ISDN, ns treptat va fi inclus n B-ISDN. IN ofer servicii sau componente ale acestora ce pot fi cu uurin combinate dup dorina utilizatorului. IN necesit proceduri dezvoltate de semnalizare, control asupra serviciului efectiv i managementul datelor serviciului. Conceptul de IN pentru crearea i procurarea de servicii este caracterizat de: utilizarea extensiv a tehnicilor de procesare a informaiei; utilizarea eficient a resurselor reelei; modularitatea funciilor de reea; crearea i implementarea serviciilor integrate prin intermediul reutilizrii funciilor standard ale reelei; alocarea flexibil a funciilor reelei entitilor fizice; portabilitatea funciilor reelei n entitile fizice; standardizarea comunicaiilor ntre funcii ale reelei prin intermediul interfeelor independente de servicii; accesul ofertantului de serviciu la procesul de desfurare a serviciului prin combinarea de funcii ale reelei; controlul serviciului subscris asupra atributelor specifice sale; managementul standardizat a logicii serviciului. Funciile cerute de ctre IN i diviziunile acestora n entiti funcionale sunt ilustrate n figura 3.6. Principiul de baz este distribuirea controlului serviciului ntre call control / comutatare i unitatea de control a serviciului. Pentru a evidenia acest concept, n figura 3.7 este redat un exemplu despre cum pot fi mapate aceste funcii n entiti fizice ale reelei de telecomunicaii. Unitatea call control / comutare servicii este localizat n centrul de comutaie care utilizeaz tabele de comutaie spre a determina dac poate el nsui stabili o legtur sau trebuie s predea controlul punctului de control serviciu (SCP). Centralele (centrele de comutaie) in legtura cu SCP prin reeaua de semnalizare (de exemplu SS7, dup cum indic i figura 3.7).
Management serviciu Datele serviciului

Control serviciu Resurse speciale

Comutare servicii Agent "Call Control" "Call Control"

Figura 3.6: Entitile funcionale ale IN

Pagina 3.13

3. Reele ATM
Funciile resurse speciale (SRF) (localizate n acest exemplu n terminalul (perifericul) inteligent) pot oferi conversii de protocoale, recunoateri vocale, sinteze vocale, .a. SCP conin logica serviciilor IN i mnuiesc procesarea acestor servicii. Ele utilizeaz funcia date serviciu (SDF), care ofer acces asupra tuturor datelor necesare referitoare la serviciu i de asemenea realizeaz verificri ale consistenei datelor. n fine, funcia de management a serviciului (SMF) implic controlul managerial al serviciilor, controlul ofertei de servicii i a desfurrii serviciului. Exemple de funcii de control managerial sunt: colecii de statistici ale serviciilor, raportarea utilizrii de numere telefonice inexistente sau raportarea unui acces neautorizat. Controlul oferirii de servicii implic operarea i administrarea serviciilor oferite (crearea de noi abonai, modificarea listelor de subscriere, etc.). Controlul desfurrii serviciilor este invocat atunci cnd un nou serviciu este introdus n reea; se ocup cu alocarea logicii serviciului, definiii de rutare i semnalizare, introducerea de date ale serviciului, alocarea capabilitilor de comutare, alocarea componentelor de servicii speciale, .a.m.d.
Workstation

Punct management serviciu SMF

Punct control serviciu SCF SDF

Punct control serviciu SCF

Punct date serviciu SDF

Reea SS7

Centru de comutaie local CCF SSF CCAF

Periferic inteligent SRF

Centru de comutaie de tranzit CCF SSF SRF

Centru de comutaie local CCAF

Figura 3.7: Exemplu de mapare a funciilor IN n entiti fizice

Pagina 3.14

3. Reele ATM
Serviciile oferite de ctre IN se pot mpri n trei categorii, conform capabilitilor cerute de acestea reelei: servicii B (apelat), servicii A+B (implicnd att utilizatorul apelant ct i pe cel apelat) i servicii interactive. ntre aceste servicii menionm din prima categorie serviciul green number, n care costul legturii este suportat de ctre abonatul apelat. Din categoria a doua merit menionate: posibilitatea taxrii unui alt numr dect cel iniiator al legturii, ca i posibilitatea utilizrii unei reele virtuale private dedicate, ce ofer facilitile unei reele publice. Din categoria a treia lum de exemplu serviciul green number interactiv, mesagerie vocal i diferite faciliti i componente ce ajut utilizatorul n realizarea legturii. Un alt domeniu de aplicabilitate a IN este ceea ce tinde a fi telecomunicaiile personale universale (UPT). UPT transpun n realitate conceptul de reea cu identificare personal prin nlocuirea transparent a relaiilor statice ntre identitatea terminalului i identitatea abonatului cu o asociere dinamic a acestora i oferind astfel o mobilitate complet prin multiple reele. Scopul UPT este de a oferi servicii de telecomunicaii utilizator-utilizator cu identificare transparent (din punctul de vedere al reelei) a utilizatorului, cu mobilitate personal i cu posibilitatea taxrii pe baza identitii utilizatorului i nu a terminalului. Utilizatorii abonai la UPT trebuie s poat iniia sau prelua o legtur pe baza unui numr personal universal transparent reelei, prin mai multe reele, la orice tip de acces utilizatorreea. Capabilitile cerute reelei pentru a suporta UPT sunt descrise n Recomandarea ITU-T I.373. Serviciile IN pot fi oferite unor reele publice, inclusiv B-ISDN, cele dou tipuri de reele completndu-se reciproc, oferind de exemplu un control flexibil al serviciilor, pe de o parte iar pe de cealalt, un acces sporit utilizator-reea i o semnalizare intern reelei. innd cont i de capabilitile ridicate de transmisie i comutaie ale reelelor optice, prin aplicarea unor concepte specifice IN i sistemelor informatice, precum operarea cu obiecte comune distribuite i arhitectura CORB, oferta serviciilor B-ISDN este din ce n ce mai variat, iar accesarea lor mai facil.

Pagina 3.15

Capitolul 4
Modelul CORBA
1. Vedere de ansamblu asupra CORBA n anul 1989 a luat fiin o organizaie numit Grupul de Management al Obiectelor (OMG). Acest grup de iniiativ a elaborat i propus un standard arhitectural, denumit arhitectur cu obiecte comune purttoare ale cererilor de servicii (CORBA), punnd astfel bazele unui cadru de lucru robust, capabil s opereze cu platforme computaionale eterogene. CORBA constituie o specificaie pentru o tehnologie de management al obiectelor distribuite (DOM). Tehnologia DOM pune la dispoziie, la un nivel nalt, o interfa orientat obiecte pentru realizarea serviciilor computaionale distribuite. CORBA reprezint soluia principal n cadrul DOM, avnd un singur concurent, ntruchipat de ctre modelul cu obiecte componente distribuite (DCOM) al firmei Microsoft. DCOM, cunoscut formal sub denumirea de obiecte de legtur i inserare n reea (OLE), reprezint evoluia natural a modelului cu obiecte componente (COM). La nivelul su inferior, CORBA definete un cadru de lucru standard, cu ajutorul cruia implementatorii de sisteme informatice i software pot uor i repede integra module soft i aplicaii n scopul crerii de aplicaii noi, cu un grad de complexitate sporit. Se combin tehnologia orientat obiecte cu modelul client server, pentru a oferi o vedere asupra unui sistem informaional: orice entitate soft este implementat la nivel de obiect. La un nivel superior, specificaiile CORBA sunt receptate ca referind o arhitectur de management a obiectelor, care lucreaz cu patru elemente arhitecturale de baz evideniate n figura 4.1. Rolul ORB este de a ruta cererile prin interiorul diverselor componente arhitecturale. Serviciile CORBA reprezint un set de servicii de baz la nivel sistemic, precum denumirea, persistena sau anunarea unui eveniment. Facilitile CORBA sunt o serie de funcii de nivel nalt, care acoper o gam de faciliti generice aplicabile n arii precum interfaa cu utilizatorul sau managementul informaiilor. Domeniile CORBA specific cmpuri particulare de aplicaii, cum sunt procesele de producie, finanele i telecomunicaiile. n cele din urm, aplicaiile-obiectele ofer posibilitatea dezvoltrii unor noi capabiliti de afaceri, create de implementatorii de sisteme. Cheia integrrii aplicaiilor obiecte este specificarea interfeelor standard, folosind IDL. De vreme ce toate aplicaiile i datele posed interfee compatibile IDL, comunicarea devine independent de localizarea fizic, tipul platformei, protocolul de reea i limbajul de programare. Implementarea unui sistem informaional utiliznd CORBA prezint avantajul c aceast arhitectur faciliteaz intermedierea fluxului de control i informaii prin aceste obiecte soft.

Figura 4.1: Arhitectura de management a obiectelor

Pagina 4.1

4. Modelul CORBA
2. Concepte CORBA Fundamentarea teoretic a CORBA se bazeaz pe trei concepte importante: Modelare orientat obiect; Medii de computaie deschise i distribuite; Integrarea i reutilizarea componentelor. OMG a depus un efort considerabil pentru a dezvolta un model CORBA, orientat obiecte. Se cerea un model standard al acestei arhitecturi n vederea asigurrii consistenei implementrilor, deoarece n industria tehnicii de calcul i a telecomunicaiilor nu era adoptat un model unic i uniform de obiecte. Avantajele cheie ale CORBA sunt reprezentate de complexitatea macrosistemelor pe care le poate implementa i de posibilitatea reutilizrii componentelor. Conceptul de computaie deschis este asociat cu ntreaga industrie a calculatoarelor. Toate sistemele de afaceri moderne exploateaz o reea ce conine diverse calculatoare, facilitnd mbuntirea circulaiei informaiei ntre aplicaii. Mai mult, majoritatea aplicaiilor actuale exploateaz un mediu deschis, bazat pe conexiuni ntre platforme eterogene. n viitor se va continua evoluia spre aplicaii care exist ca i componente de sine stttoare n reea, dar care pot uor migra i se pot combina fr eforturi semnificative. Aici se poate reliefa rolul CORBA, care ofer acces uniform la aplicaii, indiferent de localizarea fiecrei aplicaii n cadrul reelei. Atu-urile acestei arhitecturi sunt accesul uniform la servicii, metode omogene de tratare a obiectelor i o politic de securitate, de asemenea uniform. Aceste capabiliti faciliteaz integrarea i reutilizarea sistemelor i a componentelor acestora, independent de locul n reea i de detaliile ce privesc tehnologia implementrii.

Figura 4.2 : Conceptul de orientare obiecte

Pagina 4.2

4. Modelul CORBA
3. Obiecte CORBA opereaz cu o serie de concepte fundamentale ale programrii orientate obiecte, reliefate i n figura 4.2. Aceste concepte sunt: Obiectele entiti soft ce conin atribute i-i etaleaz comportamentul prin metode. n termeni tradiionali, atributele pot fi gndite ca date i structuri de date, iar comportamentele ca seturi de operaii; Clasele grupri de obiecte care au un comportament comun; ncapsularea inserarea atributelor i comportamentelor n pachete soft bine-definite, cuprinznd structurile interne ale atributelor i detaliile de comportament la nivelul unei interfee publice; Motenirea capacitatea unei clase de a transmite atribute i comportamente descendenilor si prin derivare; Polimorfismul abilitatea a dou sau mai multe clase de a rspunde aceluiai mesaj, fiecare n mod diferit. Modelarea obiectelor n CORBA const n modelarea clasic orientat obiecte, n care clientul trimite un mesaj unui obiect. Mesajul identific obiectul i include unul sau mai muli parametri. Primul parametru definete operaia cerut a fi efectuat i totodat ajut obiectul receptor (care n anumite cazuri este chiar ORB) s determine metoda specific utilizat. Modelarea obiectelor n CORBA presupune clarificarea unor noiuni, precum: Obiecte entiti ncapsulate, care ofer servicii clientului; Cereri aciuni ale clientului direcionate asupra unui obiect int, care includ informaii despre operaia a crei ntreprindere se solicit i eventual parametrii necesari; Constructori i destructori de obiecte cu ajutorul acestora, pe baza strii cererilor, obiectele sunt create sau distruse; Tipuri sunt entiti identificabile, definite deasupra valorilor; Interfee specific operaiile pe care clientul i le poate solicita obiectului; Operaii reprezint entitile identificabile care definesc ce anume poate cere clientul obiectului. Implementarea obiectelor n CORBA, ilustrat n figura 4.3, se realizeaz conform unui tipar constnd din dou pri: modelul de construcie i modelul de execuie. Modelul de construcie descrie modul de definire a serviciilor, iar modelul de execuie descrie modul de realizare a serviciilor. Cu privire la modelul de construcie, definirea obiectului de implementat ofer informaiile necesare crerii obiectului i permite acestuia realizarea serviciilor, incluznd definirea metodelor i a tipului intenionat al obiectului. Modelul de execuie se asigur c serviciile solicitate sunt puse la dispoziie prin execuia codului de program ce opereaz asupra datelor disponibile.

Figura 4.3 : Modelul CORBA de implementare a obiectelor

Pagina 4.3

4. Modelul CORBA
4. Mediu computa]ional deschis {i distribuit CORBA este bazat pe modelul client-server al computaiei distribuite. n cadrul modelului client-server, solicitarea unui serviciu este realizat de la o component software la alta a reelei. CORBA adaug o component suplimentar acestui model prin inserarea unui broker ntre client i server. Broker-ul reduce complexitatea implementrii interaciunii ntre client i server. Broker-ul are dou roluri importante. n primul rnd, pune la dispoziie servicii comune, de interes general, inclusiv schimbul de mesaje i comunicaia la nivel bazal ntre client i server, servicii referitoare la descrierea meta-structurilor de date i a cilor, servicii privind securitatea i transparena locaiilor. n al doilea rnd, separ aplicaiile de configuraiile de sistem specifice, precum platformele hard i sistemele de operare, protocoalele de reea sau limbajele de implementare. CORBA se bazeaz pe un model de comunicaie punct-la-punct i este aplicabil att n comunicaii sincrone ct i ntr-o anumit msur n cele asincrone. Comunicaia fundamental ntre procese n CORBA este manipulat cu ajutorul protocolului general inter-ORB (GIOP), ce are rolul de a asigura inter-operabilitatea diverselor implementri ale ORB-urilor. De asemenea pentru maparea GIOP la TCP/IP, este definit un protocol internet inter-ORB. Un obiect broker (ORB) rezolv problemele de rutare a comunicaiei la apariia unei cereri, cel puin la fel de bine pe ct o fac modelele precedente de rspuns la cererile de servicii. Modelul de rutare cu ajutorul ORB este prezentat n figura 4.4. Noiunea de client refer obiectul care iniiaz o cerere de serviciu. Dac n timpul execuiei i rspunsului la cerere apare vreun eveniment anormal, clientului i este returnat o valoare de excepie, care menioneaz situaia creat.

Client

Obiect Implementare

DI

Schelete Stub-uri Interfee statice IDL IDL ORB

DS

Adaptoare pentru obiecte

Nucleu ORB
Figura 4.4 : Interfaa ORB Cererile pot fi att de natur static , ct i dinamic. Invocaiile statice sunt cereri care au fost pe deplin definite la momentul compilrii i sunt direcionate prin intermediul unei rdcini IDL (IDL stub) ctre un schelet IDL din domeniul serverului. Invocaiile dinamice ofer posibilitatea de adugare de noi obiecte i interfee fr a fi necesare modificri n codul softului client. Invocaiile dinamice cer utilizarea unei interfee specifice pentru invocaii dinamice (DI Interface), iar interfaa scheletului IDL pentru invocaii dinamice (DS Interface) este echivalentul componentei server.

Pagina 4.4

4. Modelul CORBA
5. Integrarea {i reutilizarea componentelor Cele dou concepte de reutilizare i integrare a softului sunt aproape ngemnate, de vreme ce prin integrare nelegem combinarea a dou sau mai multe componente deja existente. Fr nite instrumente i tehnici bine definite, integrarea este dificil i puin probabil, deoarece fr un plan comun sau fr obiecte broker, pentru fiecare interaciune ntre componente trebuie definite interfee specifice. Utiliznd obiecte de tip broker, fiecare interfa este definit o singur dat i secvene ale interaciunilor sunt mnuite de ctre brokeri. Cu ajutorul CORBA IDL, definirea acestor interfee se face ntr-un mod standardizat, independent de tipul de platform bord. Avantajul este resimit de ctre proiectantul de soft, prin micorarea semnificativ a complexitii componentelor pe care acesta le realizeaz.

CORBA

Figura 4.5 Interfaare CORBA Dup cum arat i figura 4.5, fr o utilizare de obiecte broker, interfaarea reprezint o problem matricial NxN, pe cnd utilizarea acestor obiecte reduce numrul de interfee la N. Avantajul modelului CORBA este evident dac lum n considerare costurile de extindere a unui sistem de ntindere i complexitate medie. Utiliznd soluia interfeelor obinuite, integrarea fiecrei componente adiionale presupune realizarea a N interfee noi, n timp ce n cazul CORBA este nevoie de dezvoltarea unei singure interfee noi, dup cum reiese din figura 4.6. Pentru a facilita integrarea rapid a componentelor, obiectele broker se extind n scopul includerii mai multor servicii. Astfel au aprut, pentru completarea serviciilor puse la dispoziie, aa numitele depozite de interfee CORBA i depozite de implementri care vin n ajutorul proiectanilor de soft n rsfoirea, selectarea i localizarea obiectelor n orice mediu de proiectare i la orice moment. Mai mult, n vederea mbogirii acestor utiliti se urmrete extinderea permanent a tuturor componentelor CORBA , n spe a serviciilor, facilitilor i domeniilor CORBA.

Interfaare obinuit

CORBA

CORBA

Adugarea unei componente noi

Figura 4.6

Pagina 4.5

4. Modelul CORBA
6. Limbaj de definire a interfe]elor Limbajul de Definire a Interfeei (IDL) adoptat de Grupul de Management a Obiectelor (OMG) este unul dintre cele mai utile instrumente disponibile unui inginer software, fiind un element important al standardului CORBA. IDL cuprinde notaiile universal valabile pentru interfeele programelor aplicaie (API) i contureaz grania ntre codul programului-client i obiectele-implementri (sau servicii). OMG IDL a fost standardizat n 1991 i recunoscut i de ctre ISO (ISO DIS 14750). IDL este independent de limbaj, suportnd legturi multiple cu diferite limbaje ntro singur specificaie IDL. ntre aceste limbaje sunt incluse C, C++, Java, SmallTalk, Ada95, i altele. Proiectanii de software descriu interfeele software n OMG IDL dup ce n prealabil au scris codul pentru limbajele de programare respective. IDL ofer i independen fa de platforma de lucru. Din cauza standardizrii limbajelor de programare, interfeele specificate n IDL vor fi prezentate consistent fiecrui obiect utilitar (ORB) sau platforme. Ceea ce poate diferi de la o platform la alta sunt interfeele definite de productor, precum sistemele de operare i interfeele de dialog cu utilizatorul (windowing interfaces). Astfel, att timp ct programatorii utilizeaz interfee definite n standardele OMG IDL, este greu de imaginat c pot ntlni probleme de portabilitate a platformelor, datorit utilizrii CORBA. IDL definete interfeele pentru obiecte bazate pe CORBA, dar altfel nu impune nici un fel de constrngere asupra implementrii obiectelor. Astfel, implementarea poate fi realizat n orice limbaj de programare, pe aceeai main sau pe maini diferite. Pentru implementare se pot folosi algoritmi sofisticai i cu performane ridicate sau algoritmi simpli. Clienii pot utiliza interfeele IDL fr s aib cunotin despre detaliile de implementare a obiectelor. Separarea strict ntre softul client i implementarea obiectelor este avantajul principal al CORBA. Aceasta permite reutilizarea softului i n consecin, reducerea numrului de blocuri soft. Din punctul de vedere al sintaxei i semanticii IDL, cele mai importante componente ale acestuia sunt modulele i interfeele. Modulele creeaz i denumesc zone de lucru pentru definiiile IDL. Acest lucru previne potenialele conflicte n denumirea identificatorilor folosii n diferite domenii. Modulele pot fi definite unele n celelalte, dar aceast utilitate nu este folosit n practic pentru evitarea complicaiilor. Uzual, fiecare modul include una sau mai multe interfee i definiiile de tip asociate acestora. Spre deosebire de interfee, modulele nu suport moteniri de la alte module. Interfeele IDL definesc n detaliu obiectele distribuite. Fiecare interfa definete un nou tip de obiect. Esena interfeelor o constituie descrierea operaiilor obiectelor, prin parametri ce vor reprezenta puncte de intrare pentru cererile de servicii. Un alt mod de a privi o interfa IDL este c aceasta specific grania soft dintre implementarea serviciilor i clieni. IDL declar prin intermediul interfeelor numai ceea ce are de expus, restul detaliilor fiind ascunse. Dup cum am menionat anterior, interfeele pot moteni de la alte interfee chiar seturi ntregi de definiii, dar trebuie avut n vedere faptul c redefinirea identificatorilor motenii poate fi o surs de conflicte soft. IDL este utilizat n definirea de interfee semnificative pentru sistemele n care se aplic, cum ar fi interfee de subsisteme, interfee de librrii, .a.m.d. Aceste interfee reprezint puncte de proiectare ce sunt refolosite n multe alte subsisteme, astfel nct modificri la acest nivel vor afecta multiple module soft implementri ale obiectelor, sisteme i clieni. Din aceste considerente este vital tratarea interfeelor IDL cu maxim atenie i conceperea lor n scopul unei utilizri ct mai diverse. Iat de ce limbajul de definire a interfeelor este considerat ca fiind instrumentul de baz al arhitecturii cu obiecte comune purttoare ale cererilor de servicii (CORBA).

Pagina 4.6

4. Modelul CORBA
7. Evolu]ia B-ISDN spre CORBA
n B-ISDN stabilirea unei legturi ntre dou terminale (calculatoare echipate cu cartele ATM) se face prin intermediul centrului de comutaie prin softul de comand i control (call-control), semnalizrile fcndu-se pe un canal de semnalizare #0.5, sub form de mesaje. Centrul de comutaie interpreteaz n mod standard canalul #0.5 (VPI=0 i VCI=5) ca fiind canal de semnalizare, standard pe care i utilizatorii sunt nevoii s-l respecte. Mesajele sunt interpretate de unitatea call-control, care le nelege i ia deciziile necesare pentru stabilirea i controlul legturii. n acest caz, centrul de comutaie este opac utilizatorului, avnd un soft de comand i control prestabilit i fix. O soluie care a fost supus ateniei specialitilor este prezentat n continuare. Se implementeaz pe o staie de lucru un soft Parser care s analizeze semnalele sub form mesaje vehiculate de reea. Semnalizrile se fac de aceast dat pe alt canal dect #0.5 i sunt transparente pentru centrul de comutaie, care nu nelege dect c trebuie s predea legtura parserului. Acesta analizeaz i interpreteaz mesajele, ns spre deosebire de unitatea call-control din centrul de comutaie, nu se rezum la stabilirea i controlul legturii cu un alt terminal, ci apeleaz metode CORBA de pe o alt platform, pe care este implementat un soft de comand i control call-control CORBizat. n figura 4.7 este ilustrat aceast soluie, iar n Anexele 1-4 este prezentat o parte din implementarea n C++ a unui Parser, i anume Parser2.cpp, Parser3.hpp, Parser4.hpp i Parser5.hpp; interfaa IDL i Parser1.hpp fiind prezentate n lucrarea proiect de diplom a studentului Ciprian Coma.

IN - Re]ele Inteligente
CORBA IP INAP

"CORBized Call Control"


Work Station

CORBA IP

SCP - Service Control Point

BCSM - Basic Call State Manager Q.2931 Network

CORBA IP

Telnet IP
TE "Echipament Terminal"
Q.2931 User

Client PC cu cartel ATM

"Call Control"

Canal ATM

ATM

Work Station

TE "Echipament Terminal"
Q.2931 User

Client ATM PC cu cartel Data Channel "Switch in Cross-Connect ATM


Mode"

Centru de Comuta]ie

ATM

Parser

Figura 4.7

Pagina 4.7

Capitolul 5
Mesajele Q.2931, ale UNI B-ISDN
1. Generalit]i B-ISDN urmeaz principiul semnalizrii n afara benzii care a fost stabilit pentru ISDN bazat pe transmisii de 64Kbii/s, unde canalul fizic D, de semnalizare, a fost specificat. n B-ISDN conceptul de canal virtual (VC) ofer mijlocul logic de a separa canalele de semnalizare de canalele utilizatorului. Un utilizator poate acum avea entiti multiple de semnalizare conectate la unitatea managerial de control a apelurilor (call control - CC) prin conexiuni separate de canale virtuale (VCC). Actualmente, numrul de canale de semnalizare i ratele de bit alocate acestora pot fi alese n B-ISDN astfel nct s satisfac optim necesitile utilizatorilor. B-ISDN trebuie s fie capabil s suporte att aplicaii ale 64kbii ISDN, ct i noile servicii de band larg. Aceasta nseamn c funciile de semnalizare existente n ISDN n conformitate cu Recomandarea ITU-T Q.931 trebuie incluse n capabilitile de semnalizare ale B-ISDN. Pe de alt parte, natura B-ISDN reeaua de transport ATM i tendinele evoluioniste din comunicaii impun apariia unor noi elemente de semnalizare. Capacitile de semnalizare ale B-ISDN trebuie s fie realizate astfel nct s poat: S stabileasc, s menin i respectiv s elibereze conexiunile VC ATM pentru transferul informaiei; S negocieze (i probabil s renegocieze) caracteristicile traficului conexiunii. Celelalte cerine ale semnalizrii n principiu nu sunt datorate ATM, dar sunt o reflectare a faptului c tot mai multe i mai puternice concepte de servicii devin fezabile. Exemple sunt apelurile multi-conexiune i apelurile multi-parteneri. n legturile multi-conexiune sunt stabilite cteva conexiuni pentru a construi un compozit ce poate cuprinde, de exemplu voce, date i imagini, care s fie vehiculat ntre dou sau mai multe echipamente terminale ale reelei. De asemenea trebuie s fie posibil ntreruperea uneia sau a mai multor conexiuni sau adugarea unor conexiuni noi. Deci reeaua necesit corelarea conexiunilor legturii. n acelai timp, trebuie s fie posibil i eliberarea ntregii legturi. Aceste funcii trebuie realizate n echipamentele terminale originatoare i destinatare, pentru ca nodurile de tranzit s nu fie suprancrcate cu astfel de sarcini. O legtur multi-parteneri conine mai multe conexiuni ntre mai mult de dou echipamente terminale (conferin). Pentru a stabili sau elibera o astfel de legtur sau pentru adugarea unui nou partener sunt necesare o serie de semnalizri. Trebuie menionat c o legtur multi-parteneri poate fi n acelai timp i o legtur multi-conexiune. n mediile de band larg sunt foarte importante conexiunile asimetrice (n care ntr-un sens limea benzii este redus sau nul, iar celuilalt sens de comunicaie i este alocat o band mare de frecvene); astfel sunt necesare elemente de semnalizare care s favorizeze astfel de conexiuni. O alt situaie ce-i pune amprenta asupra mesajelor de semnalizare o constituie conlucrarea B-ISDN cu alte reele non-B-ISDN. n B-ISDN semnalizrile se fac n afara benzii, pe canale dedicate, numite canale virtuale de semnalizare (SVC). Un exemplu este prezentat n tabelul urmtor. Tipul SVC Directivitatea Numrul de SVC Canal de meta-semnalizare Bidirecional 1 SVC de difuzare general Unidirecional 1 SVC de difuzare selectiv Unidirecional Posibil cteva SVC punct-la-punct Bidirecional Unul pentru fiecare punct terminal

Pagina 5.1

5. Mesajele Q.2931, ale UNI B-ISDN


Trebuie s existe cte un canal virtual de meta-semnalizare (MSVC) pentru fiecare interfa. Acest canal este bidirecional i permanent. Este un fel de canal de management al interfeei utilizat pentru stabilirea, verificarea i eliberarea SVC punct-la-punct i de difuzare selectiv. De vreme ce MSVC este permanent, un canal de semnalizare punct-la punct este alocat pentru semnalizarea punctului terminal numai att timp ct acesta este activ. Canalele de semnalizare punct-la-punct sunt bidirecionale i sunt folosite n stabilirea, controlul i eliberarea VCC spre a asigura transportul datelor utilizatorului (att VCC ct i VPC pot fi stabilite i fr utilizarea acestor proceduri de semnalizare, de exemplu prin subscriere). SVC de difuzare (BSVC) sunt unidirecionale (numai de la reea ctre utilizator). Acestea sunt folosite pentru a trimite mesaje de semnalizare fie tuturor punctelor terminale ale reelei client cazul difuzrii generale, fie numai anumitor terminale, conform opiunilor acestora cazul difuzrii selective. n configuraiile de semnalizare a accesului punct-la-punct poate fi utilizat un canal virtual de semnalizare pre-existent. Din contra, n configuraii punct-la-multipunct metasemnalizarea este cerut pentru administrarea SVC-urilor. Protocolul de semnalizare al stratului 3 pentru B-ISDN este descris n Recomandarea ITU-T Q.2931. Referind S-AAL, Q.2931 include specificaii pentru mesajele de semnalizare, elementele informaionale i procedurile de comunicaie ntre punctele terminale de semnalizare ale B-ISDN UNI. Deoarece Q.2931 este bazat pe specificaiile de semnalizare ale stratului 3 pentru transmisiile pe 64kbii/s, el ofer aceleai funcii pentru B-ISDN ca i cele disponibile pentru ISDN pe 64kbii/s. Totui, Q.2931 este diferit de protocolul Q.931 (pentru N-ISDN), utiliznd un nou discriminator de protocol (Protocol Discriminator) pentru semnalizarea B-ISDN. Structura Q.2931 este n coresponden direct cu structura Q.931. Majoritatea procedurilor au fost transferate n de la Q.931 la Q.2931, cu o serie de modificri, mai ales pentru procedurile de stabilire a legturii i de eliberare a acesteia. Exist dou motive principale pentru aceste modificri: Adaptarea la noul mod de transfer ATM; Disponibilitatea pentru alte modificri ce permit evoluia protocolului de semnalizare. Adaptarea la noul sistem de transmisie B-ISDN se refer n special la descrierea serviciilor purttoare (bearer). O nou BBBCap a fost dezvoltat pentru descrierea acestor servicii. Utilizatorul poate selecta ntre diferite clase AAL i protocoalele de comunicaie respective dup necesiti. A fost conceput un element nou informaional (IE) pentru descrierea atributelor planului utilizator al conexiunii AAL aleas de utilizator. Vechiul identificator de canal din Q.931 i pierde sensul i este nlocuit de un nou IE numit identificator de conexiune (Connection Identifier - ConnId ). Acesta conine VPCI (identificatorul conexiunii VP) i VCI. VPCI identific ntreaga conexiune VP, pe cnd VCI identific numai legtura VP. Utilizarea VPCI n ConnId IE este necesar deoarece utilizatorul poate fi conectat printr-o reea VP cross-connect la centrul de comutaie local. O reea de VP este controlat de managementul reelei i nu de semnalizri. (Un punct terminal de semnalizare recunoate numai VPI-ul propriu i nu i VPI-urile ale terminalelor de semnalizare asociate). Modificrile prezentate sunt cele majore prin trecerea de la semnalizarea pentru NISDN la cea pentru B-ISDN. Oricum i alte pri ale procedurilor i mesajelor au trebuit modificate i adaptate. Dei majoritatea seamn cu procedurile Q.931, au mai trebuit operate unele modificri i pentru a se deschide calea viitoarelor evoluii ale B-ISDN, ct i pentru a se asigura conlucrarea ntre reele bazate pe Q.2931 i reele bazate pe protocolul de semnalizare Q.931.

Pagina 5.2

5. Mesajele Q.2931, ale UNI B-ISDN


2. Capabilit]i reglementate prin Q.2931 Procedurile stratului 3 se aplic structurilor de interfee definite n Recomandarea ITU-T I.413. Acestea utilizeaz funcii i servicii oferite de stratul 2. Procedurile stratului 3 solicit servicii stratului 2 i primesc de la acesta informaii prin intermediul primitivelor definite n Recomandarea Q.2310. n cele ce urmeaz vor fi prezentate capabilitile reelei suportate de Q.2931. 1). Stabilirea de conexiuni prin canale (n comutaie virtual) la cerere se face n timp real folosind proceduri de semnalizare. Conexiunile solicitate pot rmne active pentru un timp, dar n caz de eroare pe reea, acestea nu se refac automat. Din contra, conexiunile permanente sunt cele care sunt setate i stabilite prin oferirea serviciului respectiv. n general, conexiunile permanente rmn active pentru perioade mai mari de timp i n cazul unei erori a reelei, ele se restabilesc automat. 2). Legtura punct-la-punct este o colecie conexiuni de canale virtuale sau ci virtuale asociate ATM, ce conecteaz dou terminale. 3). Sunt suportate conexiuni bidirecionale att simetrice ct i asimetrice, care pot adic avea limi de band diferite n sensul nainte i respectiv napoi. 4). Recomandarea Q.2931 suport o singur conexiune pe apel. 5). Protocolul de semnalizare suport urmtoarele funcii ale UNI: Setarea Call/Connection este acel aspect al protocolului care suport stabilirea unei conexiuni (call/connection) ntre doi parteneri diferii; cuprinde Cererea Call/Conection i Rspunsul Call/Conection. Cererea Call/Connection aceast funcie a protocolului permite apelantului s cear stabilirea unei conexiuni cu un anumit destinatar; n cerere apelantul precizeaz date informaionale privind conexiunea. Rspunsul Call/Connection aceast funcie permite apelatului s dea curs unei cereri de conexiune sosit; acesta poate include la rndul su n rspuns, informaii referitoare la conexiune (refuzarea unei cereri de legtur face parte din Eliberarea Call/Connection). Eliberarea Call/Connection permite unuia dintre partenerii unei legturi s iniieze eliberarea legturii respective; de asemenea, se permite unui destinatar s refuze includerea sa n legtura respectiv. Motivul eliberrii aceast funcie permite celui ce solicit eliberarea legturii s precizeze cauza deciziei sale. Semnalizarea n afara benzii aceast funcie specific faptul c informaia de control a call/connection este vehiculat pe un canal separat de cele pe care sunt vehiculate datele informaionale utile ntre terminale (de exemplu, o valoare specific VPCI/VCI n spe 0/5 este rezervat pentru canalul de semnalizri i control al call/connection). 6). Recomandarea Q.2931 suport clasele informaionale A, C, X. Serviciile din clasa A sunt servicii de transport ATM orientate conexiune, de rat de bit constant. Un serviciu de clas A are cerine de sincronizare i poate de asemenea avea cerine stringente n ceea ce privete performanele referitoare la pierderile de celule, ntrzierile celulelor i variaiile acestor ntrzieri. Utilizatorul alege banda dorit i QOS-ul corespunztor n mesajul Setup pentru stabilirea unei conexiuni de clas A. Serviciul de clas C este un serviciu de transport ATM, orientat conexiune, de rat de bit variabil. Un serviciu de clas C nu are cerine de sincronizare punct-la-punct. Utilizatorul alege banda dorit i QOS prin intermediul IE din mesajul Setup pentru stabilirea unei conexiuni de clas C. Serviciul de clas X este un serviciu de transport ATM, orientat conexiune, n care AAL, tipul de trafic (VBR i CBR) i cerinele de sincronizare i temporizare sunt definite

Pagina 5.3

5. Mesajele Q.2931, ale UNI B-ISDN


de ctre utilizator. Utilizatorul alege, pentru stabilirea unei conexiuni de clas X, numai banda i QOS dorite prin IEs corespunztoare din mesajul Setup. 7). Este suportat negocierea (cererea i indicaia) unor parametri de semnalizare (de exemplu parametrii AALParam i BBLLInf ). 8). Suportul VPCI este calea de identificare VP, cu meniunea c are loc o mapare unu-la-unu ntre VPCI i VPI. Semnalizarea acestui protocol: Precizeaz identificarea VPC (utiliznd VPCI) i VCC (utiliznd VCI n interiorul VP); Include negocieri ale VCI. 9). Pentru semnalizarea n afara benzii n fiecare VPCI punct-la-punct este rezervat valoarea VCI = 5. Metasemnalizarea i canalele pentru semnalizarea difuzrii de programe TV nu sunt reglementate de aceast recomandare. 10). Corectarea erorilor include: Proceduri detaliate de mnuire a erorilor, incluznd mijloace de semnalizare pentru ca o entitate de semnalizare s informeze perechea sa cnd a ntlnit o eroare non-fatal (insuficient pentru a determina eliberarea legturii); Proceduri pentru corectarea erorilor determinate de resetarea sau eecul semnalizrii AAL; Mecanisme pentru ca entitile de semnalizare s schimbe informaii de stare pentru apeluri i interfee; Capabiliti de forare, n caz de intervenii manuale sau erori de server, a apelurilor, VCC i interfeelor s treac ntr-o stare idle; Precizarea cauzelor i a informaiei de diagnostic n cazul eliberrii conexiunii sau erorilor non-fatale; Mecanisme (precum sincronizarea i procedurile asociate) pentru corectarea informaiei n caz de pierderi de mesaje individuale. 11). Adresarea public a UNI ATM urmrete stabilirea unui format de numere pentru adresele ATM astfel nct punctele terminale ntr-o conexiune s poat fi identificate fr ambiguiti. 12). Identificarea parametrilor de compatibilitate punct-la-punct urmrete: Tipul AAL (de exemplu 1, sau 5); Metoda de multiplexare a protocolului i parametrii AAL; Pentru multiplexare bazat pe VC, protocolul de ncapsulare; Protocoalele stratului reea. 13). Semnalizarea conlucrrii cu N-ISDN i oferirea de servicii N-ISDN are la baz urmtoarele aspecte: B-ISDN trebuie s poat oferi i servicii N-ISDN; Reeaua ofertant de serviciu nu tie dac cererea de serviciu N-ISDN vine din partea unei reele N-ISDN sau B-ISDN (este cunoscut numai serviciul solicitat, nu i protocoalele suportate de reeaua solicitant); Semnalele de conlucrare ntre reele trebuie s fie ct mai simple pentru a evita pe ct posibil conversiile de protocoale. Pentru consecven, serviciile N-ISDN n mediu B-ISDN se supun urmtoarelor reguli: Entitile informaionale ce au semnificaie punct-la-punct trebuie indicate utiliznd versiuni pentru band ngust (de exemplu: NBHLComp, NBHLComp i nu BBLLComp, BBHLComp); Entitile informaionale cu semnificaie global pentru serviciul cerut trebuie s fie indicate folosind att versiunile pentru band ngust ct i pentru band larg. 14). Protocolul de semnalizare este structurat astfel nct eventuala compatibilitate cu versiuni ulterioare s poat fi cu uurin realizat.

Pagina 5.4

5. Mesajele Q.2931, ale UNI B-ISDN


3. Structura de mesaje a Q.2931 Recomandarea ITU-T Q.2931 prezint o descriere att a mesajelor pentru realizarea apelului i pentru stabilirea conexiunii (call & connection), ct i a elementelor de informaie (IE) ce formeaz mesajele. Mesajele pot fi bidirecionale (UR) sau unidirecionale, de la reea la utilizator (RU) sau de la utilizator la reea (UR). De asemenea, un IE poate fi mandatar (M) ntrun mesaj sau opional (O), iar lungimea maxim de octei a acestuia poate fi precizat sau poate fi necunoscut (*). Mesajele pot avea: Semnificaie local relevant numai pentru accesul de originare i terminare a conexiunii; Semnificaie de acces relevant numai pentru accesul de originare i terminare a conexiunii, dar nu n reea; Semnificaie dual relevant n oricare din accesul de originare i terminare a conexiunii sau n reea; Semnificaie global include n acelai timp i semnificaia local i de acces. Mesajele pentru controlul i stabilirea unei conexiuni sunt redate n tabelul urmtor. Tipuri de mesaje Mesaje de stabilire a legturii: ALERTING CALL PROCEEDING CONNECT CONNECT ACKNOWLEDGE PROGRESS SETUP SETUP ACKNOWLEDGE Mesaje de eliberare a legturii: RELEASE RELEASE COMPLETE Mesaje diverse: NOTIFY INFORMATION STATUS STATUS ENQUIRY

Fiecare mesaj are structura urmtoare de elemente informaionale: IE Protocol discriminator Call reference Tip mesaj Lungime mesaj Alte IEs Direcie UR UR UR UR Categorie M M M M Lungime 1 4 2 2

Valoarea Protocol Discriminator are rolul de a se identifica pe baza ei protocolul de semnalizare utilizat; n cazul B-ISDN, protocolului Q.2931 fiindu-i asociat valoarea hexazecimal 09 (00001001, n binar). Scopul Call Reference este de a identifica apelul la nivelul local al UNI creia mesajul particular i este aplicat. Aceast informaie nu are semnificaie punct-la-punct dea lungul reelei B-ISDN. Valoarea Tip Mesaj identific mesajul pe baza unor valori prestabilite, ce pot fi gsite n Anexa 6.

Pagina 5.5

5. Mesajele Q.2931, ale UNI B-ISDN


Lungimea mesajului reprezint numrul de octei ai mesajului excluznd primii 9 octei comuni tuturor tipurilor de mesaje. Formatul general al IE este prezentat n tabelul de mai jos, menionnd faptul c valorile identificatorilor IE pot fi gsite n Anexa 6, iar coninutul IE difer n funcie de tipul IE. Structura coninutului IE este interpretat de entitatea soft Parser i poate fi gsit pe CD-ul ataat acestei lucrri, sub format Word (..\Documentaie\User-Network Interface Signalling\Q.2931e.doc), ca i codul C++ al Parserului (..\Simulri\Visio C++ 6.0\). 8 7 6 Bii 5 4 Identificator IE Octet 2 Lungimea coninutului IE Coninutul IE Formatul general al IE n figura 5.1 este prezentat modul de aciune al mesajelor de semnalizare Q.2931 n decursul stabilirii i eliberrii unei conexiuni.
Utilizator Setup Call Proceeding Reea Setup Call Proceeding Alerting Connect Connect Acknowledge Alerting Connect Connect Acknowledge Legtur stabilit Stabilire legtur Utilizator

Octei 1 2 3 4 5 :

Conexiune punct-la-punct Disconnect Disconnect

Release

Release

Eliberare legtur

Release Complete

Release Complete

Figura 5.1: Fluxul de mesaje de semnalizare ATM suportat de procedurile protocolului Q.2931

Pagina 5.6

5. Mesajele Q.2931, ale UNI B-ISDN


4. Mesajele de eliberare a legturii {i mesajele diverse n aceast lucrare este prezentat structura mesajelor de semnalizare pentru eliberarea unei conexiuni i a mesajelor diverse, mesajele de stabilire a conexiunii fcnd scopul unei alte lucrri. RELEASE Oricare utilizator poate iniia o operaie de decuplare. Pentru a face acest lucru utilizatorul trimite reelei mesajul release. Efectul acestui mesaj este eliberarea conexiunii punct-la-punct ntre doi utilizatori i reea. Reeaua apelat i utilizatorul apelat vor trimite mesajul release complete ca urmarea primirii mesajului release.

Tip mesaj : Semnificaie: Direcie:

Release Global UR IE Direcie UR UR UR UR UR UR Tip M M M M M O Lungime 1 4 2 2 6-34 4-*

Protocol discriminator Call reference Tip mesaj Lungime mesaj Cause Notification indicator

RELEASE COMPLETE Acest mesaj este trimis de ctre utilizator sau de reea pentru a indica faptul c echipamentul ce trimite acest mesaj a eliberat legtura. Aceasta nseamn c valoarea call reference a fost dezalocat. Echipamentul ce primete acest mesaj va dezaloca valoarea call reference proprie. Tip mesaj : Semnificaie: Direcie: Release Complete Local UR IE Protocol discriminator Call reference Tip mesaj Lungime mesaj Cause Direcie UR UR UR UR UR Tip M M M M O Lungime 1 4 2 2 4-34

Pagina 5.7

5. Mesajele Q.2931, ale UNI B-ISDN


NOTIFY Acest mesaj este trimis de utilizator sau de reea pentru a indica informaia corespunztoare conexiunii. Tip mesaj : Semnificaie: Direcie: Notify Acces UR IE Protocol discriminator Call reference Tip mesaj Lungime mesaj Notification indicator Direcie UR UR UR UR UR Tip M M M M M Lungime 1 4 2 2 5-*

STATUS Acest mesaj este trimis de utilizator sau de reea ca reacie a unui mesaj STATUS ENQUIRY sau n orice moment cnd apare o eroare. Tip mesaj : Semnificaie: Direcie: Status Local UR IE Protocol discriminator Call reference Tip mesaj Lungime mesaj Call State Cause Direcie UR UR UR UR UR UR Tip M M M M M M Lungime 1 4 2 2 5 6-34

STATUS ENQUIRY Acest mesaj este trimis de utilizator sau de reea pentru a solicita un mesaj STATUS de la entitatea pereche a stratului 3. Trimiterea unui mesaj STATUS ca rspuns la un mesaj STATUS ENQUIRY este obligatorie. Tip mesaj : Semnificaie: Direcie: Status Enquiry Local UR IE Protocol discriminator Call reference Tip mesaj Lungime mesaj Direcie UR UR UR UR Tip M M M M Lungime 1 4 2 2

Pagina 5.8

5. Mesajele Q.2931, ale UNI B-ISDN

5. Elemente informa]ionale pentru mesajele de eliberare a legturii {i pentru mesajele diverse

1)Cause Acest IE conine informaia diagnostic i cauzele pentru care sunt generate mesajele. Semnificaiile valorii cause: -numr nealocat; -utilizator ocupat; -utilizatorul nu rspunde; -numr schimbat; -defeciune temporar; -destinaie defect; -reea defect; -apel respins; -rspuns la STATUS ENQUIRY; -lungime mesaj incorect; -eroare protocol; -IE-ul obligatoriu lipsete; -resurs nedisponibil, nespecificat; -numr format invalid; -etc. 2)Notification indicator Elementul informaional Notification Indicator are rolul de a oferi informaie raportat la apel. 3)Call state Scopul acestui element informaional este de a descrie starea curent a conexiunii. Strile ce pot exista din punct de vedere al utilizatorului pentru UNI sunt prezentate mai jos. 1 null (U0): Nu exist conexiune. 2 call initiated (U1): Aceast stare indic trimiterea unui apel prin care utilizatorul cere reelei stabilirea unei conexiuni. 3 outgoing call proceeding (U3): Aceast stare exist n cazul trimiterii unui apel atunci cnd utilizatorul a fost deja informat c reeaua a primit toate informaiile necesare stabilirii legturii. 4 call delivered (U4): Aceast stare este prezent n cazul unui apel prin care utilizatorului apelant i se indic faptul c a fost iniiat alertarea utilizatorului distant. 5 call present (U6): Aceast stare indic primirea unui apel atunci cnd cererea de stabilire a legturii a ajuns la utilizator, dar acesta nu a rspuns nc. 6 call received (U7): Aceast stare este prezent atunci cnd utilizatorul apelat a indicat alertarea dar nc nu a dat curs cererii de stabilire a legturii.

Pagina 5.9

5. Mesajele Q.2931, ale UNI B-ISDN


7 connect request (U8): Se ntlnete aceast stare n cazul n care utilizatorul apelat a rspuns i ateapt stabilirea legturii. 8 incoming call proceeding (U9): Aceast stare exist atunci cnd utilizatorul apelat a confirmat primirea tuturor informaiilor necesare stabilirii legturii. 9 active (U10): Aceast stare indic faptul c utilizatorul apelat a fost ntiinat de ctre reea de stabilirea legturii. De asemenea, aceast stare indic utilizatorului apelant faptul c utilizatorul distant a rspuns apelului. 10 release request (U11): Existena acestei stri indic faptul c utilizatorul a cerut reelei eliberarea conexiunii punct-la-punct i ateapt un rspuns. 11 release indication (U12): Existena acestei stri indic faptul c utilizatorului i se solicit deconectarea deoarece reeaua a ntrerupt conexiunii punct-la-punct.

Pagina 5.10

Anexa 1
//Parser2.cpp #include <stdio.h> #include <iostream.h> #include "Parser1.hpp" #include "Parser4.hpp" #include "Parser5.hpp" //Method implementation Parser::Parser(void) {}; Parser::~Parser(void) {}; short* EscapeTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Escape Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X00; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05;// TestArrayAdr++; *TestArrayAdr = 0X06;// Octet 10 = Message Type TestArrayAdr++; *TestArrayAdr = 0X03;// Octet 11 TestArrayAdr++; *TestArrayAdr = 0XAE;// Octet 12 TestArrayAdr++; *TestArrayAdr = 0XBF;// Octet 13 TestArrayAdr++; *TestArrayAdr = 0XD2;// Octet 14 TestArrayAdr++; return Adr1; }; short* AlertingTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Alerting Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X01; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X20; //MessLenOctet2 = 32 decimal TestArrayAdr++; *TestArrayAdr = 0X5A; // ConnIdIE TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotId TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Progress Indicator TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X04; //IEType = Narrowband Bearer Capability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XA5; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XC6; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEType = Narrowband High Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X38; //IEContOctet1 return Adr1; }; short* CallProceedingTest(void) {

Anexa 1
short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Call Proceeding Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X02; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X21; //MessLenOctet2 = 33 decimal TestArrayAdr++; *TestArrayAdr = 0X5A; // ConnIdIE TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotInd TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2

Pagina 6.2

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Progress Indicator TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X04; //IEType = Narrowband Bearer Capability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XA5; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XC6; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEType = Narrowband High Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X38; //IEContOctet1 return Adr1; }; short* ConnectTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr;

Anexa 1
//***********Test for Connect Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X07; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X59; //MessLenOctet2 = 89 decimal TestArrayAdr++; *TestArrayAdr = 0X27; TestArrayAdr++; *TestArrayAdr = 0XEF; TestArrayAdr++; *TestArrayAdr = 0X00; TestArrayAdr++; *TestArrayAdr = 0X02; TestArrayAdr++; *TestArrayAdr = 0X23; TestArrayAdr++; *TestArrayAdr = 0X5F; TestArrayAdr++; //IEType = NotId // //IELenOctet1 //IELenOctet2 //IEContOctet1 //IEContOctet2

*TestArrayAdr = 0X5A; // ConnIdIE TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4 TestArrayAdr++;

Pagina 6.3

UNI B-ISDN
*TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X58; //IEType = AALParam TestArrayAdr++; *TestArrayAdr = 0X00; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0D; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet1 AALType TestArrayAdr++; /* For ForVoiceType and Type2 testing: IELenOctet2=0X01; */ *TestArrayAdr = 0X85; //IEContOctet2 //For Type1, IELenOctet2=0X0E: TestArrayAdr++; *TestArrayAdr = 0X0C; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X86; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0XBF; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X87; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X24; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XE1; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X88; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0XD3; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0X8B; //IEContOctet13 TestArrayAdr++; *TestArrayAdr = 0X45; //IEContOctet14 TestArrayAdr++; *TestArrayAdr = 0X89; //IEContOctet11 TestArrayAdr++; *TestArrayAdr = 0XF5; //IEContOctet12 //:For Type1. TestArrayAdr++; /* *TestArrayAdr = 0X8C; //IEContOctet2 //For Type3_4, IELenOctet2=0X0B: TestArrayAdr++; */ /*

Anexa 1
*TestArrayAdr = 0X1C; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XC1; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X82; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X87; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X24; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XE1; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X88; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet13 TestArrayAdr++; *TestArrayAdr = 0X8C; //IEContOctet2 //For Type5, IELenOctet2=0X09: TestArrayAdr++; *TestArrayAdr = 0X10; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X26; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X7A; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X81; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X31; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X5C; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0X8C; //IEContOctet2 //For UserDefinedType, IELenOctet2=0X05: TestArrayAdr++; *TestArrayAdr = 0X11; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X53; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEType = Broadband Low Layer IE TestArrayAdr++;

*/ /*

*/

Pagina 6.4

UNI B-ISDN
*TestArrayAdr = 0X81; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0C; //IELenOctet2: 12decimal TestArrayAdr++; *TestArrayAdr = 0XA1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XD0; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0XE3; //IEContOctet6a TestArrayAdr++; *TestArrayAdr = 0X80; //IEContOctet6b TestArrayAdr++; *TestArrayAdr = 0X81; //IEContOctet6abis TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XA0; //IEContOctet7a TestArrayAdr++; *TestArrayAdr = 0X8F; //IEContOctet7b TestArrayAdr++; *TestArrayAdr = 0X82; //IEContOctet7c TestArrayAdr++; *TestArrayAdr = 0X81; //IEContOctet7abis TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet7.1 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7.2 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet7.3 TestArrayAdr++; *TestArrayAdr = 0X04; //IEContOctet7.4 TestArrayAdr++; *TestArrayAdr = 0X05; //IEContOctet7.5 TestArrayAdr++; *TestArrayAdr = 0X06; //IEContOctet7.6 TestArrayAdr++; *TestArrayAdr = 0X07; //IEContOctet7.7 TestArrayAdr++; *TestArrayAdr = 0X08; //IEContOctet7.8 TestArrayAdr++; *TestArrayAdr = 0X42; //IEType = End-To-End Transit Delay IE TestArrayAdr++; *TestArrayAdr = 0XD5; // TestArrayAdr++;

Anexa 1
*TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X06; //IELenOctet2: 6decimal TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XA0; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X0A; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X7E; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0XE7; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0X5B; //IEType = OAM Traffic Descriptor IE TestArrayAdr++; *TestArrayAdr = 0X8C; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2: 6decimal TestArrayAdr++; *TestArrayAdr = 0XE5; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XA7; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Progress Indicator TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X04; //IEType = Narrowband Bearer Capability IE TestArrayAdr++; *TestArrayAdr = 0XDB; //

/*

*/

/*

*/

Pagina 6.5

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XA5; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XC6; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEType = Narrowband High Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X38; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X7C; //IEType = Narrowband Low Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X03; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X58; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X89; //IEContOctet3 return Adr1; }; short* ConnectAcknowledgeTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Connect Acknowledge Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++;

Anexa 1
*TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X0F;//MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X06; //6dec TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotInd TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; return Adr1; }; short* ProgressTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Progress Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X03; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++;

Pagina 6.6

UNI B-ISDN
*TestArrayAdr = 0X17; // MessLenOctet2 = 23 decimal TestArrayAdr++; *TestArrayAdr = 0X27; TestArrayAdr++; *TestArrayAdr = 0XEF; TestArrayAdr++; *TestArrayAdr = 0X00; TestArrayAdr++; *TestArrayAdr = 0X02; TestArrayAdr++; *TestArrayAdr = 0X23; TestArrayAdr++; *TestArrayAdr = 0X5F; TestArrayAdr++; //IEType = NotId return Adr1; // //IELenOctet1 //IELenOctet2 //IEContOctet1 //IEContOctet2 };

Anexa 1
TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X38; //IEContOctet1

//=================================== short* SetupTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Setup Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X05; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0XD7; //MessLenOctet2 = 215 decimal TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotInd TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X5A; // ConnIdIE

*TestArrayAdr = 0X1E; //IEType = Progress Indicator TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X04; //IEType = Narrowband Bearer Capability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XA5; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XC6; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEType = Narrowband High Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1

Pagina 6.7

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X58; //IEType = AALParam TestArrayAdr++; *TestArrayAdr = 0X00; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0E; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet1 AALType TestArrayAdr++; /* For ForVoiceType and Type2 testing: IELenOctet2=0X01; */ *TestArrayAdr = 0X85; //IEContOctet2 //For Type1, IELenOctet2=0X0E: TestArrayAdr++; *TestArrayAdr = 0X0C; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X86; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0XBF; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X87; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X24; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XE1; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X88; //IEContOctet9 TestArrayAdr++; */ /*

Anexa 1
*TestArrayAdr = 0XD3; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0X8B; //IEContOctet13 TestArrayAdr++; *TestArrayAdr = 0X45; //IEContOctet14 TestArrayAdr++; *TestArrayAdr = 0X89; //IEContOctet11 TestArrayAdr++; *TestArrayAdr = 0XF5; //IEContOctet12 //:For Type1. TestArrayAdr++; /* *TestArrayAdr = 0X8C; //IEContOctet2 //For Type3_4, IELenOctet2=0X0B: TestArrayAdr++; *TestArrayAdr = 0X1C; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XC1; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X82; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X87; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X24; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XE1; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X88; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet13 TestArrayAdr++; *TestArrayAdr = 0X8C; //IEContOctet2 //For Type5, IELenOctet2=0X09: TestArrayAdr++; *TestArrayAdr = 0X10; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X26; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X7A; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X81; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X31; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X5C; //IEContOctet9 TestArrayAdr++;

Pagina 6.8

UNI B-ISDN
*/ /* *TestArrayAdr = 0X8C; //IEContOctet2 //For UserDefinedType, IELenOctet2=0X05: TestArrayAdr++; *TestArrayAdr = 0X11; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X53; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEType = Broadband Low Layer IE TestArrayAdr++; *TestArrayAdr = 0X81; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0C; //IELenOctet2: 12decimal TestArrayAdr++; *TestArrayAdr = 0XA1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XD0; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0XE3; //IEContOctet6a TestArrayAdr++; *TestArrayAdr = 0X80; //IEContOctet6b TestArrayAdr++; *TestArrayAdr = 0X81; //IEContOctet6abis TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XA0; //IEContOctet7a TestArrayAdr++; *TestArrayAdr = 0X8F; //IEContOctet7b TestArrayAdr++; *TestArrayAdr = 0X82; //IEContOctet7c TestArrayAdr++; *TestArrayAdr = 0X81; //IEContOctet7abis TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet7.1 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7.2 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet7.3 TestArrayAdr++; *TestArrayAdr = 0X04; //IEContOctet7.4 TestArrayAdr++; *TestArrayAdr = 0X05; TestArrayAdr++; *TestArrayAdr = 0X06; TestArrayAdr++; *TestArrayAdr = 0X07; TestArrayAdr++; *TestArrayAdr = 0X08; TestArrayAdr++;

Anexa 1
//IEContOctet7.5 //IEContOctet7.6 //IEContOctet7.7 //IEContOctet7.8

*/

/*

*/

*TestArrayAdr = 0X42; //IEType = End-To-End Transit Delay IE TestArrayAdr++; *TestArrayAdr = 0XD5; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X06; //IELenOctet2: 6decimal TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XA0; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X0A; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X7E; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0XE7; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0X5B; //IEType = OAM Traffic Descriptor IE TestArrayAdr++; *TestArrayAdr = 0X8C; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2: 2decimal TestArrayAdr++; *TestArrayAdr = 0XE5; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XA7; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X59; //IEType = ATM Traffic Descriptor IE TestArrayAdr++; *TestArrayAdr = 0XBF; //

/*

*/

Pagina 6.9

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X10; //IELenOctet2: 16decimal TestArrayAdr++; *TestArrayAdr = 0X82; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XAA; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0XBB; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0XCC; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X83; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0XDD; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0XEE; //IEContOctet11 TestArrayAdr++; *TestArrayAdr = 0XFF; //IEContOctet12 TestArrayAdr++; *TestArrayAdr = 0X84; //IEContOctet13 TestArrayAdr++; *TestArrayAdr = 0X11; //IEContOctet14 TestArrayAdr++; *TestArrayAdr = 0X22; //IEContOctet15 TestArrayAdr++; *TestArrayAdr = 0X33; //IEContOctet16 TestArrayAdr++; *TestArrayAdr = 0X85; //IEContOctet17 TestArrayAdr++; *TestArrayAdr = 0X44; //IEContOctet18 TestArrayAdr++; *TestArrayAdr = 0X55; //IEContOctet19 TestArrayAdr++; *TestArrayAdr = 0X66; //IEContOctet20 TestArrayAdr++; *TestArrayAdr = 0X5E; //IEType = Broadband Bearer Capability IE TestArrayAdr++; *TestArrayAdr = 0XB9; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X03; //IELenOctet2: 3decimal TestArrayAdr++; *TestArrayAdr = 0X90; //IEContOctet5 TestArrayAdr++;

Anexa 1
*TestArrayAdr = 0X8F; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0XC1; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X5D; //IEType = Broadband High Layer Information IE TestArrayAdr++; *TestArrayAdr = 0XEC; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X09; //IELenOctet2: 9decimal TestArrayAdr++; *TestArrayAdr = 0X83; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X06; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X07; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X08; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X09; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0X0A; //IEContOctet10 TestArrayAdr++; *TestArrayAdr = 0X0B; //IEContOctet11 TestArrayAdr++; *TestArrayAdr = 0X0C; //IEContOctet12 TestArrayAdr++; *TestArrayAdr = 0X0D; //IEContOctet13 TestArrayAdr++; *TestArrayAdr = 0X63; //IEType = Broadband Repeat Indicator IE TestArrayAdr++; *TestArrayAdr = 0XDE; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2: 1decimal TestArrayAdr++; *TestArrayAdr = 0X8F; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X70; //IEType = Called Party Number IE TestArrayAdr++; *TestArrayAdr = 0XBA; //

Pagina 6.10

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2: 4decimal TestArrayAdr++; *TestArrayAdr = 0XB2; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X71; //IEType = Called Party SubAddress IE TestArrayAdr++; *TestArrayAdr = 0XEA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2: 4decimal TestArrayAdr++; *TestArrayAdr = 0XA8; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X10; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X11; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X12; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X6D; //IEType = Calling Party SubAddress IE TestArrayAdr++; *TestArrayAdr = 0XEA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2: 5decimal TestArrayAdr++; *TestArrayAdr = 0XA8; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X10; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X11; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X12; //IEContOctet8

Anexa 1
TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet9 TestArrayAdr++; *TestArrayAdr = 0X6C; //IEType = Calling Party Number IE TestArrayAdr++; *TestArrayAdr = 0XBA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2: 4decimal TestArrayAdr++; *TestArrayAdr = 0XC1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XA3; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X05; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X06; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X5C; //IEType = Quality Of Service Parameter IE TestArrayAdr++; *TestArrayAdr = 0X97; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2: 2decimal TestArrayAdr++; *TestArrayAdr = 0XA1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0XB2; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X62; //IEType = Broadband Sending Complete IE TestArrayAdr++; *TestArrayAdr = 0XBE; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2: 1decimal TestArrayAdr++; *TestArrayAdr = 0XA1; //IEContOctet5 TestArrayAdr++;

Pagina 6.11

UNI B-ISDN
*TestArrayAdr = 0X78; //IEType = Transit Netowrk Selection IE TestArrayAdr++; *TestArrayAdr = 0XBA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet4: 4decimal TestArrayAdr++; *TestArrayAdr = 0XB1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X78; //IEType = Second Transit Netowrk Selection IE TestArrayAdr++; *TestArrayAdr = 0XBA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet4: 4decimal TestArrayAdr++; *TestArrayAdr = 0XB1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X78; //IEType = Third Transit Netowrk Selection IE TestArrayAdr++; *TestArrayAdr = 0XBA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet4: 4decimal TestArrayAdr++; *TestArrayAdr = 0XB1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet6

Anexa 1
TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X78; //IEType = Fourth Transit Netowrk Selection IE TestArrayAdr++; *TestArrayAdr = 0XBA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet4: 4decimal TestArrayAdr++; *TestArrayAdr = 0XB1; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X63; //IEType = Second Broadband Repeat Indicator IE TestArrayAdr++; *TestArrayAdr = 0XDE; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2: 1decimal TestArrayAdr++; *TestArrayAdr = 0X8F; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Progress Indicator TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++;

Pagina 6.12

UNI B-ISDN
*TestArrayAdr = 0X04; //IEType = Narrowband Bearer Capability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XA5; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XC6; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEType = Narrowband High Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X38; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X7C; //IEType = Narrowband Low Layer Compability IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X03; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X58; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X7D; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X89; //IEContOctet3 return Adr1; }; //=================================== short* SetupAcknowledgeTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Setup

Anexa 1
Acknowledge Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X0D;//MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X1B; //MessLenOctet2 = 27 decimal TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotInd TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X5A; // ConnIdIE TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4

Pagina 6.13

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Progress Indicator IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Second Progress Indicator IE TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; return Adr1; }; short* ReleaseTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Release Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X4D;//MessTypeOctet1

Anexa 1
TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X1B; //MessLenOctet2 = 27 decimal TestArrayAdr++; *TestArrayAdr = 0X08; //IEType = Cause TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X45; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XDF; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0XE5; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XAB; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X08; //IEType = Cause2 TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X03; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X54; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XFA; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0XB3; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotInd TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++;

Pagina 6.14

UNI B-ISDN
*TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X1E; //IEType = Progress Indicator TestArrayAdr++; *TestArrayAdr = 0XDB; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0XEA; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XEB; //IEContOctet2 TestArrayAdr++; return Adr1; }; short* ReleaseCompleteTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Release Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X5A;//MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0F; //15dec TestArrayAdr++; *TestArrayAdr = 0X08; //IEType = Cause TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1

Anexa 1
TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X45; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XDF; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0XE5; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XAB; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X08; //IEType = Cause2 TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X03; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X54; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XFA; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0XB3; //IEContOctet3 TestArrayAdr++; return Adr1; }; short* RestartTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Restart Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X46; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1

Pagina 6.15

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0X0E; //MessLenOctet2 = 14 decimal TestArrayAdr++; *TestArrayAdr = 0X5A; // ConnIdIE TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X79; // RestartIndIE TestArrayAdr++; *TestArrayAdr = 0XEB; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X87; //IEContOctet1 TestArrayAdr++; return Adr1; }; short* RestartAcknowledgeTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Restart Acknowledge Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++;

Anexa 1
*TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X4E; //MessTypeOctet1: TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0E; //MessLenOctet2 = 14 decimal TestArrayAdr++; *TestArrayAdr = 0X5A; // ConnIdIE TestArrayAdr++; *TestArrayAdr = 0XFF; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X95; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X92; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0X13; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XA2; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X3C; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X79; // RestartIndIE TestArrayAdr++; *TestArrayAdr = 0XEB; TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X87; //IEContOctet1 TestArrayAdr++; return Adr1; }; short* InformationTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Information Message:

Pagina 6.16

UNI B-ISDN
*TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X7B;//MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0D; //MessLenOctet2 = 13 decimal TestArrayAdr++; *TestArrayAdr = 0X70; //IEType = Called Party Number IE TestArrayAdr++; *TestArrayAdr = 0XBA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2: 4 decimal TestArrayAdr++; *TestArrayAdr = 0XB2; //IEContOctet5 TestArrayAdr++; *TestArrayAdr = 0X01; //IEContOctet6 TestArrayAdr++; *TestArrayAdr = 0X02; //IEContOctet7 TestArrayAdr++; *TestArrayAdr = 0X03; //IEContOctet8 TestArrayAdr++; *TestArrayAdr = 0X62; //IEType = Broadband Sending Complete IE TestArrayAdr++; *TestArrayAdr = 0XBE; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2: 1decimal TestArrayAdr++; *TestArrayAdr = 0XA1; //IEContOctet5 TestArrayAdr++; return Adr1; };

Anexa 1

short* NotifyTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Notify Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X6E;//MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X06; //6dec TestArrayAdr++; *TestArrayAdr = 0X27; //IEType = NotInd TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X02; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0X5F; //IEContOctet2 TestArrayAdr++; return Adr1; }; short* StatusTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Status Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011

Pagina 6.17

UNI B-ISDN
TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X7D;//MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X0D; //13dec TestArrayAdr++; *TestArrayAdr = 0X08; //IEType = Cause TestArrayAdr++; *TestArrayAdr = 0XEF; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X04; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X45; //IEContOctet1 TestArrayAdr++; *TestArrayAdr = 0XDF; //IEContOctet2 TestArrayAdr++; *TestArrayAdr = 0XE5; //IEContOctet3 TestArrayAdr++; *TestArrayAdr = 0XAB; //IEContOctet4 TestArrayAdr++; *TestArrayAdr = 0X14; //IEType = Call state TestArrayAdr++; *TestArrayAdr = 0XCA; // TestArrayAdr++; *TestArrayAdr = 0X00; //IELenOctet1 TestArrayAdr++; *TestArrayAdr = 0X01; //IELenOctet2 TestArrayAdr++; *TestArrayAdr = 0X23; //IEContOctet1 TestArrayAdr++; return Adr1; }; short* StatusEnquiryTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr;

Anexa 1
//***********Test for Status Enquiry Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0X75; //MessTypeOctet1 TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X00; //00dec TestArrayAdr++; return Adr1; }; short* ResExtensMechanismTest(void) { short *TestArrayAdr=new short[100]; short* Adr1=TestArrayAdr; //***********Test for Extension Mechanism Message: *TestArrayAdr = 0X09; //00001001 TestArrayAdr++; *TestArrayAdr = 0X03; //00000011 TestArrayAdr++; *TestArrayAdr = 0XF5; //11110101 TestArrayAdr++; *TestArrayAdr = 0X32; TestArrayAdr++; *TestArrayAdr = 0X6F; TestArrayAdr++; *TestArrayAdr = 0XFF; //MessTypeOctet1; TestArrayAdr++; *TestArrayAdr = 0X12; //00010010 TestArrayAdr++; *TestArrayAdr = 0X00; //MessLenOctet1 TestArrayAdr++; *TestArrayAdr = 0X05;// TestArrayAdr++; *TestArrayAdr = 0X06; // Octet 10 = Message Type TestArrayAdr++;

Pagina 6.18

UNI B-ISDN
*TestArrayAdr = 0X03; // Octet 11 TestArrayAdr++; *TestArrayAdr = 0XAE; // Octet 12 TestArrayAdr++; *TestArrayAdr = 0XBF; // Octet 13

Anexa 1
TestArrayAdr++; *TestArrayAdr = 0XD2; // Octet 14 TestArrayAdr++; return Adr1; };

Pagina 6.19

Capitolul 3
short* Parser::ReadData(void) { short* Adr; int t; BOOL Contin = False; while ( Contin == False) { Contin = False; printf ("\n**************************** P A R S E R *************************"); printf ("\n\n\tInput the Message Type you want to test:"); printf("\n 0 for Escape "); //0X00 //000//00000000 printf("\n 1 for Alerting "); //0X01 //001//00000001 printf("\n 2 for CallProceeding "); //0X02 //002//00000010 printf("\n 3 for Connect "); //0X07 //007//00000111 printf("\n 4 for ConnectAcknowledge "); //0X0F //015//00001111 printf("\n 5 for Progress "); //0X03 //003//00000011 printf("\n 6 for Setup "); //0X05 //005//00000101 printf("\n 7 for SetupAcknowledge "); //0X0D //013//00001101 printf("\n 8 for Release "); //0X4D //077//01001101 printf("\n 9 for ReleaseComplete "); //0X5A //090//01011010 printf("\n 10 for Restart "); //0X46 //070//01000110 printf("\n 11 for RestartAcknowledge "); //0X4E //078//01001110 printf("\n 12 for Information "); //0X7B //123//01111011 printf("\n 13 for Notify "); //0X6E //110//01101110 printf("\n 14 for Status "); //0X7D //125//01111101 printf("\n 15 for StatusEnquiry "); //0X75 //117//01110101 printf("\n 16 for ResExtensMechanism "); //0XFF //255//11111111 printf("\n or 17 to skip the automatic generating data test proceedure: "); printf("\n\n\tChoose message type : "); scanf("%d",&t); Wait(); switch (t) { case 0: { Adr = EscapeTest( ); Contin = True; break; } case 1: { Adr = AlertingTest( ); Contin = True; break;} case 2: { Adr = CallProceedingTest( ); Contin = True; break; } case 3: { Adr = ConnectTest( ); Contin = True; break; } case 4: { Adr = ConnectAcknowledgeTest( ); Contin = True; break; } case 5: { Adr = ProgressTest( ); Contin = True; break; } case 6: { Adr = SetupTest( ); Contin = True; break; } case 7: { Adr = SetupAcknowledgeTest( ); Contin = True; break; } case 8: { Adr = ReleaseTest( ); Contin = True; break; } case 9: { Adr = ReleaseCompleteTest( ); Contin = True; break; } case 10: { Adr = RestartTest( ); Contin = True; break; } case 11: { Adr = RestartAcknowledgeTest( ); Contin = True; break; } case 12: { Adr = InformationTest( ); Contin = True; break; } case 13: { Adr = NotifyTest( ); Contin = True; break; } case 14: { Adr = StatusTest( ); Contin = True; break; } case 15: { Adr = StatusEnquiryTest( ); Contin = True; break; } case 16: { Adr = ResExtensMechanismTest( ); Contin = True; break; } case 17: { Contin = True; printf("\n\tInsert in hexa the adress of the parsing data: "); scanf("%h",&Adr);

Pagina 3.20

3. Reele ATM
printf("\n"); } default:{ printf("\n\n"); } } } return Adr; } void Parser::Parse(short *BytesArray) { short* Adr1=BytesArray; Errors Error; FillMessContent FillMessCont; TestParser Testing; CurrentByteAdr = BytesArray; Adr1 = BytesArray; Continue = True; Message.ProtDisc = *CurrentByteAdr; CurrentByteAdr++; Message.CallRefValLen = *CurrentByteAdr; CurrentByteAdr++; Message.Flag = ((BOOL)(*CurrentByteAdr >> 7)); long temp = ((long)(*CurrentByteAdr & 0X7F)); Message.CallRefVal = (temp << 16); CurrentByteAdr++; Message.CallRefVal += (((long)*CurrentByteAdr) << 8); CurrentByteAdr++; Message.CallRefVal += (long)*CurrentByteAdr; CurrentByteAdr++; Message.MessTypeOctet1 = *CurrentByteAdr; CurrentByteAdr++; CurrentByte = *CurrentByteAdr; Message.MessTypeOctet2.MessTypeOctet2Val = *CurrentByteAdr; Message.MessTypeOctet2.Ext = ((BOOL)(CurrentByte >> 7)); CurrentByte = *CurrentByteAdr; Message.MessTypeOctet2.Flag = ((BOOL)((CurrentByte & 0X10) >> 4)); Message.MessTypeOctet2.MsgActionInd=(*CurrentByteAdr & 0X03); CurrentByteAdr++; Message.MessLen=(((short)*CurrentByteAdr) << 8); CurrentByteAdr++; Message.MessLen+=((short)*CurrentByteAdr); CurrentByteAdr++; if (Error.ProtocolDiscriminator(Message.ProtDisc) == True ) {Continue=False;}; if (Error.CallRefLen(Message.CallRefValLen) == True) {Continue=False;}; if (Error.MessTypeSpare(Message.MessTypeOctet2.MessTypeOctet2Val) == True ) {Continue=False;}; if (Continue == True) { Continue = False; Error.CallRefFlag(Message.Flag); switch (Message.MessTypeOctet1)

Pagina 3.21

3. Reele ATM
{ case Escape: { FillMessCont.EscapeFunc( ); Continue = True; break; } case Alerting: { FillMessCont.AlertingFunc( ); Continue = True; break; } case CallProceeding: { FillMessCont.CallProceedingFunc( ); Continue = True; break; } case Connect: { FillMessCont.ConnectFunc( ); Continue = True; break; } case ConnectAcknowledge: { FillMessCont.ConnectAcknowledgeFunc( ); Continue = True; break; } case Progress: { FillMessCont.ProgressFunc( ); Continue = True; break; } case Setup: { FillMessCont.SetupFunc( ); Continue = True; break; } case SetupAcknowledge: { FillMessCont.SetupAcknowledgeFunc( ); Continue = True; break; } case Release: { FillMessCont.ReleaseFunc( ); Continue = True; break; } case ReleaseComplete: { FillMessCont.ReleaseCompleteFunc( ); Continue = True; break; } case Restart: { FillMessCont.RestartFunc( ); Continue = True; break; } case RestartAcknowledge: { FillMessCont.RestartAcknowledgeFunc( ); Continue = True; break; } case Information: { FillMessCont.InformationFunc( ); Continue = True; break; } case Notify: { FillMessCont.NotifyFunc( ); Continue = True; break; } case Status: { FillMessCont.StatusFunc( ); Continue = True; break; } case StatusEnquiry: { FillMessCont.StatusEnquiryFunc( ); Continue = True; break; } case ResExtensMechanism: { FillMessCont.ResExtensMechanismFunc( ); Continue = True; break; } }; if ((Continue) == True) { //Invoque the IDL methods { Testing.TestParse(Adr1); //Show the results on screen } return; } Error.MessType(); } }; void main(void) { printf("\n\n\n\n"); Message.CallPNrIE.FilledIn=False; Message.CallPSubAdrIE.FilledIn=False; Message.TransitNetSelIE.FilledIn=False; Message.RestartIndIE.FilledIn=False; Message.NBLLCompIE.FilledIn=False; Message.NBHLCompIE.FilledIn=False; Message.BBLockShiftIE.FilledIn=False; Message.BBNLockShiftIE.FilledIn=False; Message.BBSendComplIE.FilledIn=False; Message.BBRepIndIE.FilledIn=False; Message.CallgPNrIE.FilledIn=False; Message.CallgPSubAdrIE.FilledIn=False; Message.AALParamIE.FilledIn=False; Message.ATMTrDescrIE.FilledIn=False; Message.ConnIdIE.FilledIn=False; Message.OAMTrDescrIE.FilledIn=False;

Pagina 3.22

3. Reele ATM
Message.QOSParamIE.FilledIn=False; Message.BBBCapIE.FilledIn=False; Message.BBLLInfIE.FilledIn=False; Message.BBHLInfIE.FilledIn=False; Message.ETETrDelayIE.FilledIn=False; Message.NotIndIE.FilledIn=False; Message.CallStIE.FilledIn=False; Message.ProgressIndIE.FilledIn=False; Message.NBBCapIE.FilledIn=False; Message.CauseIE.FilledIn=False; BBLLInfParticularCont.Layer1.FilledIn=False; BBLLInfParticularCont.Layer2.FilledIn=False; BBLLInfParticularCont.Layer3.FilledIn=False; Parser ParseMess; short* BeginingAdress = ParseMess.ReadData(); ParseMess.Parse(BeginingAdress); } //***************************************************

Pagina 3.23

Anexa 2
//Parser3.hpp //Error and exception handling void Wait(void) { printf("\n\t\t\t\tUser! Press any key to continue..."); getchar(); return; }; //======================================= class Errors { public: Errors(void); ~Errors(void); BOOL ProtocolDiscriminator(short ByteVal); BOOL CallRefLen(short ByteVal); void CallRefFlag(BOOL Val); void MessType(void); BOOL MessTypeSpare(short ByteVal); BOOL IEIdUnknown(short ByteVal); BOOL ConnIdSpare(short ByteVal); }; //======================================= Errors::Errors(void){}; Errors::~Errors(void){}; //======================================= /* void PrintBitsOfByte(short MessByte) { // small b = (small)s; short b=MessByte; printf("\n"); for (int i=0;i<8;i++) { int j=(b<<i)>>(7-i); printf("%d",j); } printf("\n"); } */ //======================================= //This function will return "True" in case that an error //is encountered in the protocol discrimination //and "False" in case of Q.931 or Q.2931 protocol. BOOL Errors::ProtocolDiscriminator(short ByteVal) {

Pagina 7.1

Anexa 2
if ((ByteVal >= Clause4Q931Low) && (ByteVal <= Clause4Q931High)) { printf ("\n\n\tError encountered:"); printf ("\nThe value %XH=%d of the Protocol Discriminator byte is assigned in clause 4/Q.931.",ByteVal,ByteVal); printf (" This value is not available for use in the message protocol discriminator.\n"); return True; } if (((ByteVal >= RecommX25Low1) && (ByteVal <= RecommX25High1)) || ((ByteVal >= RecommX25Low2) && (ByteVal <= RecommX25High2))) { printf ("\n\n\tError encountered:"); printf ("\n The value %XH = %d of the Protocol Discriminator byte is reserved for other",ByteVal,ByteVal); printf ("\nlayer or layer 3 protocols, including Recommendation X.25."); printf ("\n These values are reserved to discriminate these protocol discriminators from"); printf ("\nthe first octet of a X.25 packet including general ingormation identifier.\n"); return True; } if ((ByteVal >= NationalUseLow) && (ByteVal <= NationalUseHigh)) { printf ("\n\n\tError encountered:"); printf ("\nThe value %XH = %d of the Protocol Discriminator byte is reserved \n for national use.\n",ByteVal,ByteVal); return True; } if (ByteVal == Q931) { printf ("\n\n\nThe value of the Protocol Discriminator byte is %XH = %d.",ByteVal,ByteVal); printf ("\n\tProtocol Q.931:\n"); return False; } if (ByteVal == Q2931) { printf ("\n\n\nThe value of the Protocol Discriminator byte is %XH = %d.",ByteVal,ByteVal); printf ("\n\tProtocol Q.2931:\n"); return False; } printf ("\nThe value of the Protocol Discriminator byte is reserved: %XH = %d .\n",ByteVal,ByteVal); PrintBitesOfByte(ByteVal); return True;

// }

//=============================================== //This function will return "False" in case that the //length of Call Reference value is 3 bytes. BOOL Errors::CallRefLen(short ByteVal) { if (ByteVal != 0X03) { printf ("\n\tError regarding the length of call reference value: %XH = %d ",ByteVal,ByteVal); printf ("!\n"); return True;

Pagina 7.2

Anexa 2
} return False; }; //================================================ //This function will show the direction of signal. void Errors::CallRefFlag(BOOL Val) { if (Val == True) { printf ("\n\n\tThe message is sent to the side that originated"); printf ("\nthe call reference.\n"); return; } printf ("\n\n\tThe message is sent from the side that originated"); printf ("\nthe call reference.\n"); return; }; //================================================ void Errors::MessType(void) { printf ("\n\tError: Unrecognized message type!\n"); return; }; //=============================================== //This function will return "False" in case that the //second byte of the Message Type hasn't sapares bites. BOOL Errors::MessTypeSpare(short ByteVal) { if ((ByteVal & 0X6C) != 0X00) { printf ("\n\tError: the second byte has no spare bites: %XH = %d ",ByteVal,ByteVal); printf ("!\n"); return True; } return False; }; //=============================================== //This function will return "False" in case that the //ConnId hasn't sapares bites. BOOL Errors::ConnIdSpare(short ByteVal) { if ((ByteVal & 0X60) != 0X00) { printf ("\n\tError: there are no spare bites in the IE content: %XH = %d ",ByteVal,ByteVal); printf ("!\n"); Wait(); return True; } return False;

Pagina 7.3

Anexa 2
}; /*================================================ BOOL Errors::IEIdUnknown(short ByteVal) { printf ("\n\tError: Unrecognized Information Element Identifier %XH = %d !\n", ByteVal, ByteVal); return True; }; *///=============================================== //*************************************************************************************

Pagina 7.4

Anexa 3

//Parser4.hpp //======================================= class FillMessContent { public: void EscapeFunc(void); void AlertingFunc(void); void CallProceedingFunc(void); void ConnectFunc(void); void ConnectAcknowledgeFunc(void); void ProgressFunc(void); void SetupFunc(void); void SetupAcknowledgeFunc(void); void ReleaseFunc(void); void ReleaseCompleteFunc(void); void RestartFunc(void); void RestartAcknowledgeFunc(void); void InformationFunc(void); void NotifyFunc(void); void StatusFunc(void); void StatusEnquiryFunc(void); void ResExtensMechanismFunc(void); FillMessContent(); ~FillMessContent(); }; //======================================= FillMessContent::FillMessContent() {}; FillMessContent::~FillMessContent() {}; //======================================= void FillMessContent::EscapeFunc(void) { printf("\n*************** Escape To Nationality Specific Message: ***************"); //General message content filling: short ByteContorGen=0; Message.GenMessCont.BytesArrayLen=Message.MessLen; while (ByteContorGen < Message.MessLen) { ByteContorGen++; //ByteContorIE's interest field is: 1..MessLen. Message.GenMessCont.BytesArrayCont[ByteContorGen]=(*CurrentByteAdr); CurrentByteAdr++; } CurrentByteAdr--; Message.MessTypeOctet10 = Message.GenMessCont.BytesArrayCont[1]; //Octet 10 of the total message return;

Pagina 8.1

Anexa 3
}; //======================================= void FillMessContent::AlertingFunc(void) { IEFillClass IEFill; if ( ByteContor < Message.MessLen ) { IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //======================================== void FillMessContent::CallProceedingFunc(void) { printf("\n*************** Call Proceeding Message: ***************"); IEFillClass IEFill; if ( ByteContor < Message.MessLen ) { IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen)

Pagina 8.2

Anexa 3
{ printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } return; }; //=========================================== void FillMessContent::ConnectFunc(void) { printf("\n*************** Connect Message: ***************"); IEFillClass IEFill; if ( ByteContor < Message.MessLen ) { IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++;

Pagina 8.3

Anexa 3
IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //=========================================== void FillMessContent::ConnectAcknowledgeFunc(void) { printf("\n*************** Connect Acknowledge Message: ***************"); IEFillClass IEFill; if ( ByteContor < Message.MessLen ) { IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //================================================= void FillMessContent::ProgressFunc(void) { printf("\n*************** Progress Message: ***************"); IEFillClass IEFill;

Pagina 8.4

Anexa 3
IEFill.IEIdentifie(); if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.ProgressIndIE.FilledIn != True) { printf("\n\n\tError: Progress Indicator Information Element is missing!\n"); TestValid=False; return; } return; }; //================================================= void FillMessContent::SetupFunc(void) { printf("\n*************** Setup Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); CurrentByteAdr++; IEFill.IEIdentifie(); CurrentByteAdr++; IEFill.IEIdentifie(); if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie();

Pagina 8.5

Anexa 3
} if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie();

Pagina 8.6

Anexa 3
} if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.ATMTrDescrIE.FilledIn != True) {

Pagina 8.7

Anexa 3
printf("\n\n\tError: ATM Traffic Descriptor Information Element is missing!\n"); TestValid=False; return; } if (Message.BBBCapIE.FilledIn != True) { printf("\n\n\tError: Broadband Bearer Capability Information Element is missing!\n"); TestValid=False; return; } if (Message.QOSParamIE.FilledIn != True) { printf("\n\n\tError: QOS Parameter Capability Information Element is missing!\n"); TestValid=False; return; } return; }; //================================================== void FillMessContent::SetupAcknowledgeFunc(void) { printf("\n*************** Release Message: ***************"); IEFillClass IEFill; if ( ByteContor < Message.MessLen ) { IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //========================================================

Pagina 8.8

Anexa 3
void FillMessContent::ReleaseFunc(void) { printf("\n*************** Release Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.CauseIE.FilledIn != True) { printf("\n\n\tError: Cause Information Element is missing!\n"); TestValid=False; return; } return; }; //=========================================================== void FillMessContent::ReleaseCompleteFunc(void) { printf("\n*************** Release Complete Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //===============================================================

Pagina 8.9

Anexa 3
void FillMessContent::RestartFunc(void) { printf("\n*************** Restart Complete Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.RestartIndIE.FilledIn != True) { printf("\n\n\tError: Restart Information Element is missing!\n"); TestValid=False; return; } return; }; //==================================================================== void FillMessContent::RestartAcknowledgeFunc(void) { printf("\n*************** Restart Acknowledge Complete Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.RestartIndIE.FilledIn != True) { printf("\n\n\tError: Restart Acknowledge Information Element is missing!\n"); TestValid=False; return; } return; }; //======================================================================= void FillMessContent::InformationFunc(void) { printf("\n*************** Information Message: ***************"); IEFillClass IEFill;

Pagina 8.10

Anexa 3
if ( ByteContor < Message.MessLen ) { IEFill.IEIdentifie(); } if ( ByteContor < Message.MessLen ) { CurrentByteAdr++; IEFill.IEIdentifie(); } if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //======================================================================= void FillMessContent::NotifyFunc(void) { printf("\n*************** Notify Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.NotIndIE.FilledIn != True) { printf("\n\n\tError: Notification Indicator Information Element is missing!\n"); TestValid=False; return; } return; }; //==================================================================== void FillMessContent::StatusFunc(void) { printf("\n*************** Status Message: ***************"); IEFillClass IEFill; IEFill.IEIdentifie(); CurrentByteAdr++; IEFill.IEIdentifie(); if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } if (Message.CauseIE.FilledIn != True) { printf("\n\n\tError: Cause Information Element is missing!\n"); TestValid=False; return;

Pagina 8.11

Anexa 3
} if (Message.CallStIE.FilledIn != True) { printf("\n\n\tError: Call State Information Element is missing!\n"); TestValid=False; return; } return; }; //===================================================================== void FillMessContent::StatusEnquiryFunc(void) { printf("\n*************** Status Enquiry Message: ***************"); if (ByteContor < Message.MessLen) { printf ("\n\n\t Warning: There are extrabytes in message!"); Wait(); } return; }; //==================================================================== void FillMessContent::ResExtensMechanismFunc(void) { printf("\n*************** Extension Mechanism Message: ***************"); //General message content filling: short ByteContorGen=0; Message.GenMessCont.BytesArrayLen=Message.MessLen; while (ByteContorGen < Message.MessLen) { ByteContorGen++; //ByteContorIE's interest field is: 1..MessLen. Message.GenMessCont.BytesArrayCont[ByteContorGen]=(*CurrentByteAdr); CurrentByteAdr++; } CurrentByteAdr--; Message.MessTypeOctet10 = Message.GenMessCont.BytesArrayCont[1]; //Octet 10 of the total message return; }; //********************************************************************

Pagina 8.12

Anexa 4

//Parser5.hpp //Test implementation class TestParser { public: TestParser(void); ~TestParser(void); void TestParse(short *BytesArray); }; TestParser::TestParser(void) {}; TestParser::~TestParser(void) {}; void TestParser::TestParse(short *BytesArray) { short* CurrentByteAdr=BytesArray; printf("\n\n\tMESSAGE BYTES:\n"); int MaxLoop = 9+3+Message.MessLen; for (int t=1;t<=MaxLoop;t++) { printf("\n Byte %4d : 0X%X",t,*(CurrentByteAdr+t-1)); if (t == 10*int(t/10)) { Wait(); } }; printf("\n\n\tRESULTS:\n"); printf("\nProtocol Discriminator: "); printf("0X%X = %d ",Message.ProtDisc,Message.ProtDisc); printf("\nLength of Call Reference Value : 0X%X = %d bytes",Message.CallRefValLen,Message.CallRefValLen); printf("\nFlag : 0X%X = %d ",Message.Flag,Message.Flag); printf("\nCall Reference Value : 0X%X = %d ",Message.CallRefVal,Message.CallRefVal); printf("\nMessage Type : 0X%X = %d ",Message.MessTypeOctet1,Message.MessTypeOctet1); printf("\nMessTypeOctet2.Ext : 0X%X = %d ",Message.MessTypeOctet2.Ext,Message.MessTypeOctet2.Ext); printf("\nMessTypeOctet2.Flag : 0X%X = %d ",Message.MessTypeOctet2.Flag,Message.MessTypeOctet2.Flag); printf("\nMessTypeOctet2.MsgActionInd : 0X%X = %d ",Message.MessTypeOctet2.MsgActionInd, Message.MessTypeOctet2.MsgActionInd); printf("\nMessage Content Length : 0X%X = %d bytes",Message.MessLen,Message.MessLen); if ((Message.MessTypeOctet1 == 0X00)||(Message.MessTypeOctet1 == 0XFF)) { printf("\n\n Message Content:"); Wait(); printf("Message.MessTypeOctet10 = 0X%X = %d",Message.MessTypeOctet10,Message.MessTypeOctet10); for (int h=1;h<=Message.GenMessCont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.GenMessCont.BytesArrayCont[h]); }; }

Pagina 9.1

Anexa 4
else { printf("\n\n Information Elements:"); } if (Message.AALParamIE.FilledIn == True) { Wait(); printf("\n ATM Adaptation Layer ( AAL ) parameters :\n"); printf("\nMessage.AALParamIE.IEId = 0X%X",Message.AALParamIE.IEId); printf("\nMessage.AALParamIE.FilledIn = %d",Message.AALParamIE.FilledIn); printf("\nMessage.AALParamIE.Ext = %d",Message.AALParamIE.Ext); printf("\nMessage.AALParamIE.CodStandard = %d",Message.AALParamIE.CodStandard); printf("\nMessage.AALParamIE.Flag = %d",Message.AALParamIE.Flag); printf("\nMessage.AALParamIE.Res = %d",Message.AALParamIE.Res); printf("\nMessage.AALParamIE.IEActionInd = %d",Message.AALParamIE.IEActionInd); printf("\nMessage.AALParamIE.IEContLen = %d",Message.AALParamIE.IEContLen); printf("\nMessage.AALParamIE.IECont.BytesArrayLen = %d",Message.AALParamIE.IECont.BytesArrayLen); printf("\nMessage.AALParamIE.IECont.BytesArrayCont:"); Wait(); for (int h=1;h<=Message.AALParamIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.AALParamIE.IECont.BytesArrayCont[h]); }; Wait(); switch ( Message.AALParamIE.IECont.BytesArrayCont[1] ) { case 0: { printf("\nAALParamParticularContForVoice.AALType = %d",AALParamParticularContForVoice.AALType); break; } case 1: { printf("\nAALParamParticularContType1.AALType = %d",AALParamParticularContType1.AALType); printf("\nAALParamParticularContType1.SubtypeFille= 0X%X",AALParamParticularContType1.SubtypeFilled ); if (AALParamParticularContType1.SubtypeFilled == True) { printf("\n AALParamParticularContType1.SubtypeId =0X%X", AALParamParticularContType1.SubtypeId); printf("\nAALParamParticularContType1.Subtype = 0X%X", AALParamParticularContType1.Subtype ); } printf("\nAALParamParticularContType1.CBRRateFilled = 0X%X", AALParamParticularContType1.CBRRateFilled ); if ( AALParamParticularContType1.CBRRateFilled == True ) { printf("\n

Pagina 9.2

Anexa 4
AALParamParticularContType1.CBRRateId = 0X%X", AALParamParticularContType1.CBRRateId); printf("\nAALParamParticularContType1.CBRRate = 0X%X", AALParamParticularContType1.CBRRate); } printf("\n AALParamParticularContType1.MultiplierFilled = 0X%X", AALParamParticularContType1.MultiplierFilled); if ( AALParamParticularContType1.MultiplierFilled == True ) { printf("\n AALParamParticularContType1.MultiplierId= 0X%X", AALParamParticularContType1.MultiplierId); printf("\n AALParamParticularContType1.Multiplier = 0X%X", AALParamParticularContType1.Multiplier); } printf("\nAALParamParticularContType1. SourceClockFrecvencyRecoveryMethodFilled= 0X%X",AALParamParticularContType1. SourceClockFrecvencyRecoveryMethodFilled); if ( AALParamParticularContType1. SourceClockFrecvencyRecoveryMethodFilled == True ) { printf("\nAALParamParticularContType1. SourceClockFrecvencyRecoveryMethodId = 0X%X",AALParamParticularContType1. SourceClockFrecvencyRecoveryMethodId); printf("\nAALParamParticularContType1. SourceClockFrecvencyRecoveryMethod = 0X%X",AALParamParticularContType1. SourceClockFrecvencyRecoveryMethod ) ; } printf("\nAALParamParticularContType1. ErrorCorrectionMethodFilled = 0X%X",AALParamParticularContType1. ErrorCorrectionMethodFilled ) ; if ( AALParamParticularContType1. ErrorCorrectionMethodFilled == True ) { printf("\nAALParamParticularContType1. ErrorCorrectionMethodId = 0X%X",AALParamParticularContType1. ErrorCorrectionMethodId ) ; printf("\nAALParamParticularContType1. ErrorCorrectionMethod = 0X%X", AALParamParticularContType1. ErrorCorrectionMethod ) ; } printf("\nAALParamParticularContType1. StructuredDataTransferBlockSizeFilled = 0X%X",AALParamParticularContType1. StructuredDataTransferBlockSizeFilled ) ;

Pagina 9.3

Anexa 4
if ( AALParamParticularContType1. StructuredDataTransferBlockSizeFilled ==True) { printf("\nAALParamParticularContType1. StructuredDataTransferBlockSizeId = 0X%X",AALParamParticularContType1. StructuredDataTransferBlockSizeId ) ; printf("\nAALParamParticularContType1. StructuredDataTransferBlockSize = 0X%X",AALParamParticularContType1. StructuredDataTransferBlockSize ) ; } printf("\nAALParamParticularContType1. PartiallyFilledCellsMethodFilled = 0X%X",AALParamParticularContType1. PartiallyFilledCellsMethodFilled ) ; if ( AALParamParticularContType1. PartiallyFilledCellsMethodFilled == True ) { printf("\nAALParamParticularContType1. PartiallyFilledCellsMethodId = 0X%X",AALParamParticularContType1. PartiallyFilledCellsMethodId ) ; printf("\nAALParamParticularContType1. PartiallyFilledCellsMethod = 0X%X",AALParamParticularContType1. PartiallyFilledCellsMethod ) ; } break; } case 2: { printf("\nAALParamParticularContType2.AALType = %d",AALParamParticularContType2.AALType); break; } case 3: { printf("\nAALParamParticularContType3_4.AALType = %d",AALParamParticularContType3_4.AALType); printf("\nAALParamParticularContType3_4. ForwardMaximumCPCS_SDUSizeFilled = 0X%X", AALParamParticularContType3_4. ForwardMaximumCPCS_SDUSizeFilled ) ; if (AALParamParticularContType3_4. ForwardMaximumCPCS_SDUSizeFilled == True) { printf("\nAALParamParticularContType3_4. ForwardMaximumCPCS_SDUSizeId = 0X%X", AALParamParticularContType3_4. ForwardMaximumCPCS_SDUSizeId ) ; printf("\nAALParamParticularContType3_4. ForwardMaximumCPCS_SDUSize = 0X%X", AALParamParticularContType3_4. ForwardMaximumCPCS_SDUSize ) ; } printf("\nAALParamParticularContType3_4. BackwardMaximumCPCS_SDUSizeFilled = 0X%X", AALParamParticularContType3_4. BackwardMaximumCPCS_SDUSizeFilled ) ; if ( AALParamParticularContType3_4. BackwardMaximumCPCS_SDUSizeFilled == True )

Pagina 9.4

Anexa 4
{ printf("\nAALParamParticularContType3_4. BackwardMaximumCPCS_SDUSizeId = 0X%X", AALParamParticularContType3_4. BackwardMaximumCPCS_SDUSizeId ) ; printf("\nAALParamParticularContType3_4. BackwardMaximumCPCS_SDUSize = 0X%X", AALParamParticularContType3_4. BackwardMaximumCPCS_SDUSize ) ; } printf("\nAALParamParticularContType3_4.MIDRangeFilled = 0X%X",AALParamParticularContType3_4.MIDRangeFilled ) ; if ( AALParamParticularContType3_4.MIDRangeFilled == True ) { printf("\nAALParamParticularContType3_4.MIDRangeId = 0X%X",AALParamParticularContType3_4.MIDRangeId ) ; printf("\nAALParamParticularContType3_4. MIDRangeLowestMIDValue = 0X%X", AALParamParticularContType3_4.MIDRangeLowestMIDValue ) ; printf("\nAALParamParticularContType3_4. MIDRangeHighestMIDValue = 0X%X", AALParamParticularContType3_4. MIDRangeHighestMIDValue ) ; } printf("\nAALParamParticularContType3_4.SSCSTypeFilled = 0X%X", AALParamParticularContType3_4.SSCSTypeFilled ) ; if ( AALParamParticularContType3_4.SSCSTypeFilled == True ) { printf("\nAALParamParticularContType3_4.SSCSTypeId = 0X%X",AALParamParticularContType3_4.SSCSTypeId ) ; printf("\nAALParamParticularContType3_4.SSCSType = 0X%X", AALParamParticularContType3_4.SSCSType ) ; } break; } case 5: { printf("\nAALParamParticularContType5.AALType = %d", AALParamParticularContType5.AALType); printf("\nAALParamParticularContType5. ForwardMaximumCPCS_SDUSizeFilled = 0X%X",AALParamParticularContType5. ForwardMaximumCPCS_SDUSizeFilled ) ; if (AALParamParticularContType5. ForwardMaximumCPCS_SDUSizeFilled == True) { printf("\nAALParamParticularContType5. ForwardMaximumCPCS_SDUSizeId = 0X%X", AALParamParticularContType5. ForwardMaximumCPCS_SDUSizeId ) ; printf("\nAALParamParticularContType5. ForwardMaximumCPCS_SDUSize = 0X%X",AALParamParticularContType5. ForwardMaximumCPCS_SDUSize ) ; } printf("\nAALParamParticularContType5. BackwardMaximumCPCS_SDUSizeFilled = 0X%X", AALParamParticularContType5. BackwardMaximumCPCS_SDUSizeFilled ) ; if ( AALParamParticularContType5. BackwardMaximumCPCS_SDUSizeFilled == True )

Pagina 9.5

Anexa 4
{ printf("\nAALParamParticularContType5. BackwardMaximumCPCS_SDUSizeId = 0X%X", AALParamParticularContType5. BackwardMaximumCPCS_SDUSizeId ) ; printf("\nAALParamParticularContType5. BackwardMaximumCPCS_SDUSize = 0X%X", AALParamParticularContType5. BackwardMaximumCPCS_SDUSize ) ; } printf("\nAALParamParticularContType5.SSCSTypeFilled = 0X%X", AALParamParticularContType5.SSCSTypeFilled ) ; if ( AALParamParticularContType5.SSCSTypeFilled == True ) { printf("\nAALParamParticularContType5.SSCSTypeId = 0X%X",AALParamParticularContType5.SSCSTypeId ) ; printf("\nAALParamParticularContType5.SSCSType = 0X%X", AALParamParticularContType5.SSCSType ) ; } break; } case 16: { printf("\nAALParamParticularContUserDefinedAAL.AALType = %d", AALParamParticularContUserDefinedAAL.AALType); printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation1Filled = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation1Filled ) ; if ( AALParamParticularContUserDefinedAAL. UserDefinedAALInformation1Filled == True ) { printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation1 = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation1 ) ; } printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation2Filled = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation2Filled ) ; if ( AALParamParticularContUserDefinedAAL. UserDefinedAALInformation2Filled == True ) { printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation2 = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation2 ) ; } printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation3Filled = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation3Filled ) ; if ( AALParamParticularContUserDefinedAAL. UserDefinedAALInformation3Filled == True ) { printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation3 = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation3 ) ; }

Pagina 9.6

Anexa 4
printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation4Filled = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation4Filled ) ; if ( AALParamParticularContUserDefinedAAL. UserDefinedAALInformation4Filled == True ) { printf("\nAALParamParticularContUserDefinedAAL. UserDefinedAALInformation4 = 0X%X", AALParamParticularContUserDefinedAAL. UserDefinedAALInformation4 ) ; } break; } } } if (Message.ATMTrDescrIE.FilledIn == True) { Wait(); printf("\n ATM Traffic Descriptor:\n"); printf("\nMessage.ATMTrDescrIE.IEId = 0X%X",Message.ATMTrDescrIE.IEId); printf("\nMessage.ATMTrDescrIE.FilledIn = %d",Message.ATMTrDescrIE.FilledIn); printf("\nMessage.ATMTrDescrIE.Ext = %d",Message.ATMTrDescrIE.Ext); printf("\nMessage.ATMTrDescrIE.CodStandard = %d",Message.ATMTrDescrIE.CodStandard); printf("\nMessage.ATMTrDescrIE.Flag = %d",Message.ATMTrDescrIE.Flag); printf("\nMessage.ATMTrDescrIE.Res = %d",Message.ATMTrDescrIE.Res); printf("\nMessage.ATMTrDescrIE.IEActionInd = %d",Message.ATMTrDescrIE.IEActionInd); printf("\nMessage.ATMTrDescrIE.IEContLen = %d",Message.ATMTrDescrIE.IEContLen); printf("\nMessage.ATMTrDescrIE.IECont.BytesArrayLen = %d",Message.ATMTrDescrIE.IECont.BytesArrayLen); printf("\nMessage.ATMTrDescrIE.IECont.BytesArrayCont:"); Wait(); for (int h=1;h<=Message.ATMTrDescrIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.ATMTrDescrIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nATMTrDescrParticularCont.ForwardPeakCellRateFilledIn0 = %d",ATMTrDescrParticularCont.ForwardPeakCellRateFilledIn0); if ( ATMTrDescrParticularCont.ForwardPeakCellRateFilledIn0 ==True ) { printf("\nATMTrDescrParticularCont.ForwardPeakCellRateID0 = %X = %d",ATMTrDescrParticularCont.ForwardPeakCellRateID0, ATMTrDescrParticularCont.ForwardPeakCellRateID0); printf("\nATMTrDescrParticularCont.ForwardPeakCellRate0 = %X = %d", ATMTrDescrParticularCont.ForwardPeakCellRate0, ATMTrDescrParticularCont.ForwardPeakCellRate0); } printf("\nATMTrDescrParticularCont.BackwardPeakCellRateFilledIn0 = %d", ATMTrDescrParticularCont.BackwardPeakCellRateFilledIn0); if ( ATMTrDescrParticularCont.BackwardPeakCellRateFilledIn0 ==True ) { printf("\nATMTrDescrParticularCont.BackwardPeakCellRateID0 = %X = %d", ATMTrDescrParticularCont.BackwardPeakCellRateID0, ATMTrDescrParticularCont.BackwardPeakCellRateID0); printf("\nATMTrDescrParticularCont.BackwardPeakCellRate0 = %X = %d", ATMTrDescrParticularCont.BackwardPeakCellRate0, ATMTrDescrParticularCont.BackwardPeakCellRate0); }

Pagina 9.7

Anexa 4
printf("\nATMTrDescrParticularCont.ForwardPeakCellRateFilledIn01 = %d", ATMTrDescrParticularCont.ForwardPeakCellRateFilledIn01); if ( ATMTrDescrParticularCont.ForwardPeakCellRateFilledIn01 ==True ) { printf("\nATMTrDescrParticularCont.ForwardPeakCellRateID01 = %X = %d", ATMTrDescrParticularCont.ForwardPeakCellRateID01, ATMTrDescrParticularCont.ForwardPeakCellRateID01); printf("\nATMTrDescrParticularCont.ForwardPeakCellRate01 = %X = %d", ATMTrDescrParticularCont.ForwardPeakCellRate01, ATMTrDescrParticularCont.ForwardPeakCellRate01); } printf("\nATMTrDescrParticularCont.BackwardPeakCellRateFilledIn01 = %d", ATMTrDescrParticularCont.BackwardPeakCellRateFilledIn01); if ( ATMTrDescrParticularCont.BackwardPeakCellRateFilledIn01 ==True ) { printf("\nATMTrDescrParticularCont.BackwardPeakCellRateID01 = %X = %d", ATMTrDescrParticularCont.BackwardPeakCellRateID01, ATMTrDescrParticularCont.BackwardPeakCellRateID01); printf("\nATMTrDescrParticularCont.BackwardPeakCellRate01 = %X = %d", ATMTrDescrParticularCont.BackwardPeakCellRate01, ATMTrDescrParticularCont.BackwardPeakCellRate01); } } if (Message.BBBCapIE.FilledIn == True) { Wait(); printf("\n Broadband Bearer Capacity Information Element:\n"); printf("\nMessage.BBBCapIE.IEId = 0X%X",Message.BBBCapIE.IEId); printf("\nMessage.BBBCapIE.FilledIn = %d",Message.BBBCapIE.FilledIn); printf("\nMessage.BBBCapIE.Ext = %d",Message.BBBCapIE.Ext); printf("\nMessage.BBBCapIE.CodStandard = %d",Message.BBBCapIE.CodStandard); printf("\nMessage.BBBCapIE.Flag = %d",Message.BBBCapIE.Flag); printf("\nMessage.BBBCapIE.Res = %d",Message.BBBCapIE.Res); printf("\nMessage.BBBCapIE.IEActionInd = %d",Message.BBBCapIE.IEActionInd); printf("\nMessage.BBBCapIE.IEContLen = %d bytes",Message.BBBCapIE.IEContLen); Wait(); printf("\nMessage.BBBCapIE.IECont.BytesArrayLen = %d bytes", Message.BBBCapIE.IECont.BytesArrayLen); printf("\nMessage.BBBCapIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBBCapIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBBCapIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nBBBCapParticularCont.Ext5 = 0X%X = %d", BBBCapParticularCont.Ext5,BBBCapParticularCont.Ext5); printf("\nBBBCapParticularCont.BearerClass = 0X%X = %d", BBBCapParticularCont.BearerClass,BBBCapParticularCont.BearerClass); printf("\nBBBCapParticularCont.ClassXFilledIn = 0X%X = %d", BBBCapParticularCont.ClassXFilledIn,BBBCapParticularCont.ClassXFilledIn); if ( BBBCapParticularCont.ClassXFilledIn == True ) { printf("\nBBBCapParticularCont.Ext5a = 0X%X = %d", BBBCapParticularCont.Ext5a,BBBCapParticularCont.Ext5a); printf("\nBBBCapParticularCont.TrafficType = 0X%X = %d", BBBCapParticularCont.TrafficType,BBBCapParticularCont.TrafficType); printf("\nBBBCapParticularCont.TimingRequirements = 0X%X = %d", BBBCapParticularCont.TimingRequirements, BBBCapParticularCont.TimingRequirements);

Pagina 9.8

Anexa 4
} printf("\nBBBCapParticularCont.Ext6 = 0X%X = %d", BBBCapParticularCont.Ext6,BBBCapParticularCont.Ext6); printf("\nBBBCapParticularCont.SusceptibilityToClipping = 0X%X = %d", BBBCapParticularCont.SusceptibilityToClipping, BBBCapParticularCont.SusceptibilityToClipping); printf("\nBBBCapParticularCont.UserPlaneConnectionConfiguration = 0X%X = %d", BBBCapParticularCont.UserPlaneConnectionConfiguration, BBBCapParticularCont.UserPlaneConnectionConfiguration); }; if (Message.BBHLInfIE.FilledIn == True) { Wait(); printf("\n Broadband High Layer Information Element:\n"); printf("\nMessage.BBHLInfIE.IEId = 0X%X",Message.BBHLInfIE.IEId); printf("\nMessage.BBHLInfIE.FilledIn = %d",Message.BBHLInfIE.FilledIn); printf("\nMessage.BBHLInfIE.Ext = %d",Message.BBHLInfIE.Ext); printf("\nMessage.BBHLInfIE.CodStandard = %d",Message.BBHLInfIE.CodStandard); printf("\nMessage.BBHLInfIE.Flag = %d",Message.BBHLInfIE.Flag); printf("\nMessage.BBHLInfIE.Res = %d",Message.BBHLInfIE.Res); printf("\nMessage.BBHLInfIE.IEActionInd = %d",Message.BBHLInfIE.IEActionInd); printf("\nMessage.BBHLInfIE.IEContLen = %d bytes",Message.BBHLInfIE.IEContLen); Wait(); printf("\nMessage.BBHLInfIE.IECont.BytesArrayLen = %d bytes", Message.BBHLInfIE.IECont.BytesArrayLen); printf("\nMessage.BBHLInfIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBHLInfIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBHLInfIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nBBHLInfParticularCont.Ext = 0X%X = %d", BBHLInfParticularCont.Ext,BBHLInfParticularCont.Ext); printf("\nBBHLInfParticularCont.HighLayerInformationType = 0X%X = %d", BBHLInfParticularCont.HighLayerInformationType, BBHLInfParticularCont.HighLayerInformationType); short No=0; while ( No < 8 ) { No++; printf("\nBBHLInfParticularCont.HighLayerInformationFilledIn[%d] = 0X%X = %d",No, BBHLInfParticularCont.HighLayerInformationFilledIn[No], BBHLInfParticularCont.HighLayerInformationFilledIn[No]); if ( BBHLInfParticularCont.HighLayerInformationFilledIn[No] == True ) { printf("\nBBHLInfParticularCont.HighLayerInformation[%d] = 0X%X = %d",No, BBHLInfParticularCont.HighLayerInformation[No], BBHLInfParticularCont.HighLayerInformation[No]); } } }; if (Message.BBRepIndIE.FilledIn == True) { Wait(); printf("\n Broadband Repeat Indicator Information Element:\n"); printf("\nMessage.BBRepIndIE.IEId = 0X%X",Message.BBRepIndIE.IEId); printf("\nMessage.BBRepIndIE.FilledIn = %d",Message.BBRepIndIE.FilledIn); printf("\nMessage.BBRepIndIE.Ext = %d",Message.BBRepIndIE.Ext);

Pagina 9.9

Anexa 4
printf("\nMessage.BBRepIndIE.CodStandard = %d",Message.BBRepIndIE.CodStandard); printf("\nMessage.BBRepIndIE.Flag = %d",Message.BBRepIndIE.Flag); printf("\nMessage.BBRepIndIE.Res = %d",Message.BBRepIndIE.Res); printf("\nMessage.BBRepIndIE.IEActionInd = %d",Message.BBRepIndIE.IEActionInd); printf("\nMessage.BBRepIndIE.IEContLen = %d bytes",Message.BBRepIndIE.IEContLen); Wait(); printf("\nMessage.BBRepIndIE.IECont.BytesArrayLen = %d bytes", Message.BBRepIndIE.IECont.BytesArrayLen); printf("\nMessage.BBRepIndIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBRepIndIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBRepIndIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nBBRepIndParticularCont.Ext = 0X%X = %d", BBRepIndParticularCont.Ext,BBRepIndParticularCont.Ext); printf("\nBBRepIndParticularCont.BroadbandRepeatIndication = 0X%X = %d", BBRepIndParticularCont.BroadbandRepeatIndication, BBRepIndParticularCont.BroadbandRepeatIndication); }; if (Message.BBLLInfIE.FilledIn == True) { Wait(); printf("\n Broadband Low Layer Information Element:\n"); printf("\nMessage.BBLLInfIE.IEId = 0X%X",Message.BBLLInfIE.IEId); printf("\nMessage.BBLLInfIE.FilledIn = %d",Message.BBLLInfIE.FilledIn); printf("\nMessage.BBLLInfIE.Ext = %d",Message.BBLLInfIE.Ext); printf("\nMessage.BBLLInfIE.CodStandard = %d",Message.BBLLInfIE.CodStandard); printf("\nMessage.BBLLInfIE.Flag = %d",Message.BBLLInfIE.Flag); printf("\nMessage.BBLLInfIE.Res = %d",Message.BBLLInfIE.Res); printf("\nMessage.BBLLInfIE.IEActionInd = %d",Message.BBLLInfIE.IEActionInd); printf("\nMessage.BBLLInfIE.IEContLen = %d bytes",Message.BBLLInfIE.IEContLen); Wait(); printf("\nMessage.BBLLInfIE.IECont.BytesArrayLen = %d bytes", Message.BBLLInfIE.IECont.BytesArrayLen); printf("\nMessage.BBLLInfIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBLLInfIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBLLInfIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nBBLLInfParticularCont.Layer1.FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer1.FilledIn,BBLLInfParticularCont.Layer1.FilledIn); if ( BBLLInfParticularCont.Layer1.FilledIn ==1 ) { printf("\nBBLLInfParticularCont.Layer1.Ext = 0X%X = %d", BBLLInfParticularCont.Layer1.Ext,BBLLInfParticularCont.Layer1.Ext); printf("\nBBLLInfParticularCont.Layer1.ID = 0X%X = %d", BBLLInfParticularCont.Layer1.ID,BBLLInfParticularCont.Layer1.ID); printf("\nBBLLInfParticularCont.Layer1.UserInformationLayer1Protocol = 0X%X = %d", BBLLInfParticularCont.Layer1.UserInformationLayer1Protocol, BBLLInfParticularCont.Layer1.UserInformationLayer1Protocol); } printf("\nBBLLInfParticularCont.Layer2.FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer2.FilledIn,BBLLInfParticularCont.Layer2.FilledIn); if ( BBLLInfParticularCont.Layer2.FilledIn ==1 ) { printf("\nBBLLInfParticularCont.Layer2.Ext = 0X%X = %d", BBLLInfParticularCont.Layer2.Ext,BBLLInfParticularCont.Layer2.Ext);

Pagina 9.10

Anexa 4
printf("\nBBLLInfParticularCont.Layer2.ID = 0X%X = %d", BBLLInfParticularCont.Layer2.ID,BBLLInfParticularCont.Layer2.ID); printf("\nBBLLInfParticularCont.Layer2.UserInformationLayer2Protocol = 0X%X = %d", BBLLInfParticularCont.Layer2.UserInformationLayer2Protocol, BBLLInfParticularCont.Layer2.UserInformationLayer2Protocol); printf("\nBBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.FilledIn, BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.FilledIn); if (BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.FilledIn ==1) { printf("\nBBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6a=0X%X= %d",BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6a, BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6a); printf("\nBBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Mode = 0X%X = %d",BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Mode, BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Mode); printf("\nBBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Q933Use = 0X%X = %d",BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode. Q933Use,BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Q933Use); if (BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6a ==1) { printf("\nBBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6b 0X%X = %d", BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6b, BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode.Ext6b); printf("\nBBLLInfParticularCont.Layer2. HDLCAcknowledgeMode.WindowSizeK = 0X%X = %d", BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode. WindowSizeK, BBLLInfParticularCont.Layer2.HDLCAcknowledgeMode. WindowSizeK); } } printf("\nBBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.FilledIn, BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.FilledIn); if (BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.FilledIn ==1) { printf("\nBBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.Ext = 0X%X = %d", BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.Ext, BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.Ext); printf("\nBBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.Content = 0X%X = %d", BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.Content, BBLLInfParticularCont.Layer2.UserSpecifiedLayer2ProtocolInformation.Content); } } Wait(); printf("\nBBLLInfParticularCont.Layer3.FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer3.FilledIn,BBLLInfParticularCont.Layer3.FilledIn); if ( BBLLInfParticularCont.Layer3.FilledIn ==1 ) { printf("\nBBLLInfParticularCont.Layer3.Ext = 0X%X = %d", BBLLInfParticularCont.Layer3.Ext,BBLLInfParticularCont.Layer3.Ext); printf("\nBBLLInfParticularCont.Layer3.ID = 0X%X = %d", BBLLInfParticularCont.Layer3.ID,BBLLInfParticularCont.Layer3.ID); printf("\nBBLLInfParticularCont.Layer3.UserInformationLayer3Protocol = 0X%X = %d",BBLLInfParticularCont.Layer3.UserInformationLayer3Protocol,

Pagina 9.11

Anexa 4
BBLLInfParticularCont.Layer3.UserInformationLayer3Protocol); printf("\nBBLLInfParticularCont.Layer3.Note3.FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer3.Note3.FilledIn, BBLLInfParticularCont.Layer3.Note3.FilledIn); if ( BBLLInfParticularCont.Layer3.Note3.FilledIn ==1 ) { printf("\nBBLLInfParticularCont.Layer3.Note3.Ext7a = 0X%X = %d", BBLLInfParticularCont.Layer3.Note3.Ext7a, BBLLInfParticularCont.Layer3.Note3.Ext7a); printf("\nBBLLInfParticularCont.Layer3.Note3.Mode = 0X%X = %d", BBLLInfParticularCont.Layer3.Note3.Mode, BBLLInfParticularCont.Layer3.Note3.Mode); if ( BBLLInfParticularCont.Layer3.Note3.Ext7a ==1 ) { printf("\nBBLLInfParticularCont.Layer3.Note3.Ext7b = 0X%X = %d",BBLLInfParticularCont.Layer3.Note3.Ext7b, BBLLInfParticularCont.Layer3.Note3.Ext7b); printf("\nBBLLInfParticularCont.Layer3.Note3. DefaultPacketSize = 0X%X =%d", BBLLInfParticularCont.Layer3.Note3.DefaultPacketSize, BBLLInfParticularCont.Layer3.Note3.DefaultPacketSize); if ( BBLLInfParticularCont.Layer3.Note3.Ext7b ==1 ) { printf("\nBBLLInfParticularCont.Layer3.Note3.Ext7c = 0X%X = %d", BBLLInfParticularCont.Layer3.Note3.Ext7c, BBLLInfParticularCont.Layer3.Note3.Ext7c); printf("\nBBLLInfParticularCont.Layer3.Note3. PacketWindowSize = 0X%X = %d", BBLLInfParticularCont.Layer3.Note3. PacketWindowSize,BBLLInfParticularCont. Layer3.Note3.PacketWindowSize); } } } printf("\nBBLLInfParticularCont.Layer3.UserSpecifiedLayer3ProtocolInformation. FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer3.UserSpecifiedLayer3ProtocolInformation. FilledIn,BBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.FilledIn); if (BBLLInfParticularCont.Layer3.UserSpecifiedLayer3ProtocolInformation. FilledIn ==1) { printf("\nBBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.Ext = 0X%X = %d", BBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.Ext, BBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.Ext); printf("\nBBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.Content = 0X%X = %d", BBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.Content, BBLLInfParticularCont.Layer3. UserSpecifiedLayer3ProtocolInformation.Content); } printf("\nBBLLInfParticularCont.Layer3.AditionalLayer3ProtocolInformation. FilledIn = 0X%X = %d", BBLLInfParticularCont.Layer3.AditionalLayer3ProtocolInformation.FilledIn, BBLLInfParticularCont.Layer3.AditionalLayer3ProtocolInformation.FilledIn);

Pagina 9.12

Anexa 4
if (BBLLInfParticularCont.Layer3.AditionalLayer3ProtocolInformation.FilledIn ==1) { printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_1 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_1, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_1); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_2 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_2, BBLLInfParticularCont. Layer3.AditionalLayer3ProtocolInformation.Cont7_2); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_3 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_3, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_3); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_4 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_4, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_4); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_5 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_5, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_5); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_6 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_6, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_6); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_7 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_7, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_7); printf("\nBBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_8 = 0X%X = %d", BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_8, BBLLInfParticularCont.Layer3. AditionalLayer3ProtocolInformation.Cont7_8); } } }; if (Message.CallPNrIE.FilledIn == True) { Wait(); printf("\n Called Party Number Information Element:\n"); printf("\nMessage.CallPNrIE.IEId = 0X%X",Message.CallPNrIE.IEId); printf("\nMessage.CallPNrIE.FilledIn = %d",Message.CallPNrIE.FilledIn);

Pagina 9.13

Anexa 4
printf("\nMessage.CallPNrIE.Ext = %d",Message.CallPNrIE.Ext); printf("\nMessage.CallPNrIE.CodStandard = %d",Message.CallPNrIE.CodStandard); printf("\nMessage.CallPNrIE.Flag = %d",Message.CallPNrIE.Flag); printf("\nMessage.CallPNrIE.Res = %d",Message.CallPNrIE.Res); printf("\nMessage.CallPNrIE.IEActionInd = %d",Message.CallPNrIE.IEActionInd); printf("\nMessage.CallPNrIE.IEContLen = %d bytes",Message.CallPNrIE.IEContLen); Wait(); printf("\nMessage.CallPNrIE.IECont.BytesArrayLen = %d bytes", Message.CallPNrIE.IECont.BytesArrayLen); printf("\nMessage.CallPNrIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.CallPNrIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.CallPNrIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nCallPNrParticularCont.Ext = 0X%X = %d", CallPNrParticularCont.Ext,CallPNrParticularCont.Ext); printf("\nCallPNrParticularCont.TypeOfNumber = 0X%X = %d", CallPNrParticularCont.TypeOfNumber,CallPNrParticularCont.TypeOfNumber); printf("\nCallPNrParticularCont.Addressing_NumberingPlanIdentification = 0X%X = %d", CallPNrParticularCont.Addressing_NumberingPlanIdentification, CallPNrParticularCont.Addressing_NumberingPlanIdentification); short No=0; if ( CallPNrParticularCont.Addressing_NumberingPlanIdentification == 0X01 ) {while ( No < Message.CallPNrIE.IECont.BytesArrayLen-1 ) { No++; printf("\nCallPNrParticularCont.Address_NumberDigitsFilledIn[%d] = 0X%X = %d",No, CallPNrParticularCont.Address_NumberDigitsFilledIn[No], CallPNrParticularCont.Address_NumberDigitsFilledIn[No]); if ( CallPNrParticularCont.Address_NumberDigitsFilledIn[No] == True ) { printf("\nCallPNrParticularCont.Address_NumberDigits[%d] = 0X%X = %d",No, CallPNrParticularCont.Address_NumberDigits[No], CallPNrParticularCont.Address_NumberDigits[No]); } } } No=0; if ( CallPNrParticularCont.Addressing_NumberingPlanIdentification == 0X02 ) {while ( No < Message.CallPNrIE.IECont.BytesArrayLen-1 ) { No++; printf("\nCallPNrParticularCont.NSAPAddressOctetsFilledIn[%d] = 0X%X = %d",No, CallPNrParticularCont.NSAPAddressOctetsFilledIn[No], CallPNrParticularCont.NSAPAddressOctetsFilledIn[No]); if ( CallPNrParticularCont.NSAPAddressOctetsFilledIn[No] == True ) { printf("\nCallPNrParticularCont.NSAPAddressOctets[%d] = 0X%X = %d",No, CallPNrParticularCont.NSAPAddressOctets[No], CallPNrParticularCont.NSAPAddressOctets[No]); } } } }; if (Message.CallPSubAdrIE.FilledIn == True) { Wait(); printf("\n Called Party Sub-Address Information Element:\n");

Pagina 9.14

Anexa 4
printf("\nMessage.CallPSubAdrIE.IEId = 0X%X",Message.CallPSubAdrIE.IEId); printf("\nMessage.CallPSubAdrIE.FilledIn = %d",Message.CallPSubAdrIE.FilledIn); printf("\nMessage.CallPSubAdrIE.Ext = %d",Message.CallPSubAdrIE.Ext); printf("\nMessage.CallPSubAdrIE.CodStandard = %d",Message.CallPSubAdrIE.CodStandard); printf("\nMessage.CallPSubAdrIE.Flag = %d",Message.CallPSubAdrIE.Flag); printf("\nMessage.CallPSubAdrIE.Res = %d",Message.CallPSubAdrIE.Res); printf("\nMessage.CallPSubAdrIE.IEActionInd = %d",Message.CallPSubAdrIE.IEActionInd); printf("\nMessage.CallPSubAdrIE.IEContLen = %d bytes",Message.CallPSubAdrIE.IEContLen); Wait(); printf("\nMessage.CallPSubAdrIE.IECont.BytesArrayLen = %d bytes", Message.CallPSubAdrIE.IECont.BytesArrayLen); printf("\nMessage.CallPSubAdrIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.CallPSubAdrIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.CallPSubAdrIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nCallPSubAdrParticularCont.Ext = 0X%X = %d", CallPSubAdrParticularCont.Ext,CallPSubAdrParticularCont.Ext); printf("\nCallPSubAdrParticularCont.TypeOfSubAddress = 0X%X = %d", CallPSubAdrParticularCont.TypeOfSubAddress, CallPSubAdrParticularCont.TypeOfSubAddress); printf("\nCallPSubAdrParticularCont.Odd_EvenIndicator = 0X%X = %d", CallPSubAdrParticularCont.Odd_EvenIndicator, CallPSubAdrParticularCont.Odd_EvenIndicator); short No=0; while ( No < Message.CallPSubAdrIE.IECont.BytesArrayLen-1 ) { No++; printf("\nCallPSubAdrParticularCont.SubAddressInformationFilledIn[%d] = 0X%X = %d", No,CallPSubAdrParticularCont.SubAddressInformationFilledIn[No], CallPSubAdrParticularCont.SubAddressInformationFilledIn[No]); if ( CallPSubAdrParticularCont.SubAddressInformationFilledIn[No] == True ) { printf("\nCallPSubAdrParticularCont.SubAddressInformation[%d] = 0X%X = %d", No,CallPSubAdrParticularCont.SubAddressInformation[No], CallPSubAdrParticularCont.SubAddressInformation[No]); } } }; if (Message.CallgPNrIE.FilledIn == True) { Wait(); printf("\n Calling Party Number Information Element:\n"); printf("\nMessage.CallgPNrIE.IEId = 0X%X",Message.CallgPNrIE.IEId); printf("\nMessage.CallgPNrIE.FilledIn = %d",Message.CallgPNrIE.FilledIn); printf("\nMessage.CallgPNrIE.Ext = %d",Message.CallgPNrIE.Ext); printf("\nMessage.CallgPNrIE.CodStandard = %d",Message.CallgPNrIE.CodStandard); printf("\nMessage.CallgPNrIE.Flag = %d",Message.CallgPNrIE.Flag); printf("\nMessage.CallgPNrIE.Res = %d",Message.CallgPNrIE.Res); printf("\nMessage.CallgPNrIE.IEActionInd = %d",Message.CallgPNrIE.IEActionInd); printf("\nMessage.CallgPNrIE.IEContLen = %d bytes",Message.CallgPNrIE.IEContLen); Wait(); printf("\nMessage.CallgPNrIE.IECont.BytesArrayLen = %d bytes", Message.CallgPNrIE.IECont.BytesArrayLen); printf("\nMessage.CallgPNrIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.CallgPNrIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.CallgPNrIE.IECont.BytesArrayCont[h]);

Pagina 9.15

Anexa 4
}; Wait(); printf("\nCallgPNrParticularCont.Ext5 = 0X%X = %d", CallgPNrParticularCont.Ext5,CallgPNrParticularCont.Ext5); printf("\nCallgPNrParticularCont.TypeOfNumber = 0X%X = %d", CallgPNrParticularCont.TypeOfNumber,CallgPNrParticularCont.TypeOfNumber); printf("\nCallgPNrParticularCont.Addressing_NumberingPlanIdentification = 0X%X = %d", CallgPNrParticularCont.Addressing_NumberingPlanIdentification, CallgPNrParticularCont.Addressing_NumberingPlanIdentification); short iola=1; if ( CallgPNrParticularCont.Ext5 == True ) { iola++; printf("\nCallgPNrParticularCont.Ext5a = 0X%X = %d", CallgPNrParticularCont.Ext5a,CallgPNrParticularCont.Ext5a); printf("\nCallgPNrParticularCont.PresentationIndicator = 0X%X = %d", CallgPNrParticularCont.PresentationIndicator, CallgPNrParticularCont.PresentationIndicator); printf("\nCallgPNrParticularCont.ScreeningIndicator = 0X%X = %d", CallgPNrParticularCont.ScreeningIndicator, CallgPNrParticularCont.ScreeningIndicator); } short No=0; if ( CallgPNrParticularCont.Addressing_NumberingPlanIdentification == 0X01 ) {while ( No < Message.CallgPNrIE.IECont.BytesArrayLen-iola ) { No++; printf("\nCallgPNrParticularCont.Address_NumberDigitsFilledIn[%d] = 0X%X = %d",No, CallgPNrParticularCont.Address_NumberDigitsFilledIn[No], CallgPNrParticularCont.Address_NumberDigitsFilledIn[No]); if ( CallgPNrParticularCont.Address_NumberDigitsFilledIn[No] == True ) { printf("\nCallgPNrParticularCont.Address_NumberDigits[%d] = 0X%X = %d",No, CallgPNrParticularCont.Address_NumberDigits[No], CallgPNrParticularCont.Address_NumberDigits[No]); } } } No=0; if ( CallgPNrParticularCont.Addressing_NumberingPlanIdentification == 0X02 ) {while ( No < Message.CallgPNrIE.IECont.BytesArrayLen-iola ) { No++; printf("\nCallgPNrParticularCont.NSAPAddressOctetsFilledIn[%d] = 0X%X = %d",No, CallgPNrParticularCont.NSAPAddressOctetsFilledIn[No], CallgPNrParticularCont.NSAPAddressOctetsFilledIn[No]); if ( CallgPNrParticularCont.NSAPAddressOctetsFilledIn[No] == True ) { printf("\nCallgPNrParticularCont.NSAPAddressOctets[%d] = 0X%X = %d",No, CallgPNrParticularCont.NSAPAddressOctets[No], CallgPNrParticularCont.NSAPAddressOctets[No]); } } } }; if (Message.CallgPSubAdrIE.FilledIn == True) { Wait();

Pagina 9.16

Anexa 4
printf("\n Calling Party Sub-Address Information Element:\n"); printf("\nMessage.CallgPSubAdrIE.IEId = 0X%X",Message.CallgPSubAdrIE.IEId); printf("\nMessage.CallgPSubAdrIE.FilledIn = %d",Message.CallgPSubAdrIE.FilledIn); printf("\nMessage.CallgPSubAdrIE.Ext = %d",Message.CallgPSubAdrIE.Ext); printf("\nMessage.CallgPSubAdrIE.CodStandard = %d",Message.CallgPSubAdrIE.CodStandard); printf("\nMessage.CallgPSubAdrIE.Flag = %d",Message.CallgPSubAdrIE.Flag); printf("\nMessage.CallgPSubAdrIE.Res = %d",Message.CallgPSubAdrIE.Res); printf("\nMessage.CallgPSubAdrIE.IEActionInd = %d",Message.CallgPSubAdrIE.IEActionInd); printf("\nMessage.CallgPSubAdrIE.IEContLen = %d bytes",Message.CallgPSubAdrIE.IEContLen); Wait(); printf("\nMessage.CallgPSubAdrIE.IECont.BytesArrayLen = %d bytes", Message.CallgPSubAdrIE.IECont.BytesArrayLen); printf("\nMessage.CallgPSubAdrIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.CallgPSubAdrIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.CallgPSubAdrIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nCallgPSubAdrParticularCont.Ext = 0X%X = %d", CallgPSubAdrParticularCont.Ext,CallgPSubAdrParticularCont.Ext); printf("\nCallgPSubAdrParticularCont.TypeOfSubAddress = 0X%X = %d", CallgPSubAdrParticularCont.TypeOfSubAddress, CallgPSubAdrParticularCont.TypeOfSubAddress); printf("\nCallgPSubAdrParticularCont.Odd_EvenIndicator = 0X%X = %d", CallgPSubAdrParticularCont.Odd_EvenIndicator, CallgPSubAdrParticularCont.Odd_EvenIndicator); short No=0; while ( No < Message.CallgPSubAdrIE.IECont.BytesArrayLen-1 ) { No++; printf("\nCallgPSubAdrParticularCont.SubAddressInformationFilledIn[%d] = 0X%X = %d", No,CallgPSubAdrParticularCont.SubAddressInformationFilledIn[No], CallgPSubAdrParticularCont.SubAddressInformationFilledIn[No]); if ( CallgPSubAdrParticularCont.SubAddressInformationFilledIn[No] == True ) { printf("\nCallgPSubAdrParticularCont.SubAddressInformation[%d] = 0X%X = %d", No,CallgPSubAdrParticularCont.SubAddressInformation[No], CallgPSubAdrParticularCont.SubAddressInformation[No]); } } }; if (Message.ConnIdIE.FilledIn == True) { Wait(); printf("\n Connection Identifier:\n"); printf("\nMessage.ConnIdIE.IEId = 0X%X",Message.ConnIdIE.IEId); printf("\nMessage.ConnIdIE.FilledIn = %d",Message.ConnIdIE.FilledIn); printf("\nMessage.ConnIdIE.Ext = %d",Message.ConnIdIE.Ext); printf("\nMessage.ConnIdIE.CodStandard = %d",Message.ConnIdIE.CodStandard); printf("\nMessage.ConnIdIE.Flag = %d",Message.ConnIdIE.Flag); printf("\nMessage.ConnIdIE.Res = %d",Message.ConnIdIE.Res); printf("\nMessage.ConnIdIE.IEActionInd = %d",Message.ConnIdIE.IEActionInd); printf("\nMessage.ConnIdIE.IEContLen = %d",Message.ConnIdIE.IEContLen); printf("\nMessage.ConnIdIE.IECont.BytesArrayLen = %d", Message.ConnIdIE.IECont.BytesArrayLen); printf("\nMessage.ConnIdIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.ConnIdIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.ConnIdIE.IECont.BytesArrayCont[h]);

Pagina 9.17

Anexa 4
}; printf("\nConnIdParticularCont.Ext = %d",ConnIdParticularCont.Ext); printf("\nConnIdParticularCont.VPAssocSignalling = %d",ConnIdParticularCont.VPAssocSignalling); printf("\nConnIdParticularCont.Preferred_Exclusive = %d", ConnIdParticularCont.Preferred_Exclusive); printf("\nConnIdParticularCont.VPCI = 0X%X = %d", ConnIdParticularCont.VPCI,ConnIdParticularCont.VPCI); printf("\nConnIdParticularCont.VCI = 0X%X = %d", ConnIdParticularCont.VCI,ConnIdParticularCont.VCI); } if (Message.ETETrDelayIE.FilledIn == True) { Wait(); printf("\n End-to-End Transit Delay Information Element:\n"); printf("\nMessage.ETETrDelayIE.IEId = 0X%X",Message.ETETrDelayIE.IEId); printf("\nMessage.ETETrDelayIE.FilledIn = %d",Message.ETETrDelayIE.FilledIn); printf("\nMessage.ETETrDelayIE.Ext = %d",Message.ETETrDelayIE.Ext); printf("\nMessage.ETETrDelayIE.CodStandard = %d",Message.ETETrDelayIE.CodStandard); printf("\nMessage.ETETrDelayIE.Flag = %d",Message.ETETrDelayIE.Flag); printf("\nMessage.ETETrDelayIE.Res = %d",Message.ETETrDelayIE.Res); printf("\nMessage.ETETrDelayIE.IEActionInd = %d",Message.ETETrDelayIE.IEActionInd); printf("\nMessage.ETETrDelayIE.IEContLen = %d bytes",Message.ETETrDelayIE.IEContLen); Wait(); printf("\nMessage.ETETrDelayIE.IECont.BytesArrayLen = %d bytes", Message.ETETrDelayIE.IECont.BytesArrayLen); printf("\nMessage.ETETrDelayIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.ETETrDelayIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.ETETrDelayIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nETETrDelayParticularCont.CumulativeTransitDelayID = 0X%X = %d", ETETrDelayParticularCont.CumulativeTransitDelayID, ETETrDelayParticularCont.CumulativeTransitDelayID); printf("\nETETrDelayParticularCont.CumulativeTransitDelayValue = 0X%X = %d", ETETrDelayParticularCont.CumulativeTransitDelayValue, ETETrDelayParticularCont.CumulativeTransitDelayValue); printf("\nETETrDelayParticularCont.MaximumEndToEndTransitDelayFilledIn = 0X%X = %d", ETETrDelayParticularCont.MaximumEndToEndTransitDelayFilledIn, ETETrDelayParticularCont.MaximumEndToEndTransitDelayFilledIn); if ( ETETrDelayParticularCont.MaximumEndToEndTransitDelayFilledIn ==1 ) { printf("\nETETrDelayParticularCont.MaximumEndToEndTransitDelayID = 0X%X = %d", ETETrDelayParticularCont.MaximumEndToEndTransitDelayID, ETETrDelayParticularCont.MaximumEndToEndTransitDelayID); printf("\nETETrDelayParticularCont.MaximumEndToEndTransitDelayValue = 0X%X = %d", ETETrDelayParticularCont.MaximumEndToEndTransitDelayValue, ETETrDelayParticularCont.MaximumEndToEndTransitDelayValue); }; }; if (Message.NBBCapIE.FilledIn == True) { Wait(); printf("\n Narrow-Band Bearer Capability Information Element:\n"); printf("\nMessage.NBBCapIE.IEId = 0X%X",Message.NBBCapIE.IEId); printf("\nMessage.NBBCapIE.FilledIn = %d",Message.NBBCapIE.FilledIn); printf("\nMessage.NBBCapIE.Ext = %d",Message.NBBCapIE.Ext); printf("\nMessage.NBBCapIE.CodStandard = %d",Message.NBBCapIE.CodStandard);

Pagina 9.18

Anexa 4
printf("\nMessage.NBBCapIE.Flag = %d",Message.NBBCapIE.Flag); printf("\nMessage.NBBCapIE.Res = %d",Message.NBBCapIE.Res); printf("\nMessage.NBBCapIE.IEActionInd = %d",Message.NBBCapIE.IEActionInd); printf("\nMessage.NBBCapIE.IEContLen = %d",Message.NBBCapIE.IEContLen); printf("\nMessage.NBBCapIE.IECont.BytesArrayLen = %d", Message.NBBCapIE.IECont.BytesArrayLen); printf("\nMessage.NBBCapIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.NBBCapIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.NBBCapIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\n The particular content of Narrow-Band Bearer Capability Information "); printf("\nElement is described in Q.931 Recommendation!\n"); }; if (Message.NBHLCompIE.FilledIn == True) { Wait(); printf("\n Narrow-Band High Layer Compability Information Element:\n"); printf("\nMessage.NBHLCompIE.IEId = 0X%X",Message.NBHLCompIE.IEId); printf("\nMessage.NBHLCompIE.FilledIn = %d",Message.NBHLCompIE.FilledIn); printf("\nMessage.NBHLCompIE.Ext = %d",Message.NBHLCompIE.Ext); printf("\nMessage.NBHLCompIE.CodStandard = %d",Message.NBHLCompIE.CodStandard); printf("\nMessage.NBHLCompIE.Flag = %d",Message.NBHLCompIE.Flag); printf("\nMessage.NBHLCompIE.Res = %d",Message.NBHLCompIE.Res); printf("\nMessage.NBHLCompIE.IEActionInd = %d",Message.NBHLCompIE.IEActionInd); printf("\nMessage.NBHLCompIE.IEContLen = %d",Message.NBHLCompIE.IEContLen); printf("\nMessage.NBHLCompIE.IECont.BytesArrayLen = %d", Message.NBHLCompIE.IECont.BytesArrayLen); printf("\nMessage.NBHLCompIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.NBHLCompIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.NBHLCompIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\n The particular content of Narrow-Band High Layer Compability Information "); printf("\nElement is described in Q.931 Recommendation!\n"); }; if (Message.BBRepInd2IE.FilledIn == True) { Wait(); printf("\n Second Broadband Repeat Indicator Information Element:\n"); printf("\nMessage.BBRepInd2IE.IEId = 0X%X",Message.BBRepInd2IE.IEId); printf("\nMessage.BBRepInd2IE.FilledIn = %d",Message.BBRepInd2IE.FilledIn); printf("\nMessage.BBRepInd2IE.Ext = %d",Message.BBRepInd2IE.Ext); printf("\nMessage.BBRepInd2IE.CodStandard = %d",Message.BBRepInd2IE.CodStandard); printf("\nMessage.BBRepInd2IE.Flag = %d",Message.BBRepInd2IE.Flag); printf("\nMessage.BBRepInd2IE.Res = %d",Message.BBRepInd2IE.Res); printf("\nMessage.BBRepInd2IE.IEActionInd = %d",Message.BBRepInd2IE.IEActionInd); printf("\nMessage.BBRepInd2IE.IEContLen = %d bytes",Message.BBRepInd2IE.IEContLen); Wait(); printf("\nMessage.BBRepInd2IE.IECont.BytesArrayLen = %d bytes", Message.BBRepInd2IE.IECont.BytesArrayLen); printf("\nMessage.BBRepInd2IE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBRepInd2IE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBRepInd2IE.IECont.BytesArrayCont[h]); };

Pagina 9.19

Anexa 4
Wait(); printf("\nBBRepInd2ParticularCont.Ext = 0X%X = %d", BBRepInd2ParticularCont.Ext,BBRepInd2ParticularCont.Ext); printf("\nBBRepInd2ParticularCont.BroadbandRepeatIndication = 0X%X = %d", BBRepInd2ParticularCont.BroadbandRepeatIndication, BBRepInd2ParticularCont.BroadbandRepeatIndication); }; if (Message.NBLLCompIE.FilledIn == True) { Wait(); printf("\n Narrow-Band Low Layer Compability Information Element:\n"); printf("\nMessage.NBLLCompIE.IEId = 0X%X",Message.NBLLCompIE.IEId); printf("\nMessage.NBLLCompIE.FilledIn = %d",Message.NBLLCompIE.FilledIn); printf("\nMessage.NBLLCompIE.Ext = %d",Message.NBLLCompIE.Ext); printf("\nMessage.NBLLCompIE.CodStandard = %d",Message.NBLLCompIE.CodStandard); printf("\nMessage.NBLLCompIE.Flag = %d",Message.NBLLCompIE.Flag); printf("\nMessage.NBLLCompIE.Res = %d",Message.NBLLCompIE.Res); printf("\nMessage.NBLLCompIE.IEActionInd = %d",Message.NBLLCompIE.IEActionInd); printf("\nMessage.NBLLCompIE.IEContLen = %d",Message.NBLLCompIE.IEContLen); printf("\nMessage.NBLLCompIE.IECont.BytesArrayLen = %d", Message.NBLLCompIE.IECont.BytesArrayLen); printf("\nMessage.NBLLCompIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.NBLLCompIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.NBLLCompIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\n The particular content of Narrow-Band Low Layer Compability Information "); printf("\nElement is described in Q.931 Recommendation!\n"); }; if (Message.CallStIE.FilledIn == True) { Wait(); printf("\n Call State Information Element:\n"); printf("\nMessage.CallStIE.IEId = 0X%X",Message.CallStIE.IEId); printf("\nMessage.CallStIE.FilledIn = %d",Message.CallStIE.FilledIn); printf("\nMessage.CallStIE.Ext = %d",Message.CallStIE.Ext); printf("\nMessage.CallStIE.CodStandard = %d",Message.CallStIE.CodStandard); printf("\nMessage.CallStIE.Flag = %d",Message.CallStIE.Flag); printf("\nMessage.CallStIE.Res = %d",Message.CallStIE.Res); printf("\nMessage.CallStIE.IEActionInd = %d",Message.CallStIE.IEActionInd); printf("\nMessage.CallStIE.IEContLen = %d bytes",Message.CallStIE.IEContLen); Wait(); printf("\nMessage.CallStIE.IECont.BytesArrayLen = %d bytes", Message.CallStIE.IECont.BytesArrayLen); printf("\nMessage.CallStIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.CallStIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.CallStIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nCallStParticularCont.CallStateValue = 0X%X = %d", CallStParticularCont.CallStateValue,CallStParticularCont.CallStateValue); }; if (Message.CauseIE.FilledIn == True) { Wait();

Pagina 9.20

Anexa 4
printf("\n Cause Information Element:\n"); printf("\nMessage.CauseIE.IEId = 0X%X",Message.CauseIE.IEId); printf("\nMessage.CauseIE.FilledIn = %d",Message.CauseIE.FilledIn); printf("\nMessage.CauseIE.Ext = %d",Message.CauseIE.Ext); printf("\nMessage.CauseIE.CodStandard = %d",Message.CauseIE.CodStandard); printf("\nMessage.CauseIE.Flag = %d",Message.CauseIE.Flag); printf("\nMessage.CauseIE.Res = %d",Message.CauseIE.Res); printf("\nMessage.CauseIE.IEActionInd = %d",Message.CauseIE.IEActionInd); printf("\nMessage.CauseIE.IEContLen = %d",Message.CauseIE.IEContLen); printf("\nMessage.CauseIE.IECont.BytesArrayLen = %d",Message.CauseIE.IECont.BytesArrayLen); printf("\nMessage.CauseIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.CauseIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.CauseIE.IECont.BytesArrayCont[h]); }; }; if (Message.Cause2IE.FilledIn == True) { Wait(); printf("\n Second Cause Information Element:\n"); printf("\nMessage.Cause2IE.IEId = 0X%X",Message.Cause2IE.IEId); printf("\nMessage.Cause2IE.FilledIn = %d",Message.Cause2IE.FilledIn); printf("\nMessage.Cause2IE.Ext = %d",Message.Cause2IE.Ext); printf("\nMessage.Cause2IE.CodStandard = %d",Message.Cause2IE.CodStandard); printf("\nMessage.Cause2IE.Flag = %d",Message.Cause2IE.Flag); printf("\nMessage.Cause2IE.Res = %d",Message.Cause2IE.Res); printf("\nMessage.Cause2IE.IEActionInd = %d",Message.Cause2IE.IEActionInd); printf("\nMessage.Cause2IE.IEContLen = %d",Message.Cause2IE.IEContLen); printf("\nMessage.Cause2IE.IECont.BytesArrayLen = %d", Message.Cause2IE.IECont.BytesArrayLen); printf("\nMessage.Cause2IE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.Cause2IE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.Cause2IE.IECont.BytesArrayCont[h]); }; }; if (Message.NotIndIE.FilledIn == True) { Wait(); printf("\n Notification Indicator:\n"); printf("\nMessage.NotIndIE.IEId = 0X%X",Message.NotIndIE.IEId); printf("\nMessage.NotIndIE.FilledIn = %d",Message.NotIndIE.FilledIn); printf("\nMessage.NotIndIE.Ext = %d",Message.NotIndIE.Ext); printf("\nMessage.NotIndIE.CodStandard = %d",Message.NotIndIE.CodStandard); printf("\nMessage.NotIndIE.Flag = %d",Message.NotIndIE.Flag); printf("\nMessage.NotIndIE.Res = %d",Message.NotIndIE.Res); printf("\nMessage.NotIndIE.IEActionInd = %d",Message.NotIndIE.IEActionInd); printf("\nMessage.NotIndIE.IEContLen = %d",Message.NotIndIE.IEContLen); printf("\nMessage.NotIndIE.IECont.BytesArrayLen = %d",Message.NotIndIE.IECont.BytesArrayLen); printf("\nMessage.NotIndIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.NotIndIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.NotIndIE.IECont.BytesArrayCont[h]); }; }; if (Message.OAMTrDescrIE.FilledIn == True) { Wait();

Pagina 9.21

Anexa 4
printf("\n OAM Traffic Descriptor Information Element:\n"); printf("\nMessage.OAMTrDescrIE.IEId = 0X%X",Message.OAMTrDescrIE.IEId); printf("\nMessage.OAMTrDescrIE.FilledIn = %d",Message.OAMTrDescrIE.FilledIn); printf("\nMessage.OAMTrDescrIE.Ext = %d",Message.OAMTrDescrIE.Ext); printf("\nMessage.OAMTrDescrIE.CodStandard = %d",Message.OAMTrDescrIE.CodStandard); printf("\nMessage.OAMTrDescrIE.Flag = %d",Message.OAMTrDescrIE.Flag); printf("\nMessage.OAMTrDescrIE.Res = %d",Message.OAMTrDescrIE.Res); printf("\nMessage.OAMTrDescrIE.IEActionInd = %d",Message.OAMTrDescrIE.IEActionInd); printf("\nMessage.OAMTrDescrIE.IEContLen = %d bytes",Message.OAMTrDescrIE.IEContLen); Wait(); printf("\nMessage.OAMTrDescrIE.IECont.BytesArrayLen = %d bytes", Message.OAMTrDescrIE.IECont.BytesArrayLen); printf("\nMessage.OAMTrDescrIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.OAMTrDescrIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.OAMTrDescrIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nOAMTrDescrParticularCont.Ext5 = 0X%X = %d", OAMTrDescrParticularCont.Ext5,OAMTrDescrParticularCont.Ext5); printf("\nOAMTrDescrParticularCont.ShapingInd = 0X%X = %d", OAMTrDescrParticularCont.ShapingInd,OAMTrDescrParticularCont.ShapingInd); printf("\nOAMTrDescrParticularCont.ComplInd = 0X%X = %d", OAMTrDescrParticularCont.ComplInd,OAMTrDescrParticularCont.ComplInd); printf("\nOAMTrDescrParticularCont.UserNetworkFaultMngtInd = 0X%X = %d", OAMTrDescrParticularCont.UserNetworkFaultMngtInd, OAMTrDescrParticularCont.UserNetworkFaultMngtInd); printf("\nOAMTrDescrParticularCont.Ext6 = 0X%X = %d", OAMTrDescrParticularCont.Ext6,OAMTrDescrParticularCont.Ext6); printf("\nOAMTrDescrParticularCont.FwdETEOAM = 0X%X = %d", OAMTrDescrParticularCont.FwdETEOAM,OAMTrDescrParticularCont.FwdETEOAM); printf("\nOAMTrDescrParticularCont.BwdETEOAM = 0X%X = %d", OAMTrDescrParticularCont.BwdETEOAM,OAMTrDescrParticularCont.BwdETEOAM); }; if (Message.ProgressIndIE.FilledIn == True) { Wait(); printf("\n Progress Indicator Information Element:\n"); printf("\nMessage.ProgressIndIE.IEId = 0X%X",Message.ProgressIndIE.IEId); printf("\nMessage.ProgressIndIE.FilledIn = %d",Message.ProgressIndIE.FilledIn); printf("\nMessage.ProgressIndIE.Ext = %d",Message.ProgressIndIE.Ext); printf("\nMessage.ProgressIndIE.CodStandard = %d",Message.ProgressIndIE.CodStandard); printf("\nMessage.ProgressIndIE.Flag = %d",Message.ProgressIndIE.Flag); printf("\nMessage.ProgressIndIE.Res = %d",Message.ProgressIndIE.Res); printf("\nMessage.ProgressIndIE.IEActionInd = %d",Message.ProgressIndIE.IEActionInd); printf("\nMessage.ProgressIndIE.IEContLen = %d",Message.ProgressIndIE.IEContLen); printf("\nMessage.ProgressIndIE.IECont.BytesArrayLen = %d", Message.ProgressIndIE.IECont.BytesArrayLen); printf("\nMessage.ProgressIndIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.ProgressIndIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.ProgressIndIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\n The particular content of Progress Indicator Information "); printf("\nElement is described in Q.931 Recommendation!\n"); }; if (Message.ProgressInd2IE.FilledIn == True)

Pagina 9.22

Anexa 4
{ Wait(); printf("\n Second Progress Indicator Information Element:\n"); printf("\nMessage.ProgressInd2IE.IEId = 0X%X",Message.ProgressInd2IE.IEId); printf("\nMessage.ProgressInd2IE.FilledIn = %d",Message.ProgressInd2IE.FilledIn); printf("\nMessage.ProgressInd2IE.Ext = %d",Message.ProgressInd2IE.Ext); printf("\nMessage.ProgressInd2IE.CodStandard = %d",Message.ProgressInd2IE.CodStandard); printf("\nMessage.ProgressInd2IE.Flag = %d",Message.ProgressInd2IE.Flag); printf("\nMessage.ProgressInd2IE.Res = %d",Message.ProgressInd2IE.Res); printf("\nMessage.ProgressInd2IE.IEActionInd = %d",Message.ProgressInd2IE.IEActionInd); printf("\nMessage.ProgressInd2IE.IEContLen = %d",Message.ProgressInd2IE.IEContLen); printf("\nMessage.ProgressInd2IE.IECont.BytesArrayLen = %d", Message.ProgressInd2IE.IECont.BytesArrayLen); printf("\nMessage.ProgressInd2IE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.ProgressInd2IE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.ProgressInd2IE.IECont.BytesArrayCont[h]); }; Wait(); printf("\n The particular content of Progress Indicator Information "); printf("\nElement is described in Q.931 Recommendation!\n"); }; if (Message.QOSParamIE.FilledIn == True) { Wait(); printf("\n Quality Of Service Parameter Information Element:\n"); printf("\nMessage.QOSParamIE.IEId = 0X%X",Message.QOSParamIE.IEId); printf("\nMessage.QOSParamIE.FilledIn = %d",Message.QOSParamIE.FilledIn); printf("\nMessage.QOSParamIE.Ext = %d",Message.QOSParamIE.Ext); printf("\nMessage.QOSParamIE.CodStandard = %d",Message.QOSParamIE.CodStandard); printf("\nMessage.QOSParamIE.Flag = %d",Message.QOSParamIE.Flag); printf("\nMessage.QOSParamIE.Res = %d",Message.QOSParamIE.Res); printf("\nMessage.QOSParamIE.IEActionInd = %d",Message.QOSParamIE.IEActionInd); printf("\nMessage.QOSParamIE.IEContLen = %d bytes",Message.QOSParamIE.IEContLen); Wait(); printf("\nMessage.QOSParamIE.IECont.BytesArrayLen = %d bytes", Message.QOSParamIE.IECont.BytesArrayLen); printf("\nMessage.QOSParamIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.QOSParamIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.QOSParamIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nQOSParamParticularCont.QOSClassForward = 0X%X = %d", QOSParamParticularCont.QOSClassForward,QOSParamParticularCont.QOSClassForward); printf("\nQOSParamParticularCont.QOSClassBackward = 0X%X = %d", QOSParamParticularCont.QOSClassBackward, QOSParamParticularCont.QOSClassBackward); }; if (Message.BBSendComplIE.FilledIn == True) { Wait(); printf("\n Broadband Sending Complete Information Element:\n"); printf("\nMessage.BBSendComplIE.IEId = 0X%X",Message.BBSendComplIE.IEId); printf("\nMessage.BBSendComplIE.FilledIn = %d",Message.BBSendComplIE.FilledIn); printf("\nMessage.BBSendComplIE.Ext = %d",Message.BBSendComplIE.Ext); printf("\nMessage.BBSendComplIE.CodStandard = %d",Message.BBSendComplIE.CodStandard); printf("\nMessage.BBSendComplIE.Flag = %d",Message.BBSendComplIE.Flag);

Pagina 9.23

Anexa 4
printf("\nMessage.BBSendComplIE.Res = %d",Message.BBSendComplIE.Res); printf("\nMessage.BBSendComplIE.IEActionInd = %d",Message.BBSendComplIE.IEActionInd); printf("\nMessage.BBSendComplIE.IEContLen = %d bytes",Message.BBSendComplIE.IEContLen); Wait(); printf("\nMessage.BBSendComplIE.IECont.BytesArrayLen = %d bytes", Message.BBSendComplIE.IECont.BytesArrayLen); printf("\nMessage.BBSendComplIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBSendComplIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBSendComplIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nBBSendComplParticularCont.Ext = 0X%X = %d", BBSendComplParticularCont.Ext,BBSendComplParticularCont.Ext); printf("\nBBSendComplParticularCont.BroadbandSendingCompleteIndication = 0X%X = %d", BBSendComplParticularCont.BroadbandSendingCompleteIndication, BBSendComplParticularCont.BroadbandSendingCompleteIndication); }; if (Message.TransitNetSelIE.FilledIn == True) { Wait(); printf("\n Transit Network Selection Information Element:\n"); printf("\nMessage.TransitNetSelIE.IEId = 0X%X",Message.TransitNetSelIE.IEId); printf("\nMessage.TransitNetSelIE.FilledIn = %d",Message.TransitNetSelIE.FilledIn); printf("\nMessage.TransitNetSelIE.Ext = %d",Message.TransitNetSelIE.Ext); printf("\nMessage.TransitNetSelIE.CodStandard = %d",Message.TransitNetSelIE.CodStandard); printf("\nMessage.TransitNetSelIE.Flag = %d",Message.TransitNetSelIE.Flag); printf("\nMessage.TransitNetSelIE.Res = %d",Message.TransitNetSelIE.Res); printf("\nMessage.TransitNetSelIE.IEActionInd = %d",Message.TransitNetSelIE.IEActionInd); printf("\nMessage.TransitNetSelIE.IEContLen = %d bytes",Message.TransitNetSelIE.IEContLen); Wait(); printf("\nMessage.TransitNetSelIE.IECont.BytesArrayLen = %d bytes", Message.TransitNetSelIE.IECont.BytesArrayLen); printf("\nMessage.TransitNetSelIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.TransitNetSelIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.TransitNetSelIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nTransitNetSelParticularCont.Ext = 0X%X = %d", TransitNetSelParticularCont.Ext,TransitNetSelParticularCont.Ext); printf("\nTransitNetSelParticularCont.TypeOfNetworkIdentification = 0X%X = %d", TransitNetSelParticularCont.TypeOfNetworkIdentification, TransitNetSelParticularCont.TypeOfNetworkIdentification); printf("\nTransitNetSelParticularCont.NetworkIdentificationPlan = 0X%X = %d", TransitNetSelParticularCont.NetworkIdentificationPlan, TransitNetSelParticularCont.NetworkIdentificationPlan); short No=0; while ( No < Message.TransitNetSelIE.IECont.BytesArrayLen-1 ) { No++; printf("\nTransitNetSelParticularCont.NetworkIdentificationFilledIn[%d] = 0X%X = %d",No, TransitNetSelParticularCont.NetworkIdentificationFilledIn[No], TransitNetSelParticularCont.NetworkIdentificationFilledIn[No]); if ( TransitNetSelParticularCont.NetworkIdentificationFilledIn[No] == True ) { printf("\nTransitNetSelParticularCont.NetworkIdentification[%d] = 0X%X = %d", No,TransitNetSelParticularCont.NetworkIdentification[No], TransitNetSelParticularCont.NetworkIdentification[No]);

Pagina 9.24

Anexa 4
} } }; if (Message.TransitNetSel2IE.FilledIn == True) { Wait(); printf("\n Second Transit Network Selection Information Element:\n"); printf("\nMessage.TransitNetSel2IE.IEId = 0X%X",Message.TransitNetSel2IE.IEId); printf("\nMessage.TransitNetSel2IE.FilledIn = %d",Message.TransitNetSel2IE.FilledIn); printf("\nMessage.TransitNetSel2IE.Ext = %d",Message.TransitNetSel2IE.Ext); printf("\nMessage.TransitNetSel2IE.CodStandard = %d",Message.TransitNetSel2IE.CodStandard); printf("\nMessage.TransitNetSel2IE.Flag = %d",Message.TransitNetSel2IE.Flag); printf("\nMessage.TransitNetSel2IE.Res = %d",Message.TransitNetSel2IE.Res); printf("\nMessage.TransitNetSel2IE.IEActionInd = %d",Message.TransitNetSel2IE.IEActionInd); printf("\nMessage.TransitNetSel2IE.IEContLen = %d bytes",Message.TransitNetSel2IE.IEContLen); Wait(); printf("\nMessage.TransitNetSel2IE.IECont.BytesArrayLen = %d bytes", Message.TransitNetSel2IE.IECont.BytesArrayLen); printf("\nMessage.TransitNetSel2IE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.TransitNetSel2IE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.TransitNetSel2IE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nTransitNetSel2ParticularCont.Ext = 0X%X = %d", TransitNetSel2ParticularCont.Ext,TransitNetSel2ParticularCont.Ext); printf("\nTransitNetSel2ParticularCont.TypeOfNetworkIdentification = 0X%X = %d", TransitNetSel2ParticularCont.TypeOfNetworkIdentification, TransitNetSel2ParticularCont.TypeOfNetworkIdentification); printf("\nTransitNetSel2ParticularCont.NetworkIdentificationPlan = 0X%X = %d", TransitNetSel2ParticularCont.NetworkIdentificationPlan, TransitNetSel2ParticularCont.NetworkIdentificationPlan); short No=0; while ( No < Message.TransitNetSel2IE.IECont.BytesArrayLen-1 ) { No++; printf("\nTransitNetSel2ParticularCont.NetworkIdentificationFilledIn[%d] = 0X%X = %d", No,TransitNetSel2ParticularCont.NetworkIdentificationFilledIn[No], TransitNetSel2ParticularCont.NetworkIdentificationFilledIn[No]); if ( TransitNetSel2ParticularCont.NetworkIdentificationFilledIn[No] == True ) { printf("\nTransitNetSel2ParticularCont.NetworkIdentification[%d] = 0X%X = %d", No,TransitNetSel2ParticularCont.NetworkIdentification[No], TransitNetSel2ParticularCont.NetworkIdentification[No]); } } }; if (Message.TransitNetSel3IE.FilledIn == True) { Wait(); printf("\n Third Transit Network Selection Information Element:\n"); printf("\nMessage.TransitNetSel3IE.IEId = 0X%X",Message.TransitNetSel3IE.IEId); printf("\nMessage.TransitNetSel3IE.FilledIn = %d",Message.TransitNetSel3IE.FilledIn); printf("\nMessage.TransitNetSel3IE.Ext = %d",Message.TransitNetSel3IE.Ext); printf("\nMessage.TransitNetSel3IE.CodStandard = %d",Message.TransitNetSel3IE.CodStandard); printf("\nMessage.TransitNetSel3IE.Flag = %d",Message.TransitNetSel3IE.Flag); printf("\nMessage.TransitNetSel3IE.Res = %d",Message.TransitNetSel3IE.Res); printf("\nMessage.TransitNetSel3IE.IEActionInd = %d",Message.TransitNetSel3IE.IEActionInd); printf("\nMessage.TransitNetSel3IE.IEContLen = %d bytes",Message.TransitNetSel3IE.IEContLen);

Pagina 9.25

Anexa 4
Wait(); printf("\nMessage.TransitNetSel3IE.IECont.BytesArrayLen = %d bytes", Message.TransitNetSel3IE.IECont.BytesArrayLen); printf("\nMessage.TransitNetSel3IE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.TransitNetSel3IE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.TransitNetSel3IE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nTransitNetSel3ParticularCont.Ext = 0X%X = %d", TransitNetSel3ParticularCont.Ext,TransitNetSel3ParticularCont.Ext); printf("\nTransitNetSel3ParticularCont.TypeOfNetworkIdentification = 0X%X = %d", TransitNetSel3ParticularCont.TypeOfNetworkIdentification,TransitNetSel3ParticularCont.Typ eOfNetworkIdentification); printf("\nTransitNetSel3ParticularCont.NetworkIdentificationPlan = 0X%X = %d", TransitNetSel3ParticularCont.NetworkIdentificationPlan, TransitNetSel3ParticularCont.NetworkIdentificationPlan); short No=0; while ( No < Message.TransitNetSel3IE.IECont.BytesArrayLen-1 ) { No++; printf("\nTransitNetSel3ParticularCont.NetworkIdentificationFilledIn[%d] = 0X%X = %d", No,TransitNetSel3ParticularCont.NetworkIdentificationFilledIn[No], TransitNetSel3ParticularCont.NetworkIdentificationFilledIn[No]); if ( TransitNetSel3ParticularCont.NetworkIdentificationFilledIn[No] == True ) { printf("\nTransitNetSel3ParticularCont.NetworkIdentification[%d] = 0X%X = %d", No,TransitNetSel3ParticularCont.NetworkIdentification[No], TransitNetSel3ParticularCont.NetworkIdentification[No]); } } }; if (Message.TransitNetSel4IE.FilledIn == True) { Wait(); printf("\n Fourth Transit Network Selection Information Element:\n"); printf("\nMessage.TransitNetSel4IE.IEId = 0X%X",Message.TransitNetSel4IE.IEId); printf("\nMessage.TransitNetSel4IE.FilledIn = %d",Message.TransitNetSel4IE.FilledIn); printf("\nMessage.TransitNetSel4IE.Ext = %d",Message.TransitNetSel4IE.Ext); printf("\nMessage.TransitNetSel4IE.CodStandard = %d",Message.TransitNetSel4IE.CodStandard); printf("\nMessage.TransitNetSel4IE.Flag = %d",Message.TransitNetSel4IE.Flag); printf("\nMessage.TransitNetSel4IE.Res = %d",Message.TransitNetSel4IE.Res); printf("\nMessage.TransitNetSel4IE.IEActionInd = %d",Message.TransitNetSel4IE.IEActionInd); printf("\nMessage.TransitNetSel4IE.IEContLen = %d bytes",Message.TransitNetSel4IE.IEContLen); Wait(); printf("\nMessage.TransitNetSel4IE.IECont.BytesArrayLen = %d bytes", Message.TransitNetSel4IE.IECont.BytesArrayLen); printf("\nMessage.TransitNetSel4IE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.TransitNetSel4IE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.TransitNetSel4IE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nTransitNetSel4ParticularCont.Ext = 0X%X = %d", TransitNetSel4ParticularCont.Ext,TransitNetSel4ParticularCont.Ext); printf("\nTransitNetSel4ParticularCont.TypeOfNetworkIdentification = 0X%X = %d", TransitNetSel4ParticularCont.TypeOfNetworkIdentification, TransitNetSel4ParticularCont.TypeOfNetworkIdentification); printf("\nTransitNetSel4ParticularCont.NetworkIdentificationPlan = 0X%X = %d", TransitNetSel4ParticularCont.NetworkIdentificationPlan,

Pagina 9.26

Anexa 4
TransitNetSel4ParticularCont.NetworkIdentificationPlan); short No=0; while ( No < Message.TransitNetSel4IE.IECont.BytesArrayLen-1 ) { No++; printf("\nTransitNetSel4ParticularCont.NetworkIdentificationFilledIn[%d] = 0X%X = %d", No,TransitNetSel4ParticularCont.NetworkIdentificationFilledIn[No], TransitNetSel4ParticularCont.NetworkIdentificationFilledIn[No]); if ( TransitNetSel4ParticularCont.NetworkIdentificationFilledIn[No] == True ) { printf("\nTransitNetSel4ParticularCont.NetworkIdentification[%d] = 0X%X = %d", No,TransitNetSel4ParticularCont.NetworkIdentification[No], TransitNetSel4ParticularCont.NetworkIdentification[No]); } } }; if (Message.RestartIndIE.FilledIn == True) { Wait(); printf("\n Restart Indicator Information Element:\n"); printf("\nMessage.RestartIndIE.IEId = 0X%X",Message.RestartIndIE.IEId); printf("\nMessage.RestartIndIE.FilledIn = %d",Message.RestartIndIE.FilledIn); printf("\nMessage.RestartIndIE.Ext = %d",Message.RestartIndIE.Ext); printf("\nMessage.RestartIndIE.CodStandard = %d",Message.RestartIndIE.CodStandard); printf("\nMessage.RestartIndIE.Flag = %d",Message.RestartIndIE.Flag); printf("\nMessage.RestartIndIE.Res = %d",Message.RestartIndIE.Res); printf("\nMessage.RestartIndIE.IEActionInd = %d",Message.RestartIndIE.IEActionInd); printf("\nMessage.RestartIndIE.IEContLen = %d bytes",Message.RestartIndIE.IEContLen); Wait(); printf("\nMessage.RestartIndIE.IECont.BytesArrayLen = %d bytes", Message.RestartIndIE.IECont.BytesArrayLen); printf("\nMessage.RestartIndIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.RestartIndIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.RestartIndIE.IECont.BytesArrayCont[h]); }; Wait(); printf("\nRestartIndParticularCont.Ext = 0X%X = %d", RestartIndParticularCont.Ext,RestartIndParticularCont.Ext); printf("\nRestartIndParticularCont.Class = 0X%X = %d", RestartIndParticularCont.Class,RestartIndParticularCont.Class); }; if (Message.BBLockShiftIE.FilledIn == True) { Wait(); printf("\n Restart Indicator Information Element:\n"); printf("\nMessage.BBLockShiftIE.IEId = 0X%X",Message.BBLockShiftIE.IEId); printf("\nMessage.BBLockShiftIE.FilledIn = %d",Message.BBLockShiftIE.FilledIn); printf("\nMessage.BBLockShiftIE.Ext = %d",Message.BBLockShiftIE.Ext); printf("\nMessage.BBLockShiftIE.CodStandard = %d",Message.BBLockShiftIE.CodStandard); printf("\nMessage.BBLockShiftIE.Flag = %d",Message.BBLockShiftIE.Flag); printf("\nMessage.BBLockShiftIE.Res = %d",Message.BBLockShiftIE.Res); printf("\nMessage.BBLockShiftIE.IEActionInd = %d",Message.BBLockShiftIE.IEActionInd); printf("\nMessage.BBLockShiftIE.IEContLen = %d bytes",Message.BBLockShiftIE.IEContLen); Wait(); printf("\nMessage.BBLockShiftIE.IECont.BytesArrayLen = %d bytes", Message.BBLockShiftIE.IECont.BytesArrayLen); printf("\nMessage.BBLockShiftIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBLockShiftIE.IECont.BytesArrayLen;h++)

Pagina 9.27

Anexa 4
{ }; }; if (Message.BBNLockShiftIE.FilledIn == True) { Wait(); printf("\n Restart Indicator Information Element:\n"); printf("\nMessage.BBNLockShiftIE.IEId = 0X%X",Message.BBNLockShiftIE.IEId); printf("\nMessage.BBNLockShiftIE.FilledIn = %d",Message.BBNLockShiftIE.FilledIn); printf("\nMessage.BBNLockShiftIE.Ext = %d",Message.BBNLockShiftIE.Ext); printf("\nMessage.BBNLockShiftIE.CodStandard = %d",Message.BBNLockShiftIE.CodStandard); printf("\nMessage.BBNLockShiftIE.Flag = %d",Message.BBNLockShiftIE.Flag); printf("\nMessage.BBNLockShiftIE.Res = %d",Message.BBNLockShiftIE.Res); printf("\nMessage.BBNLockShiftIE.IEActionInd = %d",Message.BBNLockShiftIE.IEActionInd); printf("\nMessage.BBNLockShiftIE.IEContLen = %d bytes",Message.BBNLockShiftIE.IEContLen); Wait(); printf("\nMessage.BBNLockShiftIE.IECont.BytesArrayLen = %d bytes", Message.BBNLockShiftIE.IECont.BytesArrayLen); printf("\nMessage.BBNLockShiftIE.IECont.BytesArrayCont:"); for (int h=1;h<=Message.BBNLockShiftIE.IECont.BytesArrayLen;h++) { printf("\n Octet %4d : 0X%X",h,Message.BBNLockShiftIE.IECont.BytesArrayCont[h]); }; }; Wait(); printf("\n\n"); } //************************* END ************************************** printf("\n Octet %4d : 0X%X",h,Message.BBLockShiftIE.IECont.BytesArrayCont[h]);

Pagina 9.28

Anexa 5

D e f i n i ]i i
1.

Acces

access

Setarea echipamentului de reea n punctul n care se conecteaz utilizatorul. Este inclus aici att echipamentul utilizatorului, ct i echipamentul reelei la care se conecteaz utilizatorul, de exemplu o reea de comutaie, o alt reea sau un alt tip de terminal. Coninutul elementelor elementele ce cuprind informaie referitoare la acces. Aceste elemente informaionale sunt transportate transparent prin reea, fr s fie procesate. Au relevan doar pentru terminale. Acesta este un termen generic pentru urmtoarele elemente informaionale : Compatibilitate cu reele de Narrow-band low band ngust la nivelul layer compatibility straturilor informaionale joase Compatibilitate cu reele de Narrow-band high band ngust la nivelul layer compatibility straturilor informaionale nalte Informatia stratului jos a Broadband low layer reelei de band larg information Informaia stratului nalt a Broadband high layer reelei de band larg information Parametrii stratului de AAL parameters adaptare ATM Calling party subSubadresa utilizatorului apelant address Subadresa utilizatorului Called party subapelat address Alte recomandri pot defini de asemenea elemente informaionale, ca fiind elemente pentru acces. Aciunea prin care se aduce la cunotina unui utilizator c se ateapt confirmarea unei legturi cu terminalul su, spre exemplu prin soneria telefonului (terminalului) su. Aciunea unui utilizator care accept stabilirea unei legturi pentru care a fost alertat.

2.

Informaie de acces

access information

3.

Elemente informaionale de acces

access information elements

4.

Alertare

alert

5.

Rspunsul (la apel)

answer (a call)

Pagina 10.1

10. Definiii
6.

ATM

asynchronous transfer mode

Un mod de transfer n care informaia este organizat n celule ; este asincron n sensul c repetarea celulelor coninnd informaii de la un anumit utilizator nu este neaprat periodic. Este un protocol inclus n stratul 1 al modelului informaional al sistemelor deschise (OSI layer 1). O celul ATM este format dintr-un antet de 5 octei, urmat de 48 de octei de date. Pentru lmuriri suplimentare se poate consulta Recomandarea ITU-T I.361. Adaptarea la stratul ATM are rolul de a mbunti funciile oferite de stratul ATM stratului superior. AAL este un protocol al stratului 2 i este diferit n funcie de cerinele stratului ierarhic imediat superior. Detalii pot fi gsite n recomandrile ITU-T I.362, I.363 i Q.2100. Acesta conine VPI, VCI sau alte informaii necesare funcionrii, precum rutarea, alinierea sau ntreinerea celulelor. Formatul antetului difer n funcie de partea reelei n care este folosit. Direcia napoi subnelege direcia de la utilizatorul apelat la cel ce iniializeaz apelul (apelant). Acesta presupune setarea funciilor utilizate n procesarea unui apel de baz i a conexiunilor asociate (de exemplu, pune la dispoziie serviciile necesare i stabilete, supravegheaz, menine i/sau elibereaz conexiunile). Apelul de baz este un apel simplu ntre doi parteneri fr ca servicii suplimentare s fie active. Un serviciu purttor care stabilete conexiuni logice ntre utilizatori, naintea transferului informaiei digitale. n general, transferul de informaie se realizeaz n timp real, secvenial i bidirecional. Acest serviciu are ca scop transmiterea informaiei nemodificate de la surs la destinaie. Parametri precum ntrzierea transferului, rata de bit n fiecare direcie pot fi specificai de ctre utilizator. Detalii se gsesc n Recomandarea ITU-T F.811. Este o reea ISD ce dispune de canale capabile s suporte rate de transfer mai mari de 2Mbii/s. Aceast reea utilizeaz modul de transfer asincron. Pentru detalii se poate consulta Recomandarea ITU-T I.311. Este utilizatorul spre care se face apelul. Mai este denumit n literatura englez de specialitate B-party. Este utilizatorul care iniiaz legtura. Adesea se ntlnete sub denumirea de A-party.

7.

AAL

ATM adaptation layer (AAL)

8.

Antetul celulei ATM

ATM cell header

9. 10.

Direcia napoi Controlul unui apel de baz

backward basic call/connection control

11.

Serviciu purttor pentru conexiuni direcionale de band larg

broadband connection oriented bearer service

12.

Reea digital cu servicii integrate de band larg Utilizatorul apelat Utilizatorul apelant

broadband ISDN

13. 14.

called user calling user

Pagina 10.2

10. Definiii
15.

Modul circuit

circuit mode

Modul de transfer a informaiei n care transmisia se realizeaz prin alocarea unei benzi constante i fixe de frecvene ntre punctele finale ale transferului. Se comport ca i cum ntre punctele finale ale transferului ar exista un cablu. Este modul de transfer antonim modului de transfer cu pachete. Este un impediment ce se manifest prin pierderea primei fraciuni de secund din informaia transferat. Apare dup rspunsul la un apel i nainte ca o conexiune asociat s fie comutat. O asociere de setri de canale sau circuite, comutatoare sau alte uniti funcionale n scopul realizrii transferului de informaii ntre dou sau mai multe puncte ale reelei de telecomunicaii. Procedura prin care unitile de control din nodurile reelei utilizate decid, pe baza parametrilor de utilizare solicitai i a conexiunilor deja stabilite, acceptarea sau nu a unei cereri de realizare a unei conexiuni. Modul de transfer a informaiei, prin care este stabilit o conexiune ntre utilizatori nainte ca informaia s fie transferat. A se compara cu modul de transfer fr conexiune. Modul de transfer prin care blocuri de date ce urmeaz a fi transferate sunt accesate i rutate individual spre destinaie. A se compara cu modul de transfer orientat prin conexiune. Elementul reelei care realizeaz legturile, fiind direcionat de ctre funciile planului de management i nu de ctre funciile planului de control. Un element VP cross-connect realizeaz legturile la nivel de ci virtuale (VP); transleaz valorile VPI (nu VCI). Un element VC cross-connect realizeaz legturile la nivel de canale virtuale (VC); finalizeaz conexiunile VP (VPC) i transleaz valorile (VCI). Detalii se gsesc n Recomandarea ITU-T I.311. O conexiune neafectat de erori, realizat la nivelul stratului legtur fizic (stratul 2 al modelului OSI). Realizeaz conexiunea utilizatorului la reea i este oferit n cadrul semnalizrii AAL. Are loc atunci cnd att utilizatorul ct i reeaua ncearc s ocupe acelai canal virtual, n acelai timp, pentru realizarea de conexiuni diferite.

16.

Fenomenul de clipping

clipping

17.

Conexiune

connection

18.

Controlul aprobrii conexiunilor

connection admission control

19.

Modul de transfer orientat prin conexiune Mod de transfer fr conexiune Elementul crossconnect

connection oriented

20.

connectionless

21.

cross-connect

22.

Conexiunea legtur de date Acaparare dual

data link connection

23.

dual seizure

Pagina 10.3

10. Definiii
24.

Semnalizare en-bloc

en bloc

O metod de semnalizare a adresei, n care toi digiii adresei sunt trimii odat, ntr-un singur mesaj. Utilizatorul trebuie s cunoasc i valoarea ultimului digit pentru a putea iniia trimiterea mesajului. A se compara cu metoda de semnalizare overlap. Acest concept refer comunicaia ntre terminale n opoziie cu modul de comunicaie ntre terminal i reea sau ntre noduri ale reelei. Un set contiguu de bii care reprezint informaia ntr-un element informaional. Prin sensul nainte se nelege direcia de la utilizatorul apelant ctre utilizatorul apelat. Acest termen are n context sensul de tratare a informaiei exact ca i cum nu ar fi fost recepionat. Elementele informaionale (sau de informaie) sunt cele care alctuiesc un mesaj. Un anume tip particular de element informaional poate fi component al mai multor tipuri de mesaje, sub aceeai form. Un element informaional este compus din una sau mai multe grupe de octei. O reea care ofer sau suport o serie de servicii diferite de telecomunicaii, utiliznd conexiuni digitale.

25.

Punct la punct

end-to-end

26. 27. 28. 29.

Cmp nainte Ignorare Element informaional

field forward ignore information element

30.

Reea digital cu servicii integrate Interfa Conceptul de interwork (colaborare) Stratul 2 Stratul 3 Managementul stratului

ISDN integrated services digital network interface interwork

31. 32.

Reprezint grania comun dintre dou entiti prin intermediul creia cele dou comunic ntre ele. Este actul prin care semnale de la un sistem de semnalizare surs sunt interpretate de un sistem de semnalizare destinatar diferit, astfel nct sensul interpretrii s fie ct mai apropiat de cel iniial. Stratul OSI legtur de date. n context, face referire la SAAL. Stratul reea al modelului OSI. Setul de funcii ce refer managementul stratului N, parial realizate de ctre nsui stratul N, n conformitate cu protocolul propriu (activiti precum controlul erorilor) i, n aceleai timp, realizate parial ca subset al sistemului managerial. Detalii se gsesc n Recomandarea ITU-T X.200.

33. 34. 35.

layer 2 layer 3 layer management

Pagina 10.4

10. Definiii
36.

Mesaj

message

Un bloc informaional care este trimis de ctre o entitate surs ctre una sau mai multe entiti destinatare. Este trimis ca urmare a unui eveniment ce are loc n interiorul entitii surs, care cere o aciune din partea entitilor destinaie. n plus, mesajul poate conine informaii suplimentare necesare sau ajuttoare pentru ca destinatarii s reacioneze corect. Un mesaj este alctuit din elemente informaionale. Dei ideal, un mesaj nu are durat, n realitate el ocup un interval de timp. Acest interval este datorat numai limitrilor de echipament n procesarea mesajului i este ct de scurt posibil. Este o form de semnalizare utilizat pentru stabilirea regulilor de semnalizare, acolo unde nu exist deja unele. n context, aceste reguli prevd utilizarea unui canal virtual de semnalizare. Detalii pot fi gsite n Recomandarea ITU-T Q.2120. Este denumirea pentru ISDN clasic, nainte de apariia B-ISDN. Se numete N-ISDN pentru a se deosebi de B-ISDN. Este partea dintr-o conexiune, parte ce este inclus n totalitate n reea. Grupul funcional ce aparine prii proprii reelei dintr-o interfa utilizator-reea (UNI). Nu este necesar ca prin aceast terminaie s se neleag neaprat centrul de comutaie local (centrala local local exchange). Octetul, denumit i byte, este un grup de 8 bii. Reprezint unitatea elementului informaional. Acest termen refer modalitatea de caracteristic utilizatorului ce iniiaz o legtur. acces

37.

Metasemnalizarea

meta-signalling

38.

Reea digital cu servicii integrate de band ngust Conexiune de reea Terminaie de reea

narrow-band ISDN (N-ISDN) network connection network termination

39. 40.

41. 42. 43. 44.

Octet Grup de octei Accesul originator Semnalizare overlap

octet octet group originating access overlap

Este o metod de semnalizare ce const n netransmiterea tuturor digiilor de adres odat, ntr-un singur mesaj; tipic, se transmite cte un mesaj pentru fiecare digit. Reeaua poate ncepe rutarea nainte ca toi digiii s fie primii. Reeaua are de asemenea capabilitatea de a decide cnd a primit suficieni digii. A se compara cu semnalizarea en-bloc. Pachet de entiti soft ce analizeaz i interpreteaz, n context, mesajele de semnalizare primite de la reea.

45.

Parser

Parser

Pagina 10.5

10. Definiii
46.

Rata maxim de transfer a celulelor

peak cell rate

Rata maxim de transmitere a celulelor n cadrul modului de transfer asincron reprezint opusul intervalului minim de timp scurs ntre dou cereri de transmitere a unei ATM-PDU. O unitate de date protocol (PDU) ATM rezult n urma transmisiei unei celule. Entiti ale sistemelor de comunicaie, aparinnd aceluiai strat al modelului OSI, dar n sisteme diferite. Unitile comunic utiliznd la nivelul substraturilor modelului OSI. Este o legtur de date ce se realizeaz sau elibereaz prin subscriere. Nu poate fi stabilit, restabilit sau eliberat de ctre echipamentul utilizatorului. Din punctul de vedere al interfeei utilizator reea, configuraia punct la multipunct reprezint o configuraie n care o singur terminaie de reea aparinnd UNI suport mai mult de un echipament terminal. Este o unitate de date care este transferat de un strat perechii acestuia, de exemplu de-a lungul graniei inferioare a stratului. Semnific ntoarcerea canalului virtual indicat la starea iniial de neutilizare (idle state). Este o conexiune ce se realizeaz sau elibereaz prin subscriere. Nu poate fi stabilit, restabilit sau eliberat de ctre echipamentul utilizatorului. Punctul n care un strat al modelului OSI pune la dispoziie diverse servicii stratului superior imediat urmtor.

47.

Entiti pereche

pair entities

48.

Legtur de date permanent Configuraie punct la multipunct

permanent data link connection point-tomultipoint configuration (at the UNI) protocol data unit (PDU) restart semi-permanent connection service access point (SAP)

49.

50.

Unitatea de date protocol Restartarea Conexiune semipermanent Punct acces serviciu

51. 52.

53.

O unitate de date care este transferat de strat prin 54. Unitate de date service data unit serviciu (SDU) intermediul unui SAP, de exemplu prin grania superioar a stratului. 55.

AAL de semnalizare

signalling AAL Este stratul de adaptare ATM (AAL) utilizat pentru (SAAL) semnalizare. Este stratul imediat urmtor stratului ATM, descris n Recomandarea ITU-T Q.2931. Se poate consulta pentru detalii i Recomandarea Q.2100. signalling channel signalling virtual channel Un canal bidirecional utilizat pentru transferul mesajelor Q.2931. Un canal virtual bidirecional utilizat pentru transferul mesajelor Q.2931.

56. 57.

Canal de semnalizare Canal virtual de semnalizare

Pagina 10.6

10. Definiii
58.

Teleserviciu

teleservice

Un tip de serviciu de telecomunicaii care dispune de o capabilitate complet, incluznd funcii ale echipamentului terminal, pentru comunicaii ntre utilizatori conform protocoalelor stabilite de comun acord. Grupul funcional utilizatorului. dintr-o UNI, aparinnd

59. 60. 61.

Echipament terminal Accesul terminal Interfaa utilizator reea Canal virtual

terminal equipment terminating access user-network interface (UNI) virtual channel (VC)

Modalitatea de acces folosit de utilizatorul apelat. Grania comun ntre reea i echipamentul terminal al utilizatorului, grani prin care se face comunicarea ntre cele dou pri. Reliefeaz o facilitate oferit de stratul ATM pentru transferul datelor n format digital, prin intermediul unei interfee. Transferul este bidirecional, secvenial i ct mai apropiat de a se face n timp real. Datele sunt trimise sub form de celule ATM. VCI inclus n antetul celulei asociaz datele cu VC. n cadrul unei interfee, VCI este unic. Detalii pot fi gsite consultnd Recomandarea ITU-T I.311. O grupare de unul sau mai multe VC. VPI inclus n antetul celulei asociaz fiecare VC la VP. n cadrul unei interfee VPI are caracter unic. Detalii pot fi gsite consultnd Recomandarea ITU-T I.311. Un lan de legturi VP care se extinde ntre punctul n care valorile VCI sunt asignate i punctul n care acele valori sunt translate sau mutate. Valorile VPI ale dou legturi concatenate VP pot fi diferite.

62.

63.

Cale virtual

virtual path (VP)

64.

Conexiunea cilor virtuale

virtual path connection (VPC)

Pagina 10.7

Anexa 6

A br e v i e r i
1. AAL 2. AFI 3. ANSI 4. API 5. ATM 6. B-BC 7. BC 8. BCC 9. BCD 10. BCOB 11. BCSM 12. BER ATM Adaptation Layer Authority and Format Identifier American National Standard Institute Application Program Interface Asynchronous Transfer Mode Broadband Bearer Capability Bearer Capability Basic Call Control Binary Coded Decimal Broadband Connection Oriented Bearer class Basic Call State Manager Bit Error Rate Stratul de adaptare ATM Identificator de autoritate i formatare Institutul Naional American de Standardizare Interfaa programelor aplicaie Modul de transfer asincron Capacitatea de transport de band larg Capacitatea de transport Control al apelului de baz Binar codat zecimal Clasa conexiunilor de transfer orientat, de band larg Manager al srii apelului de baz Rata erorilor de bit Reea german public B-ISDN Informaia despre stratul superior de band larg ISDN de band larg Partea utilizatorului din B-ISDN Informaia stratului inferior de band larg Sistem de comutare de band larg VC de semnalizare a difuzrii serviciilor Identificator al VC de semnalizare a difuzrii serviciilor Proiectare asistat de calculator Televiziune prin cablu

13. BERCOM Berliner Kommunikationssystem 14. B-HLI 15. B-ISDN 16. B-ISUP 17. B-LLI 18. BSS 19. BSVC 20. BSVCI 21. CAD 22. CATV Broadband High Layer Information Broadband ISDN B-ISDN user part Broadband Low Layer Information Broadband Switching System Broadcast Signalling Virtual Channel Broadcast Signalling Virtual Channel Identifier Computer Aided Design Cable Television

Pagina 11.1

11. Abrevieri
23. CBR 24. CC 25. CCAF 26. CCF 27. CCITT 28. CCS7 29. CLP 30. CN 31. COM 32. CORBA 33. CPCSConstant Bit Rate Call Control Call Control Agent Function Call Control Function Comit Consultatif International Tlgrafique et Tlphonique Common-Channel Signalling System Number 7 Cell Loss Priority Customer Network Component Object Model Common Object Request Broker Rat de bit constant Control al apelului Funcia agent de control al apelului Funcia de control al apelului Comitetul Internaional Consultativ pentru Telegrafie i Telefonie Canal comun de semnalizare a sistemului numrul 7 Prioritatea celulelor pierdute Reea client Model cu obiecte componente Arhitectur cu obiecte purttoare ale cererilor de servicii

SDU

Common Part Convergence Sub-layer (of Partea comun din substratul de AAL) Service Data Unit convergen (al stratului de adaptare ATM) (see Recommendation Q.2130) Unitatea de date serviciu Cyclic Redundancy Check Data Circuit terminating Equipment Distributed Component Object Model Distributed Object Management Domain Specific Part Digital Subscriber Sygnalling System Number 2 (Broadband) Data Terminal Equipment Dual-Tone Multifrequency Exchange Termination Frame Relay File Transfer Protocol Control ciclic al redundanei Echipament terminal circuit de date Model cu obiecte componente distribuite Managementul obiectelor distribuite Parte specific a unui domeniu Sistemul de semnalizri numrul 2 al liniei digitale de abonat Echipament terminal de date Transmisie multifrecven n dou tonuri Centru de comutaie terminal Transmisie de cadre Protocol de transfer a fiierelor

34. CRC 35. DCE 36. DCOM 37. DOM 38. DSP 39. DSS2 40. DTE 41. DTMF 42. ET 43. FR 44. FTP

Pagina 11.2

11. Abrevieri
45. GFC 46. HDSL 47. HDTV 48. HEC 49. HICOM 50. HLC 51. HLI 52. ID 53. IDI 54. IDL 55. IE 56. IEC 57. IEEE 58. IN 59. INAP 60. IP 61. ISDN 62. ISO 63. ISUP 64. ITU 65. IWF 66. LAN 67. LAP-B 68. LAP-D Generic Flow Control High-speed Digital Subscriber Line High-Definition Television Header Error Control High technology Communications High Layer Compatibility High Layer Information Identifier Initial Domain Identifier Interface Definition Language Information Element Fluxul generic de control Linie abonat digital de mare vitez TV de nalt definiie Controlul erorilor n antet Comunicaii prin tehnologii nalte Compatibilitate la nivel de straturi nalte Informaia straturilor superioare Identificator Identificator de domeniu iniial Limbaj de definire a interfeei Element informaional

International Electrotechnical Commission Comisia Internaional pentru Electrotehnic Institute of Electrical and Electronic Engineers Intelligent Network Intelligent Network Application Protocol Internet Protocol Integrated Services Digital Network International Organization for Standardization ISDN User Part International Telecommunication Union Interworking Function Local Area Network Link Access Procedure B Link Access Procedure D Institutul de Inginerie Electric i Electronic Reele inteligente Protocol al aplicaiilor reelelor inteligente Protocol al reelei Internet Reea digital cu servicii integrate Organizaia Internaional pentru Standardizare Partea utilizatorului din ISDN Uniunea Internaional a Telecomunicaiilor Funcii pentru conlucrarea reelelor Reea local Procedur B de acces a legturii Procedur D de acces a legturii

Pagina 11.3

11. Abrevieri
69. LLC 70. LLI 71. MID 72. MPEG-2 73. MSVC 74. N-BC 75. N-HLC 76. N-ISDN 77. N-LLC 78. NNI 79. NPC 80. NSAP 81. NTSC 82. OAM 83. OLE 84. OMG 85. ORB 86. OSI 87. PAL 88. PBX 89. PC 90. PCI 91. PDH Low Layer Compatibility Low Layer Information Multiplexing Identifier (see Recommendation I.363) Motion Pictures Expert Group Standard 2 Meta-Signalling Virtual Channel Narrow-band Bearer Capability Compatibilitate la nivelul straturilor joase Informaia coninut de straturile joase Identificator de multiplexare Standard pentru imagini dinamice VC pentru metasemnalizare Capacitatea de transfer de band ngust

Narrow-band High Layer Compatibility Compatibilitatea la nivelul straturilor nalte de band ngust Narrow-band ISDN Narrow-band Low Layer Compatibility Network-Node Interface Network Parameter Control Network Service Access Point North American Television Standards Committee Operations, Administration and Maintenance Object Linking and Embedding Object Management Group Object Request Broker Open System Interconnection Phase Alternating Line Private Branch Exchange Personal Computer Protocol Control Information Plesiochronous Digital Hierarchy ISDN de band ngust Compatibilitate la nivelul straturilor joase de band ngust Interfa ntre nodurile reelei Controlul parametrilor reelei Punct de acces serviciu al reelei Comisia de standardizare TV nordamerican Exploatare, administrare i ntreinere Obiecte de legtur i inserare n reea Grupul de Management al Obiectelor Obiect utilitar purttor al cererii de serviciu Interconectarea sistemelor deschise Linie cu alternarea fazei Centru privat de comutaie Computer personal Informaie de control al protocolului Ierarhie digital plesiocron

Pagina 11.4

11. Abrevieri
92. PDU 93. PRM 94. PVC 95. QOS 96. RAM 97. S/T 98. S-AAL 99. SAP 100. SCF 101. SDF 102. SDH 103. SDT 104. SDU 105. SECAM 106. SMF 107. SONET 108. SPC 109. SRF 110. SS7 111. SSAP 112. SSCF 113. SSCOP Protocol Data Unit Protocol Reference Model Permanent Virtual Connection Quality of Service Random Access Memory S/T Signalling AAL Service Access Point Service Control Function Service Data Function Synchronous Digital Hierarchy Structured Data Transfer Service Data Unit Systme en Couleur avec Mmoire Service Management Function North American Synchronous Optical Network Semi-Permanent Connection Special Resources Function Signalling System No. 7 Source Service Access Point Service-Specific Coordination Function Service Specific Connection Oriented Protocol (of AAL) (see Recommendation Q.2110) Unitate de date protocol Modelul de referin al protocolului Conexiune virtual permanent Calitatea serviciilor Memorie cu accesare aleatorie Puncte de referin ce pot fi implementate ca interfa fizic Semnalizare AAL Punct de acces serviciu Funcia de Control al Serviciului Funcia de date ale serviciului Ierarhie digital sincron Transfer de date structurate Unitate de date ale serviciului Sistem color cu memorie Funcia de management al serviciului Reea optic sincron nord-american Conexiune semipermenent Funcia resurse speciale Sistemul de semnalizare nr. 7 Punct de accesare a sursei de servicii Funcia de coordonare a serviciului Protocol (al AAL) pentru conexiuni orientate ale serviciilor specifice

114. SSCS

Service Specific Convergence Sub-layer (of Substrat (al AAL) de convergen a AAL) (see Recommendation Q.2130) serviciilor specifice

Pagina 11.5

11. Abrevieri
115. SSP 116. STM 117. STP 118. SVC 119. SVCI 120. TCP 121. TE Service-Specific Part Synchronous Transfer Mode Signal Transfer Point Signalling Virtual Channel Signalling Virtual Channel Identifier Transmission Control Protocol Terminal Equipment Partea specific serviciului Mod de transfer sincron Punct de transfer a semnalului Canal virtual de semnalizri Identificator SVC Protocol de control a transmisiei Echipament terminal Protocol de control la distan Interfaa utilizator reea Controlul parametrilor de utilizare Telecomunicaii personale universale Numr pentru UPT Rat de bit variabil Canal virtual Conexiune de canale virtuale Identificator de canal virtual Cale virtual Identificator al conexiunii de ci virtuale Identificator de cale virtual Reele pe suprafee extinse

122. TELNET Remote Control Protocol 123. UNI 124. UPC 125. UPT 126. UPTN 127. VBR 128. VC 129. VCC 130. VCI 131. VP 132. VPCI 133. VPI 134. WAN User-Network Interface Usage Parameter Control Universal Personal Telecommunications Universal Personal Telecommunications Number Variable Bit Rate Virtual Channel Virtual Channel Connection Virtual Channel Identifier Virtual Path Virtual Path Connection Identifier Virtual Path Identifier Wide Area Network

Pagina 11.6

11. Abrevieri

Abrevieri n Parser
IEs
1. AALParam

Information Elements
ATM Adaptation Layer Parameters

Elemente Informaionale
Parametrii stratului de adaptare ATM Descriptor de trafic ATM Capacitatea purttoare de band larg Informaia stratului nalt de band larg Informaia stratului jos de band larg Schimbare de band larg prin procedura de blocare

Valoare hexa 58 59 5E 5D 5F 60 61 63 62 6C 6D 70 71 14 08 5A 42 04 7D 7C

2. ATMTrDescr ATM Traffic Descriptor 3. BBBCap 4. BBHLInf 5. BBLLInf 6. BBLockShift Broadband Bearer Capability Broadband High Layer Information Broadband Low Layer Information Broadband-Locking Shift

7. BBNLockShift Broadband-Non-Locking Shift Schimbare de band larg prin procedura fr blocare a benzii 8. BBRepInd Broadband Repeat Indicator Indicator de repetiie de band larg Trimitere de band larg ncheiat Numrul apelant Subadresa apelantului Numrul apelat Subadresa utilizatorului apelat Stare apel Cauz Identificator de conexiune ntrziere de tranzit punct-lapunct Capacitatea purttoare de band ngust Informaia de compatibilitate a stratului nalt de band ngust Compatibilitate la nivelul stratului jos de band ngust

9. BBSendCompl Broadband Sending Complete 10. CallgPNr Calling Party Number

11. CallgPSubAdr Calling Party Sub-Address 12. CallPNr 13. CallPSubAdr 14. CallSt 15. Cause 16. ConnId 17. ETETrDelay 18. NBBCap 19. NBHLComp 20. NBLLComp Called Party Number Called Party Sub-Address Call State Cause Connection Identifier End-To-End Transit Delay Narrow-Band Bearer Capability Narrow-Band High Layer Compatibility Narrow-Band Low Layer Compatibility

Pagina 11.7

11. Abrevieri
21. NotInd Notification Indicator Indicator de notificare Descriptor de trafic OAM Indicator de progres Parametru QOS Indicator de restartare Selecie reea de tranzit 27 5B 1E 5C 79 78

22. OAMTrDescr OAM Traffic Descriptor 23. ProgressInd 24. QOSParam 25. RestartInd Progress Indicator QOS Parameter Restart Indicator

26. TransitNetSel Transit Network Selection

Mesaje UNI
Valoare hexa 1. Alg 2. CallPrg 3. Conn

Alerting Call Proceeding Connect Information Notify Progress Setup Status Status Enquiry Release Restart Restart Acknowledge

Alertare Cerere de legtur Conectare Confirmare conexiune Informaie Notificare Progres Setare Confirmare setare Stare Cerere stare Eliberare Eliberare realizat Restartare Confirmare restartare

01 02 07 0F 7B 6E 03 05 0D 7D 75 4D 5A 46 4E

4. ConnAck Connect Acknowledge 5. Inf 6. Not 7. Prog 8. Setup

9. SetupAck Setup Acknowledge 10. Stat 11. StatEnq 12. Rel

13. RelComp Release Complete 14. Res 15. ResAck

Pagina 11.8

Anexa 7
Bibliografie:

1. Nicolae Dumitru Alexandru, Paul Cotae Tehnica Modern a Comunicaiilor Institutul Politehnic Iai, 1979; 2. Uyless Black ATM: Foundation for Broadband Networks Pretince Hall, Englewood Cliffs, New Jersey, 1995; 3. Petru Duma Centrale Telefonice Electronice MatrixRom, Bucureti, 1998; 4. Rainer Hndel, Manfred Huber, Stefan Schrder ATM Networks Concepts, Protocols, Applications 2nd Edition Siemens AG, Munich AddisonWesley Publishing Company 1994; 5. International Telecommunication Union (ITU-T) B-ISDN Application Protocols for Access Signaling Digital Subscriber Signaling System No. 2 (DSS 2) User-Network Interface (UNI) Layer 3 Specification for Call/Connection Control ITU-T Recommendation Q.2931 February, 1995; 6. Daniel Minoli, George Dobrowski Principles of Signaling for Cell Relay and Frame Relay, Artech House, Boston*London, 1995; 7. Thomas J. Mowbray, William A. Ruth Inside CORBA Distributed Object Standards and Applications Addison Wesley, 1998; 8. Herbert Schildt C++ Manual complet Ed. Teora, Bucureti, 1998; 9. Jan Thrner Intelligent Networks Artech House, Boston*London; 10. *** - C++ Programmers Guide, 1995; 11. *** - CORBA www-ismc.itsi.disa.mil\ciiwg/ciiwg.html; 12. *** - CORBA v2.3 CORBA overview, June, 1999; 13. *** - Cursurile Facultii de Electronic i Telecomunicaii, Iai, Secia Sisteme i Reele de Comunicaii, 1995-2000; 14. *** - Object Management Group www.omg.org; 15. *** - Orbix Programmers Guide; 16. *** - Protocoale de Telecomunicaii www.protocols.com.

Pagina 12.1

S-ar putea să vă placă și