Technische Universiteit
tG)
Eindhoven
Faculteit Elektrotechniek Vakgroep Informatie- en Communicatiesystemen
Afstudeerverslag:
De PC-based switch Ontwerp en Realisatie A.M.A. Wouters
Begeleiders:
dr.ir. J.H.G. van Pol (KPN Research Leidschendam)
Afstudeerhoog leraar: Datum:
ir. M.J.M. van Weert Prof.ir. M.P.J. Stevens mei 1997
De Faculeit Elektrotechniek van de Technische Universiteit Eindhoven aanvaardt geen verantwoordelijkheid voor de inhoud van stage- en afstudeerverslagen
Auteur(s): Anton Wouters
Datum: mei 1997
De PC-based switch
Ontwerp en Realisatie Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
R&O-RA-97-290
© KPN Koninklijke PTT Nederland NV,KPN Research 1996.
Aile rechten voorbehouden. Niets uit deze uitgave mag worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar gemaakt, in enige vorm of op enige wijze, hetzij eleklron/sch, mechanisch door fotokopieen, opnamen of enige andere manier, zonder voorafgaande schrifteliike toestemming van de rechthebbende. Het vorenstaende is eveneens van toepassing op gehele of gedeeltelijke bewerking. De rechthebbende is met uitsluiting van jeder ander gerechtigd de door derden verschuldigde vergoedingen voor kopieren als bedoeld in artikel 17, tweede lid, Auteurswet 1912 en het K.B. van 20 juni 1974 (Stb.351) zoals gewijzigd bij het K.B. van 23 augustus 1985 (Stb.471) ex artikel16b Auteurswet 1912, te innen en/of daartoe in en buiten rechte op Ie treden. Voor het ovememen van delen van deze uitgave ex artikel 16 Auteurswet 1912 dient men zich tot de rechthebbende te wenden. © KPN Royal PTT Nederland NV, KPN Research 1996. All rights reserved. No part of this book may be reproduced in any form, by print, photoprint, microlilm or any other means without the prior written permission from the publisher.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
KPN Research /nformatieb/ad bij Rapport R&D-RA-97-290
Tite/:
De PC-based switch Ontwerp en Realisatie
Excerpt:
In dit rapport wordt de ontwikkeling en realisatie van een PCBX, een PBX in een PC, beschreven. Achtereenvolgens wordt de geschiedenis, de hard- en software keuze en het systeemontwerp van de PCBX behandeld.
Auteur(s): Reviewers: Afde/ing: Project: Bege/eiders: Datum:
A.M.A. Wouters ir E. van Zegveld NSC PCBX dr ir ~I.H.G. van Pol (KPN Research) , ir M.J.M. van Weert (TU[=) mei 1997
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
Uitgegeven onder verantwoorde/ijkheid van:
hfd NSC
Trefwoorden:
PC-based switch, SCSA, Computer Telephony, CTI
Verzend/ijst:
Research MT NSC, werkveld Bedrijfscommunicatie (NSC), UDP B. Kastelein, H. Nordkamp, J.M. Kloosterman, R.J.N. Kalberg, D. Los, M.P. Miessen, W.G. Levelt, A. Suurmond, J.H.G. van Pol (10x), A.M.A. Wouters (ax) TUE M.J.M. van Weert (2x), M.P.J. Stevens (2x)
R&D-RA-97-290
Voorwoord
Dit document is het resultaat van mijn afstudeerproject verricht bij KPN Research te Leidschendam. In de periode van 2 september Vm 31 mei heb ik, bij de afdeling Network and Service Control, gewerkt aan de ontwikkeling van een PC-based switch. Dit verslag vormt de afronding van mijn studie Informatietechniek aan de Technische Universiteit Eindhoven. Er zijn een aantal mensen die ik graag wil bedanken voor de steun tijdens mijn afstudeerperiode bij KPN Research. Ten eerste mijn begeleider bij KPN Research John van Pol. Ondanks zijn drukke agenda, was er altjjd wei de mogelijkheid om advies en hulp te vragen. Deze hulp en kritiek hebben er mede toe bijgedragen dat mijn afstudeerproject een succes is geworden. Ook wil ik ir M.J.M. van Weert bedanken voor zijn begeleiding vanuit de TUE. Een groep die ik zeker niet wil vergeten, zijn aile studenten van L E135x. Zij zijn de personen die voor de perfecte sfeer hebben gezol'gd waarin ik mijn afstudeerproject heb voltooid. Maar natuurlijk wil ik vooral mijn ouders (en mijn zusje natuurlijk) bedanken, die mij gedurende mijn studie altijd gesteund hebben en er voor gezorgd hebben dat ik optimaal van mijn studententijd heb kunnen genieten. Mei 1997, Anton Wouters
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Inhoud
Voorwoord
i
Inhoud
iii
Management Samenvatting
v
Lijst van afkortingen 1 Inleiding
vii 1
1.1 De project doelen
1
1.2 Leeswijzer
1
2 De PC-based switch ...............•.........................................................................•.•.........., 3 2.1 Inleiding
3
2.2 Historie
3
2.3 Waarom een PC-based switch?
5
2.4 Eisen aan een PCBX systeem 2.4.1 Standaard schakel-functies 2.4.2 Feature 1: Call Forwarding 2.4.3 Feature 2: CCBS 2.4.4 Feature 3: Transfer Call 2.4.5 Feature 4: Driegesprek 2.4.6 Flexibiliteit 2.4.7 Betrouwbaarheid
7 7 8 8 8 8 8 9
3 Het systeemontwerp •........•..........................................•...........................•.•................. 11 3.1 Inleiding .................................................................................................................• 11 3.2 De Hardware 3.2.1 De standaard protocollen 3.2.2 De hardware producenten 3.2.3 De hardware keuze
11 11 12 12
3.3 De Software .........•.................................................................................................. 13 3.3.1 Het eisenpakket 13 3.3.2 Beschikbare software pakketten 14 14 3.3.3 De software keuze
Uitsluitend veer gebruik binnen KPN en de Technische Universiteit Eindhoven
iii
R&D-RA-97-290
4 Het object georienteerd systeemmodel voor de PC-based switch
15
4.1 Inleiding
15
4.2 Object georienteerd programmeren
15
4.3 Het Connection State Model
17
4.4 De systeemmodellering
18
4.5 De Default Services 4.5.1 De Default Service voor de lokale terminals 4.5.2 De Default Service voor de externe lijnen
22 23
4.6 De POTS Service
23
4.7 De Call Forwarding Service
25
4.8 Completion of Call to Busy Subscriber (CCBS)
27
4.9 Transfer Call
28
4.10 Conference Call
29
4.11 Het Connection Management
30
5 Resultaten
21
31
5.1 Gerealiseerde features 5.1.1 POTS 5.1.2 Call Forwarding 5.1.3 Transfer Call 5.1.4 Conference CalL 5.1.5 Voice tv1ail 5.1.6 DeskPhone
31 31 31 32 33 33 34
5.2 Grafische Interlaces
34 34 35 36
5.2.1 PCBX 5.2.2 Nummerplan 5.2.3 DeskPhone
6 Conclusies & Aanbevelingen
37
7 Referenties
39
Bijlagen
41
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Management Samenvatting
De telefoon is tegenwoordig niet meer weg te denken als communicatiemiddel. Ook binnen bedrijven is dit het geval, waarbij in de bedrijfsomgeving ook een aantal speciale functies, zoals verkort bellen, gemeen goed zjjn geworden. Deze functies zijn mogelijk doordat bedrijven hun eigen telefooncentrale (PBX) hebben waarbij deze functies onafhankelijk van het publieke net, gerealiseerd kunnen worden. Met de opkomst van de informatietechnologie, wordt ook de hiervan met de telecommunicatie interessant. Denk bijvoorbeeld aan bellen vanuit een telefoonlijst. Een nieuwe ontwikkeling op het gebied van Computer Telephony is de PC-based switch (PCBX). Bij een PCBX is de PBX volledig ge"integreerd in de PC. De ontwikkeling van PCBX'en is in een dusdanig stadium dat de PCBX gezien kan worden als een alternatief voor de PBX. Probleemstelling Binnen KPN is er welnlg kennis met betrekking tot PCBX'en. De technische ontwikkelingen en marktontwikkelingen rond PBX'en duiden er echter op dat in de nabije toekomst de PCBX als alternatief voor de PBX gezien kan worden. Het is voor KPN dan ook van belang kennis, inzicht en ervaring te krijgen in de ontwikkeling en mogelijkheden van PCBX'en. Doel Binnen dit project zijn de volgende doelen vastgesteld: • Het ontwerpen en realiseren van een PCBX om zo de mogelijkheden en onmogelijkheden van een PCBX te verkennen. • Het realiseren van een PCBX voor demonstratie doeleinden. • Het opleveren van een rapport waarin de ontwikkeling en de gebruikte concepten van de PCBX gedocumenteerd worden. Conclusies De PCBX bevat een grote flexibiliteit. Dit komt enerzijds door het gebruik van de SCSA standaard, die een open systeem garandeert. Anderzijds door gebruik te maken van object georienteerde software. Deze eigenschappen maken het mogeljjk om op relatief eenvoudige wijze, en dus binnen korte tijd, de capaciteit van het systeem aan te passen en applicaties en features aan het systeem toe te voegen. Aanbevelingen Om de voordelen en mogelijkheden van PCBX'en duidelijker naar voren te laten komen, verdient het aanbeveling om nieuwe features voor de PCBX te ontwikkelen. Hierin kunnen persoons-specifieke voorkeuren en eigenschappen gebruikt worden. Tevens is het interessant om bestaande CTI applicaties te koppelen aan de PCBX.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
v
R&D·RA·97·290
Lijst van afkortingen
ACTAS API CA CCBS CM CMA CORBA CTI DECT OPE DSP DTMF EML ISDN LIM MA MNA MVIP NA ODP OS PBX PC PCBX POTS PSTN RA SA SCSA SF SML SSM TA TOM TINA USM
Alliance of Computer Based Telephony Application Suppliers Application Programming Interlace Computing Architecture Completion of Call to Busy Subscriber Connection Management Connection Management Architecture Common Object Request Broker Architecture Computer Telephony Integration Digital Enhanced Cordless Telecommunications Distributed Processing Environment Digital Signal Processor Dual Tone Multi Frequency Element Management Layer Integrated Services Digital Network Line Interface Module Management Architecture Multi Node Architecture Multi Vendor Integration Protocol Networking Architecture Open Distributed Processing Operating System Private Branch eXchange Personal Computer PC-based switch Plain Ordinary Telephone Service Public Switched Telephone Network Resource Architecture Service Architecture Signal Computing System Architecture Service Factory Service Management Layer Service Session Manager Terminal Agent Time Devision Multiplexing Telecommunications Information Networking Architecture User Session Manager
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
vii
R&D-RA-97-290
1
Inleiding
De telefoon is tegenwoordig niet meer weg te denken als communicatiemiddel. Ook binnen bedrijven is dit het geval, waarbij in de bedrijfsomgeving ook een aantal speciale functies, zoals verkort bellen, gemeenschappelijk goed zijn geworden. Deze functies zijn mogelijk doordat bedrijven hun eigen telefooncentrale hebben (PBX) waarbij deze eigenschappen, onafhankelijk van het publieke net, gerealiseerd kunnen worden. Met de opkomst van de computer technologie, wordt ook de integratie van deze technologie met de telecommunicatie interessant (CTI), denk bijvoorbeeld aan bellen vanuit een telefoonlijst. Een nieuwe ontwikkeling op het gebied van CTI is de PC-based switch (PCBX). Bij een PCBX is de PBX volledig ge"integreerd in de PC. De ontwikkeling van PCBX'en is in een dusdanig stadium dat de PCBX gezien kan worden als een aanvulling of vervanging op PBX'en.
1.1
De project doelen De projecttitelluidt: "Het ontwerpen en bouwen van een PC-based switch". Het doeI is het onderzoeken of PCBX'en een aanvulling kunnen vormen op de huidige PBX'en. De volgende vragen spelen hierbij een rol: 1. 2. 3. 4.
Heeft een PCBX dezelfde functionaliteit als de huidige PBX systemen? Heeft een PCBX dezelfde betrouwbaarheid als de huidige PBX systemen? Is het systeem flexibel? Is het systeem voor een redelijke prijs te leveren?
Vooral de eerste drie vragen staan centraal in dit project. De eventuele prijs van het systeem is een marketing issue en valt buiten de scope van dit project. Op dit moment is er zeer weinig bekend over de mogelijkheden van PCBX systemen. Er zijn op dit moment wei PCBX systemen leverbaar, maar deze zijn voornamelijk gebaseerd op verouderde technologieen en proprietary apparatuur, waardoor ze net zo gesloten en inflexibel zijn als een PBX. Een manier om de gestelde vragen te beantwoorden is het realiseren van een PCBX met de nieuwste technologieen. Zo is het mogelijk zowel de voor- als nadelen van een PCBX aan het licht te brengen. Het ontwikkelen van een PCBX geeft een indicatie over de mogelijkheden en onmogelijkheden van PCBX'en.
1.2
Leeswijzer Het ontwikkelen van de PCBX verloopt in een aantal fasen die in dit verslag beschreven zullen worden. Deze fasen zijn: 1. Het opstellen van een eisenpakket voor een PCBX systeem 2. Het kiezen van de te gebruiken hard- en software 3. Het opstellen van een systeemontwerp en een object model 4. Het ontwikkelen van software voor de PCBX 5. Het testen van de PCBX 6. Het integreren van de PCBX in het SC-Iab In hoofdstuk 2 wordt besproken worden wat de geschiedenis is van de PCBX en aan welke eisen het moet voldoen. In hoofdstuk 3 wordt besproken met welke hard- en software de PCBX gerealiseerd wordt en waarom. In hoofdstuk 4 wordt het object model
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
van de software besproken. De uiteindelijke werking van het systeem wordt besproken in hoofdstuk 5. Hier zal worden ingegaan op de manier waarop de verschillende features werken. Tenslotte worden in hoofdstuk 6 conclusies en aanbevelingen geformuleerd.
2
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97·290
2
De PC-based switch
2.1
Inleiding Sinds de ontwikkeling van de PBX staat deze centraal in de bedrijfscommunicatie. Met de opkomst van de computer technologie blijkt dat er steeds meer behoefte is om een gedeelte van de besturing van de PBX vanuit de computer te regelen. Deze ontwikkeling, Computer Telephony Integration (CTI), kan gezien worden als een voorloper van PCbased switching, waarbij de telecommunicatie en computer omgeving volledig gei"ntegreerd zijn. In dit hoofdstuk wordt de historie van CTI beschreven en hoe de PCBX daaruit voortvloeit, daarna worden de eisen geformuleerd die aan de te ontwikkelen PCBX zijn gesteld.
2.2
Historie De ontwikkeling van de PCBX is in een aantal fasen verlopen, waarbij de PC een steeds belangrijkere rol ging spelen in de besturing van de PBX. Deze fasen zijn: 1. De PBX 2. Computer Telephony Integration 3. De PC-based switch Door invloed van CTI is de PBX voor een deel geopend, en werd het mogelijk om een deel van de besturing buiten de PBX te laten plaatsvinden. In een later stadium zijn de informatietechnologie en de telecommunicatie volledig met elkaar gei"ntegreerd en is de PCBX een feit geworden. De PBX De eerste PBX'en bezaten geen koppeling met een PC (zie figuur 2.1). De PBX was een compleet gesloten systeem. De enige interactie met de PBX vond plaats via de aangesloten telefoontoestellen en bestond er geen mogelijkheid om op een andere manier invloed uit te oefenen op de PBX.
... lokaal netwerk
pubI"Iek netwer\. schakeleenheid
............ .....
", ,
~
y
"
besturingseenheid Flguur 2.1 Schematlsche weergave van een PBX
Een PBX was een switch die in staat was twee telefoontoestellen met elkaar te verbinden. Tevens verzorgde de PBX de verbinding van het lokale telefoonnet met het publieke netwerk (via de trunk). De opkomst van computer technologie maakte het mogelijk om een deel van de besturing vanuit een PC te laten plaatsvinden. Computer Telefoon Integratie (CTI)
Computer Telephony Integration wordt door ACTAS1 als voigt gedefinieerd. 1 ACTAS Alliance of Computer-Based Telephony Application Suppliers
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
3
R&D-RA-97-290
Computer Telephony Integration provides for the exchange of information between telephones and computers. More specifically, CTI links telephone switches with computers to co-ordinate computer information and intelligence with telephone call handling to automatically add relevant data, fax, graphics and/or video to voice communications.
Er bestaan twee verschillende vormen van CTI, First Party control en Third Party control. First Party control. De computer functioneert als verlengstuk van de telefoon (zie figuur 2.2). De gebruiker heeft aileen controle over zijn eigen telefoonfuncties, en kan daarbij ondersteund worden door een computer.
..
publiek netwerk
- - CTI verbinding - - telefoon verbinding
~:iin':'
PBX
4.·:~
Figuur 2.2. First Party control cn
Bij First Party Control bestaat de koppeling tussen de PC en de PBX uit een normale telefoonverbinding en "ziet" de PBX dus niets van de PC. Er is wei een specifieke C'-' verbinding aanwezig tussen de PC en het telefoontoestel. Deze wordt gevormd door een zogenaamde TAPI kaart in de PC. Bij First Party control kan de PC gezien worden als een intelligente telefoon. Een voorbeeld van een toepassing met behulp van First Party control is het selecteren van een naam uit een lijst, waarna de PC het bijbehorende nummer kiest. Third Party control. Een CTI server is via een CTI verbinding verbonden met de PBX en krijgt langs die verbinding informatie van de PBX. De CTI server is in staat verbindingen in de PBX tot stand te brengen en te verbreken. De PBX heeft nog steeds een zelfstandig opererend besturingsgedeelte, waar de derde partij (de CTI Server) beperkte invloed op kan uitoefenen. publiek netwer\.
PBX
- CTI verbinding
LAN Server
Figuur 2.3 Third Party control cn
In 1991 opgerichte organisatie ter stimulatie van CTI ontwikkelingen
4
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Bij Third Party control zijn de telefoontoestellen direct aan de PBX gekoppeld. Er is een CTI verbinding aanwezig tussen een, al dan niet aan een LAN gekoppelde, CTI server en de PBX. Bij Third Party control vormt de PC een intelligente uitbreiding van de PBX. Een voorbeeld van een Third Party control toepassing is Automatic Call Distribution (ACD), waar bij een inkomend gesprek de CTI server bepaalt naar welk toestel het gesprek wordt doergegeven. Voer zowel First als Third Party control zijn er Application Programming Interfaces (API) entwikkeld, waarmee CTI applicaties ontwikkeld kunnen worden. Een API bedoeld voor First Party control is door Microsoft ge·implementeerd in de vorm van TAPI2. Latere versies van TAPI zijn tevens geschikt voor Third Party control. Door Novell en AT&T is TSAPI3 voor Third Party control gei'mplementeerd. De PCBX Door de ontwikkeling van de PCBX zijn de werelden van de telecommunicatie en de Informatie Technologie volledig met elkaar gei'ntegreerd, en is de scheiding tussen PC en PBX verdwenen. Door middel van PC insteekkaarten worden interne toestellen en het publieke net aangesloten op de PC. De software op de PC bestuurt de hardware. Een algemene definitie voor een PC-based switch is: De PC-based switch is een bedrijfstelefooncentrale, geheel ge"integreerd in een PC. Zowel de software, die 20rgt voor de intelligentie, als de hardware bevinden zich in een zelfstandig systeem.
In deze definitie worden geen uitspraken gedaan over de soort hard- en software, waarmee een PCBX is opgebouwd.
publiek netwer~
.. I
LAN Figuur 2.4 Een PCBX
De binnen dit project ontwikkelde PC-based switch maakt gebruik van software en hardware die voldoet aan een standaard die open systemen garandeert. Wanneer in het vervolg over een PC-based switch wordt gesproken, wordt er uitgegaan van een open systeem.
2.3
Waarom een PC-based switch? Een PC-based switch verschilt op een aantal punten van de PBX. Deze verschillen vormen tezamen het argument om gebruik te maken van een PCBX in plaats van een PBX.
2 TAPI
Telephone Applications Programming Interface, API ontwikkeld door Microsoft
3 TSAPI Telephony Server Applications Programming Interface, API ontwikkeld door Novell en AT&T
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
5
R&D-RA-97-290
Een open systeem Door gebruik te maken van een standaard voor open systemen is de PCBX een open systeem. Een standaard voor open systemen voldoet aan twee eisen [Dialogic6]: 1. Een open, software onafhankelijke hardware architectuur. 2. Een open, hardware onafhankelijke software architectuur Dit betekent dat men niet afhankelijk is van producent specifieke hardware en software. Zo lang producten voldoen aan dezelfde standaard, zijn ze uitwisselbaar. Een standaard voor open systemen vormt de basis van de voordelen van PCBX'en. Een gesloten PCBX (wat ook mogelijk is) is geen optie. Een flexibel systeem Een PCBX is, door het gebruik van een standaard voor open systemen, een flexibel systeem. Deze flexibiliteit komt naar voren in zowel de hardware als software (zie figuur 2.5). De capaciteit van PCBX'en is eenvoudig te vergroten door interlace kaarten in de PC toe te voegen. Systemen met een capaciteit van 8 tot 450 interne toestellen zijn op een PC haalbaar. Object georienteerde (00) software maakt het mogelijk om het systeem geheel uit vaste bouwblokken samen te stellen. Hierdoor worden oplossingen op maat mogelijk gemaakt.
PC interface
ISDN2
X '
. .,
Figuur 2,5 Bouwblokken structuur van de PCBX
State of the Art software De software voor de PCBX wordt geheel opnieuw, en op een object georienteerde wijze, geschreven. Deze programmeertechniek vereist een opdeling van het systeem in logische bouwblokken. Dit heeft als voordeel dat de software voor een PCBX vele malen overzichtelijker is opgesteld dan voor vele conventionele systemen (zie figuur 2.6). Hierdoor is het toevoegen en/of wijzigen van features van het systeem vele malen sneller te realiseren.
6
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
PB X Software
PCBX Software
Figuur 2.6 Verschil in software PBX en PCBX systemen
Natuurlijke integratie IT & T Een PCBX is gebaseerd op de integratie van informatietechnologie en telecommunicatie (zie figuur 2.7). Waar bij PBX systemen deze gebieden nog geheel gescheiden zijn en verbonden worden door een CTI link, is er· bij een PCBX sprake van een overlap van deze gebieden.
CTilink
PBX
PCBX
Figuur 2. 7 Integratie van IT & T bij de PCBX
Door deze voordelen is een PCBX een sterk alternatief voor de geleverde PBX'en.
2.4
Eisen aan een PCBX systeem De eisen aan het PCBX systeem zijn afgeleid van de functionaliteit van PBX systemen. Moderne PBX systemen bezitten vaak 200 of meer features. Uit onderzoek is gebleken dat het grootste deeI daarvan zelden of nooit gebruikt wordt. Het implementeren van aile PBX functies is daarom niet zinvol. Het PCBX systeem moet de meest gebruikte features wei bezitten. Het eisenpakket is als voigt: Het eisenpakket
1. 2.
3. 4.
De PCBX moet de standaard schakel functies van een PBX bezitten. Features: a) Call Forwarding b) CCBS (Completion of Call to Busy Subscriber) c) Transfer Call d) Driegesprek (Conference Call) Flexibiliteit Betrouwbaarheid
In de volgende paragrafen worden de eisen afzonderlijk besproken.
2.4.1
Standaard schakel-functies
De belangrijkste functie van een PBX systeem is het leggen van verbindingen tussen verschillende telefoonaansluitingen. Deze verbindingen kunnen zowel binnen het lokale telefoonnet gelegd worden, als naar het publieke telefoonnetwerk. Deze functie staat ook wei bekend als POTS (Plain Ordinary Telephone Service) en is de basisfunctie van een PBX.
Uitsluitend voer gebruik binnen KPN en de Technische Universiteit Eindhoven
7
R&D-RA-97-290
2.4.2
Feature 1: Call Forwarding
Met behulp van Call Forwarding wordt een telefoonnummer doorgeschakeld naar een ander toestel (met een ander nummer). Deze functie kent drie verschillende toestanden. 1. Initialisatie 2. Actief 3. Deactivatie Ad 1. Bij de initialisatie geeft een gebruiker aan dat aanvragen voor gesprekken op een bepaalde terminal (toestel 1) doorgeschakeld worden naar een andere terminal (toestel 2). Na deze initialisatie blijft het wei mogelijk om toestel 2 direct te bereiken. Ad 2. De feature wordt actief wanneer iemand de doorgeschakelde terminal probeert te bereiken. Het systeem grijpt dan in en verbindt de beller door naar de terminal waarnaar doorgeschakeld is (toestel 2). Dit toestel is ook rechtstreeks bereikbaar. Ad 3. Een gebruiker geeft aan dat de doorschakelservice beeindigd moet worden. Gesprekken zullen vanaf dit moment met de oorspronkelijke terminal (toestel 1) worden verbonden.
2.4.3
Feature 2: CCSS
CCBS staat voor Completion of Call to Busy Subscriber. Deze functie zorgt ervoor dat wanneer een toestel in gesprek is, de verbinding later, wanneer beide toestellen vrij zijn, alsnog gemaakt wordt. De beller die het gesprek tot stand probeert te brengen geeft aan de centrale aan dat hij de verbinding later door de centrale tot stand wi! laten brengen. Zodra beide toestellen vrij zijn, wordt eerste de beller gewaarschuwd en daarna het eerder gebelde toeste!.
2.4.4
Feature 3: Transfer Call
Deze functie geeft de gebruiker de mogelijkheid tijdens een gesprek de andere beller door te verbinden naar een derde toeste!. Hij zet de door te schakelen partij in de wachtstand en maakt dan een verbinding met het top-stel waar naartoe moet worden doorverbonden. Door dan de verbinding te verbreken worden de twee andere toestellen met elkaar verbonden.
2.4.5
Feature 4: Driegesprek
Het driegesprek is een uitbreiding van de Transfer Call functie. Bij een Call Transfer bestaat er een verbinding tussen drie toestellen, ge'initieerd door een toeste!. Bij een Call Transfer kunnen echter maar twee toestellen met elkaar communiceren. Bij een driegesprek kunnen aile drie de toestellen met elkaar communiceren. De manier waarop een driegesprek tot stand komt lijkt op die van de TC functie. Nadat de verbinding met de derde partij is gemaakt verbreekt de beller niet de verbinding maar geeft aan dat hij een driegesprek wi!. Hierna zijn de drie partijen met elkaar verbonden. Deze implementatie wijkt af van de wijze waarop deze functie op veel PBX'en ge'implementeerd is. Daar wordt, voordat de derde partij gebeld wordt, aangegeven dat er een driegesprek moet worden opgezet.
2.4.6
Flexibiliteit
De flexibiliteit van de PCBX is een zeer belangrijk punt. Dit is het punt waar de PCBX voordelen biedt boven de huidige PBX systemen. De flexibiliteit geldt zowel voor de software als de hardware. Een PCBX systeem is volledig open. Dit heeft als gevolg dat applicatie ontwikkelaars geheel vrij zijn de hardware te gebruiken zoals zij willen. Hierdoor is er meer vrijheid bij het ontwikkelen van applicaties. Op deze vrijheid wordt later teruggekomen. De opbouw van een PCBX biedt de mogelijkheid om systemen met verschillende capaciteiten aan te bieden. Normaal gesproken hoeft de software niet te worden aangepast. Zo kan er een programma worden ontwikkeld, waar systemen mee kunnen worden bestuurd van verschillende omvang. Dit is voor middelgrote bedrijven een groot
8
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
voordeel. Een PCBX hoeft niet op de groei te worden gekocht. Het systeem kan (binnen bepaalde grenzen) worden uitgebreid..
2.4.7
Betrouwbaarheid
PBX systemen staan bekend om hun betrouwbaarheid. Het uitvallen van een telefooncentrale is voor bedrijven ongewenst. De telefoon vormt de verbinding met de buitenwereld. De betrouwbaarheid is hierom een belangrijke eis aan het PCBX systeem. Deze betrouwbaarheid vormt ook de grootste onzekerheid bij de PCBX. Een PCBX is een PC. al dan niet verbonden met andere PC's op een netwerk. De uitval van PC's is groot in vergelijking met de uitval van PBX systemen. Een PCBX met een hoge storingskans is niet acceptabel. De betrouwbaarheid wordt vooral bepaald door het te gebruiken Operating System en het ontwerp van de gebruikte software. Bij de keuze voor het as en de software zal hiermee rekening moeten worden gehouden.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
9
R&D-RA-97-290
3
Het systeemontwerp
3.1
Inleiding De keuzes die gemaakt moeten worden, voor zowel de software als de hardware, zijn bepalend voor het systeem. In dit hoofdstuk wordt beschreven welke keuzes er gemaakt zijn en waarom.
3.2
De Hardware
3.2.1
De standaard protocollen Op dit moment zijn er twee CTI bus standaarden beschikbaar, SCSA4 en MVlp5. Beide zijn ontwikkeld om het voor hardware producenten duidelijk te maken aan welke regels ze zich moeten houden om zo compatibiliteit, voor zowel de soft- als hardware, te kunnen garanderen. Zo kan het ene SCSA product van fabrikant A gebruikt worden met een ander SCSA product van fabrikant B. Hetzelfde geldt voor producenten van MVIP producten. SCSA en MVIP beschrijven een zogenaamde standaard voor open systemen, waarmee bedoeld wordt [Dialogic6]: 1. Een open, software onafhankel;~ke, hardware architectuur. 2. Een open, hardware onafhankelijke, software architectuur Deze twee eisen zorgen samen voor een standaard voor open computer telefonie systemen. Dit in tegenstelling tot PBX'en waarbij de systemen gesloten zijn en men gebonden is aan de mogelijkheden die de producent aan zijn product meegeeft. SCSA en MVIP producten zijn onderling niet compatibel, al zijn er wei steeds meer producenten die hun producten door beide systemen laten ondersteunen.
3.2.1.1
SCSA
Dialogic presenteerde in 1993 SCSA, een standaard die voldoet aan de eisen die gesteld worden aan een volledig open systeem. De SCSA standaard is gebaseerd op de SCbus™ die de SCSA producten karakteriseert. Deze bus verbindt tot maximaal 16 SCSA kaarten met elkaar. De verschillende kaarten communiceren niet via de PC-bus (bijvoorbeeld PCI) en belasten zo de PC zo min mogelijk. Intensief dataverkeer tussen de verschillende kaarten heeft hierdoor geen invloed op de belasting van de PC. De SCbus heeft een capaciteit van 1024 bi-directionele, 64 Kbps kanalen en maakt gebruik van Time Division Multiplexing (TDM). Zo geeft de bus informatie door van de ene kaart aan de andere. Deze verbinding tussen de kaarten is essentieel voor het systeem. Wanneer men grotere systemen wil ontwikkelen is men genoodzaakt meerdere kaarten te gebruiken, waarbij iedere kaart zijn eigen specifieke functie heeft. Hierbij kan men denken aan ISDN-30, FAX en Voice Processing kaarten, die onderling communiceren via de SCbus. De hoge capaciteit van de SCbus biedt de mogelijkheid grotere systemen te bouwen. ledere verbinding tussen twee kaarten geschiedt via een times/ot van de SCbus, maar door de toepassing van TDM wordt deze niet volledig gebruikt. Hierdoor kunnen 4 SCSA™ Signal Computing System Architecture 5 MVlp™
Multi-Vendor Integration Protocol
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
11
R&D-RA-97-290
meerdere verbindingen worden gemaakt via een times/ot. De capaciteit van de SCbus levert voorlopig geen beperkingen.
3.2.1.2
MVIP Natural Microsystems presenteerde in 1990, samen met zes andere bedrijven, de MVIP standaard. Sindsdien zijn er verschiliende verbeteringen van MVIP op de markt gebracht. De laatste versie, MVIP-90, ondersteunt 256 bi-directionele kanalen. Op dit moment wordt H-MVIP getest, deze gaat 1536 bi-directionele kanalen ondersteunen, maar is nog niet leverbaar. Met MVIP kunnen maximaal 1536 poorten (aansluitingen) ongeblokkeerd over de bus worden ondersteunt. De MVIP bus verzorgt, net zoals de SCbus, de verbindingen tussen de verschiliende computerkaarten.
3.2.1.3
Vergelijking tussen MVIP en SCSA In de praktijk zijn de verschilien tussen MVIP en SCSA klein. SCSA biedt op dit moment een grotere capaciteit dan MVIP. Zo ondersteunt MVIP 256 bi-directionele verbindingen op zijn bus en SCSA 1024. Tevens is MVIP beperkt tot 1536 aansluitingen. Het aantal aansluitingen op een SCSA systeem is onbeperkt. Wei moet gezegd worden dat MVIP op dit moment door meer producten ondersteund wordt dan SCSA. Dit lijkt echter niet lang meer te duren, omdat steeds meer producenten zich voliedig richten op de SCSA standaard. SCSA krijgt de steun van bijna alie producenten en is op weg de standaard te worden. Op grond van bovenstaande overwegingen is besloten gebruik te maken van SCSA producten.
3.2.2
De hardware producenten Er zijn verschillende producenten van SCSA producten. De bekendste zijn Dialogic (de ontwerper van de SCSA standaard), Dianatel en Rhetorex. Dialogic heeft het grootste assortiment aan SCSA producten en gel:iet als ontwerper van de SCSA standaard duidelijk de voorkeur.
3.2.3
De hardware keuze Bij het maken van een keuze voor de hardware is als uitgangspunt een zo klein mogelijk systeem genomen, waarmee toch nog de functionaliteit en flexibiliteit goed getest kunnen worden. De uiteindelijke keuze is afgebeeld in figuur 3.1. Er is gekozen voor 2 maal 24 analoge binnenlijnen om ook de interactie tussen twee kaarten te kunnen testen. De verbinding met het publieke telefoon netwerk wordt gerealiseerd met een ISDN 30 kaart.
SCbus
ISDN-3D
Figuur 3. 1 Het systeem in de PC
12
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
De buitenlijnen
De ISDN-30 kaart die Dialogic levert is de D/300SC-E1 TM kaart. Deze kaart bezit onder andere de volgende mogelijkheden: • Verbindt de PC met 30 digitale telefoon kanalen. • Beantwoordt automatisch inkomende gesprekken (maakt contact). • Detecteert kiestonen van bellers. • Kan gesproken berichten aan de beller laten horen. • Kan analoge signalen digitaliseren en opslaan. • Kan naar buiten bellen en het resultaat van de bel actie doorgeven. AI deze mogelijkheden worden in real time verwerkt. Voor meer informatie over de D/300SC-E1 zie bijlage A1 De binnenlijnen Ais verbinding met de analoge toestellen biedt Dialogic de MSIISC™ serie, waarbij MSI/SC staat voor Modular Station Interface for the SCbU5. Deze interface heeft onder andere de volgende mogelijkheden: • Verbindt tot maximaal 24 analoge telefoontoestellen direct met de computer. • Controleert en beheert aile gemaakte verbindingen. • Maakt Audio conferencing (groepsgesprekken) van twee tot acht deelnemers mogelijk. De MSI/SC kaart wordt met een SAl240 interface verbonden met de analoge telefoontoestellen. Deze interface is niets me~r dan een verloopstekker. Voor uitgebreidere informatie over de MSI/SC serie van Dialogic, zie bijlage A2. De koppeling Via de SCbus wordt de MSI kaart gekoppeld worden aan de D/300SC-E1 kaart. Het is ook mogelijk meerdere kaarten samen te koppelen. De opbouw waarvoor gekozen is, een D/300SC-E1 kaart en twee MSI/SC-240 kaarten, resulteert in een systeem met 30 externe en 48 interne lijnen. Dit systeem kan uitgebreid worden tot maximaal 210 externe en 216 interne lijnen (andere configuraties zijn ook mogelijk, zolang het totale aantal van 16 kaarten per PC maar niet overschreden wordt). Grotere systemen zijn ook te realiseren door gebruik te maken van meerdere servers. Zo kunnen twee NT servers via een speciale verbinding samengevoegd worden tot t:en groot systeem. Het grote voordeel van het Dialogic systeem is dat het uitbreidbaar is met verschillende andere opties, zoals fax, video en IVR kaarten. Tevens kan een systeem op maat gemaakt worden en later in omvang worden aangepast.
3.3
De Software De software bepaalt welke functies de PCBX heeft en de manier waarop ze worden uitgevoerd. In deze paragraaf zal eerst het eisenpakket voor de software worden opgesteld waarna een vergelijking zal worden gemaakt tussen de verschillende alternatieven.
3.3.1
Het eisenpakket
Voordat de eisen genoemd worden moet er een onderscheid gemaakt worden tussen eisen en wensen. Zo is de grootste wens dat er een ontwikkelomgeving gevonden wordt waarin op een snelle wijze een goed besturingssysteem ontwikkeld kan worden. Dit zijn omgevingen waar de basis voor CTI applicaties al voorbereid is. De eisen aan de software ontwikkelorngeving zijn: 1. De software moet het mogelijk maken in real time aile calls af te handelen. De software mag niet verantwoordelijk zijn voor vertragingen bij het opzetten van een gesprek. 2. De software moet in staat zijn door middel van multithreading grote systemen te besturen. De software moet geen beperking zijn voor het aantal aansluitingen dat kan worden ondersteund. 3. De software moet de mogelijkheid bieden de systeemeisen te implementeren (zoals een bijvoorbeeld conference call).
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
13
R&D-RA-97-290
4. In de toekomst zal de software voor de PCBX aangepast moeten kunnen worden door anderen. Het is niet wenselijk dat zij geconfronteerd worden met een onoverzichtelijke en onbekende programmeertaal Vooral eis twee blijkt nogal een probleem te zijn bij verschillende ontwikkelomgevingen. Toch is deze eis noodzakelijk om aan gebruikers eenvoudige uitbreiding te kunnen garanderen.
3.3.2
Beschikbare software pakketten
Om tot een geschikte keuze te komen voor de omgeving waarin de software ontwikkeld zal worden zijn verschillende producten met elkaar vergeleken. Enkele bekende softwarepakketten zijn: 1. Visual Voice Pro for Windows NT (van Stylus Inc.) 2. Show N Tel (van Brooktrout Inc.) 3. Voice Operating System (VOS, van Parity) 4. Rekoll (van N-Soft) 5. Visual C++ (van MicroSoft) of Borland C++ Elk van deze pakketten heeft zijn voor- en nadelen. In tabel 3.1 staan de bepalende eigenschappen van iedere optie vermeld. T.b/31E a e Igen5chappen 50ft ware Software Pakket Ontwikkel omQevinQ Visual Voice Pro IDE script Show N Tel IDE script GUI VOS command line
Netwerk support? Ja Onbekend
Maximum Capaciteit 48
Nee
Rekoll C++
Ja Ja
72 Voice Channels >240 for switching 120 Bepaald door hardware
command line IDE script command line
96
Ondersteuning C++ TSL script C++ C++ C
Uit de tabel blijkt dat de ontwikkelomgeving en de capaciteiten van de verschillende systemen sterk verschillen. Vanwege de beperkte capaciteit van zowel Visual Voic: Pro, Show N Tel en Rekoll zijn zij niet geschikt als ontwikkelomgeving voor de PCBX. Bij VOS ontbreekt de ondersteuning voor netwerkprotocollen, deze zijn voor CTI applicaties echter belangrijk (zie ook hoofdstuk 5). Programmeertalen (en niet speciale CTI talen), zoals CH , vormen een betere optie. Deze omgevingen bieden aile vrijheid. Er moet wei rekening gehouden worden met een langere ontwikkeltijd, omdat er geen gebruik kan worden gemaakt van standaard bouwblokken zoals deze bij andere omgevingen wei meegeleverd worden.
3.3.3
De software keuze
De beschikbare software pakketten hebben allemaal verschillende nadelen en bieden daarom niet de geschikte omgeving om het systeem in te ontwikkelen. Er is daarom gekozen voor een ontwikkeling in C++. Het systeem wordt geheel object georienteerd (00) opgebouwd. Het object model wordt in hoofdstuk 4 besproken.
14
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
4
Het object georienteerd systeemmodel voor de PC-based switch
4.1
Inleiding Object-orientatie (00) is eind jaren zestig ontstaan als programmeertechniek. De taal Simula-67, gericht op simulaties, was de eerste programmeertaal die ondersteuning bood voor het definieren van klassen en het creeren van objecten, de basis van 00 (zie paragraaf 4.2). In de jaren zeventig gingen de ontwikkelingen op beperkte schaal verder, o.a. bij Xerox PARC waar de taal Smalltalk werd gedefinieerd. Pas in de jaren tachtig sloeg 00 echt aan. Met de introductie van Smalltalk-80 en andere talen als C++ en Eiffel, begonnen steeds meer mensen ge"interesseerd te raken in het idee van objecten. Tevens werden de relaties met andere ontwikkelingen uit de jaren 70 zoals modularisatie en abstracte data types duidelijker. Naast de introductie van programmeertalen en omgevingen werd ook een begin gemaakt met onderzoek naar ontwikkelmethoden voor object-georienteerd systeem ontwikkeling. Ook werden (en worden) bepaalde ideeen uit de 00 wereld toegepast in nieuwe (soorten) tools, varierend van databases tot grafische user-interface pakketten en 4 GL's, zoals Borland Delphi. Omdat is gebleken dat deze techniek voordelen biedt boven andere programmeertechnieken, is de software voor de PCBX op deze object georienteerde manier ge"implementeerd. In het vervolg van dit hoofdstuk wordt beschreven wat de 00 programmeertechniek inhoudt, en hoe de 00 structuur van de software voor de PCBX eruit ziet.
4.2
Object georienteerd programmeren Het centrale idee bij 00 is dat een systeem bestaat uit samenwerkende objecten [Rumbaugh]. Objecten verenigen toestand (data) en gedrag (operaties) in een concept. leder object heeft bepaalde interne variabelen (attributen) waarin data is opgeslagen. Verder is er een verzameling operaties (of methoden) die andere objecten kunnen aanroepen om iets met het object te doen. De methoden zijn een soort procedures die toegang hebben tot de interne variabelen van een object. Maar methoden kunnen ook weer methoden aanroepen van andere objecten. Het aanroepen van een methode van een object wordt ook wei het versturen van een bericht genoemd. In de meeste talen en omgevingen worden objecten beschreven door klassen. Een klasse beschrijft zowel de structuur als de operaties voor een bepaald soort objecten. In de klasse wordt vastgelegd welke interne variabelen een object van die klasse kent, en welke methoden er zijn en hoe die ge"implementeerd zijn. Daadwerkelijke objecten zijn nu instanties van zo'n klasse. Ze bevatten waarden voor de verschillende variabelen die in de klasse zijn gedefinieerd. Op een instantie kunnen de operaties die in de klasse zijn gedefinieerd worden uitgevoerd. Bij de executie van zo'n methode is het object waarop de methode wordt aangeroepen een (impliciete) parameter. Ais voorbeeld kunnen we ons de klasse "button" voorstellen met de bijbehorende instantie-variabelen (positie, tekst, kleur, etc.) en operaties (maak zichtbaar, verplaats, etc.). Instanties van deze klasse (de objecten) zijn dan buttons die we daadwerkelijk op het scherm kunnen zien en manipuleren.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
15
R&D-RA-97-290
Object Modeling Technique (OMT) Een veel gebruikte methode om object georienteerde systemen te modelleren is de Object Modeling Technique (OMT), ook wei Rumbaugh [referentie] methode genoemd. Deze methode beschrijft een systeem vanuit drie verschillende invalshoeken: 1. Statisch model 2. Dynamisch model 3. Functioneel model Het idee achter OMT is dat deze drie modellen samen een volledige beschrijving geven van een systeem. Het implementeren van de software voor een systeem voigt dan rechtstreeks uit de gemaakte modellen. Uit het statisch model volgen de verschillende klassen die ge"implementeerd moeten worden en welke functionaliteit ze bezitten. Uit het dynamisch model voigt hoe de objecten met elkaar communiceren en geeft dus impliciet de volgorde van opdrachten aan in de software. Het statisch model Het statisch model geeft de structuur van de objecten weer. Deze wordt bepaald door de attributen en methoden van het object en zijn relaties met andere objecten. Het statische model wordt weergegeven in een object model. De volgende notaties zijn daarin van toepassing (zie figuur 4.1) Klassenaam 1 Attributen
Klassenaam 2 4
relatie
•
Methoden
Attributen
Methoden ~
Exact 1 (I op I) ---_e
Velen(lop(Oofmeer»
----<0
Optioneel (I op (0 of I)
1+ 1-3
lofmeer Gespecificeerd (I op (I tim 3))
Figuur 4.1 Notaties in een statisch model
In het statisch model wordt de multipliciteit van een relatie tussen twee klassen aangeduid met de notaties zoals afgebeeld in figuur 4.1. Ais voorbeeld kunnen we een klasse "telefoon" nemen. Deze telefoon wordt geleverd in een aantal uitvoeringen, bijvoorbeeld met of zonder display. We hebben een klasse die zo'n display beschrijft. In het statisch model zou deze relatie 'optioneel' worden weergegeven. Het telefoontoestel heeft exact een hoorn, de klasse "telefoon" heeft dan een 'exact' relatie met de klasse "hoorn". Binnen OMT worden meerdere relaties tussen objecten beschreven. Deze relaties worden in het model van de PCBX niet gebruikt en zijn daarom hier buiten beschouwing gelaten.
Het dynamische model Het dynamische model beschrijft het gedrag van het object en wordt op twee manieren beschreven: 1. Een event diagram 2. Een state diagram In een event diagram wordt de interactie tussen verschillende objecten als functie van de tijd weergegeven in het verloop van de tijd. Op deze manier wordt duidelijk hoe een systeem, bestaande uit die objecten, zich zal gedragen. In een state diagram wordt weergegeven hoe de state van een object veranderd onder invloed van bepaalde events. Een state van een object beschrijft de toestanden waarin een object zich kan bevinden en welke akties het dan onderneemt (zie figuur 4.2).
16
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
~.--,~~
State 1 do: Aktie
\
Status van een ObjectIMethode
event
J
State 2 do: Aktie
~--4-~
.tate diagram Object I
Object 2
Object 3
event x
tijdl
+-- Objecten (geen Klassen!)
methode A methode B methodeC
Een event, gegenereerd door Object I • komt binnen bij Object 2
Aanroep van een methode in Object 3 methodeD methodeE
event diagram
Figuur 4.2 Het event en state diagram
Het functionele model Het functioneel model beschrijft op welke manier data getransporteerd, gewijzigd en toegepast wordt in het systeem. Oit model is vooral van toepassing in systemen waarin veel data verwerkt wordt (zoals databases). In het PCBX systeem is hiervan echter geen sprake en heeft het functionele model geen toegevoegde waarde op de systeemmodellering. Bij de beschrijving van het model zal het functionele model dan ook niet gegeven worden.
4.3
Het Connection State Model Om de functionaliteit van computer telecommunicatie applicaties te beschrijven wordt vaak gebruik gemaakt van een connection state model. Een verbinding tussen verschillende terminals verloopt in een aantal fasen, waarbij iedere fase een state genoemd wordt. Oe verschillende states worden door de ECMA gedefinieerd in de CSTA6 standaard [ECMA,94]. Het ECMA Connection State Model is afgebeeld in figuur 4.3. Oit model wordt gebruikt om enkele services van de PCBX te beschrijven.
Figuur 4.3 Connection State model van de ECMA
6 CSTA Computer Supported Telecommunications Applications, standaard ontwikkeld door de ECMA
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
17
R&D-RA-97-290
In dit model worden de volgende states gedefinieerd: • • • • • • •
Null: De state waarin er geen relatie is tussen een call en een terminal Initiated: De state waarin een terminal vraagt om de service. Hierin wordt de terminal om een nummer gevraagd. Alerting: De state waarin een terminal gewaarschuwd wordt (ringing). Dit geett aan dat er een poging wordt gedaan een connectie te maken Connected: De state waarin een terminal actiet betrokken is bij een call. De terminal heeft een verbinding. Hold: De state waarin een terminal een logische verbinding heeft met een call, hij heett echter geen tysieke verbinding. Queued: De state waarin een poging tot een verbinding opgehouden wordt (doordat bijvoorbeeld terminals nog in andere processen lopen) en tijdelijk gequeuedwordt. Failed: De state waarin het maken van de verbinding mislukt is.
Om het verloop van services te beschrijven worden de volgende symbolen gebruikt: Device I {Tenninal
~
\
@-.x-§] (
\
Calli Gesprek
\..
~tatus
van verbinding
~onnection I Verbinding
Figuur 4.4 Service diagram
Een connectie kan in zich in de verschillende states uit het connection state model bevinden. Deze worden als voigt weergegeven (op de plaats van de x in figuur 4.4)
a c f
h i q *
Alerting Connected Failed Hold Initiated Queued Undefined
Elke service heeft betrekking op een aantal aansluitingen (terminals) en Calls (gesprekken). Een Call heeft een aantal verbindingen, waarbij ook nul verbindingen een mogelijkheid is. De soort verbinding wordt aangegeven op de hierboven beschreven wijze.
4.4
De systeemmodellering De objecten in een object model representeren delen van het systeem. Een vereenvoudigde weergave van het systeem staat afgebeeld in figuur 4.5. We kunnen hier een aantal delen in onderscheiden: • • • • • •
De toestellen die zijn aangesloten (analoge of ISDN toestellen) De gebruikers van de toestellen De interfaces in de PC De software die de signalering naar de toestellen verzorgt De services die de functionaliteit bepalen van het systeem De software die de verbindingen tussen de verschillende toestellen maakt en verbreekt
Het systeem is opgedeeld in drie delen met ieder een ander verantwoordelijkheid. Ten eerste wordt de intelligentie gescheiden van het systeem. De intelligentie van de PCBX bevindt zich geheel in de services. Ten bestaat er een verschil tussen het uitvoeren van signalering op poorten en het verbinden van poorten. Deze taken worden binnen het systeem van elkaar gescheiden.
18
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Figuur 4.5 Het model van het systeem
De verschillende onderdelen van de PCBX worden architecturen genoemd. Deze architecturen zijn gerelateerd aan de verdeling in figuur 4.5. De signalering van het systeem wordt beschreven in de Terminal Management Architectuur en bepaalt op welke manier de verschillende aansluitingen op de interfaces bestuurd worden. Deze besturing is afhankelijk van de soort hardware (interfaces) die op het systeem is aangesloten. De Connection Management Architectuur bepaalt de manier waarom de fysieke connecties tussen aansluitingen worden gemaakt. Hierin worden de verbindingen gemaakt, beheerd en verbroken. Binnen deze architectuur wordt niet bepaald wanneer verbindingen worden gemaakt en verbroken, aileen de manier waarop dit gebeurt. Aile services van het systeem worden bepaalt in Service Architectuur. Deze bepaalt de functionaliteit van het systeem. Services in de Service Architectuur kunnen gebruik maken van de Terminal Management Architectuur om toestellen te besturen, en verbindingen tussen toestellen maken en verbreken met de Connection Management Architectuur. De services bepal('n wanneer er wat gebeurt. De volgende software architecturen zijn nu afgeleid (zie figuur ...0) • • •
De Terminal Management Architectuur (TMA) De Service Architectuur (SA) De Connection Management Architectuur (CMA) Service Architectuur
I Tenninal Management Architectuur
I Connection Management Architectuur
I
I PC Hardware
Figuur 4.6 De verschillende delen van het systeem
In de TMA worden objecten gedefinieerd die de signalering verzorgen voor de aangesloten toestellen (afvangen van digits, het laten horen van tonen, het rinkelen van de telefoon etc.). Voor elke toestelsoort wordt er een nieuwe klasse gedefinieerd, omdat de signalering op ieder soort toestel anders zou kunnen verlopen. Bij de PCBX onderscheiden we de analoge telefoontoestellen en de aansluitingen op de ISDN-3D interface. De klasse die de signalering voor de analoge toestellen verzorgt wordt de Party klasse genoemd. Voor de digitale aansluitingen wordt de DigParty gedefinieerd. In de SA is er behoefte aan een representatie van de aangesloten toestellen. Deze representatie is transparant over aile verschillende toestellen. Via deze klasse (de
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
19
R&D-RA-97-290
Terminal Agent (TA» kan de toestand (state) van een toestel worden beheerd en bijgehouden worden bij welke processen (services) een toestel betrokken is. Tevens kan in de TA aangegeven worden wat er met een toestel moet gebeuren als er zich bepaalde events voordoen. leder TA object heeft een 1 op 1 relatie met een Party object. In de SA bevinden zich ook de klassen van de verschillende services. Voor het opstarten en afsluiten is voor iedere service een service factory (SF) nodig. Deze beheert de levensduur van een service. Bij een SF kunnen aanvragen worden gedaan voor het starten van een specifieke service. ledere service heeft zijn eigen SF. Een essentieel onderdeel van de SA is het nummerplan. In het nummerplan wordt de koppeling gemaakt tussen telefoonnummers en Terminal Agents. Wanneer er in bepaalde features persoons-specifieke kenmerken een rol gaan spelen kan de invoering van een representant van de gebruiker gewenst zijn (een zogenaamde User Agent (UA». In de UA kunnen persoonlijke gegevens en voorkeuren worden beheerd. Wanneer er gebruik gemaakt wordt van een UA is het noodzakelijk dat gebruikers zich kunnen registreren op bepaalde toestellen. De UA zal in het vervolg buiten beschouwing worden gelaten, omdat het PCBX systeem op dit moment geen persoonsspecifieke diensten biedt. In de CMA bevindt zich maar sen object, de Connection Manager (CM). Deze CM is in staat fysieke verbindingen te maken en te verbreken tussen verschillende toestellen. De volgende klassen worden nu gedefinieerd (tussen haakjes staat de architectuur vermeld waarbinnen de klasse zich bevindt) (zie figuur 4.7) • • • • • • •
Party Agent (TMA) DigParty Agent(TMA) Terminal Agent (SA) Numbering Plan (SA) Verschillende Services (SA) Service Factories (SA) Connection Manager (CMA) .. ,
....
Service Architectuur
I Number Plan I
~ I Tenninal Management Architectuur
0
PC Software
I Services I
I Connection Management Architectuur
I B I I . . . . . . . . . . . . . +.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \.
Connection Manager
DigParty
I
................ ......
PC Hardware
I
Figuur 4.7 De Architecturen met hun klassen
De onderscheiding van de verschillende architecturen maakt het mogelijk om in de toekomst wijzigingen in het systeem aan te brengen, zonder dat daarvoor de gehele software herzien moet worden. Het toevoegen van nieuwe hardware (nieuwe interfaces) zal aileen invloed hebben op de TMA en de CMA. Het toevoegen of wijzigen van services kan onafhankelijk van de TMA en de CMA plaatsvinden in de SA.
20
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
De SCSA API7 maakt het gebruik van een extra object noodzakelijk, de event handler (EH). Aile events die door het systeem meetbaar zijn, worden door een handler afgevangen, en daarna doorgegeven aan een event handling routine. Binnen deze routine wordt bepaald welke acties het systeem onderneemt in geval van bepaalde events. Binnen de SA zijn de features die de PCBX bezit gedefinieerd. In paragraaf 2.4 is beschreven welke features dit zijn. De verschillende features worden in het vervolg van dit hoofdstuk services genoemd. De volgende services zijn binnen de SA gedefinieerd: • Local Analog Default Service • Digital Default Service • POTS Service • Call Forwarding Service • Transfer Call Service • CCBS Service • Conference Call Service De Local Analog Default Service (LADS) en Digital Default Service (DDS) zijn toegevoegde services die bepalen welke service de gebruiker van het systeem wil gebruiken. Het systeem moet bepalen welke service opgestart moet worden (bijvoorbeeld POTS of Call Forwarding), dit gebeurt in een default service. Deze service wordt in paragraaf 4.5 vercer behandeld. Party Relaties:
Terminal Aeent Relaties:
• •
•
Terminal Agent AIle Services
Taken:
• • • •
Verzorgt interface met de hardware Geeft feedback aan de gebruil(l~r Geeft informatie aan de services Ontvangt informatie van de gebruiker (digits) en bewaart deze
Party Default Session • Aile Services • Taken:
• • • • • •
Number Plan Relaties:
Connection ManalZer Relaties:
•
• •
AIle Services
Taken:
•
•
4.5
Representeert een Terminal (Party) Kent de toestand van een Terminal Kent een Default Service Start een Default service Kent het Party ID en de eigenschappen van zijn terminal Weet naar welke sessies hii events moet sturen
POTS Service CCBS Service Taken:
Verbindt telefoonnummers met Terminal IDs • Maakt een fysieke verbinding tussen een aantal of Parties Verbindt User IDs met User Agent IDs (als er gebruik wordt gemaakt van rel!istratie) Figuur 4.8 Object diagrammen PCBX systeem
De Defau It Services ledere service (sessie) heeft zijn specifieke kenmerken en wordt op een andere manier gestart. De werking van het systeem wordt in eerste instantie bepaald door de default 7 SCSA API SCSA Application Programming Interface. De softwarelaag die gebruikt wordt om de SCSA hardware aan te kunnen sturen. De API wordt door Dialogic geleverd.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
21
R&D-RA-97-290
service. Deze service levert de eerste feedback aan de gebruiker en laat deze kiezen tussen verschillende services van het systeem. In het PCSX systeem bestaan er twee verschillende soorten terminals, de lokale en de externe terminals. De lokale terminals zijn de analoge aansluitingen, de externe terminals zijn terminals waarmee via de ISDN30 kaart een verbinding wordt gemaakt. Seide soorten terminals vragen om een andere default service. Dit betekent dat er binnen het systeem dus twee default services bestaan. De Terminal Agent weet welke service hij moet starten. Wanneer er bijvoorbeeld op bepaalde poorten standaard een fax apparaat wordt aangesloten, dan zal hiervoor een andere default service voor kunnen worden ontworpen. Er is geen beperking aan het aantal default services.
4.5.1
De Default Service voor de lokale terminals De default service voor de lokale terminals (LADS) wordt opgestart zodra bij een lokaal toestel de hoorn opgenomen wordt (Off Hook gaat). Dit event komt bij de event handler binnen die daarna de betreffende TA waarschuwt. Deze vraagt aan de SF van de LADS (de LADSSF) om de service. De SF zal deze opstarten. De LADS begint altijd met een signaal aan de gebruiker (via de Party). Normaal gesproken is dit een kiestoon, waardoor de gebruiker weet dat hij in verbinding staat met de centrale, en zijn keuze kan aangeven. Dit kan bijvoorbeeld gebeuren door middel van een menu. De implementatie van deze service bepaalt de manier waarop de gebruiker zijn keuze kan maken. Nadat er een keuze gemaakt is, geeft de LADS aan de TA door dat hjj klaar is en kan worden afgesloten. Hij vermelt daartJij ook welke service na hem moet worden opgestart. De verbanden tussen de verschillende objecten bij deze service en het object diagram zijn weergegeven in figuur 4.9. Local Analog Default Service Relaties:
• • •
Party Terminal Agent LA Default Service Service Factory
Taken:
• • •
Geeft feedback aan de Party Geeft de Party een keuze uit een aantal sessies en geeft de gekozen sessie aan de Terminal Agent Kent de IDs van de Party en Terminal Agent
Party Figuur 4.9 Object diagram en beschrijving van de Default Service
Uit figuur 4.9 blijkt dat er een event handler is die aile Terminal Agents bedient. Men zou er in de toekomst voor kunnen kiezen om voor verschillende soorten terminals verschillende event handlers te gebruiken, maar aangezien hier gekozen is voor een transparante TA, wordt er ook maar een event handler gebruikt. Er bestaat een een op een relatie tussen de TA en de Party. Deze relatie wordt bij de initialisatie van het systeem bepaald, en verder niet meer veranderd. De TA heeft ook een relatie met de Local Analog Default Service Service Factory (LADSSF). ledere TA voor een analoge terminal heeft een relatie met dezelfde LADSSF. Deze heeft dus net zoveel relaties met TA's als er analoge aansluitingen zijn. De LADSSF kan nieuwe Local Analog Default Services (LADS) creeren en starten, en geeft tijdens het creeren de LADS een relatie met een TA. Het verloop van de default service (en wat daaraan vooraf gaat) is afgebeeld in het state model in figuur 4.10.
22
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Terminal Agent
Event Handler
.......... ,.' .. '
Local Analog Default Service
Local Analog Default Service SF
Figuur 4.10 State Diagrams start Default Service
De PCBX wacht voortdurend op een event. Wanneer dit event een analoge terminal is die Off Hook gaat, wordt de TA van de betreffende terminal gewaarschuwd. Deze vraagt aan de LADSSF om een LADS. De LADSSF start deze service en geeft dit door aan de TA. De LADS wacht daarna op een digit van de terminal. Wanneer deze is ontvangen kijkt de LADS of er bij de betreffende digit een service hoort. Deze service wordt opgestart, waarna de LADS wordt afgesloten. Een uitgebreid object model (inclusief methoden en attributen) en Event Trace zijn weergegeven in bijlage C7.
4.5.2
De Default Service voor de externe lijnen De default service voor een externe lijn moet worden opgestart als er op de ISDN-30 aansluiting een request voor een verbinding met een analoge terminal binnenkomt. Een externe lijn zal dan doorverbonden moeten worden met een lokale terminal. De default service voor het PCBX systeem bestaat uit POTS. Een externe lijn zal meteen om digits gevraagd worden om te kunnen bepalen met welke terminal hij verbonden zal moeten worden. De default service doet dus niets anders dan het opstarten van de POTS Service.
4.6
De POTS Service De POTS Service vormt de basis van het PCBX systeem. Er bestaan drie verschillende POTS sessies: 1. een gesprek tussen twee interne terminals op dezelfde interface kaart 2. een gesprek tussen twee interne terminals op verschillende interface kaarten 3. een gesprek tussen een externe lijn en een interne terminal
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
23
R&D·RA·97·290
Het verbinden van twee analoge terminals geschiedt anders dan het verbinden van een analoge terminal met een externe lijn. Er zijn twee mogelijkheden om tussen deze drie gevallen onderscheid te maken. 1. De POTS service maakt het onderscheid tussen de verschillende soorten verbindingen en geeft aan de voor iedere specifieke connectie andere opdrachten naar het Connection Management. 2. De POTS service 'weet' niet wat voor terminals het bedient, en geeft de verschillende party IDs door aan het Connection Management, die daarna zelf uitzoekt hoe deze verbindingen gemaakt moeten worden Om een generieke POTS functie te realiseren is gebruik gemaakt van de tweede optie. Dit vereenvoudigt de POTS functie maar maakt vooral het Connection Management ingewikkelder. In figuur 4.11 staan de relaties en verantwoordelijkheden van de POTS sessie afgebeeld.
POTS Service Relaties:
•
Party Terminal Agents Number Plan Connection Management POTS Service Factory Taken:
• • •
•
•
Vraagt om digits van een Party en geeft feedback aan een Party Maakt contact met andere Terminal via het Numbering Plan Maakt de verbinding tussen twee Parties met behulp van de Connection Manager
• •
Figuur 4.11 Relaties en verantwoordelijkheden van de POTS Service
In het object model in figuur 4.11 staat de default service (zie paragraaf 4.5) niet meer weergegeven. Deze is nog wei steeds noodzakelijk om voor een POTS service te kunnen kiezen. Het verloop van de POTS service wordt als voigt gekarakteriseerd. (figuur 4.12). I.
@TI
§]
2.
f§-i-@
3.
f§- c-@- *-§]
4.
f§- c-@- a-§]
5.
f§- c-@- c-§]
@
§]
Figuur 4.12 Verloop POTS Service
De POTS service bestaat uit vier fases. Ten eerste wordt het gesprek ge"initialiseerd. Er wordt door een terminal om een verbinding gevraagd. Daarna wordt een verbinding gemaakt tussen het gesprek en de terminal. Er wordt dan ook gevraagd welke terminal gebeld moet worden. Dat gebeurd in de volgende fase. Uiteindelijk wordt, nadat de gebelde terminal heeft opgenomen, ook de gebelde terminal met het gesprek verbonden. Een meer gedetailleerde beschrijving van de POTS service staat afgebeeld in figuur 4.13. Hierin staan ook de toestanden weergegeven waarin de verbinding tussen de beide terminals niet tot stand komt.
24
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Invalid
POTS finished do: Kill POTS
Done do: Wait
Figuur 4.13 State diagram POTS Service
De POTS service wordt in een later stadium uitgebreid met een Transfer Call (paragraaf 4.9) en Conference Call (paragraaf 4.10) service. De event trace van de POTS service en het uitgebreide object model staan weergegeven in bijlage CB.
4.7
De Call Forwarding Service De Call Forwarding Service (ook wei *21 Service genoemd) kan aileen uitgevoerd worden door lokale terminals. In paragraaf 4.3 is gebleken dat in het numberplan gezocht wordt naar het bij een telefoonnummer behorende Terminal 10. Bij de Terminal wordt gekeken welke Party bij de Terminal hoort. Hieruit voigt dat niet de party_ID veranderd moet worden, maar de Terminal 10. In principe zou het tevens mogelijk zijn een terminal door te verbinden naar een externe poort. Dit is echter niet gebruikelijk en wordt ook hier niet gedaan. De oorspronkelijke verwijzing moet wei bewaard blijven, wanneer de *21 service ongedaan gemaakt wordt. Hieruit voigt meteen het feit dat de *21 service uit twee delen bestaat. Het initieren en afbreken. Deze zullen beide door dezelfde service worden uitgevoerd. Om de *21 service te kunnen uitvoeren wordt het nummerplan object uitgebreid met een extra functie, het opslaan van een tweede nummer. De data wordt als voigt opgeslagen: I_T.;...e""Ie.;...t:.;...oo.;...n.;,;;.n;.;,;u.;,;;.m""m.:.,:e.;...r_---LI....;T:..,:e.:.:rm.:.,:i""n.:.:aI:..,:I.::;D
\ *21 Nummer
Het object model van de *21 service staat weergegeven in figuur 4.13. Het uitgebreide object model staat, evenals de event trace, weergegeven in bijlage C9.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
25
R&D-RA-97-290
*21 Service Relaties: • Party • Number Plan • Terminal Agent • *21 Service Factory Taken: • Vraagt om digits van een Party en geeft feedback aan een Party • Voegt in het nummerplan het doorschakelnummer toe • Verwijdert het doorschakelnummer uit het nummerplan
Figuur 4.13 Object model en diagram voor de
~21
Service
Het verloop van de ~21 Service staat weergegeven in het state diagram (figuur 4.14).
Before
After initialisation
Telephone Number
Tenn. ID
Number
1111 2222 3333
LID I LID2 T ID3
Telephone Number
Tenn.lD
Number
1111 2222 3333
T_IDl T_ID2 T ID3
3333
Terminal exists
Tenninal On Hook
Figuur 4.14 State Diagram
~21
Service
Een speciaal geval van de *21 service doet zich voor wanneer vanuit de terminal waar naartoe is doorgeschakeld gebeld wordt naar de terminal die doorgeschakeld is (in figuur 4.14: T_ID3 belt naar T_ID2). Normaal gesproken zou de bellende terminal een busy signaal krijgen, omdat hij naar zichzelf staat doorgeschakeld. Dit is niet het geval. In de *21 service is het wei mogelijk om dan naar de doorgeschakelde terminal te bellen vanuit de terminal waarnaar is doorgeschakeld (in figuur 4.14 krijgt T_103 een verbinding met T_ID2). Het beeindigen van het doorschakelen geschiedt met #21. Op dat moment wordt het veld '*21 Nummer' leeg gemaakt. De *21 service heeft direct invloed op de werking van de POTS service. De POTS service moet controleren of de betreffende terminal doorgeschakeld is. Via het nummerplan kan er dan gekeken worden waartoe de terminal is doorgeschakeld.
26
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D·RA·97·290
4.8
Completion of Call to Busy Subscriber (CCBS) De CCSS service is een service die tijdens een POTS service wordt ge"initieerd. Wanneer een terminal in gesprek is terwijl er gepoogd wordt door een andere terminal om een verbinding te maken met deze terminal, dan krijgt de beller de mogelijkheid CCSS te activeren. Deze sessie zal opgestart worden via de Terminal Agent en de POTS Service. Tijdens de implementatie van de PCSX is het idee van een Voice Mail service geopperd. Er is toen besloten de CCSS service niet te implementeren, maar in plaats daarvan de Voice Mail service. Oeze service wordt beschreven in paragraaf 5.1.5. De CCSS service is wei verder uitgewerkt zodat deze later nog kan worden ge"implementeerd. CCBS Service Relaties:
• • • • •
Party Terminal Agents Number Plan Connection Management CCBS Service Factory Taken:
• • •
Wacht totdat de twee betrokken Terminals vrij zijn Alert eerst de ene terminal en wanneer deze Off Hook gaat de tweede Maakt de verbinding tussen twee Parties met behulp van de Connection Manager
Figuur 4.15 Object model voor de GeeS Service
Het verloop van de CCSS service is afgebeeld in figuur 4.15. I.
@D-c-@- c--§] 2.@D- c-@- c~ 3.§]
@B-c-@ §]
~
@B-q-@-- qJ @B-a-@-- qJ ~
4'@B-c-@-- aJ
§]
~
58-c-@-- cJ
Figuur 4.16 Verloop GGeS service
Zoals in figuur 4.16 staat weergegeven verloopt de CCSS service in vijf fasen. In de eerste fase zijn twee terminals (D1 en D2) met elkaar verbonden en probeert een derde terminal (03) terminal D2 te bereiken. Deze terminal is echter in gesprek waarna D3 aangeeft dat hij de CCSS service wil starten. De CCSS service onthoudt welke verbinding later gemaakt moet worden (fase 2). Dit gesprek wordt in een queue gezet. Nadat D2 niet meer deelneemt in het gesprek met 01, waarschuwt CCSS terminal D3 (fase3) en wanneer deze opgenomen heeft terminal 02 (fase 4). Nadat beide terminals gereageerd hebben op de CCSS oproep en het gesprek tot stand is gekomen (fase 5), wordt de CCSS service beeindigd.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
27
R&D-RA-97-290
Terminal B Off_Hook
O
Ce8S sleep do: Check B
Terminal COn_Hook
1+------..,
~
No Answer Terminal B
Figuur 4.17 State Diagram CCBS Service
In figuur 4.17 is de CCSS service weergegeven in een state diagram. Hierin valt op dat de CCSS een soort slaap toestand bezit. In deze toestand wacht hij totdat de gebelde terminal weer vrij komt. In dit diagram komt ook naar voren dat een CCSS service kan falen. Dit gebeurt wanneer een terminal niei. reageert op een oproep. De CCSS service is dan niet langer aktief.
4.9
Transfer Call De Transfer Call functie is een toepassing die boven op de POTS service geplaatst wordt. Deze service houdt in dat een Terminal wordt doorgeschakeld naar een andere Terminal tijdens een gesprek. Het verloop van deze service staat weergegeven in figuur 4.18. Deze figuur is een combinatie van een state model en een connectie model. Dit is gedaan om de verschillende toestanden van de service zo duidelijk mogelijk te kunnen beschrijven. De Transfer Call Service kan zich in meerdere verschillende toestanden bevinden (zie figuur 4.18). Vanuit een POTS service (tweegesprek) initieert een van beide partijen (01) een Transfer Call service door een hookflash te genereren, de andere partij (02) komt in een 'hold' state en hoort een bUsy toon. Een nieuw gesprek wordt vervolgens opgezet met een derde partij (03). Vanuit deze toestand kunnen er drie verschillende verbindingen worden opgezet tussen twee partjjen: 1. Een verbinding tussen 02 en 03 (de initiator (01) heeft neergelegd, het gesprek is doorverbonden). 2. Een verbinding tussen 01 en 02 (de derde partij (03) weigert de verbinding of neemt niet op. Het systeem keert terug naar de oorspronkelijke toestand). 3. Een verbinding tussen 01 en 03 (de wachtende partij (02) heeft neergelegd. Het systeem keert terug naar POTS waarin 02 vervangen is door 03).
28
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Figuur 4.18 State Diagram Transfer Call
Een groot deel van deze service zallijken op het opzetten van een driegesprek. Binnen de POTS Service wordt een derde partij aan het gesprek toegevoegd. Afhankelijk van de sta.tus van de verbinding zal een partij wei of niet kunnen deelnemen aan het gesprek. De event trace van de Transfer Call functie is weergegeven in bijlage C8.
4.10
Conference Call In paragraaf 4.8 is al vermeld dat er grote overeenkomsten zijn tussen het opzetten van een driegesprek en het doorverbinden van een gesprek. Bij een Transfer Call service kunnen maar twee terminals met elkaar verbonden zijn. Dit in tegenstelling tot de Conference Call, hier kunnen drie terminals met elkaar verbonden worden. Het opnemen van contact met de derde gebruiker geschiedt op exact dezelfde wijze als in 4.8. Nadat er IT'pt de derde terminal contact is gemaakt, kan de initiator door middel van een hookflash de drie partijen met elkaar verbinden. ............................
~-+~--<-@]i. .
HookA"," 01
[§....
f~~=rgl
............................. ~onHook
\
:. L i -@
~
010;,. OJ •.
[§.:
/
~~~@l
:. Lc-@--a--@].: .
/ D 1 and D3 connected
!~h--@---,~!
:. Lc-@--c--§,.:
(~
@f
I Lo-@--<-@]i' .............................
020. Hook
1~~:~01 ·§:t~l
010, Hook
:" ............................... c--@]/
•
§HF~ .
@-c--§J .
Figuur 4.19 State Diagram Conference Call Service
Vanuit de toestand waarin drie partijen met elkaar verbonden zijn, kan er geen vierde partij meer worden toegevoegd. Wanneer een van de partijen het gesprek beeindigt, keert
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
29
R&D-RA-97-290
het systeem terug naar POTS met de twee overgebleven partijen. Het is dan mogelijk om opnieuw een Conference Call te starten. Ook deze service is geheel in de POTS service gei'ntegreerd. Het uitgebreide object model en de event trace staat afgebeeld in bijlage ca.
4.11
Het Connection Management Het Connection Management (CM) is in staat verschillende poorten met elkaar te verbinden. Deze poorten kunnen over verschillende interfaces verspreid zijn. Aangezien het verbinden van poorten op dezelfde interface anders verloopt dan het verbinden van poorten op verschillende interfaces, zal het CM in staat moeten zijn dit onderscheid te onderkennen. Het CM krijgt verwijzingen naar een bepaalde poorten binnen, kijkt waar deze zich verbinden en maakt of verbreekt dan de verbinding. Het CM ondersteunt de volgende functies. • • • •
Het verbinden van twee poorten Het verbreken van een verbinding (ongeacht het aantal verbonden poorten) Het toevoegen van een poort (tot een maximum van acht poorten) Het verwijderen van een poort
Een uitgebreide beschrijving van de Connection Manager wordt gegeven in bijlage C12.
30
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
5
Resultaten
5.1
Gerealiseerde features In het vorige hoofdstuk zijn de verschillende features van de PCBX beschreven. Daarvan is de CCBS service niet ge"implementeerd. In plaats daarvan is er een Voice Mail en DeskPhone Service ontwikkeld. Wat deze, en de andere gerealiseerde, services doen en hoe ze gebruikt kunnen worden wordt in het vervolg van deze paragraaf beschreven.
5.1.1
POTS
De POTS service, het tweegesprek, werkt voor zowel een interne als een externe verbinding. ledere intern toestel heeft een drie cijferig telefoonnummer, dat nooit met een o zal beginnen. Met de '0' wordt gekozen voor een verbinding met een buitenlijn. Ii~ de Local Analog Default Service (LADS) wordt het eerste gekozen digit van de beller geanalyseerd, waarna POTS wordt gestart. Deze vraagt nog om twee extra digits waarna de verbinding tot stand zal worden gebracht. Een aanvraag op een buitenlijn van de PCBX wordt op een andere manier afgehandeld. Wanneer de aanvraag binnenkomt, is ook meteen het nummer bekend van het interne toestel waarnaar gebeld moet worden. Er wordt hier niet meer om digits gevraagd. In de praktijk is gebleken dat de call setup time, de tijd die nodig is om het gebelde toestel te doen rinkelen, erg varieert. De tijdsduur tussen het geven van de opdracht om een toestel te doen rinkelen, en het werkelijke rinkelen varieert van 0 tot maximaal 5 seconden. Deze delay wordt niet veroorzaakt door de geschreven software, maar door de hardware en/of SCSA API Wanneer de gebelde persoon niet opneemt, wordt er de mogelijkheid geboden een spraak bericht per e-mail naar de gebelde persoon te sturen (zie paragraaf 5.1.5). Nadat er een verbinding tot stand is gebracht kan een van beide partijen een verbinding maken met een derde partij. Nadat hiermee een verbinding is gemaakt, kan er besloten worden een Transfer Call (paragraaf 5.1.3) of een Conference Call (paragraaf 5.1.4) uit te voeren. De POTS service wordt afgesloten als bij beide toestellen de hoorn is neergelegd.
5.1.2
Call Forwarding
De Call Forwarding, of *21 service, wordt gebruikt om een toestel tijdelijk door te schakelen naar een ander toestel. Men kan zo aile aanvragen van gesprekken op een bepaald toestel laten arriveren op een toestel met een ander nummer. Men activeert de Call Forwarding service door bij de kiestoon '*21' te kiezen. Hierna moet men, door drie digits te kiezen, het telefoonnummer opgeven van het toestel, waarnaar moet worden doorgeschakeld. Daarna wordt opnieuw de kiestoon hoorbaar en staat het toestel doorgeschakeld. Het is aileen mogelijk om het toestel door te schakelen van waar men belt. Het doorgeschakelde toestel is vanaf het moment waarop de Call Forwarding service is geactiveerd nog op twee manieren bereikbaar: 1. Men belt vanuit het toestel, waar naartoe is doorgeschakeld, naar het doorgeschakelde toestel. De aanvraag wordt niet doorgeschakeld (dit zou een busy signaal als gevolg hebben) 2. Een ander toestel staat doorgeschakeld naar het doorgeschakelde toestel. De *21 service schakelt maar een keer door, en voigt niet aile *21 akties.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
31
R&D-RA-97-290
Uitzondering 1 is bruikbaar binnen een bedrijf met een secretaresse. Nadat iemand zijn toestel doorverbonden heeft naar de secretaresse, komen aile gesprekken daar uit. De secretaresse kan dan, met behulp van de Transfer Call service, de persoon bereiken en hem op de hoogte brengen van het binnengekomen gesprek, waarna deze kan beslissen of hij het gesprek al dan niet aanneemt. De secretaresse kan dan het gesprek doorverbinden, of zelf afhandelen (zie figuur 5.1) . ..-.. "Teiiliiiiiii0 i" 'doorgeschiikeiii" naar D2
.
····_······"bZ"kij"ki·of i'il·hei·gesprek·····
:
mel D3 accepteerd
". ~~mm~ ~m:::J~J S..,."'. . . . . ; . ::J ~. ~.,~ ,.JJ ........ D';;X;;;.Z.............. . gesprek met D3
:
.
i
gesprek met D3
Figuur 5. 1 Uitzondering 1 bij Call Forwarding
.
Uitzondering 2 komt voort uit functioneel oogpunt. Er zijn redenen om het volgen van doorverbindingen niet te beperken tot een stap. Dit geeft echter twee problemen. Ten eerste is er het risico op cycles (zie figuur 5.2) die zeer moeilijk te detecteren zijn. Ten tweede kan het problemen opleveren wanneer twee mensen van plaats (en dus toestel) veranderen (zie figuur 5.3).
D5beltDi
DI doorgeschakeld naar D2
D2 doorgeschakeld naar D3
~
§]
~
§-C~t
1
~
D4 doorgeschakeld naar DI
D3 doorgeschakeld naar D4
Figuur 5.2 Gevaar voor Cycles
~
~ ~
D5 belt persoon A
Persoon A (normaal bereikba op DI) zit bij toestel D2 en heeft zijn toestel doorgeschal
*21
§-C en krijgt persoon B
Persoon B (normaal bereikbaar op D2) zit bij toestel D3 en heef! zijn toestel doorgeschakeld
Figuur 5.3 Ongewenste resultaten
Om de hierboven beschreven risico's te ontwijken, schakelt de Call Forwarding service maar een keer door. De Call Forwarding service wordt opgeheven door bij de kiestoon '#21' te kiezen. 5.1.3
Transfer Call
De Transfer Call service wordt gebruikt om een gesprek door te verbinden naar een ander toestel. Deze service kan aileen tijdens een verbinding geactiveerd worden, door een hookflash te genereren. De meeste modeme telefoontoestellen bezitten een flash of 'R' toets, waarmee zo'n hookflash gegenereerd wordt. Het is ook mogelijk een hookflash te geven door kort de hoorn neer te leggen en op te nemen. Het andere toestel hoort na activering van de Transfer Call service een 'alerting' toon, waarmee aangegeven wordt dat zijn toestel op 'hold' staat. Het toestel waarop de hookflash gegeven is, wordt een kiestoon hoorbaar. Er kan nu een (intern) nummer worden gekozen, waarna de verbinding wordt opgezet. Om het toestel dat op hold staat te verbinden met het toestel dat gebeld is, moet de initiator van de Transfer Call service zijn
32
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
hoorn neerleggen. De Transfer Call service is dan afgerond. Het is niet mogelijk om te wisselen tussen het derde toestel en het toestel op 'hold' (de zogenaamde ruggespraak). Deze service mag meerdere malen achter elkaar worden uitgevoerd. Er kan echter aileen worden doorverbonden naar interne toestellen. Wanneer er geen verbinding kan worden gemaakt met het derde toestel, dan kan het oorspronkelijke gesprek worden hersteld door opnieuw een hookflash te genereren.
5.1.4
Conference Call De Conference Call service is een uitbreiding van de Transfer Call Service. Deze service wordt op dezelfde manier gestart en bezit dus ook de mogelijkheden van de Transfer Call service. In plaats van doorverbinden, kan men een driegesprek op zetten door, na verbinding te hebben gemaakt met een derde toestel, nogmaals een hookflash te geven. Hierna zijn de drie toestellen met elkaar verbonden. Tijdens een driegesprek is het niet meer mogelijk om nieuwe toestellen toe te voegen. Ook kan er geen toestel meer worden doorverbonden. Het driegesprek wordt beeindigd wanneer een van de drie toestellen de hoorn neerlegt. Hierna wordt er een tweegesprek (POTS) opgezet tussen de twee overgebleven toestellen. Deze zullen een korte tik horen tijdens hun verbinding. Tijdens het nieuwe tweegesprek kan er opnieuw een Transfer Call of Conference Call service uitgevoerd worden.
5.1.5
Voice Mail De Voice Mail service is, samen met de DeskPhone service, in plaats van de CCSS service gei"mplementeerd. Met behulp van deze service is het mogelijk om, per e-mail, een ingesproken bericht te versturen naar iemand die de telefoon niet opneemt wanneer hij gebeld wordt. Op dat moment krijgt de beller een melding dat hij door op '#' te drukken, een Voice Mail bericht kan achterlaten op het e-mail account van de gebelde persoon. De Voice Mail service verloopt in vijf fases: 1. Melding van Voice Mail optie (druk '#'). 2. Opnemen van het bericht. 3. Beeindigen van het bericht (druk nogmaals '#'). 4. Versturen van het bericht. 5. Melden aan de beller dat het bericht verstuurt is (of niet) De gebelde persoon krijgt een e-mail binnen waarin een attachment zit van een 'wav-file'. Deze kan hij aanklikken, waarna het bericht wordt afgespeeld (zie figuur 5.4).
Figuur 5.4 Een Voice Mail bericht
Om deze service te laten functioneren is het noodzakelijk dat toestellen gerelateerd zijn aan bepaalde personen (met een e-mail account). Dit is gedaan door in het nummerplan aan ieder telefoonnummer een e-mail adres toe te wijzen. Dit e-mail adres is door de
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
33
R&D-RA-97-290
systeembeheerder van de PCBX te wijzigen. In een later stadium kan deze service met behulp van een User Agent en registratie worden gerealiseerd. De Voice Mail service maakt gebruik van de Microsoft Messaging API. Deze wordt door Microsoft meegeleverd met Windows NT. Het is noodzakelijk dat er op de PCBX een mail-applicatie aktief is waarmee de mail verstuurd kan worden. 5.1.6
DeskPhone De DeskPhone is een uitbreiding van de POTS service die de telefoon op de desktop van de PC brengt. DeskPhone is een kleine applicatie die op een PC kan werken die via het LAN met de PCBX is verbonden (zie figuur 5.5 ). Met behulp van deze applicatie kan er een nummer gekozen worden. Dit nummer wordt, samen met het nummer van het toestel dat bij de PC staat, via het LAN aan de PCBX doorgegeven. Deze laat dan eerst het eigen toestel overgaan en daarna het gebelde toestel. Op deze manier wordt er een verbinding tot stand gebracht. PCBX •.. publiek netwer\.
LAN
Figuur 5.5 De PCBX samen met DeskPhone
Men kan zich voorstellen, dat dit programma uitgebreid kan worden tot een programma waarmee men uit een telefoonlijst een nummer kan ki~~en waarna de PC, via de PCBX, een verbinding opzet met het gekozen toestel.
5.2
Grafische Interfaces Het gehele PCBX systeem bezit drie grafische interfaces, een voor de PCBX zelf, een voor het wijzigen van het nummerplan en een voor de deskphone.
5.2.1
PCBX In het PCBX window staan de verschillende objecten in aparte vensters weergegeven (zie figuur 5.6). In deze vensters verschijnen de meldingen die door de verschillende objecten gegenereerd worden. Verder bezit dit window vier pushbuttons. 1. Start System 2. Stop System 3. Clear Windows 4. Edit NumberPlan Met de "Start System" button wordt het systeem gestart. Eerst voigt er een initialisatie, waarin aile poorten en bijbehorende objecten ge"initialiseerd worden. Nadat in het Main Window het bericht 'System Started' is verschenen, is het systeem operationeel. Met de "Stop System" button wordt het systeem gestopt. Dit houdt in dat er geen events meer worden gedetecteerd en dat de poorten worden dan afgesloten. Nadat het systeem is gestopt, kan de applicatie worden beeindigd met de "Exit" button. Wanneer het systeem niet op correcte wijze wordt afgesloten, bijvoorbeeld door zonder het systeem te stoppen Alt-F4 te toetsen, kan dit leiden tot onverwachte resultaten in een nieuwe sessie.
34
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Met de "Clear All Windows" button wordt de inhoud van aile vensters gewist. Deze informatie wordt nergens opgeslagen en is vanaf dat moment dus verloren. Start System
Stop System
~2112,03:27. D~IfdJ2COBdidrd:~Ol'l~ WedMlO'2112:O'J."Z.8~loneonH"nafl2C21
ay2112.IllU Oevicemdl2C21 ONHOO" : .......tt"ay1112:03 .... 51op59*ng0ll ndI2C11 ey2112:O!lOl . Dt'YICelntBlCOOOFFHOOl\, Ills ri'Iging: Wed Iota, 21 12:(';1'52: Stlllt5ign1l1ngon nldlZCtll edMay 2112tJ9.lJ9 Device msiltC05 OFF HOOK_I!I rJ-9'9' Wed May 211lOll53 NCMRinQrlgmsil2C08
: WedtolllJ' 21 t2:~19' Oewcemril2COOONHQOK
: WedMay2112:C'i21. O~mftllC050NHOO" .
. Wed t.lay2112:C&1Il 'A!ertToneCWl H..... ...e2CC8SloWl
; WedMI)'2112:0!I01 : NowRIIIgII'IgmsB1C05
: WedMey2112:O!IClS SI.wlS~OI'I m.82C0ll
: WedMey2112:lXUO, 'one 5toppedonll'll62COO : 'WedMay2112:ll9.10. SlopS~on nosiI2COll : WedM., 21 12:09-19' 9usyTor-.onH.-temsillClJ5SI.-t : 'WedM.,2112:09:21 : Tone Stcw«lon msB1COS
loiay21120144 Dew:emsil2C21 ON HOOKI r.4ay2112"mS2- Nil2COODeskFh0n8MetUge1
MeI'2112-D9:10 msil2CM&rnsillC05Conneded
::~:;
Wedlolay21'209:01 OeYicennil2COElOFfHOOI(~.A :!:~; WedM4IJ2112:f1.l:01: T~~'0J5fCllUPOTS :::;;: WedM4I111209:09 O~I'IlaIS'(;l!iOFFHOOKall.R
y:: WedM
DeYieerlllilZOllONHOQKl
~::: Wod"'_2112:09:19- TennnalIld2COOle.wesPOTS
f ::::~~ ~~:~: ~==~O~O~TS :r: ...... Ddh4""2112:0!lZ1. h"nrMl mril1(m1MYe1 POTS
.... tr::::~~::(.;:~:::~·
.W<
M,,,2112:lI9:19·rnaII2COIlLrnril1C05Conneetion~rt\rledh4ar,02112:0&,34·Iot.~h.g.'''~,kpncom
·:f Wedhlay2112.r&.52: TerlIftIImMl2OJl1Cl" POTS
:~:
edM.,:n 12:0!l19: ComedlarlmcB2C08&mSl81e:tli bfoken: \rIedM.,2112:CIi.34· N_UritroowrI tetfOlHande88 Wed Iota, 2112:0&34 loc&al? set tor Harde 88 : ......edM.,2112:0&:J(:Iol.UtMown@IllM_ _ torH : WedMiIJ'2112:CliJ4.N_Un.-tettorHarde89 : WedMIly2112:tG34 l.~icn'setIOlHande99 : WedM.,Z112:lJi)4:M.U'*'-'@J"*-telfofH : WedMa,2112:(I;34 N_U"""-'telro.H,"",':I : WedM.,2112:0034.loeabDn?tetla:H--*ga . MiIJ'Z112:{I:,34.Iol.~"'--'telfu
.~~~81lli\iill~~~~~ ..
:t~::::~(.~
~:
' ·~·:~~·:·:·::t~:::~~&m:r:'.::~~:~:
"tWedlo44&'2111.W2'5 No .ldS.Q ...... fu
?:;~ WedM~~ ~~~: ~= -:=~::g 2112:02:57 ' get lilj:t from me112C21 2112-02:58' POTS wi be lind
WDdh4~2112:02:5B:S_mdI2C21T...-.ted
Wedh4",,211209-21 rnsil1CIl5~ONHDOIC.
Wedlot.,.2112.09:Z1·S_ndI1C05T..mnated
WedM.,Z112-Q2:56,WSldlIfdSeUOCl"
l2'&4llMed \II.:l1ol4ll'2112.0!l21.I-ISlcWdS~ogn1l1l60208~ 'W.lM8lI2112Da21 F'()TSSauiD"10ll61264~
Wedlol,,2112:0l39·r. .hedfll103ldrog_ Wedlolay2112.0lJ9 SI.tSetwingVOlCeMaii \IIedMey2112'QJ:41 VoieIIt.4........
: : : : :
Wed",,,,,2112:0259 DigbR WedMiIJ'2"2:lD:27'm$iB2COEIddnotre$ponc:Ion~
WedM.,211L01-44.1mi82C21 ~ONHDOK WedM., 2112:0144 POTS S...... lIIIB2C21 TemInaled WedM.,2112:08".52·SentOntlndb/mdl2COO WedMa,2112:O!t01 msB2C08--.lOF'FHOQICa/t• ....-.a
_ WedM,,2112:09:09.ms6ICD5MftOFFHOOKailer~ W8:lI-l,,2112:0919 mRl2CU8--,ONHOOK Wedld,,2112:D!l-2'l IMiIIl(]J5--,ONHQOK \lied l-Iay2112:lJ9,21 'FUTS Sauiorl m$ll2CDI T.....1Id
WedMey2112:C8:5Z.Aec.IIpIOK WedMay211Z.I)3.52. ReclliYad: l(1;i2lJ3 WIldMey211Z-C8:52N~1t1
Figuur 5.6 De PCBX interface
De 'Edit Numberingplan' button start de applicatie waarmee het nummerplan gewijzigd kan worden (zie paragraaf 5.1.5 en 5.2.2). Het systeem staat vanaf dat moment stit en is dus niet operationeel. Nadat de nummerplan applicatie is afgesloten, wordt de PCBX weer operationeel.
5.2.2
Nummerplan Deze applicatie maakt het mogeljjk bepaalde telefoonnummers te verbinden aan personen, en wordt vooral gebruikt in samenwerking met de Voice Mail feature (zie paragraaf 5.1.5). In het window (zie figuur 5.7) zijn de volgend velden aanwezig: 1. Het nummerplan venster 2. De edit vensters 3. De "Save", "Exit" en "Update" buttons
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
35
R&D-RA-97-290
het nummerplan venster
edit vensters
telefoon nummer
Naam van de gebruiker Locatie v.h van het betreffende toestel toestel
e-mail adres van de gebruiker
"Save" button "Exit" button
"Update" button
Figuur 5.7 De Numberplan interface
In het nummei"~'an venster staat het complete nummerplan afgebeeld. Hierin kan bekeken worden welke toestellen door wie in gebruik zijn en welk e-mail adres daarvoor gebruikt wordt in de voice mail applicatie. In dit veld kan een bepaald toestel geselecteerd worden waarna de gegevens afgebeeld worden in de edit vensters. Hierin kunnen de gegevens gewijzigd worden, en met een druk op de 'Update' button ingevoerd worden. Het nummerplan venster wordt dan bijgewerkt. Het nummerplan wordt bewaard door op de 'Save' button te drukken. Met de 'Exit' button wordt de applicatie afgesloten, waarna de PCBX zijn nummerplan automatisch bijwerkt.
5.2.3
DeskPhone De DeskPhone irt<;rface (zie figuur 5.8) is zeer eenvoudig uitgevoerd en heeft een beperkte functionaliteit (zie paragraaf 5.1.6). Door op de cijfer buttons te drukken wordt een nummer ingetoetst. Met de 'dial' button wordt het nummer, via het LAN, naar de PCBX gestuurd waarna deze het verwerkt. De andere buttons hebben vooralsnog geen functie.
Figuur 5.8 De DeskPhone interface
36
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
6
Conclusies & Aanbevelingen
Conclusies:
In een periode van 9 maanden is een PC-based switch ontworpen en gerealiseerd. De PCBX heeft een capaciteit van 30 buitenlijnen en 48 binnenlijnen. Verder bezit de PCBX, naast POTS, de volgende PBX features: Call Forwarding, Transfer Call en Conference Call. Ook zijn twee CTI toepassingen voor de PCBX ontwikkeld. Ten eerste een Voice Mail applicatie waarmee niet beantwoorde telefoontjes gevolgd kunnen worden door een spraakbericht per e-mail. Ten tweede een DeskPhone applicatie, waarmee gesprekken vanaf de PC opgezet kunnen worden. Op grand van ervaringen met deze PCBX kunnen de volgende conclusies getrakken worden: • De ontwikkelde PCBX is, zowel wat de hardware als wat de software betreft, een zeer flexibel systeem gebleken. Dit komt met name door het gebruik van de SCSA standaard en de object georienteerde software. • Het toevoegen van nieuwe features of toepassingen is op zeer korte termijn realiseerbaar. • Veranderingen in de capaciteit van het systeem kunnen onafhankelijk van de software gemaakt worden. • Er is aangetoond dat PCBX'en grate voordelen bieden en in de toekomst een alternatief kunnen zijn voor de PBX. Aanbevelingen:
De ISDN-koppeling met het publieke netwerk is nog niet volledig operationeel. De problemen die zich bij deze koppeling voordoen moeten zo snel mogelijk worden opgelost, waarna het systeem onderworpen kan worden aan een duurtest. De mogelijkheden van de PCBX zijn nog lang niet allemaal benut. Het toevoegen van extra PBX features is een mogelijkheid, hoewel CCBS de enige nog ontbrekende feature is die veel gebruikt wordt binnen bedrijfsomgevingen Bij een uitbreiding van het systeem moet meer gedacht worden aan de volgende mogelijkheden: •
De PCBX is zeer geschikt voor CTI applicaties. De koppeling met het LAN maakt het mogelijk Third Party applicaties te gebruiken op de PCBX.
•
Een belangrijke uitbreiding van de PCBX zou het implementeren van een User Agent (UA) zijn. Hiermee wordt het mogelijk om services als VPN en UPT te implementeren op de PCBX.
De User Interface voor de PCBX is vrij primitief. Het is op dit moment niet mogelijk om de configuratie van de PCBX (zowel wat betreft de software als de hardware) te wijzigen zonder daarvoor de source code te veranderen. Het systeem zou krachtiger zijn indien instellingen van de PCBX via de User Interface gewijzigd kunnen worden.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
37
R&D-RA-97-290
7 Referenties
Object georienteerd programmeren [Rumbaugh]
Rumbaugh, J. , Blaha, M. , Premerlani, W. , Eddy, F. and Lorensen, W. Object-Oriented Modeling and Design Prentice Hall 1991 ISBN 0-13-629841-9
[Coplien,92]
Coplien, J.O. Advanced C++, programming styles and idioms Addison-Wesley Publishing Company 1992 ISBN 0-201-54855-0
SCSAAPI [Dialogic1 ]
Voice Software Reference for Windows NT, volume 1&11 Dialogic 1996, 05-0168-006
[Dialogic2]
MSI/SC Software Reference for Windows NT Dialogic 1996, 05-0505-001
[Dialogic3]
Primary Rate Software Reference for Windows NT Dialogic 1996, 05-0481-002
[Dialogic4]
SCbus Routing Function Reference for Windows NT ~ialogic 1996, 05-0439-002
[Dialogic5]
Digital Network Interface Software Reference for Windows NT Dialogic 1996, 05-0438-001
[Dialogic6]
Dialogic 1995/96 Products and Services guide
Systeemontwerp [ECMA,94]
ECMA Services for Computers Supported Telecommunications Applications (CSTA) Phase II Standard ECMA-217 December 1994
[Smit,95]
Smit, M.P.J. CTI en CaliCenters KPN Research, 1995, R&D-RA-95-705
[Kalberg,96]
Kalberg, R.J.N. TINA Service Architecture - an introduction KPN Research, 1996, R&D-RA-96-507
[Foliant,96]
Foliant, PAJ. Design and Implementation of a Telecommunications Service Architecture KPN Research, 1996, R&D-RA-96-1191
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
39
R&D-RA-97-290
Bijlagen
8ijlage A1
Specificaties D/300SC-E1
8ijlage A2
Specificaties MSI/240SC-R
11
8ijlage 8
Implementatie van het objectmodel 81 Structuur van het systeem (multiple threads) 82 Het Party Object 83 De Terminal Agent 84 Het Nummerplan 85 De Event Handler 86 Creatie van de Service Objecten (De Service Factory) 87 De Default Service 88 ~e POTS Service 89 De Call Forwarding Service 810 Voice Mail Service 811 DeskPhone Service 812 De Connection Manager
18 18 20 21 22 23 24 25 28 34 39 40 41
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
41
R&D-RA-97-290
Bijlage A1 Specificaties D/300SC-E1
D/300SC-E1 ™ 30-PORT VOICE PROCESSING & E-1 ISDN PRI BOARD Preliminary Information
FEATURES & BENEFITS •
•
•
• •
• • •
• • •
High channel-per-slot density: 2.048 Mbps digital service access (E-1 ISDN PRI) plus 30 channels of voice processing in a single ISA slot enable system integrators and developers to lower costs by incorporating more ports per chassis, by using machines with fewer slots, and by easing configu ration/installation Create more cost-effective switching solutions via access to the SCSATM SCbus™ with its 1024 time slot capability; provides the capability to build higher density systems and large, multi-node systems through SCxbus™ interbox communications Dialogic downloadable signal and call processing firmware, SpringWare™, provides easy feature enhancement and field proven pe10rmance based on over one million installed ports PerfectDigit™ DTMF (touchtone) provides reliable detection during voice playback - allows callers to "type-ahead" through menus Four independent Motorola DSP56002 Digital Signal Processors, clocked at 66 MHz, each with private, high speed SRAM, permit execution of high performance SpringWare signal processing algorithms Two Intel 486 GX microprocessors offload call processing tasks from host PC giving more power to the application Board Locator TechnologyTM eliminates confusing dip switch or jumper settings and simplifies installation C-Ianguage application program interfaces (APls) for MS-DOS®, UNIX®, OS/2® and Windows NTTM shorten your development cycle so you can get your applications to market faster Configure multiple boards in a single PC (ISA bus) for easy and cost effective system expansion on the best computing platform that fits your needs Supports ISDN Primary Rate (see ISDN-PRI Support section) Optional, on-board Global Dial Pulse Detection feature enables callers without touchtone phones to access applications. No additional "pulse to tone converter" equipment needed
APPLICATIONS • • • • •
Voice messaging Interactive voice response Debit card and international call back Audiotex Operator services
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
• • • • •
Telemarketing/call center Dictation Auto dialers Notification systems On-line data entry/query
The D/300SC-E1 Digital E-1 Voice board provides E-1 ISDN Primary Rate Interface (2.048 Mbps) service termination and call processing for up to 30 voice channels in a single PC slot. A unique multiprocessor architecture comprising DSPs (Digital Signal Processors) and general-purpose microprocessors handles all telephony signaling and performs all DTMF, MF and audio/voice signal processing tasks. The D/300SC-E1 board, as a member of the DIALOG/HDTM High Density series of products, is based upon Signal Computing System Architecture™ (SCSATM). SCSA provides an open architecture that enables developers to use products from multiple vendors to build a unified computer telephony solution. SCSA provides features such as distributed switching, logical addressing, and location independent resource management. Downloaded firmware algorithms, SpringWareTM, executed by the on-board DSPs, provide variable voice coding at 24 and 32 Kbps ADPCM, and 48 and 64 Kbps IJ-Iaw or Alaw PCM. Sampling rates and coding methods are selectable on a channel-by-channel basis. Applications may dynamically switch sampling rate and coding method to optimize data storage or voice quality as the need arises. SpringWare firmware also provides reliable DTMF detection, DTMF cut-through, and talk off/playoff suppression over a wide variety of telephone line conditions. R2MF signaling is supported through Global Tone Detection firmware with available globalCall™ support software for compelled protocols. Dialogic voice products offer a rich set of advanced features, including state-of-the-art DSP technology and signal processing algorithms, for building the core of any computer telephony system. With industry-standard ISA bus expansion boards and a variety of channel densities to choose from, you can integrate Dialogic voice products easily into exactly the type of system you require at a price and performance level unmatched in the computer telephony industry. D/300SC-E1 voice board • connects to 30 telephone channels • automatically answers calls • detects touchtones • plays voice messages to a caller • digitizes, compresses and records voice signals • places outbound calls and automatically reports the result all in real time on all channels.
CONFIGURATIONS Use the D/300SC-E1 board to develop sophisticated, multifunction computer telephony systems incorporating capabilities such as voice processing, speech recognition, and textto-speech. The D/300SC-E1 board shares a common hardware and firmware architecture with other Dialogic SCbus-based boards for maximum flexibility and scalability. Features can be added or systems can grow while protecting investment in hardware and application code. With only minimum modifications, applications can be easily ported to lower or higher line-density platforms. The D/300SC-E1 board installs in IBM® PC AT® (ISA bus) and compatible computers (80386™, 80486™, and Pentium™-based PC platforms). The D/300SC-E1 board occupies a single expansion slot and up to five boards can be configured in a system with each board sharing the same interrupt level. The number of boards and channels supported depends on the operating system used. The maximum number of lines that can be supported is dependent on the application, the amount of disk I/O required, and the host computer CPU and power supply.
2
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
The D/300SC-E1 board can operate in either the terminate or drop-and-insert configuration. In a terminate configuration, the D/300SC-E1 board handles the call processing of the digital audio and telephony signaling. If additional resources, such as automatic speech recognition (ASR), facsimile, or ITS, are required, the resources can be switched to the call via the SCbus. A D/300SC-E1 board installed as a terminating device eliminates the need for a channel bank. No external channel bank is required and the system operates as a standalone call-processing node. In a drop-and-insert configuration, a D/300SC-E1 board and a DTI/300SC board are connected via the SCbus and continuously pass all E-1 time slots through to each other. This configuration can join two separate E-1 lines, or it can be placed in-line between an E-1 line and a switch (a PBX, for example). Calls on individual E-1 channels can either terminate at a call processing resource on a D/300SC-E1 board, or "flow through" transparently from the D/300SC-E1 board to the DTI/300SC. The D/300SC-E1 board provides an E-1 interface connecting directly to a CSU or to other network terminating equipment. The D/300SC-E1 board supports the CEPT channel associated signaling (CAS) protocol The D/300SC-E1 board can replace • •
four D/81NM voice boards and a DTI/212™ E-1 board a D/320SC voice board and a DTI/212 E-1 board
ISDN-PRI SUPPORT The Dialogic ISDN Primary Rate Interface (PRI) Access firmware is a feature enhancement to the DIALOG/HD Voice and Switching Products Series. The Dialogic PRI firmware are approved for use with many popular protocols and in major markets, based on both T-1 (1.544 Mbps) and E-1 (2.048 Mbps) physical interfaces. Features and benefits of ISDN PRI include • • • • • • • • • • •
ISDN Primary Rate connectivity to Dialogic computer telephony systems Dialed Number Identification Service (DNIS) enables application to automatically identify the purpose of the incoming call Automatic Number Identification (ANI) enables application to identify the calling party ANI-on-Demand feature saves money by selectively requesting ANI information only when needed ISDN offers inherent benefits to call center applications with its fast call setup and fast retrieval of DNIS and ANI information on inbound calls Call-By-Call Service Selection - Allows an application to select the most efficient bearer channel service on a call-by-call basis Subaddressing allows direct connection to individual extensions or devices sharing the same phone number, or, as a proprietary messaging mechanism Powerful and universal software API simplifies access for developers who are unfamiliar with ISDN, yet enables sophisticated control of features Multinational approvals with many popular protocols User-to-User Information allows an application to send proprietary messages to remote systems during call establishment Facility, Notify, and optional information elements allow applications to work with network-specific supplementary services
SOFTWARE SUPPORT
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
3
R&D-RA-97-290
The D/300SC-E1 board is supported by Dialogic System Development Packages for MSDOS®, OS/2®, UNIX®, and Windows NPM. These packages contain a set of tools for developing complex multichannel applications. GlobalCall, a high-level call control utility simplifies the development and use of compelled R2 and other special signaling protocols.
FUNCTIONAL DESCRIPTION The D/300SC-E1 board processes the digital on-hook/off-hook signaling information and digital voice signals from the telephone network. Signals enter the D/300SC-E1 board via an E1XC line interface (see block diagram). The line interface supports CRC4 error detection (Cyclic Redundancy Check) and contains a software switchable clock which can be set to:
• • •
loop (clocking is slaved to the external network) independent (clocking is derived from an on-board oscillator) expansion (clocking is slaved to another bus clock mastering board)
Each of three SC2000 chips transmit several lower speed data streams over a single high speed channel. These chips incorporate matrix switching capabilities. Under control of an on-board control processor, an SC2000 chip can connect a call being processed or an available external resource to any of the 1024 SCbus time slots. This enables the application to reroute calls to any added resource, such as speech recognition, facsimile, orTTS. Each of the DSP (Digital Signal Processor) resources receive digital data via an SC2000 chip. The DSP processes the digitized voice data based on SpringWare firmware loaded in code/data RAM. Each DSP performs the following signal analysis and operations on this incoming data: •
4
automatic gain control to compensate for variations in the level of the incoming audio signal
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
•
• • • • •
• • •
applies an ADPCM (Adaptive Differential Pulse Code Modulation) or PCM (Pulse Code Modulation) algorithm to compress the digitized voice and save disk storage space detects the presence of tones - DTMF, R2MF, or application defined single or frequency dual tone silence detection to determine whether the line is quiet and the caller is not responding For outbound data, the DSP performs the following operations: expands stored, compressed audio data for playback adjusts the volume and rate of speed of playback upon application or user request generates tones - DTMF, R2MF, or application defined general-purpose tones The dual-processor combination also performs outbound dialing and call progress monitoring: transmits an off-hook signal to the telephone network dials out (makes an outbound call) monitors and reports results: line busy or congested; operator intercept; ring, no answer; or if the call is answered, whether answered by a person, an answering machine, a facsimile, or a modem.
The D/300SC-E1 board's E1 XC line interface extracts or inserts telephony signaling information, which an onboard control processor processes. The DSPs only process the digitized voice data. When recording speech, the DSP can use different digitizing rates from 24 to 64 Kb/s (Kilobits per second) as selected by the application for the best speech quality and most efficient storage. The digitizing rate is selected on a channel-by-channel basis and can be changed each time a record or play function is initiated. The DSP-processed speech is transmitted by the control processor to the host PC for disk storage. When playing back a stored file, the processor retrieves the voice information from the host PC and passes it to the DSP which converts the file into digitized voice. The DSP sends the digitized voice responses to the caller via a pair of SC2000 chips, the Scbus, and the E1 XC line interface. A pair of High-level Data Link Controllers (HDLC) control access to a SCbus message bus. This message bus is a separate ~Cbus channel that carries messages and control information between SCSA devices, such as out-of-band signaling and collision detection and resolution information. Out-of-band signaling enables faster response time to the messages and control information carried on the dedicated message channel. Bus contention and resolution capability uses a set of fixed and rotating guidelines to detect when two devices are trying to access the same SCbus slot and resolves these situations so that each resource has equal access to the SCbus. The onboard control processors control all operations of the D/300SC-E1 board via a local bus and interpret and execute commands from the host PC. These processors handle real-time events, manage data flow to the host PC to provide faster system response time, reduce PC host processing demands, process DTMF and telephony signaling before passing them to the application, and free the DSPs to perform signal processing. Communications between a processor and the host PC is via the Shared RAM, which acts as an input/output buffer and thus increases the efficiency of disk file transfers. This RAM interfaces to the host PC via the ISA bus. All operations are interrupt-driven to meet the demands of real-time systems. When the system is initialized, SpringWare firmware to control all board operations is downloaded from the host PC to the on-board code/data RAM and DSP RAM. This downloadable firmware gives the board all of its intelligence and enables easy feature enhancement and upgrades. The Traffic Controller ASIC is the 80486 Control Processor interface that handles all peripheral devices (SC2000, HDLC, DSPs, T1 XC) and host PC functions (Board Locator TechnologyTM, programmable interrupts, and Shared RAM). The Board Locator Technology circuit inside the Traffic Controller ASIC operates in conjunction with a rotary switch eliminating the need to set confusing jumpers or DIP switches. The Board Locator
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
5
R&D-RA-97-290
Technology is used to map all D/300SC-E1 boards' Shared RAM to the same memory space.
TECHNICAL SPECIFICA1"IONS* Number of ports Max. boards/system
Resource sharing bus Control microprocessor Digital signal processors
30 3 (MS-DOS); 4 (OS/2), 16 (UNIX, Windows NT). Number may be limited by application and system performance. Digital network interface On-board E-1 interface SCbus Two Intel 80486 GX @ 28.5 MHz, 0 wait state Four Motorola DSP56002 @ 65.5 MHz, each with 32K word private, o wait state SRAM
HOST INTERFACE: IEEE P996 (SA compatible (IBM PC AT) 8 MHz typical Automatically configures to 8 or 16 bit transfer mode 32 Kbyte page 8000h to E800h, on 32K boundaries. All D/xxxSC boards share the same base address. Shared memory is page mapped in/out dynamically RS needed. IRQ2/9, 3, 4, 5, 6, 7,10,11,12,14,15, software selectable. One IRQ line must be shared by all D/xxxSC boards. None
Bus compatibility Bus speed Bus mode Shared memory Base addresses
Interrupt level
va ports
TELEPHONE INTERFACE: Network clock rate Internal clock rate Level Pulse width Line impedance Other electricalcharacteristics Framing Line coding Clock & data recovery Jitter tolerance Connectors Loopback
2.048 ~b/s ± 50 ppm 2.048 Mb/s ± 32 ppm 2.37V (nominal) for 75 Ohms or 3.0V (nominal) for 120 Ohm lines 244 ns (nominal) 75 Ohms, unbalanced or 120 Ohms, balanced Complies with CCITT Rec G.703 CCITT G.704 - 1988 with CRC-4 HDB3 Complies with CCITT Rec. G.823 - 1988 Complies with CCITT Rec. G.823, G.737, G.739, G.742-1988 BNC for 75 Ohms or RJ48C for 120 Ohm lines Supports switch selectable local analog loopback and software selectable local digitalloopback
POWER REQUIREMENTS: +5 VDC +12 VDC -12 VDC Operating temperature Storage temperature Humidity Form factor
2.1 A, typical; 2.5 A max. 40 mA max. 40 mA max. O°C to +50°C -20°C to +70°C 8% to 80% noncondensing PC AT, 13.3 in. long. 0.793 in. wide (total envelope), 4.5 in. high (excluding edge connector)
SAFETY & EMI CERTIFICATIONS: For country specific approval information, see the Dialogic International Approvals data sheet or contact a Sales Engineer
6
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Estimated MTBF Warranty
150,000 Hours per Bellcore Method I 3 year standard
SPRINGWARE TECHNICAL SPECIFICATIONS· AUDIO SIGNAL: Receive range Automatic Gain Control Silence detection Transmit level Transmit volume control
Frequency response 24 Kb/s 32 Kb/s 48 Kb/s 64 Kb/s
-43 to +2.5 dBmO nominal, configurable by parameter** Application can enable/disable. Above -21 dBmO results in full scale recording, configurable by parameter** -38 dBmO nominal, software adjustable** (weighted average) -12.5 dBmO nominal, configurable by parameter** 40 dB adjustment range, with application definable increments and legal limit cap
300 Hz to 2600 Hz ±3 dB 300 Hz to 3400 Hz ±3 dB 300 Hz to 2600 Hz ±3 dB 300 Hz to 3400 Hz ±3 dB
AUDIO DIGITIZING: ~4
Kb/s 32 Kb/s 48 Kb/s 64 Kb/s Digitization selection Playback speed control
OKI ADPCM @ 6 kHz sampling OKI ADPCM @ 8 kHz sampling A-law PCM @ 6 kHz sampling A-law PCM @ 8 kHz sampling Selectable by application on function call by call basis Pitch controlled; available for 24 and 32 Kb/s data rates; Adjustment range: ±50%; Adjustable through application or programmable DTMF control.
DTMF TONE DETEC1"ION: DTMF digits Dynamic range llliillimum tone duration Interdigit timing Acceptable twist and Noise tolerance Cut through Talk off
0 to 9, *, #, A, B, C, D per CCITT 0.23 -39 dBmO to +0 dBmO per tone, configurable by parameter** 40 ms, Can be increased with software configuration Detects like digits with a >40 ms interdigit delay. Detects different digits with a 0 ms interdigit delay. frequency variation Meets appropriate CCITT specifications** Meets Bellcore LSSGR Sec 6 and EIA 464 requirements for Gaussian, impulse and power line noise tolerance. Digital trunks use separate transmit and receive paths to network. Performance dependent on far end handset's match to local analog loop. Detects less than 20 digits while monitoring Bellcore TR-TSY000763 standard speech tapes (LSSGR requirements specify detecting no more than 470 total digits). Detects 0 digits while monitoring MITEL speech tape #CM 7291.
GLOBAL TONE DETEC1"IONTM: Tone type Max. number of tones Frequency range Max. frequency deviation Frequency resolution Timing Dynamic range
Programmable for single or dual Application dependent Programmable within 300-3500 Hz Programmable in 5 Hz increments. ±5 Hz - Separation of dual frequency tones is limited to 62.5 Hz at a signal-to-noise ratio of 20 dB. Programmable cadence qualifier, in 10 ms increments Programmable, default set at -39 dBmO to + 0 dBmO per tone
GLOBAL TONE GENERATIONTM: Tone type Frequency range Frequency resolution
Generate single or dual tones Programmable within 200 to 4000 Hz 1 Hz
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
7
R&D-RA-97-290
Duration Amplitude
10 msec increments -40 dBmO to 0 dBmO per tone nominal, programmable
MF SIGNALING: R2 MF digits Transmit Level Signaling mechanism Dynamic range for detection Acceptable twist Acceptable freq. variation
All 15 forward and backward signal tones per CCITT 0.441 -8 dBmO per tone, nominal, per CCITT 0.454; programmable Supports the R2 compelled signaling cycle and non-compelled pulse requirements per CCITT 0.457 and 0.442 -35 dBmO to -5 dBmO per tone 6 dB Less than ± 1 Hz
CALL PROGRESS ANALYSIS: Busy tone detection
Ring back detection Po:itive Voice Positive Voice Positive Answering
Fax/modem detection Intercept detection Dial tone detection
Default setting designed to detect 74 out of 76 unique busy/congestion tones used in 97 countries as specified by CCITT Rec E., Suppl #2. Default utilizes both frequency and cadence detection. Application can select frequency only for faster detection in specific environments Default setting designed to detect 83 out of 87 unique ring back tones used in 96 countries as specified by CCITT Rec E., Suppl #2. Utilizes both frequency and cadence detection Detection™ accuracy 99% based on tests on a database of real world calls in North America. Performance in other markets may vary. Detection™ speed Detects voice in as little as 1/1Oth of a second. Machine Detection™ Accuracy 85% based on tests on a database of real world calls in North America. Performance in other markets may vary. Pre-programmed Detects entire sequence of the North American tri-tone. Other intercept tone sequences can be programmed. before dialing Application enable/disable; Supports up to three different user definable dial tones; Programmable dial tone drop out debouncing.
TONE DIALING:
o to 9, *, #, A, B, C, D per Bellcore LSSGR Sec 6, TR-NWT-000506
DTMF digits Frequency variation Rate Level
Less than ± 1 Hz 10 digits/s, configurable by parameter** -7.5 dBmO per tone, nominal, configurable by parameter**
PULSE DIALING: 10 digits Pulsing rate Break ratio Analog Display Services Interface (ADSI):
o to 9 10 pulses/s, nominal, configurable by parameter** 60% nominal, configurable by parameter** FSK generation per Bellcore TR-NWT-000030. CAS tone generation and DTMF detection per Bellcore TR-NWT-001273
*All specifications are subject to change without notice. **Configurable to meet country specific PIT requirements. Actual specification may vary from country to country for approved products.
HARDWARE SYSTEM REQUIREMENTS •
80386, 80486, or Pentium IBM PC AT (ISA) bus or compatible computer. Operating system hardware reqUirements vary according to the number of channels being used.
ADDITIONAL COMPONENTS •
8
Multidrop SCbus cable
Uitsluitend veor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Bijlage A2 Specificaties MSI/240SC-R
MSIISCTM Modular Station Interface For The SCbUS™ FEATURES & BENEFITS •
• •
•
•
•
• • • • • •
Connect up to 24 analog telephone devices directly to computer telephony systems and create affordable, low-end to mid-size PC-based telemarketing systems and call centers Unobtrusive monitoring of connections Expandable, modular design enables developers to deploy just the right number of ports today, and efficiently add more tomorrv~": configurations include 8, 16 and 24 station interfaces in a single ISA slot Create more cost-effective switching solutions via access to the SCSATM SCbus™ with its 1024 time slot capability; provides the capacity to build higher density systems and large, multinode systems through SCxbus™ interbox communications SCbus connectivity enables integrated applications customized to individual needs using a wide range of complementary technologies like speech recognition, facsimile and text-to-speech. Build economical systems by sharing resources via the SCbus. On-board DSP-based audio conferencing supports up to 32 resources in flexible ,:onfigurations of 2 to 8 parties per conference; conferencing resources can serve the Scbus with advanced features such as broadcast, coaching, and dynamic additions and deletions without annoying training tones Attach resources such as modems, faxes or standard audio devices to computer telephony systems plus application features like music-on-hold Provides battery feed to power station sets Provides power ringing with programmable cadence and automatic ring trip; feature is optional and requires no additional external circuitry Station status event detection allows collection of call traffic statistics via the application for cost-effective management of call setup and call termination Programmable channel gain provides channel volume control from the application and enables matching line levels from different devices Generate programmable notification tones
APPLICATIONS • • • • •
Inbound and outbound telemarketing Customer service, help desks Operator services such as billing automation, directory assistance, and intercept treatments Dictation/transcription Automatic call distribution (ACD)
MSI/SC Modular Station Interface products incorporate a variety of analog devices such as 2500 telephones into computer telephony systems based on the industry-standard SCbus™.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
11
R&D-RA-97-290
With the MSI/SC, applications can be extended to incorporate live agent stations or thirdparty-add-on technology. Up to 24 analog station devices (such as local telephones, telesales agent headsets, modems, fax machines, or audio equipment) can be connected to the SCbus. A conferencing feature (future) enables applications to establish conferences between any of the time slots on the SCbus and the station devices connected to the MSI/SC. The MSI/SC product family consists of an MSI/80SC baseboard which contains a Digital Signal Processor (DSP) and eight station interface circuits. Up to two SI/80 daughterboard modules- each with an additional eight station interface circuits-can be added to the baseboard for a total of 24 ports. Preconfigured 16-port MSI/160SCs and 24-port MSI/240SCs can be ordered. The MSI/SC is an AT form factor board with a 16-bit bus that installs in an AT (ISA) expansion slot, even with station daughterboards installed. Each MSI/SC station interface connects an application-selectable time slot on the SCbus to an analog station device. A standard RJ-21 X telephone interface provides easy connection of the MSI/SC board to breakout boxes or punch-down blocks. If connection to standard RJ-11 jacks is desired, Dialogic offers an optional SAl240 Station Adapter and a 50-pin cable. An external Dialogic MSI/SC Power Module provic?s loop current (battery) to local telephones through the MSI/SC. The system can handle multiple stations going on- or offhook simultaneously. Also available is the MSI/SC-R which includes a power ring option capable of generating AC voltage sufficient to ring standard 2500-type telephones. Ring cadence is application programmable. The power ring option is completely contained within the slot, no additional external circuitry is required. Using a 33% duty cycle ring cadence, the MSI/SC-R is capable of simultaneously ringing 24 phones. Balanced lines ensure low noise and allow stations to h'3 installed up to 3500 feet (1066 meters) from the host PC. Built-in electrostatic discharge (ESD) protection allows agents to insert and remove headset jacks without damaging Mbl/SC board circuits. Application programmable channel gain controls the volume for each channel and matches line levels from different telephone sets and devices. Station status event detection collects call traffic statistics and enables cost-effective management of call setup/call termination. The MSI/SC board can be used to establish conferences (future) between any of the time slots on the SCbus and the station devices connected to MSI/SC station modules. Call conferencing connects two to eight parties for up to 24 channels of total conferencing. 48 X 94 CALL CENTER SYSTEM The following features are provided: • • • • • • •
12
two - to eight-party conferencing up to 32 resources total conferencing conferences of any combination of agents and network channels hidden training permits smooth entry of new conferees without disruptive training noise supervisors can monitor agents without disrupting the conversation coaching feature allows supervisor to speak to agents without customer hearing the supervisor; customer can hear the agent at all times (no switching). tone generation: - zip tone indicates incoming call to agents using headsets - notification tones when a party is added to or removed from a conference (as required by the law in many states)
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
•
- user programmable periodic notification tones for indicating units of time expired during a call programmable channel gain optimizes volume levels for station devices
Fully digital conferencing capabilities (future) allow a call center supervisor to participate in a transaction or to monitor a transaction in listen-only mode. The MSI/SC's hidden training algorithms permit conferees to smoothly enter and exit a conference, without hearing othersome noises. By using the SCbus' broadcast capability, a virtually unlimited number of parties can monitor a conference. Coaching allows a supervisor to talk to an agent when the agent is on a call, without the customer hearing. Coaching is accomplished using the DSP and because no switching is involved the entire process in unobtrusive. MSI/SC stations can be independently assigned to any SCbus time slot, enabling station connected agents or devices to serve as shared resources. Multiple MSI/SC boards can be installed in a single system, each sharing the same PC interrupt. For example, two MSI/240SC boards can cabled to four D/240SC-T1 voice and T-1 boards, via the SCbus, creating a 48-agent-by-96-trunk call center. Applications can exploit the switching ability of the SCbus to create economical agent-to-call ratios. The MSI/SC hardware will permit up to 16 MSI/240SCs to be installed in a single system. (System size limitations depend on the application and host processing power.) Using the MSliSC's tone generation capabilities, an application can send alert tones to agents when an incoming call requires action. The MSI/SC is fully compatible with all Dialogic and third-party products that use NorthAmerican ~-Iaw or European A-law PCM (Pulse Code Modulation) coding schemes. NOTE: The MSIISC should not be directly connected to the public telephone network. Use only with local headsets and telephones.
CONFIGURATIONS Use Dialogic's MSI/SC to expand the capabilities of switching and station interface applications and to design economical cost-effective computer telephony applications of any size. The MSI/SC board installs in IBM PC AT (ISA bus) and compatible computers (80386, 80486 or Pentium-based PC platforms). In a typical telemarketing application, outbound numbers are dialed by a voice board or other resource board. When the system detects a called party going off-hook, the call is dropped to a local operator through an available channel. For inbound applications, calls that are not handled by voice automation can be passed directly to a live agent. The agent can be alerted to the incoming call by a power ring or zip tone. Two MSI/160SC boards can be used to service all 30 channels of an E-1 network. You can use the MSI/SC board as an independent conference resource, independent of the on-board station interfaces. For example, an MSI/SC board added to your computer telephony system can provide conferencing to PBXs lacking that capability.
SOFTWARE SUPPORT
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
13
R&D-RA-97-290
The MSI/SC is supported by Dialogic System Development Packages for MS-DOS, OS/2, UNIX and Windows NT. These packages contain a set of tools for developing complex multichannel applications.
FUNCTIONAL DESCRIPTION The signals from each station device (phone, headsets, etc.) enter the line circuitry on the MSI/SC board through an ESD filter and are applied to a line interface on a MSI/SC baseboard or daughterboard. This filter protects the MSI/SC board against conditions such as electromagnetic interference (EMI) and voltage transients on the station device lines, including electrostatic discharge and transients generated by plugging in or ~OVi; operator headsets.
::~:::::::::.:.:
:::::::::::::::::::::.:::.:.:::.:::~::
Each MSI baseboard or daughterboard contains eight line interfaces and COder/DECoders (CODECs). Each line interface provides loop start current to one station device. Loop start current to station devices (-24 VDC) can be turned on or off individually by the application. The line interface also separates the inbound signal into an audio signal which is sent to the CODEC and a on-hook/off-hook signal which is transmitted by the on-board control microprocessor via the input/output buffer and host PC AT bus to the application program. The CODEC converts inbound audio from analog to 8-bit digital audio signals and outbound audio from digital to analog. The gain of the CODEC is controlled separately for each station device through your application. The CODEC then transmits the digital audio signals to the crosspoint switch with conferencing circuit. The crosspoint switch receives digitized audio signals from the CODEC and channel switching/connection signaling from the on-board control microprocessor for each channel. The crosspoint switch acts as the traffic coordinator to route PCM audio data from the local station interfaces to DSPs and the SC2000 Bus. The crosspoint switch routes PCM data to and from the SCbus, any baseboard or daughterboard line interface, or DSP. A conference bridge feature of the MSI/SC board enables a user or an application to establish conferences (connect two or more parties) between any of the time slots present on the SCbus or station interfaces.
14
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&O-RA-97-290
The control microprocessor interprets and executes commands from the host PC and controls all operations of the MSI/SC board via a local control bus. Communications between this microprocessor and the host PC is shared RAM interface to the host PC via the AT bus. All operations are interrupt-driven to meet the demands of real-time systems. All MSI/SC boards installed in the PC share the same interrupt line. When the system is initialized, firmware to control all board operations is downloaded from the host PC to the on-board RAM. This downloadable firmware gives the board all of its intelligence and enables easy feature enhancement. The Board Locator Technology circuit operates in conjunction with a rotary switch to determine and set nonconflicting slot and IRQ interrupt-level parameters. This feature eliminates the need to set confusing jumpers or DIP switches.
MSI/SC TECHNICAL SPECIFICATIONS* Number of ports Max. boards/system Resource sharing bus Control microprocessor Digital signal processor
8, 16 or 24 16 SCbus Intel80C186 @ 16 MHz Motorola DSP56002 @ 57 MHz, with 32 K word private,O wait state SRAM
HOST INTERFACE: Bus compatibility Bus speed Bus mode Shared memory Base addresses Interrupt level I/O ports
IEEE P9961SA compatible (IBM PC XT/AT) 12.5 MHz maximum Automatically configures to 8 or 16 bit transfer mode 8 Kbyte page 8000h to E800h, on 32 K boundaries. All MSI/SC boards share the same base address. Shared memory is page mapped in/out dynamically as needed. IRQ 2/9, 3, 4, 5, 6, 7, 10, 11, 12, 14, 15, software selectable. One IRQ is shared by all MSI/SC boards. None
CONFERENCING: Group sizes Maximum ports Modes Notification tones Programmable Tone Parameters Frequency Level Duration Interval between
2 to 8 ports 24 Duplex, monitor, coach, pupil Tones automatically generated when caller is added or deleted, periodically for tariff notification, or under application control
300 Hz to 3400 Hz, 31.25 Hz increments -10 dBmO to -40 dBmO, 3 dB increments 10 ms to 4 sec, 10 ms increments 2 sec to 17 minutes (Tariff Tone only)
TELEPHONE INTERFACE: Connectors Signaling type Telephone set connection Loop current Signal level Impedance 2-wire return loss Receive signal/noise ratio Noise-to-ground Idle channel noise Channel-to-channel crosstalk
RJ-21 X female for connecting to SAl240 Station Adapter Loop start originate Two-wire loop start, balanced 28 rnA +3 mA -3 dB +6 dB (telephone line, approx.) 600 Ohms +7% 25.0 dB + dB 36 dB +3 dB (-10 dBm, 1004 Hz) 32 dBrnc +3 dB 15 dBrnc +3 dB -70 dB max. (0 dBm, 1004 Hz)
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
15
R&D-RA-97-290
Open loop voltage Closed loop current Loop length Clock rate PCM algorithm
-22 VDC +3 VDC (with -24 volt supply) -25 mA ±3 mA 3500 feet, typical (24 Ga) Expansion: 2.048 Mbits/sec or 1.544 Mbits/sec Independent: 1.544 Mbits/sec A-law or ~-Iaw, software selectable
POWER REQUIREMENTS: +5 VDC +12 VDC -12 VDC External power Operating temperature Storage temperature Humidity Form factor
1.25 A max. 50 mA max. 125 mA max. -24 VDC 1.0 A O°C to +50°C -20°C to +70°C 8% to 80% noncondensing PC AT, 13.34 in. long. 0.79 in. wide, 4.8 in. high
SAFETY & EMI CERTIFICATIONS: United States Warranty
FCC Part 15 class A UL: E9680V 3 years standard
* All specifications are subject to change without notice.
MSI/SC POWER MODULE* The MSI/SC Power Module generates -24 volts to power the MSI daughterboard station interface loop. One power module is required per MSI baseboard when station modules are used. The Power Module connects to a prewired power cable attached to the MSI/SC board. Input connector Output connector Internal fusing
Standard North American AC input Multipin connector Not user replaceable
POWER REQUIREMENTS: Input voltage 47 to 63 Hz -24 VDC Output ripple Percent regulation Operating temperature Size Warranty
90 to 265 VAC Output voltage 1A 240 mV (peak-to-peak) ±2% load 0° C to +50° C 2 in. long, 6 in. wide, 3.5 in. high 18 months standard
SAl240 24-PORT TELEPHONE STATION ADAPTER* The SA/240 Station Adapter connects up to 24 local telephones (such as type 2500 telephone sets) or up to twelve AIA/2 Audio Interface Adapters (two-line external audio adapter), or some combination of these devices, to an MSI/SC board. The SA/240 adapter includes a cable assembly and a RJ-11 interface adapter unit. Each cable comprises a D8-37 pin connector that connects to the MSI/SC board and a RJ-21 X, 50 pin male standard USOC telephone connector (the standard multiple line telecom interface) that connects to the adapter unit. The adapter unit converts the RJ-21X connectors into 24 standard RJ-11 connectors for easy connection to standard telephone sets. This adapter can be mounted to a convenient vertical surface.
16
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
ADAPTER UNIT: Telephone set connection RJ Number of RJ Front panel connector RJ
11 standard connectors 11 connectors 24 21 X jack
CABLE: Length Connectors Size
Weight Operating temperature Storage temperature Humidity
4.5 ft (1.3 m), shielded OB-37 to MSI/SC board RJ-21X, 50 pin female USOC standard to adapter unit 6.0 in. (15.4 cm) long, 3.8 in. (9.7 cm) wide, 1.25 in. (3.2 cm) high (excluding RJ-21 X connector); 1.5 in. ( 3.8 cm) high (including RJ-21X connector) 24 oz. 0 0 C to +500 C -20 0 C to +70 0 C 8% to 80% noncondensing
SAFETY & EMI CERTIFICATIONS: United States Canada Warranty
UL: 94V-O CSA: Listed 18 months standard
* All specifications are subject to change without notice.
OPTIONAL COMPONENTS • •
MSI Power Module (98-0200-003) or user supplied -24 VOC power supply (one per MSI/SC board) SA/240 Station Adapter Kit for MSI/SC (95-0004-001). Includes cable and breakout box. Use the following numbers to order separately: - RJ-21 X Cable for MSI/SC (86-0083-001) - RJ-11 Breakout Box (71-0004-001)
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
17
R&D-RA-97-290
Bijlage B Implementatie van de Objecten
8ijlage 81
Structuur van het systeem (multiple threads)
Het Windows NT Operating Systeem maakt multithreading mogeljjk. Dit is zeer bruikbaar wanneer meerdere processen simultaan moeten worden afgerond. Bij de PC-based switch hebben we te maken met zulke processen. leder gesprek moet gezien worden als een apart proces. Elk gesprek wordt in een aparte thread afgehandeld. De besturing van het systeem verloopt in meerdere threads. Bij de initialisatie worden de volgende threads gestart: • Event Handler • Tone generators • Output Screen Elk van deze threads is essentieel voor het systeem. De Event Handler kijkt voortdurend of er events plaatsvinden op een van de poorten. Wanneer er een event binnenkomt dan wordt er gekeken door welke terminal het event is gegenereerd en wordt dit doorgegeven aan de betreffende Terminal Agent. De toon generators zorgen voor het afspelen van bepaalde tonen op vaste poorten. De volgende tonen worden daar gegenereerd: • Dial Tone • Error Tone • BusyTone • Alert Tone • Dial Tone on forwarded terminal De rede dat elk van deze tonen gegenereerd worden in een aparte t'lread komt voort uit twee feiten: 1. Het Voice board is niet in staat om tonen te genereren met een bepaalde stilte periode. Dit betekent dat er voor een busy tone voortdurend een toon van een bepaalde lengte gegenereerd moet worden, waarna een tijd gewacht wordt. 2. Voor een zo efficient mogelijk gebruik van de poorten is het beter vaste poorten te reserveren voor het afspelen van tonen. Ais er op een analoge terminal een toon moet worden afgespeeld, dan is daarvoor een digitale poort nodig op het voice board. Het is dus mogelijk om voor iedere terminal waar een toon afgespeeld moet worden een nieuwe poort te reserveren. Dit leidt bij een hoge belasting van het systeem tot zeer inefficient gebruik van de poorten. Hoe deze keuze er in de praktijk uitziet is afgebeeld in figuur b1.
=
i
~.~
-0
o
'" FiguUf b1 Hardware structuur voor het afspelen van tonen
18
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D·RA·97·290
De laatste thread die bij het initialiseren gestart wordt is de User Interface. Deze wordt gebruikt voor het weergeven van gebeurtenissen in de verschillende klassen. Met dit window wordt bekeken hoe het systeem op bepaalde events reageert. Dit window wordt door het as vanzelf in nieuwe thread gestart. De Threading structuur van het programma zit er nu als voigt uit: (1
(1
ow,
~
;...:.
~ 'i:I
(ll
(ll
'"'"
'" '" N
-
0
[
~
0
::l (ll
0
"r1 ~
>.....
n~
a n
~ (ll ;:l.
0..,'
:;{
;; ./;.
'/.
."
t!l
a....
(j (j
::l (ll
:
::l
(ll
: t:C
con
'<
(j ::l
(ll
9e:.. ~
0
::l
(ll
t!l
< (ll ::l ......
:r::: ll) ::l
0-
~ ....
0 c
>S C ......
~ S"
0-
0 ~
Main Initialisation Figuur b2 Threading structuur programma
In figuur b2 zijn de verschillende threads boven elkaar geplaatst. Dit is niet de manier waarop het besturingsprogramma ze werkelijk start. Elke thread heeft dezelfde prioriteit. In b2 zouden dus aile threads naast alkaar moeten staan. De plaats waar de thread staat afgebeeld geeft aan wanneer hij gestart wordt. Eerst wordt de initialisatie gestart (de 'Main'), deze start de hierboven beschreven threads. Daarna worden door de event Handler de threads gestart die een event verwerken.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
19
R&D-RA-97-290
8ijlage 82
Het Party Object
Het Party object representeert een aansluiting van een analoge terminal binnen de TMA en verzorgt aile signalering van en naar de analoge poorten. Een Party object bevat de volgende attributen: Attribuut int Handle int BoardHandle int SigHandle int SionallinoFlaa TerminalAgent* TerminaliD
Functie Bevat de handle van de analoCle poort Bevat de handle van de interface Bevat de digitale poort die de detectie van DTMF tonen verzorot Geeft aan of de sianalerina aan of uit staat Bevat de Terminal Agent die het party object reoresenteerd in de Service Architectuur
De volgende methoden zijn in de Party klasse ge"implementeerd. Methode Party (int HandleOfParty, int Bhandle)
-Party(); void SetTerminal ( class Termil"alAgent* Termpoin) TerminalAgent* GetTerminall D()
int GetHandle() int GetBoardHandle() void StartSignaling() void StopSignaling() void RinaO void StopRina() DV_DIGIT GetDigit(int numdig)
void void void void
20
StopDiaitC PlavTone int ToneTvoe\ StopTone () PlavAVox(jnt choice)
Functie De constructor van het Party Object. De constructor vereist een handle van de poort en een handle van de interface. De Destructor van het obiect. Deze methode wordt gebruikt om een Terminal Agent toe te wijzen aan een Party object (de TerminallD wordt hier veranderd). Deze methode geeft een pointer terug naar de Terminal Agent die het Party object representeerd in het SA. Geeft de handle terug van de poort waaraan het Party obiect aekoppeld is. Geeft de handle terug van de interface waaraan het Party object oekoppeld is. Kent een vrije digitale poort toe aan de SigHandle en zet de dioitbuffer open voor het ontvanaen van diaits. Stopt de signalering van de poort en geeft de digitale ooort in SigHandle weer vrii. Laat een telefoontoestel rinkelen. Stoot het rinkelen van een telefoontoestel. Haalt #numdig digits uit de digitbuffer. Wanneer er niet genoeg digits in de buffer zitten wordt er gewacht totdat het aantal diaits is aeaeven. Stoot het wachten 00 diaits. Speelt een bepaalde toon op het telefoontoestel. Stopt het spelen van een tone. Soeelt een aeluidsfraament af 00 het telefoontoestel
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
8ijlage 83
Het Terminal Agent Object
De Terminal Agent (TA) representeert een Party in de Service Architectuur (SA). De TA weet in welke services de Party betrokken is. Tevens is de TA verantwoordelijk voor de aanvragen van nieuwe services. De TA bevat de volgende attributen: Attribuut Party· Partyp
char StartServicer81 char Tvoe[10j char Servicesr1 01[81 POTS ·PotsServicePointer MSIDef ·MSIDefServicePointer Ster21 ·Ster21 ServicePointer int State struct Preferences
Functie Savat een pointer naar het party object dat de TA representeerd Sevat de Default Service voor de TA Specificeert het type van de terminal Sevat aile services waarbii de terminal betrokken is Sevat een pointer naar een POTS service indien de terminal betrokken is bii een POTS service Sevat een pointer naar een Default service indien de terminal betrokken is bii een Default service Sevat een pointer naar een Ster21 service indien de terminal betrokken is bii een Ster21 service Sevat de status van de terminal Sevat de voorkeuren (instellingen) voor een bepaalde terminal
Een T A bevat de volgende methoden: Methode TerminalAgent(char ·startservice, char ·type, int spraak, int numr) - TerminalAqentO void SetParty(class Party· pp)
Party· GetPartyO void SetState(int state) int GetStateO char· GetTvoeO int PostEvent(char· event) int Invite(char ·service, class POTS· psp)
int AddService (char ·service) int RemoveService (char *service) void SetPots(char ·service, class POTS· psp) void SetMSIDef(char ·service, class MSIDef· mdsp) void SetSter21(char *service, class Ster21* sp) int GetNumRing() int Speak() void KiIIDefAndStartPOTS(class MSIDef ·mdsp, char digit1)
void KillDefAndStartSter21 (class MSIDef *mdsp, int set)
Functie Constructor van de TA. De integers spraak en numr ziin voorkeursinstellinqen voor de terminal. Destructor van de TA. Zet de pointer Partyp naar de Party welke de TA reoresenteert Geeft een pointer terug naar de Party die de TA representeert Verandert de status van de terminal Geeft de status van de terminal Geeft het tvoe terminal De event handler gebruikt deze functie om events door te aeven aan de TA Kijkt of de terminal beschikbaar is voor een POTS service, en zo ja, veranderd de POTSServicePointer en geeft een bevestiging terug dat de terminal wordt toeqelaten Voeat een service toe in het Services attribuut Verwijdert een service uit het Services attribuut Kent een pointer naar een POTS service toe aan het POTSServicePointer attribuut en voegt de service toe in de Services Kent een pointer naar een Default service toe aan het MSIDefServicePointer attribuut en voegt de service toe in de Services Kent een pointer naar een Ster21 service toe aan het Ster21 ServicePointer attribuut en voegt de service toe in de Services Geeft de voorkeur voor het aantal malen dat de telefoon moet overqaan Geeft de voorkeur of er notificatie in spraaksamples moet worden qeqeven Sluit via de MSIDefSF de Default Service af en start via de POTSSF een POTS Service op waar de eerste digit meegegeven wordt die in de Default Service is uitqelezen. Sluit via de MSIDefSF de Default Service at en start via de Ster21 SF een Ster Service op. Met 'set' wordt aanqeqeven of er een ·21 of #21 service aekozen is
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
21
R&D-RA-97-290
Bijlage B4
Het Nummerplan Object
Het nummerplan is verantwoordelijk voor de verwlJzlng van telefoonnummers naar Terminal Agents. Tevens wordt in het nummerplan bijgehouden waar een Terminal met een bepaald nummer naartoe is doorgeschakeld. De data in het nummerplan wordt opgeslagen in een structure. struct dey { int Handle; TerminalAgent" TerminalPointer; char TeIEen[6); char TeITwee[6); char Name[30); char Location[1 0); char Mail[50);
II Handle van een poort II Pointer naar een TA II primaire telefoonnummer II Nummer waarnaar de TA is doorgeschakeld II Indien de TA niet is doorgeschakeld '00000' II Naam van de persoon bij de terminal II Locatie waar de terminal zich bevindt II e-mail adres behorende bij de terminal
};
De basis van het nummerplan wordt gevormd door de handle naar de poort van een device (analoog of digitaal). Dit is gedaan omdat deze handle gegarandeerd uniek is en hierdoor ook ieder veld in de structure gegarandeerd uniek maakt. De laatste 3 velden in de structure worden gebruikt voor de Voice Mail applicatie. Voor deze applicatie zijn persoonlijke gegevens nodig die gelinkt worden met bepaalde terminals. Het nummerplan bezit de volgende methoden: Methode NummerplanO -NummerplanO void SetHandle (jnt devicehandler) void SetTerminal (int devicehandler, class TerminalAQent" termpoin) void SetTelEen(int devicehandler, char" nummer) void SetTelTwee(int devicehandler, char" nummer) int GetFreeDigO
void LoadPlanO TerminalAgent "GetTerminaLHandle(int devhandle) int GetHandle_Nummer(char" nummer) char" GetNummecHandle(int devhandle) char" GetFirstNummer_Handle(int devhandle) int GetSomeHandle(int number) char "GetName_Handle(int devhandle) char" GetAdress_Handle(int devhandle) void SetName(int devicehandler, char" naam) void SetLocation(int devicehandler, char" locatie) void SetMail(int devicehandler, char" mail)
22
Functie Constructor van het nummerplan Destructor van het nummerolan VoeQt een device toe in het nummerolan Koppelt een pointer naar een TA aan een device. Wijst een primair nummer toe aan een bepaald device. Wijst een doorschakel nummer toe aan een bepaald device. Loopt het gehele nummerplan door op zoek naar een vrije digitale poort. Wanneer hij deze gevonden heeft dan geeft hij de handle naar de betreffende poort teruQ, anders -1. Laadt de Voice Mail specifieke gegevens (naam, locatie en e-mail adres) van de harde schiif. Geeft de pointer naar een TA terug behorende bij het device met hande devhandle Geeft de handle van een device terug met het meeaeaeven nummer Geeft het doorschakel nummer van het device met handle devhandle Geeft het primaire nummer van het device met handle devhandle Geeft de handle van het device in het veld met index 'number' Geeft de naam van de gebruiker van het device met handle devhandle Geeft het e-mail adres van de gebruiker van het device met handle devhandle Verandert de naam bij het device met handle devicehandler Verandert de locatie bij het device met handle devicehandler Verandert het e-mail adres bij het device met handle devicehandler
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
8ijlage 85
De Event Handler
De Event Handler ontvangt de door de hardware gegenereerde events en geeft deze door aan de TA die bij de poort hoort waarop het event zich heeft voorgedaan. De events die door de event handler kunnen worden afgehandeld zijn: Events van Analoge toestellen MSMM_ONHOOK MSMM_OFFHOOK MSMM_HOOKFLASH MSMM_RNGOFFHK MSMM_TERM
Bij een analoge terminal is de hoorn neergelegd Bij een analoge terminal is de hoorn opgenomen Bij een analoge terminal is een hookflash gegenereerd Een analoge terminal heeft opgenomen na een ringsignaal Een analoge terminal heeft niet opgenomen na een ringsignaal
Events van de ISDN-30 aansluiting CCEV_CONNECTED Er is een verbinding tot stand gebracht CCEV_DISCONNECTED De verbinding is verbroken CCEV_OFFERED Er wordt om een verbinding gevraagd met een ISDN kanaal
Aile andere events worden genegeerd. Wanneer de handle van de poort bekend is wordt er in het nummerplan gezocht naar de bijbehorende TA. Met de PostEvent methode wordt de TA gewaarschuwd dat er op zijn poort een event is gegenereerd. De TA onderneemt dan verdere actie.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
23
R&D-RA-97-290
8ijlage 86
Creatie van de Service Objecten (De Service Factory)
Zoals vermeld is de software zowel Object Oriented als MultiThreaded. De creatie van objecten, en de werking van objecten in nieuwe threads wordt in deze bijlage besproken. ledere service is germplementeerd in een bepaalde klasse. Wanneer er een nieuw process gestart moet worden, wordt er aan de betreffende Service Factory (SF) om een instantie van de service gevraagd (dit gebeurt door een Terminal Agent (TA)). De SF creeert een nieuw service object en start deze in een nieuwe thread. De SF geeft aan de TA een pointer naar de service terug. De SF start de service met een omweg. Het is niet mogelijk een methode van een object, zoals een constructor, aan te roepen in een nieuwe thread. Dit probleem is als voigt opgelost: 1. Construction van een nieuwe instantie van de service: POTS" goPots = new POTS (pp, digit1);
Hierin is pp een pointer naar een Party, en digit1 de digit waarmee de aanvraag van de POTS service is bepaald. 2. Start een nieuwe Thread AfxBeginThread (StartPOTS, goPOTS);
StartPOTS is een functie buiten de PotsSF klasse. Deze functie (zie punt 3) wordt in de nieuwe thread gestart met als parameter een pointer naar de POTS service. 3. Start de POTS service in de thread UINT StartPOTS(LPVOID pParam) ( POTS" Pots = (POTS") pParam; Pots->Start(); return 1; }
II De startparameter van de thread casten naar POTS II Start POTS, en keert terug na afloop van de service II Einde van de thread
Hierboven is de manier waarop een POTS Service wordt gestart beschreven. Dit proces verloopt voor de start van iedere willekeurige service op dezelfde manier.
24
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Bijlage B7
De Local Analog Default Service
De Default Service bepaalt welke service de verbonden terminal wi! gebruiken. De Default Service geeft de gemaakt keuze door aan de TA en wordt daarna afgesloten. De Default Service heeft de volgende attributen: Attribuut
Functie
int CallerHandle
Handle van de poort waar de service mee verbonden is Status van de service (IDLE, GETDIG) Pointer naar de Party waar de service voor aangevraagd is Pointer naar de TA die de service heeft aangevraagd Status van de betrokken terminal De handle van de semaphore die gebruikt wordt bij het wachten 00 nieuwe events
int state Party" CallerParty TerminalAgent" CallerTerminal int CallerState HANDLE SemHandle
De state variabele komt in vele services naar boven en is noodzakelijk voor de service om te kijken of de service wacht op digits. Het wachten op digits gebeurt Synchroon. Dit betekent dat de service wacht totdat een party object digits teruggeeft. Wanneer een party nu geen digits geeft, maar neerlegt, dan zal de service toch blijven wachten. Dit probleem wordt verholpen door gebruik te maken van de state variabele. In het party object wordt de StopDigitmethode aangeroepen, W2nneer de state variabele gelijk is aan GETDIG en een terminal neerlegt. Deze breekt de GetDigit routine af, waardoor de service weer aktief wordt. Hierna kan het event gewoon afgehandeld worden. Deze constructie wordt gebruikt in aile services die om digits vragen. De Default Service heeft de volgende methoden: Methode
Functie
MSIDef(class Party" pp)
Constructor van de Default Service. Een pointer naar het betrokken Party obiect moet worden meegestuurd. Destructor van de service Start de service Wordt gebruikt door de TA om events door te geven aan de service. Zowel het event als de TA die het event stuurt wordt meegegeven. Verandert de status van de betrokken Terminal Verandert de pointer naar de TA waar de service voor aanClevraaCld is
-MSIDef() void StartO; void PostEvent(char "event, class TerminalAgent" Termpoin) void SetCallerState lint state) void SetCallerTerminal(Class TerminalAgent" tap)
Het volledig object model voor de Default Service en de daarbij betrokken objecten staat afgebeeld in figuur b3.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
25
R&D-RA-97-290
TerminalAgent
MSIDefSF
MSIDefServicePointer Partyp POTSServicePointer Preferences Services StartService State Ster21 ServicePointer Type AddService GetNumRing GetParty GetState GetType Invite KiliDefAndStartPOTS KiliDefAndStartSter21 Postevent RemoveService SetMSIDef SetParty SetPots SetState SetSter21 Speak TerminalAgent - TerminalAaent
KiliMSIDef MSIDefSF RequestSession Set -MSIDefSF
MSIDef
Party
'---
BoardHandle Handle SigHandle SignallingFlag TerminaliD l:ietBoardHandle GetDigit GetHandle GetTerminaliD Party PlayAVox PlayTone
CalierHandle CalierParty CalierState CalierTerminal SemHandle state M::>luer PostEvent SetCalierState SetCalierTerminal Start -MSIDef
~ing
I
EventHandler
Se,Terminal StartSignalling StopDigit StopRing StopSignalling StopTone -Party
I
Figuur b3 Object diagram voor de Default Service. Start do: Wait for Digit Play dial tone Digit Digit received do: Stop dial tone verify digit No Service for digit do: Play Error Tone
Service for digit do: Notify TA
EndService
Figuur b4 State Diagram LADS
De manier waarop de Default Service wordt opgestart, en de akties die de service zelf onderneemt staan weergegeven in de event trace in figuur b5.
26
Uitsluitend yoor gebruik binnen KPN en de Technische UniYersiteit Eindhoven
R&D-RA-97-290
I Descnption
Party
TenninalAgent
MSIDefSF
MSIDef
Start and behaviour of the Default Service Terminal Off Hook
r.&s~~~k!8bK")-----"
NotifyTA Request Default Service Create Default Service
; } - R?;9uest ~essi n artyp
MSIDef Start
Start MSIDef
SetMSIDe'!------i,1
Default Service Started
StartSlg nailing - + - - - - - - f , ' l
Start Signalling on Party
,
Play dial tone
PlayTo n e - - + - - - - - - I l GetD l g i l - - + - - - - - i ; l
Get 1st digit first digit
11--+---1 st d git Igi t1
retum digit
----t----..;"'"
StopT o n e - - I - - - - - { I
Stop dial tone CASE digit digit 1-9
r+--- KiliD
digit * or #
,j+--KiIiDe
End case _iIIMSI
request kill Default Service Kill Default Service End Default Service EventHandler
Party
TenninalAgent
MSIDefSF
MSIDef
Figuur b5 De event trace voor de Default Service
Deze service geeft het StartSignalling commando aan het Party object en stopt deze signalering niet. Dit wordt gedaan in de gekozen service. De rede hiervoor is dat vanaf de start van de signalering aile ingetoetste digits gebufferd worden. Deze digits worden niet bewaard wanneer tussentijds de signalering gestopt wordt.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
27
R&D-RA-97-290
Bijlage B8
De POTS Service
De POTS service bevat in werkelijkheid 3 features: 1. Tweegesprek 2. Driegesprek 3. Transfer Call Service Tevens wordt de Voice Mail Service vanuit POTS aangeroepen wanneer een Terminal niet reageert op een oproep. De drie features die hierboven genoemd zijn hebben vele overeenkomsten en zijn daarom binnen sen service ge'implementeerd. Binnen de POTS Service zijn de volgende states gedefinieerd: State DESKP INIT WRONGNUMBER BUSY ALERTING CONNECT ADC~.IS
THREECONF ABORT FINISH
Omschriiving Het gesprek is via een Deskphone opgezet (zie Bijlage B1Q) Een tweede partii wordt uitaenodiqd voor POTS Er is een verkeerd nummer aekozen De aebelde terminal is niet beschikbaar De aebelde terminal wordt aewaarschuwd Twee partiien ziin met elkaar verbonden Een derde oartii wordt uitaenodiad (tevens vollediae Transfer Call service) Drie partiien ziin met elkaar verbonden Een aesorek is afaebroken POTS is klaar (aile partiien ziin On Hook)
Het State model voor de POTS Service ziet er als voigt uit:
AOnHook
Conference Can Blocks
Figuur b6 State model POTS
De POTS Service bezit de volgende attributen: Attribuut int state int State int OriaDest
28
Functie Sianalerinas status van POTS (Wacht 00 Diaits, Idle) State van POTS (zie fiauur bS) Oriainele bestemming van een aesorek. Dit is nodia in aeval
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
int CallerHandle Party* CallerParty TerminalAaent* CallerTerminal int CallerState int CalledHandle Party* CalledParty TerminalAaent* CalledTerminal int CalledState int ThirdHandle Party* ThirdParty TerminalAoent* ThirdTerminal int ThirdState HANDLE SemHandle char Numberr1 OJ TerminalAgent* EventTerminal int LastEvent
van Voice Mail en de *21 Service (zie Biilaoe B10) Handle van de Initiator van het aesorek Pointer naar het Party Object van de Initiator van het oesprek Pointer naar de Terminal Aaent van de Initiator van het oesorek State van de Initiator van het oesprek Handle van de aebelde oartij Pointer naar het Party Object van de oebelde partij Pointer naar de Terminal Aaent van de oebelde partii State van de oebelde partij Handle van de derde oartii (bii een Conference of Transfer Call) Pointer naar het Party Object van de derde partij Pointer naar de Terminal Aqent van de derde oartii State van de derde partii Handle van de Semaphore aebruikt in wachtlussen Gebeld telefoonnummer Pointer naar de Terminal Agent waar het laatste event qegenereerd is. Type van het laatste event
Het Object diagram voor de POTS Service staat afgebeeld in figuur b7. T erminalAgent
POTSSF
PotsSF RequestSession Sel
-PotsSF
NumberPlan
I-----<
Connection Manager
U8S!VO'!
DestroyConnection SetUpConnectlon ThreeConf
I-----<
1
POTS
GaliedHand'e CaliedParty CalledState CalledTerminal CaUerHandle Calle,Party CailerState CallerTerminal EventTeminal LastEvent Number Ongdest SemHandle state State ThirdHandle ThirdParty ThirdState ThirdTerminal
KiIIMSIDef MSIDefSF RequestSessiof I Sel -MSIDefSF
1
~da_:::servlCe
1-3
GetNumRing GetParty GetState GelType Invite KiIIDefAndSlartPOTS KiIIDefAndStartStar21 Postevent AemoveService SelMSIDef SelParty SetPots SetState .3etSter21 Speak T erminaJAgent - TerminalAoent
ost~vent
POTS Start POTS
MSI[efdum
Partyp POTSServicePointer Preferences Services StartService State Ster21ServicePointer Tvoe
~1Ilt"ots
ummer an c::-et anole_ ummer GetNummecHandle GetTerminal Handle
MSIDefSF
MSllJetServ1cePOtn ar
Is um
I
EventHandler
I
MSIDef
'---
1
1 3 -
I
Party tsoaroHMO'e Handle SigHandie SignallingFlag TerminaJlD ~el~oara~anole GetDigit GetHandfe GetTerminaJlD Party PlayAVox PlayTone Ring SelTerminal StartSignalling StopDigit SlopRing StopSignalling StopTone -Parlv
f--
c:;alle,Handle Calle,Party CailerState CallerTerminal SemHandle state
M:SILJe PostEvent SetCallerState SetCallerTerminal Start -MSIDel
Figuur b7. Object diagram POTS Service
In figuur b8 staat het event diagram weergegeven voor een tweegesprek. Dit diagram begint op het moment waarop in de Default Service de keuze is gemaakt voor een intern gesprek (een gesprek tussen twee interne terminals).
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
29
(,J
0
POTS
1°t!§CilPiiOlI
EventHandler
(Party) Party A
(TerminaIAgent) TerminalAgent A
MSIOef
MSIOefSF
POTSSF
POTS
Connection Manager
NumberPlan
(TerminalAgent) TerminalAgent B
(Party) Party B
B
Par B (Party)
Start and Behaviour of the POTS Service
KiliOefAndSlart OTS
digit 1·9 pressed
KilMSIOef
request Kill MSIDef
-MSIOef
Kill Detaun Service '""
Request POTS Service
R
...,
uestSession
___ POTS-.
Create POTS Service
C
~ t: t:
Get two more dighs
;:
0Co
dign 2
(§
digits received
~ E ::l Co
<
0
Q
C'
2
;;<' C'
S'
::l
...
rn ~
t:J iii'
10
ill :3 C5
dign 3
Terminal B Off Hook Notify Terminal Agent B
-
Nolify POTS
--l
C'l
:T
::l
iii' C'l
:T
C
::l
<'
iil
;: ;::;: m
S' Co
:T
0 <
::l
~ ~
~ CD {l
t-
+
+-digils 2&3 topSignalling
Gal~ ndls_ Num er
_~aITe minaL
Handl
Invite
I'm tree GetParty
Get Party Pointer
:;,
+GeIOigil (2)
Terminal B is IDLE
1J
0
+
Invite Terminal B
::l Co
lfIll-
Get Terminal Pointer
Z
CD
POTS service
Check number
"'0
A
I--+__ dig· I--+__ dig·
Stop Signalling on Palty A
Alerting Tone on Party A
::l
lfIll---- Pointer
POTS Slarted
...0CD
_Slart - . ,
Start Pots
Alert Party B
Ring
l f I l l - - - - + - - - - - - P I Tone ('alert") Off Hook Post
lfIll-
Slop Alert Tone A
+
enl ("Off Hook') slEvenl ("Off Hook")
+SlopTone
I-~~~Ut. ...,
Connect two Terminals Terminal A On Hook
On Hook
Notify Terminal Agent A
Clion
~~Ik'1an ("On
Nolify POTS
B-
~PostEvenl
('0 nHoo ")
-~~:~~
Destroy Connectton
It41-
Remove Service Pointer
-fRemoveSelVice("PO SO)
eclion
-.., PlayTon
Play busy tone Tenninal B On Hook
On Hook
Notify Terminal Agent B
Post
ent ("On Hook") slEvent ("On Hook")
NolifyPOTS
Re oveSalVice ('POTS")
Remove Service Pointer
Slop busy Tone Request Kill POTS
r--KHIPots
KilPOTS
I-----POTS
StopTon
...,-
End POTS Service
EventHa dlar
A (Pony)
Pa
TerminalA ent A (TerminaIAge,lI)
MSIO ISF
MSI el
PO-,dSF
PO S
Connection
anagar
Numbe
Ian
TerminalA: ant
(TerminaIAgent)
R&D-RA-97-290
In de event trace zijn aile uitzonderingen die zich voor kunnen doen niet weergegeven, deze worden echter wei door de service op correcte wijze afgehandeld. Enkele voorbeelden van deze uitzonderingen zijn: • Terminal A kiest een nummer, en hangt op voordat Terminal B opgenomen heeft • Terminal B is in gesprek • Terminal B neemt niet op De Transfer en Conference Call Service zijn beide volledig in de POTS Service ge'integreerd en worden op bijna dezelfde wijze tot stand gebracht. In figuur b9 staat het event diagram afgebeeld voor een Transfer Call service, in figuur b10 het event diagram voor een Conference Call. Het event diagram in figuur b9 begint op het moment dat twee toestellen (Party A en Party B) met elkaar verbonden zijn. Nadat Party A de Transfer Call ge"initieerd heeft en de hoorn heeft neergelegd, zijn wederom twee toestellen met elkaar verbonden (Party B en Party C). Hier eindigt het event diagram. Het systeem bevindt zich nu weer in een normaal POTS tweegesprek (zoals in figuur bB). Het event diagram in figuur b10 begint op het moment dat twee toestellen met elkaar verbonden zjjn (Party A en Party B) en een toestAI op hold staat (Party B, deze hoort een alert toon). De wijze waarop deze situatie tot stand komt is identiek als die in de Transfer Call service. In tegenstelling tot de Transfer Call service, legt Party A nu niet neer, maar geeft een hookflash. Hierna worden de drie toestellen met elkaar verbonden. Wanneer nu een van de drie toestellen de hoorn neerlegt, keert het systeem terug naar een normaal POTS tweegesprek (in figuur b1 0 legt Party A de hoorn neer). Het event diagram in figuur b10 eindigt hier.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
31
w
I\)
SetUpConnection
I DescrlptlOli
EventHandler
(Party) Party A
(TerminaIAgent) TerminalAgent A
Connect Terminal A&B NotifyTA
H k FI s h
C
"
~
C ~ a. (§ ::J
Q (Q
(1)
C'
2
~ C'
:3'
::J (1)
c: S;
tJo
CO
~ :J
....
0 iii'
<0
iii 3
~
0
__ SetUpConne clion (pa~ A, Party
-. I - Poste_ (Hook
Notffy POTS
Connection Manager NumberPlan
I~~h) --+
Break Connection Terminal A&B
I - - PostEvent ...... erm inal A, ookFlash)
lJ
-
.....,
PlayTc e(Alert)
Start Signalling
Sta Signalling
Start Dial Tone
Pia, one (Dial)
Get Digtt
G IDigtt(1) di it1
digit received
digit1
Stop Dial Tone
lopTone
Get 2 digtts digit 2 and 3
G tDigtt (2) digit ~&3
-----+
digits received
igils 2&3
Stop Signalling
SI pSignalling
""
Check Number
____ GetHandle_Nun mer
\l
:J
Get Terminal pointer
____ GetTerminaLH' ndle
(1)
;t
::J
A
Z
::J
(1) (1)
III :J
a. (1)
til
-l
0
~ =::::
(1)
::r ::J iii' 0 ::r (1) C
::J
<' (1) iil ~ ;::;: m 5' a. ::r 0
<
(1)
::J
""
Invtte I'mlree
get Party C
elParty
AlertC
Ain Pia
Alerting Tone A
~,
NotilyTAC
(1)
---.,
Terminal C is idle
Terminal C Off Hook
(1)
~
Invite Terminal C
til
one (Alert)
~
Poslevenl (OffHo k)
NOlilyPOTS
PoslEvent (Te ninalC,OI Hook)
Stop Alert Tone
lopTone
Connect A and C Terminal A On Hook NotifyTA A
(Party) (TerminaIAgenl) Party C TerminalAgent C
~:~\~,rCon ~
Start Alerting Tone
digit 1
(Party) (TerminaIAgent) Party B TerminalAgenl B
I
POTS Started and Parties A and B connected Hookflash terminal A
POTS
J-- SetUpgonne
~
~~Ota\\ya8Y
.....,
J - Posteve t(On ~ Hook)
NolilyPOTS
I--- PostEvenl - - .
r4-~,~n . e er
Aemove Service Pointer
(J~'bTS')
Break Connection A & C
_ -
Slop Alert Tone B
~:~\~,rCon ~
Stc pTone
Connect B & C
_SetUpgonne ction (party B, PartyC
End TransferCall ve ntH ndle,
Pa yA (Party)
Terminal gent A (TermlnaIAgent)
PC S
.....,
Connection Manager Numb rPlan
Pa YB Terminal gent B (Party) (TemllnaIAgent)
Pa CTerminal genIC (Party) (TermlnaIAgent)
c ~ c:
;: ;;, 0-
<
Q lC
CD
0-
2
;;<= 0-
S' ;;,
~ c:
.,c: ....0-
CD
C)
A
~
;;,
"lJ
tn
ThreeConf
t DescriptiOi.
~
Connect A and C (B on hold)
0
HookFlash terminal A
0CD
<0
;;,
-i
CD 0 ::T
;;,
iii' 0 ::T CD
C
;;,
<' CD
iil
;: ;:::;: m S' 0-
::T
0
<
CD
;;,
j5)'
iil 3 (§
.,0
g> ~.
Connection Manager
(Party) Party B
(TerminaIAgent) TerminalAgent B
(Party) PartyC
(TerminaIAgent) TerminalAgent C
Pa B (Party)
Terminal gent B (Terminal Agent)
Pa C (Party)
Terminal gent C (TerminaIAgent)
StopTon
Break Connection A & C
DestroyCo nnection Threeconf warty A, artY B PartyCj
Connect A & B & C
~ ~
~ ::::::
PostEvent tHookFlash, erminal A)
Stop Alert Tone B
NotnyTA
2
POTS
W
Poste nt (Hook ash)
NotnyPOTS
Terminal A On Hook
ca ~
(TerminaIAgent) TerminalAgent A
_SetUpCon nection artyA arty C) •
NotnyTA
~
(D'
(Party) Party A
Conference Call rart~ B on Hol<1\ Parties A nd connecte)
CD
Z
EventHandler
n
k
Notify POTS
Posteve t(On Hook)
PostEvent (On Hook, Terminal
A~moveservice
Remove Service Pointer
(" OTS·)
Break Conference
DestConf
Connect B & C End Conference Call EventH ndler
Pa A (Party)
Terminal gent A (TerminaIAgent)
S
SetUpCon nection artyB , warty C) Connection
anager
R&D-RA-97-290
Bijlage B9
De Call Forwarding Service
De Call Forwarding Service (*21 Service) geeft een gebruiker de mogelijkheid zijn toestel door te schakelen naar een ander toestel. Deze service heeft de volgende attributen: Attribuut int CalierHandle
Functie Handle van de poort waar de service mee verbonden is Status van de service (IDLE, GETDIG) Pointer naar de Party waar de service voor aanoevraaod is Pointer naar de TA die de service heeft aanoevraaod Status van de betrokken terminal Geeft aan of er een *21 of #21 service is qevraaqd De handle van de semaphore die gebruikt wordt bij het wachten OP nieuwe events
int state Party* CalierParty TerminalAaent* CalierTerminal int CalierState int SterOfHekie HANDLE SemHandle
De Default Service heeft de volgende methoden: Methode Ster21 (class Party* pp, int set)
Functie Constructor van de Call Forwarding Service. Een pointer naar het betrokken Party object moet worden meegestuurd. Met set wordt aangegeven of er een *21 of #21 is gestart (het attribuut SterOfHekje wordt gelijk gemaakt aan set). Destructor van de service Start de service Wordt gebruikt door de TA om events door te geven aan de service. Zowel het event als de TA die het event stuurt wordt meeoeoeven. Verandert de status van de betrokken Terminal Verandert de pointer naar de TA waar de service voor aangevraagd is
-Ster21 () void StartO; void PostEvent(char *event, class TerminalAgent* Termpoin) void SetCalierState (int state) void SetCalierTerminal(Class TerminalAaent* tap)
In paragraaf 4.7 is h'3schreven hoe de initialisatie van deze service werkt. In figuur b11 staat het complete State Diagram van deze service afgebeeld. Start do: Check SterOfHekje
'.'
'#'
Stop Call Forwarding do: check forwarding 3 digits
Digits received
Terminal forwarded
do: check digits
ValidNr. do: Set second Nr. Notify Party &Wait
do: Remove second nr. Play Dial Tone& Wait
Terminal not forwarded do:Play Error Tone& Wait
InvalidNr. do: Notify Party &Wait
Terminal On Hook
End Call Forwaring do: Destroy object
Figuur bll State Diagram Call Forwarding Service
34
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
In figuur b12 is het Object Diagram van figuur b7 uitgebreid met de Ster21 klasse. Ster21SF te
1
Ster21
"allar ana,e CallerParty CallerState CallerTerminal SemHandle
SetCallerState SelCaJlerTerminai Start Ster21 -Ster21
ummer
f-------<
an
~eIHandle_",ummer
GelNummer_Handla GelTerminal Handle
Connection Manager DestL;on DestroyConnection SetUpConnection ThraeCon1
I---t
1
POTS
"ell&aHan"'a CaliedParty CalledState CalledTerminai CaUerHandle CallerParty CaJlerState CallerTerminal EventTaminal LastEvent Number Origdest SemHandle state State ThirdHandle ThirdParty ThirdState ThirdTerminal
MSI[efdum
KIIIM:>'ue MSIDefSF AequestSession Set -MSIDefSF
Preferences
Services StartService State Ster21ServicePointer Tvoe
1
Add_~ervlce
1-3
GetNumRing GetPerty GetState GetType Invite KillDefAndStartPOTS KiIIDefAndSlartStar21 Postevent RemoveService SetMSIDef SelParty SatPots SetState SetSter21 Speak T erminaiAgent - TerminalA ant
~~s;~vent Start -POTS
MSIDefSF
MSIDefServicePointer Partyp POiSServicePointer
potsdum ~II ats PotsSF RequeslSession Set -PotsSF
os!t:~ent
NumberPlan
T erminalAgent
POTSSF
~tt~~Hekie
I
um
~1II"ter""
Requ9stSession Set Ster21SF -Ster21Sf
I
EventHandler
I
MSIDef
-
Party
1-3
Boar(jHandle Handle SigHandle SignailingFlag TerminaJlD ualtloar".. ano'e GetDigit GetHandle GetTerminallD Party PlayAVox PlayTone Ring SetTerminal StartSignalling StopDigit StopRing StopSignalling StopTone -PartY
-
CallerHandle CallerParty CallerState CailerTerminal SemHandle
state
~Sl~e
PostEvent SetCallerState SetCallerTerminal Start -MSIDef
Figuur b12 Object Diagram met Call Forwarding Service
Het Event Diagram van de initialisatie van de Call Forwarding service is afgebeeld in figuur b13. Het Event Diagram van het beeindigen van de Call Forwarding is afgebeeld in figuur b14. De Call Forwarding service wordt pas echt gebruikt binnen de POTS service. In bijlage B8 wordt niet gesproken over deze service. Er wordt binnen deze service wei, met behulp van het nummerplan, gecontroleerd of de gebelde terminal is doorgeschakeld. Tevens wordt er rekening gehouden met de uitzonderingen zoals beschreven in paragraaf 5.1.2. De manier waarop dit gebeurt is afgebeeld in figuur b15.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
35
Ster21
I uesCiipUOfi
EventHandler
(Party) Party A
(TerminaIAgent) TerminalAgent A
MSIDefSF
MSlDef
Ster21
Ste121SF
NumberPlan
Initialisation Call Forwarding +-~iIlDefAndStar St e
Digit ,., in LADS pressed
, r21 ._KiIiMSIDef
request Kill MSIDef Kill Default Service
~
I- -MSI Def RequestSes ion (Party A, "')
Request Ste121 Create Ste121
Ste121
!f'a~ A,
Start Ster21
, Start
Ster21 started
Pointer to S 12 1 service
Get 2 digits
et Digit (2) '21
digits '21'
di gits '21'
digits received "21' chosen, Get 3 digits
+
+-
~
et Digit (3) S )p Signalling
Stop Signalling Verify digits
GetHandle_ Nummer SetTelTwee lCalierHandle,
number valid, set second number Start Dial tone Terminal On Hook Notify TA Notify Ste121
3dig~s)
Pic T one (Dial)
n
ok
---+, I - - pos~)v nt(On Hoo
~.
Remove service pointer
PostE ent (Termin I A,On Hook) R moveServic ("Ster21 ")
Stop dial tone
StopTone
Request Kill Ste121
KiIISte121
Kill Ster21
-Ste121
End Call Forwarding Service EventH ndler
Pa 'yA (Party)
Terminal gent A (TerminaIAgent)
MSIDefS F
MS
ef
Ste 21
Numb rPlan
c
s:
E
s=
~
a. ~
~
I DeSCiipU6ii
Q co
2
i<'
IJ
S' ~
(1) ~
'" "lJ
Z
(1) ~
a.
(1)
-I
(1)
(')
:J ~
iii' (')
:J
~ c:
.,c:
...
0-l:l.
~
m S' a. :J
0
< (1) ~
Ste121SF
NumberPlan
Ste121
Get 2 dig~s
OJ
digits received
3
0-
~ (1)
digits '21'
_-+
-+
~"'"
to pSignalling
check forwarding
~:~~Pemmer_
Terminal forwarded, remove second nr. Start Dial tone
~ ::::
lQ
GetDigit (2) '21
'#21' chosen, stop signalling
Terminal On Hook
aS'
Pointer to te 121 service
digits '21'
::J
til ~
~:
Create Ste121
0 iii'
S'
(1)
MSIDef
"I- -MSIDe f RequestSess on (Party A, '#')
Request Ste121
=t
lQ
_KiIIMSIDef
Kill Default Service
Start Ste121
C
<'
MSIDelSF
+--KiliDeIAndSlart~ e 121
request Kill MSIDef
Ste121 started
(ii
(1) (1),
iil
(TerminaIAgent) TerminalAgent A
Digit '#' in LADS pressed
III
(1)
~
(Party) Party A
Stop forwarding Terminal
(1)
IJ
EventHandler
NotifyTA
SetTelTwee (Handle, '00000')
n ook
-.
ayTone (Dial) _
Notify Ste121
Posteve t(On Hook)
----., Pos Event ;Terminal
Remove Service pointer
ReIT ,>VeService (
Stop Dial tone
StopTone
Request Kill Ste121
KiIISte121
Kill Ste121
-Stel21
End Call Forwarding Service EventH ndler
Par 'vA (Party)
Terminal gent A (TerminaIAgent)
MSID IS F
Ste
1
Numb Plan
JJ SlO
o
~
co
~
co
o
R&D-RA-97-290
Verify Number do: Get Handle in NumberPlan Unknown Number
Number exists
Valid Handle
Invalid Handle
do: Get Second Number in NumberPlan
'00000'
No Forwarding do: Return Handle
do: Return Error
Number
Forwarding active do: Compare with handle of initiator Handles are equal
Handles are different
No exception
Exception
do: Return forwarded Handle
do: Return Handle
Figuur b15 State Diagram Controle Call Forwarding
Bij het controleren van een gekozen nummer wordt eerst gecontroleerd of dit een geldig nummer is. Wanneer dit het geval is wordt gecontroleerd of het gekozen toestel doorgeschakeld is naar een ander toestel. Wanneer dit ook het geval is wordt gekeken of het toestel niet doorgeschakeld staat naar het toestel waar vandaan gebeld wordt. Als dat zo is wordt het originele nummer genomen, en niet het doorgeschakelde nummer.
38
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D-RA-97-290
Bijlage B10 Voice Mail Service Zoals in paragraaf 5.1.5. is beschreven verloopt de Voice Mail Service in 5 stappen. Twee van deze vijf stappen zijn er twee buiten de POTS service gei"mplementeerd. Deze mail functies zijn niet in een apart object geplaatst, maar in twee routines die met POTS worden mee gecompileerd. De twee routines zijn:
int RecMail (int CallerHandle) en
int SendMail (int CalierHandle, int CalledHandle) In de RecMail routine wordt het Voice Mail bericht, dat verstuurd moet worden, opgenomen. In het nummerplan wordt gekeken welk persoon bij het bellende toestel hoort, om op deze manier een afzender aan het bericht te koppelen. Het ingesproken bericht wordt tijdelijk op de harde schijf bewaard onder de naam van de afzender (en de 'wav' extensie). Met de SendMail routine wordt het bericht per e-mail verstuurd naar de gebelde persoon. Eerst wordt in het nummerplan gekeken wie er bij het gebelde toestel geregistreerd staat en welk e-mail adres deze heeft. Daarna wordt met behulp van de Microsoft Messaging API (MAPI) het e-mail bericht opgebouwd, met daarin een attachment van het opgeslagen voice bericht. Hierna word! het bericht verstuurd waarna de routine het resultaat van de verstuur actie teruggeeft. De routine controleert aileen of het zijn commando's zonder problemen heeft kunnen geven aan de actieve mail-applicatie, niet of het bericht ook daadwerkelijk aangekomen is. Een verkeerd e-mail adres wordt niet door de routine opgemerkt.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
39
R&D-RA-97-290
8ijlage 811 DeskPhone Service Met de DeskPhone Service Is het mogelijk om vanuit een andere PC op het LAN een telefoongesprek op te zetten. Hiervoor bestaat er binnen de PCBX een server-gedeelte van de DeskPhone en een client-gedeelte in de DeskPhone applicatie. Het client gedeelte is beschreven in paragraaf 5.1.6. Het bericht dat deze applicatie naar de PCBX stuurt heeft de volgende vorm: '105221' Hierin is '105' het nummer wat gebeld moet worden, en '221' het nummer van het toestel van de initiator. De PCBX ontvangt dit nummer met de DeskPhoneServer en plaatst deze opdracht op een stapel. Deze stapel is noodzakelijk, omdat het mogelijk is dat er meer aanvragen komen, dan dat het systeem afwerkt. Een aparte thread controleert voortdurend de stapel op nieuwe opdrachten en geeft in geval van een correcte opdracht dit door aan de betreffende TA. Deze start een POTS service waarbinnen de Call wordt gerealiseerd. Dit verloop staat tevens weergegeven in figuur b16. DeskPhone Client
Stack Handler
Clear
Dial
:
. valid
invalid
r-----l-----,
DeskPhone Server
valid
.. '
.........
Figuur b16 Verloop DeskPhone opdracht
De POTS service waarschuwt eerst het toestel van de initiator. Nadat deze opgenomen heeft verloopt de POTS service normaal, zoals beschreven in bijlage b8.
40
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
R&D·RA·97·290
8ijlage 812 De Connection Manager De Connection Manager (CM) is verantwoordelijk voor het maken en verbreken van verbindingen tussen de verschillende aansluitingen van de PCBX. De CM is intelligent uitgevoerd en bepaald zelf hoe het de verbindingen moet maken. De CM heeft de volgende methoden: Methode int SetUpConnection(int Handle1, int Handle2) int Destroy Connection(int Handle1, int Handle2) int ThreeConf(int Handle1, int Handle2, int Handle3. int &ConfID)
void DestConf (int CI, int brd)
Functie Maakt een verbinding tussen twee aansluitingen met de handles Handle1 en Handle2. Deze mogen van zowel een analoge als digitale aansluiting zijn. Geeft a teruQ bij succes, -1 bii een fout. Verbreekt de verbinding tussen twee aansluitingen (wederom met handles Handle1 en Handle2). Deze routine geeft geen fout terug wanneer de verbinding niet aanwezia was. Maakt een verbinding tussen 3 toestellen. De routine geeft een board nummer terug. Dit is de handle van het MSI board waarop de verbinding is gemaakt. In de ConflD wordt de Conference 10 teruggegeven. Deze is nodig om later de verbinding te kunnen verbreken. Verbreekt de verbinding tussen drie aansluitingen. Deze routine heeft de board handle (brd) en de Conference 10(CI) van de verbindina nodia.
Bij een verbinding tussen twee aansluitingen wordt deze altijd gerealiseerd met behulp van de SCbus. Dit zou ook gedaan kunnen worden met behulp van het switch board op de MSI kaarten. Dit is echter niet gedaan omdat de capaciteit van de SCbus vele malen grater is dan de capaciteit van het switch board. Driegesprekken worden wei met behulp van dit switch board gerealiseerd. Er wordt eerst gezocht naar een party op een MSI board. Op dat board zal de verbinding worden gerealiseerd. Hierna wordt gekeken welke eigenschappen de andere parties bezitten, waarna de koppeling met de conference al dan niet met behulp van de SCbus wordt gerealiseerd. Het switch board op de MSI kaarten is in staat een graepsgesprek te realiseren tot en met 8 partjjen. Van deze mogelijkheid wordt nog geen gebruik gemaakt.
Uitsluitend voor gebruik binnen KPN en de Technische Universiteit Eindhoven
41