For OpenSIPS 3.x, set "client_protocol" to 1.0 in the json configuration
under the "sessions" section. The current default protocol version is 2.0.
Addresses #4339
The rpcclient constructor could not see the centralized
Encoding flag because it didn't have the necessary build
constraints. Added the constraints in lib_test.go files
where it wasn't alone. In all the other cases, it was
moved to the first file where it was needed.
Will accept utils.CGREvent instead of utils.AttrDisconnectSession as a
parameter.
SessionSv1.ForceDisconnect will take utils.SessionFilterWithEvent as a
parameter instead of *utils.SessionFilter.
Added possibility to pass DisconnectCause as an Event parameter.
The forceSTerminate that's called when the session timer expires will
have DisconnectCause 'SESSION_TIMEOUT' instead of 'FORCED_DISCONNECT'.
Added Dispatcher methods for AlterSessions.
Event will be merged with EventStart of the session before being sent to
AgentV1DisconnectSession.
Will now support two extra parameters: address and codec. For *internal
connections, the birpc.Service object will be retrieved from rpcParamsMap
from utils. Supported codecs: <*gob|*json|*http_jsonrpc> (ingored for
*internal address).
Action does not bother with setting defaults anymore, lets the API
handle them.
Improve action comments.
Add unit tests for the action. UnregisterRpcParams' implementation was
required.
Updated *alter_sessions action tariffplan for radius coa integration test
to include address and codec.
Some birpc clients that are set up in integration tests were still registering
a SessionSv1 object. Updated them to register an AgentV1 object instead.
The one from sessions takes an additional event alongside the
SessionFilter, while the one from agents will accept a CGREvent
instead of a simple originID string
The additional event sent to SessionSv1ReAuthorize will be merged
with the EventStart event from the matched session and can be used
when building server initiated requests from the *req map. The
initial packet which was initially inside *req, will be moved to
the *oreq ExtraDP (stands for original request).
Updated radigo library to latest version.
Updated RadiusAgent to satisfy the birpc client interface.
Added *radDAdiscMsg OrderedNavigableMap type field within AgentRequest.
This one is similar to *diamreq, as it is used for building RADIUS
server-initiated Disconnect Requests.
radReplyAppendAttributes: refactored to reflect that it can now be
used to also append attributes to request packets, not only reply.
Added bidirectional support for session related RadiusAgent methods.
For Dynamic Authorization to be possible, a new field was added within RadiusAgent
that holds dicts and secrets only for the clients that support it. They are used
to create the DA Client sending Disconnect Requests.
Added a new cache partition to store Access-Request packets with the purpose
of using them to build the Disconnect Requests. They are identified by sessionID.
It defaults to the value of 'Acct-Session-id'.
Added a predefined '*dmr' template as well as a 'dmr_template' config option within
the 'radius_agent' config section. This will map to a custom or to the predefined
template and will be used to build the Disconnect Request. By default, it doesn't
point to any template (this also means that the Access-Request packets will not be
cached).
Another option added to 'radius_agent' is 'client_da_addresses', which lists the
RADIUS clients supporting Dynamic Authorization. The key represents the host of
the client, while the value represents the address to which we will send the
Disconnect Request.
Added integration test.