Talk:Telephone System

From Hackerspace ACKspace
Revision as of 13:05, 17 March 2020 by Xopr (talk | contribs) (concept VoIP)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Voorstel vernieuwde VoIP setup

xopr 13:05, 17 March 2020 (CET) De plannen zijn om het ondergeschoven kindje genaamd VoIP weer op de rails te krijgen, dus probeer ik alle dingen die ik in mijn hoofd heb kronkelen te noteren ter discussie.

Allereerst het originele plaatje (merk de 'splitsing' op tussen SpaceNode, NLnode en DEnode, en de wirwar van verbindingen naar de trunks/gateways.

HA (high availability)

Allereerst, high availability d.m.v. een secundaire node geeft meer problemen dan dat het oplevert; uit ervaring (onder andere door CoolePascal's Fritzbox is gebleken dat sommige apparaten de properties van SRV record compleet negeren en bij de minste hiccup permanent naar de fallback node verbinden waardoor onderlinge gesprekken niet mogelijk zijn. Ik stel voor om HA te schrappen; mocht de primaire node stuk zijn, dan is door de gekozen opzet[1] van trunks uitbellen nog altijd mogelijk en in geval van langdurige problemen kunnen we altijd nog een nieuwe VPS opzetten[2]

SpaceNode vs. NLnode

In theorie (zoals we de afgelopen tijd gemerkt hebben), kan het VoIP systeem zonder een dubbele opzet (of zelfs compleet zonder 'nodes'[3]).

De insteek (en het idee achter NLnode) is support voor:

  • (externe) sip addressen: sip:info@ackspace.nl en <user>@ackspace.nl (deelnemernummer)
  • SpacePhone
  • Teleconferenties (met eventueel audiostream van een congres of kamp)
  • eventueel een externe set telefoonnummers (parallel aan de 10x-reeks: 15x, zie ook dialplan)

Deze punten vereisen een public IP-adres en iets van data doorvoer (congress/camp streams)

Ook wil ik de interne VoIP bruikbaar maken (SpaceNode) voor de volgende dingen:

  • lagere latency (vooral tussen lokale telefoons)
  • audiograpjes toevoegen (Radio Bergeijk, flutlight, etc)
  • werking ook zonder NLnode
  • werking ook zonder internet (lokaal)
  • alsnog bereikbaarheid (van extensies) van buitenaf[4]

Vooral het laatste punt heeft wat extra aandacht nodig; deelnemernummers kunnen niet inloggen op de SpaceNode (ze verbinden van thuis of onderweg). Het moet (in mijn ogen) mogelijk zijn voor een deelnemer om elk nummer te kunnen bellen, ook de interne extensies (als een soort snelkiesnummer), bijvoorbeeld; een deelnemer zoekt iets in de stackspace, een andere deelnemer weet de plek en kan direct de stackspace (103) bellen. Hiermee moeten de interne nummers ook beschikbaar zijn op de NLnode.

Mijn keuze is om gebruik te maken van een 'local gateway' op de nummers die bedoeld zijn voor de SpaceNode (10x); FreeSWITCH zorgt ervoor dat de gateway verbindt als een telefoon ingelogged is[5]. Het interne dialplan moet er dan voor zorgen dat eerst het interne nummer geprobeerd wordt (werking zonder internet), en indien deze offline is, via de NLnode probeert te bellen. Dit is ook de bedoeling voor de offsite nummers (15x). Het bijkomstig gevolg is dat deze extensies zowel op de NLnode als op de SpaceNode beschikbaar zijn, en de call setup kiest dan zelf het pad van de minste weerstand.

trunks/gateways

De opzet is simpel; de aantallen en soorten gateways (trunks) kunnen in de toekomst wijzigen, maar twee scenario's zullen standhouden:

  • NLnode is voornamelijk bedoeld voor inkomende trunks (vast nummer, sip domeinen)
  • SpaceNode is voornamelijk bedoeld voor uitgaande trunks (los van de local gateways om inkomende externe gesprekken op af te leveren).

De keuze om een trunk als incoming, outgoing, beide of backup te gebruiken is volledig arbitrair. Om ervoor te zorgen dat we bereikbaar zijn en los hiervan toch naar buiten moeten kunnen bellen is de opzet om uitgaande trunks direct te koppelen aan de SpaceNode. Eventueel kunnen we de inkomende trunk eveneens koppelen (vertraagd) aan de SpaceNode, zodat het vaste nummer toch bereikbaar is als de NLnode uitvalt.


referenties

  1. SpaceNode heeft uitgaande trunks naar VoIPbuster (voor vast) en InterVoip (voor mobiel) welke de NLnode omzeilt tegen latency en SPoF
  2. De bedoeling is om de configuratie in github (of vergelijkbaar) te hebben en te kunnen deployen met een 'password config' en single command execution.
  3. Inloggen met toestel naar BudgetPhone (aanbieder van ons telefoonnummer) is mogelijk, maar dat is dan zonder space state indicatie, doorkiesnummers, conferenties, gebruikersnummers en audio-grapjes
  4. Dit kan zoveel betekenen als: iemand belt ACKspace en de extensie gaat over, maar ook: deelnemer of offsite locatie belt met intern nummer
  5. Zie ook https://freeswitch.org/confluence/display/FREESWITCH/Gateways+Configuration#GatewaysConfiguration-Clarification en met name de extensie "brian"