2#ifndef __RADIUSDigestAuthenticator_h
3#define __RADIUSDigestAuthenticator_h
11#ifdef USE_RADIUS_CLIENT
13#ifdef RESIP_HAVE_RADCLI
14#include <radcli/radcli.h>
17#ifdef RESIP_HAVE_FREERADIUS_CLIENT
18#include <freeradius-client.h>
21#include <radiusclient-ng.h>
28#define RADIUS_CONFIG "/etc/radiusclient/radiusclient.conf"
29#define RADIUS_MSG_SIZE 4096
30#define RADIUS_SIP_PORT 5060
63#define A_SERVICE_TYPE 1
64#define A_CALLED_STATION_ID 2
65#define A_CALLING_STATION_ID 3
66#define A_ACCT_STATUS_TYPE 4
67#define A_ACCT_SESSION_ID 5
69#define A_SIP_RESPONSE_CODE 7
72#define A_SIP_FROM_TAG 10
73#define A_SIP_TRANSLATED_REQUEST_URI 11
74#define A_DIGEST_RESPONSE 12
75#define A_DIGEST_ATTRIBUTES 13
76#define A_SIP_URI_USER 14
78#define A_DIGEST_REALM 16
79#define A_DIGEST_NONCE 17
80#define A_DIGEST_METHOD 18
81#define A_DIGEST_URI 19
82#define A_DIGEST_QOP 20
83#define A_DIGEST_ALGORITHM 21
84#define A_DIGEST_BODY_DIGEST 22
85#define A_DIGEST_CNONCE 23
86#define A_DIGEST_NONCE_COUNT 24
87#define A_DIGEST_USER_NAME 25
89#define A_CISCO_AVPAIR 27
91#define A_VM_LANGUAGE 29
94#define V_STATUS_START 0
95#define V_STATUS_STOP 1
96#define V_STATUS_FAILED 2
98#define V_EMERGENCY_CALL 4
99#define V_SIP_SESSION 5
100#define V_GROUP_CHECK 6
110 virtual ~RADIUSDigestAuthListener();
112 virtual void onSuccess(
const resip::Data& rpid) = 0;
113 virtual void onAccessDenied() = 0;
114 virtual void onError() = 0;
120 TestRADIUSDigestAuthListener();
122 void onAccessDenied();
145 RADIUSDigestAuthListener *listener;
149 static void init(
const char *radiusConfigFile);
152 RADIUSDigestAuthenticator(
const resip::Data& username,
159 RADIUSDigestAuthListener *listener);
162 RADIUSDigestAuthenticator(
const resip::Data& username,
172 RADIUSDigestAuthListener *listener);
175 RADIUSDigestAuthenticator(
const resip::Data& username,
186 RADIUSDigestAuthListener *listener);
188 virtual ~RADIUSDigestAuthenticator();
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
A wrapper class to create and spawn a thread.
This file is used to handle compatibility fixes/tweaks so reSIProcate can function on multiple platfo...
dcm! – add UnusedChecking(_enum) below;