# Session Border Controller

Een Session Border Controller is een apparaat dat gebruikt wordt in sommige VoIP-netwerken om controle te krijgen over de VoIP-signalering en in de normale gevallen ook over de mediastromen die nodig zijn voor het opzetten van een telefoongesprek, het voeren van een telefoongesprek en het afbreken van een telefoongesprek.
In de context van VoIP refereert het woord "Session" in Session Border Controller aan een telefoongesprek. Elk telefoongesprek bestaat uit één of meerdere signaleringsstromen die het gesprek bepalen, en één of meerdere mediastromen die de audio of video of andere data bevatten. Daarnaast wordt er informatie verstuurd over hoe die informatie door het netwerk behoort te stromen (en stroomt). Deze stromen bij elkaar vormen samen een "Session", en het is de taak van een Session Border Controller om invloed uit te oefenen over de verschillende datastromen die in één of meer sessies samenkomen.
Het woord "Border" in Session Border Controller refereert aan een demarcatiepunt tussen één gedeelte van een netwerk en een ander gedeelte van een netwerk. Om een simpel voorbeeld te geven, op de rand van een bedrijfsnetwerk, markeert een firewall de grens tussen het lokale netwerk (binnenkant van het bedrijfnetwerk) en de rest van het internet (buitenkant van het bedrijfsnetwerk). Een moeilijker voorbeeld is dat van een groot bedrijf waar verschillende afdelingen verschillende beveiligingseisen hebben voor verschillende of alle locaties en misschien wel voor verschillende data-types. In dit geval zijn routers met een filterfunctie, of misschien wel andere netwerkelementen, verantwoordelijk voor het controleren van de verschillende datastromen. Het doel van een Session Border Controller is om de netwerk-administratoren te helpen met het managen van de "session-data" over de verschillende grensgebieden.
Het woord "Controller" in Session Border Controller refereert aan de invloed die Session Border Controllers hebben op de data-stromen die bestaan uit Sessions, als ze over de grens gaan van het ene gedeelte van een netwerk naar een ander gedeelte van een netwerk. Aanvullend zorgen Session Border Controllers vaak ook voor meetpunten, toegangscontrole, en dataconversie faciliteiten voor de telefoongesprekken waar ze de controle over hebben.

## Hoe werkt een Session Border Controller in theorie?

Session Border Controllers worden geplaatst tussen de signalerings- en/of mediapaden die lopen tussen een bellende en gebelde partij in een VoIP telefoongesprek, voornamelijk tussen telefoongesprekken die gebruikmaken van SIP, H.323, en/of MGCP signalerings protocollen.
In sommige gevallen acteert de SBC alsof hij de gebelde VoIP telefoon is en plaatst daarna een tweede gesprek naar de daadwerkelijk gebelde partij. In technische termen, als deze werkwijze gebruikt wordt in het SIP-protocol, is dit de definitie van een Back-to-Back User-Agent, oftewel B2BUA. Het effect van dit gedrag is dat niet alleen het signaleringsverkeer, maar ook het mediaverkeer (voice, video, etc.) gecontroleerd kan worden door de SBC. SBC's maken het ook mogelijk om mediaverkeer te herrouteren naar volledig andere elementen ergens anders in het netwerk, misschien om telefoongesprekken op te nemem, misschien om music on hold te genereren of andere media gerelateerde mogelijkheden. Zonder een SBC zal het media verkeer rechtstreeks tussen de VoIP telefoons lopen, zonder dat de in het netwerk aanwezige signaleringselementen invloed of controle hebben over het pad.
Maar in andere gevallen kan de SBC simpele modificaties doen van de call control (signalerings) data die bij elk telefoongesprek hoort, om daarmee misschien het aantal gelijktijdige gesprekken te limiteren (CAC Call Admission Control), of het veranderen van de codec of de volgorde van de codecs (Transcoding en/of Transrating) en ga zo maar door. Uiteindelijk staan SBC's hun eigenaren toe om controle te hebben over alle telefoongesprekken die mogelijk over hun netwerk geplaatst worden en/of op hun netwerk ontstaan en/of getermineerd worden, en om protocollen te repareren of te veranderen en ook de inhoud van de protocollen te veranderen of te repareren om zo tot een betere samenwerking tussen de protocollen te komen, en ook om sommige van de problemen te verhelpen die veroorzaakt worden door firewalls en NAT in VoIP telefoongesprekken.
SBC's worden vaak door bedrijven gebruikt naast firewalls om te zorgen dat Voice over IP telefoongesprekken worden toegestaan van en naar een beschermd bedrijfsnetwerk. VoIP Service Providers gebruiken SBC's om het gebruik van VoIP-protocollen die via privé-netwerken met internetaansluitingen die NAT gebruiken komen toe te staan, en om sterke veiligheidsmaatregelen te implementeren die nodig zijn voor het leveren en onderhouden van een hoge kwaliteit in het netwerk. SBC's worden ook gebruikt om de functie van Application-level gateways te vervullen.
Aanvullend kunnen sommige SBC's het toestaan dat VoIP telefoongesprekken worden opgezet tussen twee telefoons die gebruikmaken van verschillende VoIP protocollen (SIP, H.323, Megaco/MGCP, etc.) maar ook kunnen ze transcoding van de mediastromen doen die verschillende codecs gebruiken in één en hetzelfde telefoongesprek. Veel van de SBC's zorgen ook voor firewall features voor VoIP verkeer (Denial-of-Service-bescherming, gespreksfiltering, bandbreedtemanagement, etc.).
In tegenstelling tot de conventionele telefoon-systemen (TDM) hoeven de OSI lagen van een op VoIP gebaseerd netwerk niet per se via één bedrijf geleverd te worden. Een VoIP gebruiker mag een internetaansluiting kopen via de ene Internet Service Provider en hun VoIP service van een tweede Internet Service Provider.
Vanuit een IMS-architectuur perspectief is de SBC een integratie van de P-CSCF (Proxy - Call Session Control Function) en de C-BGF (Core - Border Gateway Function) functies aan de Access kant, en de I-BCF (Interrogating - Border Control Function), IWF (InterWorking Function), en I-BGF (Interrogating - Border Gateway Function) functies aan de Peering kant. Sommige SBC's kunnen gebruikt worden als zijnde "decomposed", dit betekent dat de signaleringsfuncties op een separaat hardwareplatform zitten dan de media relay functies - in andere woorden de P-CSCF kan gescheiden zijn van de C-BGF, of de I-BCF/IWF kan gescheiden zijn van de I-BGF functies fysiek. Een proprietary of op een standaard gebaseerd protocol, zoals het H.248 Ia profiel, kan worden gebruikt door het signaleringsplatform om de media onder controle te houden.

## End Point Call Control versus Service Provider Call Control

Het concept van een SBC is controversieel ten opzichte van voorstanders van end-to-end systemen en peer-to-peer netwerken als de volgende aspecten in ogenschouw worden genomen:
* SBC's kunnen de lengte van het mediapad behoorlijk verlengen (de afgelegde weg van mediapakketjes door het netwerk heen). En een lang mediapad is niet aan te bevelen, omdat het de delay van voice pakketjes in de hand werkt (en helemaal als de SBC transcoding gaat doen in de call) maar ook de mogelijkheid van packet-loss in de hand werken. Beide effecten zorgen voor een slechte voice/video-kwaliteit. Maar soms zijn er obstakels in de communicatie zoals firewalls tussen de bellende en gebelde partij, en in deze gevallen kunnen SBC's gebruikt worden om mediastromen te leiden naar kwalitatief acceptabele paden tussen de bellende en gebelde partij, tegenover het feit dat zonder SBC de gesprekken worden geblokkeerd. Sommige SBC's kunnen detecteren of de gespreksuiteinden zich in hetzelfde subnetwerk bevinden en kunnen dan de controle over de mediastroom los laten waardoor de mediastroom zich alleen tussen de telefoons beweegt, dit noemt men anti-tromboning. Ook kunnen sommige SBC's een mediapad creëren waar het normaal gesproken onmogelijk is om een mediapad op te bouwen (bijvoorbeeld vanwege firewalls en andere veiligheidsapparatuur tussen de twee eindpunten). En als laatste, voor specifieke Voice over IP networkmodellen waar de Service Provider het netwerk in eigendom heeft, kunnen SBC's zelfs het mediapad verkleinen door middel van het kiezen van een kortere route voor het mediapad.
* SBC's zorgen er meestal voor dat de informatieflow tussen de eindpunten beperkt wordt, wat weer de end-to-end transparantie beperkt. VoIP-telefoons kunnen geen nieuwe protocol-features gebruiken als de SBC ze nog niet kent en ondersteunt. Maar sommige SBC's kunnen beter omgaan met nieuwe protocol-features. End-to-End encryptie kan niet gebruikt worden als de SBC de sleutel niet heeft, alhoewel sommige porties van een versleutelde informatiestroom in een versleuteld gesprek helemaal niet versleuteld zijn, en deze porties kunnen gebruikt en beïnvloed worden door een SBC. Sommige SBC's hebben de mogelijkheid om de versleutelfunctie van andere netwerk-elementen over te nemen door zelf deze functies te termineren zoals SIP-TLS, IPsec, en/of SRTP. Verder kunnen sommige SBC's telefoongesprekken behandelen en andere soorten SIP-scenario's, door middel van specifieke protocol-"normalisaties" en/of protocol-"reparaties".
* In sommige gevallen kan een VoIP-telefoon gebruikmaken van far-end of hosted NAT-traversal zonder de hulp van SBC's, mits deze VoIP-telefoon protocollen als STUN, TURN, ICE, of Universal Plug en Play (UPnP) ondersteunt. Echter, protocollen zoals STUN, TURN, ICE en andere hebben geen wijd verspreide vormen van implementaties in netwerken en de complexiteit van deze protocollen kan een probleem vormen.
Het kernpunt van de controversie rondom SBC's bestaat uit de vraag of de "call-control" in handen moet blijven van de twee eindpunten (in gebruik door de eigenaars), of dat de "call-control" gedeeld moet worden met de netwerk-elementen die in eigendom zijn van de organisaties die de netwerken managen, die gebruikt worden om het gesprek tussen de twee eindpunten tot stand te laten komen. Als voorbeeld: moet de "call-control" in handen blijven van Alice en Bob (de twee bellers), of moet de "call-control" gedeeld worden met alle service providers van alle IP-netwerken die gebruikt worden om de VoIP-telefoons van Alice en Bob met elkaar te verbinden? Het debat hierover is van nature hard en bijna religieus. Diegenen die alleen maar controle willen in het eindpunt, zijn vreselijk gefrustreerd over de verschillende realiteiten in de hedendaagse netwerken, zoals firewalls, filtering en throttling, en het gebrek aan de adoptie van een universeel VoIP-equivalent van een telefoonnummer (TDM). Dit wordt ook wel de Smart End Point Strategie genoemd. Diegenen die controle willen in het midden van de gebelde eindpunten, zijn diegene die eigenlijk een VoIP-kopie proberen te maken van de oude-stijl telefoniesystemen (TDM), waar vrijwel alle "call-control" bij de Service Provider ligt. Hier zijn twee strategieën mogelijk, de eerste is de Smart Border Strategie en die gaat uit van een Statefull Border en een Stateless Core netwerk (dit resulteert in een meer schaalbaar Core netwerk en een Intelligente Edge), de tweede is de Smart Core strategie en hierbij gaat het om een Stateless Border en een Statefull Core netwerk (dit resulteert in meer intelligentie in het core netwerk maar ook minder schaalbaarheid in het core netwerk). Tot dusver is gebleken dat deze verschillende manieren van zichtwijzen niet met elkaar kunnen worden gecombineerd.
Opmerking: Het kan een eis zijn dat er een Third party "call-control" element noodzakelijk is, zoals een SBC, die tussen de eindpunten gezet wordt om toch te voorzien in lokale Lawfull Intercept (telefoon tappen) eisen die gesteld worden door de lokale autoriteiten.

## Lawful Interceptie en CALEA

Een SBC kan ervoor zorgen dat de session media (normaal RTP) en de signalering (normaal SIP) door een TAP service gebruikt kunnen worden, welke door de Service Providers weer gebruikt kunnen worden om aan de officiële aanvragen van Lawful Interceptie door de lokale regering te voldoen door middel van de interceptie van netwerk sessies. Standaards voor de Interceptie van zulke services worden aangeleverd door ATIS, TIA, CableLabs en ETSI, onder andere.