Кіріспе

Diameter Credit Control Application – диаметрлік қосымшаны қолданатын желілік протокол, ол әртүрлі соңғы пайдаланушылар қызметтері үшін нақты уақыт режимінде несиелік бақылауды жүзеге асыруға арналған. Бұл IETF стандарты, алғаш рет RFC 4006 құжатында сипатталған және RFC 8506 құжатында жаңартылған.

Сессияға негізделген ақы төлеу

Сессиялық негіздегі кредиттік бақылау процесі бірнеше тексерулерді пайдаланады, олар бастапқы, аралық және соңғы тексерулерді қамтуы мүмкін. Тексеру кезінде пайдаланушы шотынан қаражат резервтеледі. Сессиялық төлемақы көбінесе зарядталатын бірліктер үздіксіз тұтынылатын жағдайларда қолданылады, мысалы, байттарды жүктеу/жолдау үшін төлемақы.

Оқиғаға негізделген алым

Оқиғаға негізделген несиелік бақылау процесі төлем механизмі ретінде оқиғаларды пайдаланады. Оқиғаға негізделген төлем әдетте бірліктер үздіріссіз қолданылмаған жағдайларда қолданылады, мысалы, пайдаланушы MMS жібергенде.

Командалық кодтар

Диаметр арқылы кредиттік бақылауды қолдау үшін екі Диаметр хабары бар: CCR (Кредиттік бақылау сұранысы) және CCA (Кредиттік бақылау жауабы). CCR/CCA командасының коды RFC 4006 стандартында көрсетілгендей 272 болып табылады.

Квота басқару үшін клиент серверге бірліктерді сұрап және тұтынуды хабарлап CCR жібереді. Сервер бірліктерді береді және пайдаланушыдан төлем қабылдайды. Қарапайым дебет/кредит операциялары үшін клиент серверден пайдаланушының шотын кредиттеу/дебеттеуді сұрап CCR жібереді. Баға туралы сұраныс үшін клиент серверден бірлік бағасын сұрайды, ал сервер бағамен жауап береді.

Хабар ағындары

Хабар ағындары, әдетте, бірліктерді сұраған бақылау нүктесі және оларды сервер бергенімен басқарылады. Хабарламаны NASREQ (RFC4005) сияқты басқа Diameter қолданбалары да құрауы мүмкін, мысалы, уақыт/пайдалану шектеулі сессиялар үшін. Төмендегі диаграмма квоталар арқылы сессия үшін хабарлама ағынының қарапайымдалған нұсқасын көрсетеді. Клиент серверден 10 бірлікті сұраумен бастайды. Сервер пайдаланушының/абоненттің жеткілікті қаражаты барын тексереді. Бұл мысалда сервер клиентке сұралған барлық бірлікті береді. Егер абоненттің балансы жеткіліксіз болса, сервер одан аз бірлікті бере алатын немесе тіпті бас тарта алатын еді. Абоненттік сессия берілген бірліктерді пайдаланғаннан кейін немесе одан бұрын, клиент серверге қанша бірлік пайдаланылғанын және осы жолы қанша бірлік беруді қалайтынын хабарлап, жаңарту жібереді. Клиентке сервермен байланыс кезінде абоненттік сессияны тоқтатуды болдырмау үшін, алдыңғы берілген бірліктер толық пайдаланылмастан бұрын бірліктерді сұрауға рұқсат етіледі. Мысалда клиент, бұрын берілген 10 бірліктің 7-сі пайдаланылған кезде сұрау жібереді; және тағы 10 бірлік сұрайды, оларды сервер береді. Сервер абоненттің балансын төмендету үшін пайдаланылған бірліктер санын пайдалана алады (бірліктерді беру олардың пайдаланылатынын білдірмейді. Пайдаланылған бірліктер AVP-да көрсетілген нақты пайдалану). Сервер берілген бірліктің қанша уақытқа дейін жарамды екенін клиентке хабарлай алады, онда клиент берілген уақыт аяқталғанда жаңарту жіберуі керек. Сессия кезінде көптеген жаңарту хабарламалары болуы мүмкін. Соңында абонент сессияны аяқтайды, ал клиент соңғы пайдаланылған бірліктер туралы ақпаратты қамтитын серверге тоқтату туралы хабарлама жібереді. Сервер осы тоқтату хабарламасын пайдаланып, арнайы резервтерді тазарта алады. Егер абонент сессияны өзі тоқтатпаса, бірақ балансын толық жұмсап қойса, онда сервер жаңарту хабарламасына ертерек бас тартумен жауап беріп, клиентке/бақылау нүктесіне трафикті қайта бағыттауды ұсынуы мүмкін (бұл әдетте тек HTTP/WAP трафигі үшін ғана мағыналы).