Commit Graph

972 Commits

Author SHA1 Message Date
gezimbll
8c88f9d961 added integration tests for janus_agent 2024-05-05 14:26:45 +02:00
DanB
6d9e151933 Updating janusgo, AAA basic implementation for janus_agent 2024-04-30 11:26:58 +02:00
DanB
bde44ccfd6 Refactoring JanusAgent to work with echotest plugin 2024-04-28 19:33:03 +02:00
gezimbll
82b0e02788 integration tests for janus agent 2024-04-26 17:02:18 +02:00
DanB
d8059908eb JanusAgent with janusgo dependency and start/shutdown methods 2024-04-20 21:12:51 +02:00
ionutboangiu
546ef39d54 Revise agents *uch unit test
- increase margin of error by 1ms
- in case of failure, retrieve the expiry time and log it along the
current time. Makes troubleshooting easier in the future.
2024-04-20 12:21:57 +02:00
ionutboangiu
04bff19ced Optimize AgentRequest test (2s->0.03s)
Lowering the cfg cache TTL to 5ms instead of 1s was enough to get
consistent results.
2024-04-11 18:23:57 +02:00
DanB
bddeaff5dd Implementation of janusHTTPjsonDP 2024-04-09 20:33:56 +02:00
DanB
8db91ca479 Basic service infrastructure for JanusAgent 2024-04-08 20:09:06 +02:00
ionutboangiu
3062113a61 Make go vet pass
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.
2024-04-08 13:14:02 +02:00
ionutboangiu
16eb745f00 Centralize test flags in utils for shared use across tests 2024-04-08 13:14:02 +02:00
DanB
37388c70f3 Initial JanusAgent struct 2024-04-04 16:00:05 +02:00
ionutboangiu
5116a23f5b Set ChargerProfile through TPs instead of API in tests
Only for agents/ers tests. Done to prevent cyclic imports when
adding ers APIs to apier package.

In case of v2.AttrSetAccount, use a literal struct instead.
2024-04-04 12:31:18 +03:00
ionutboangiu
ca66480c52 Add reply_timeout field for FS event socket conns 2024-03-22 15:12:04 +01:00
ionutboangiu
e987139e9c Revert to supporting *asm for ThresholdS acc publish 2024-03-22 15:12:04 +01:00
DanB
a7653d942a Updating FSock module to improve thread safety 2024-03-17 14:30:13 +01:00
ionutboangiu
bf939a47ac Rename chan_delimiter cfg field to active_session_delimiter 2024-03-11 16:59:31 +01:00
arberkatellari
7c04cf8c61 Add coverage tests for radius agent 2024-03-11 16:41:46 +01:00
ionutboangiu
51a3c933d7 Add chan_delimiter option within freeswitch_agent section
Used for 'show_channels' requests and responses.
2024-03-11 16:39:45 +01:00
arberkatellari
f7cbec3b41 Update kamevapi to new version 2024-03-08 16:39:44 +01:00
ionutboangiu
28e53cecc9 Add requests_cache_key field to radagent cfg 2024-03-07 17:20:23 +01:00
ionutboangiu
03eff44767 Cache RADIUS packets during accounting instead of auth 2024-03-07 17:20:23 +01:00
ionutboangiu
c9b6c1fbb7 Add support for sending *dmr template via APIOpts 2024-03-07 17:20:23 +01:00
ionutboangiu
ee98dbe0ca Update AgentV1DisconnectSession api signature
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.
2024-03-07 17:20:23 +01:00
ionutboangiu
98265a122a Refactor function names and error msgs related to AlterSessions 2024-03-06 16:15:36 +01:00
ionutboangiu
ca6a9440f7 Update client_da_addresses structure
Supports configuring transport (tcp/udp), host, port and
flags (only *log for now).
2024-03-06 16:15:36 +01:00
ionutboangiu
b580e09a00 Add sanity checks for radius templates 2024-03-04 19:17:31 +01:00
ionutboangiu
0aea8ac641 Revert "Move CGREvent from utils to engine"
This reverts commit 02195c47ed.
2024-03-04 09:49:15 +01:00
ionutboangiu
02195c47ed Move CGREvent from utils to engine 2024-02-27 17:16:57 +01:00
ionutboangiu
a9079154da Add possibility to pass conn cfg to actions 2024-02-27 16:28:48 +01:00
ionutboangiu
1f7e0b33a2 Update *alter_sessions action
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.
2024-02-27 16:28:48 +01:00
DanB
675d9e25ce Updating Radius CoA integration test to make use of the *alter_sessions action 2024-02-21 20:33:06 +01:00
ionutboangiu
c67ec00baa Implement *alter_sessions action 2024-02-21 18:43:53 +01:00
ionutboangiu
838832c2b2 Rename agents API object: SessionSv1 to AgentV1 2024-02-21 18:43:53 +01:00
ionutboangiu
f9d1c0f0e1 Refactor ReAuthorize to AlterSessions 2024-02-21 18:43:53 +01:00
DanB
ec9b95088f Updating radius_coa integration test to use thresholds for generating SessionSv1.ReAuthorize 2024-02-20 20:40:10 +01:00
DanB
556060817c Dynamic templates for Radius CoA out of APIOpts 2024-02-20 16:21:13 +01:00
ionutboangiu
d8ad760dbb Update both ReAuthorize API signatures
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).
2024-02-14 10:15:51 +01:00
ionutboangiu
7129d349a1 Merge CoA into ReAuthorize logic
Also updated the integration test.
2024-02-08 13:14:14 +01:00
ionutboangiu
02c8ed11c1 Implement support for RADIUS CoA 2024-02-07 18:28:17 +01:00
ionutboangiu
9991b29cae Implement DisconnectSession API for RADIUS Agent
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.
2024-02-07 18:28:17 +01:00
arberkatellari
8781b968ac Remove unnecessary LazySanityCheck 2023-11-09 09:37:34 +01:00
arberkatellari
ec8058cd29 Adapt test to new RadiusAgent changes 2023-11-09 09:37:34 +01:00
Varun Dhand
5e513d130d fix: typo in rjreader.go 2023-11-09 09:37:34 +01:00
gezimbll
c2dacc42c1 Removed warnings from go staticcheck 2023-11-08 17:10:13 +01:00
gezimbll
5a85c119c8 Replacing IsSliceMember ,CloneStringSlice and SliceStringEqual with slices package equivalent functions 2023-11-01 21:52:50 +01:00
arberkatellari
c4e0d92a2a Make DNS TLS error log more suggestive 2023-10-26 18:02:14 +02:00
ionutboangiu
6c41ebe0de Add sanity check to prevent xml reader panic
HierarchyPath parser now returns nil when
the path is empty (instead of a string slice with one
EmptyString element).

If the prefix is set to true, when calling the AsString
method on a nil HierarchyPath, only the separator will
be returned. This avoids a nil expr error coming from
the xmlquery library.

Use the Query and QueryAll functions from the xmlquery
package to be able to handle the errors ourselves and
avoid panics.

Remove config default value for xml_root_path. The field
will remain commented in config_defaults for reference.

Add tests for HierarchyPath.AsString function.

Add comments for XmlProvider and xml_root_path opt.
2023-10-16 13:18:12 +03:00
arberkatellari
47e75fab13 Update radigo, add multiple folder functionality 2023-10-11 11:18:32 +02:00
arberkatellari
4a812a294b Correct addition of vendor at radReplyAppendAttributes & IT test for it 2023-10-05 17:24:08 +02:00