diff options
Diffstat (limited to 'lib/diameter/examples/client.erl')
-rw-r--r-- | lib/diameter/examples/client.erl | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/lib/diameter/examples/client.erl b/lib/diameter/examples/client.erl deleted file mode 100644 index 36a77dd524..0000000000 --- a/lib/diameter/examples/client.erl +++ /dev/null @@ -1,125 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2010-2011. All Rights Reserved. -%% -%% The contents of this file are subject to the Erlang Public License, -%% Version 1.1, (the "License"); you may not use this file except in -%% compliance with the License. You should have received a copy of the -%% Erlang Public License along with this software. If not, it can be -%% retrieved online at http://www.erlang.org/. -%% -%% Software distributed under the License is distributed on an "AS IS" -%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%% the License for the specific language governing rights and limitations -%% under the License. -%% -%% %CopyrightEnd% -%% - -%% -%% An example Diameter client that can sends base protocol RAR -%% requests to a connected peer. -%% -%% The simplest usage is as follows this to connect to a server -%% listening on the default port on the local host, assuming diameter -%% is already started (eg. diameter:start()). -%% -%% client:start(). -%% client:connect(tcp). -%% client:call(). -%% -%% The first call starts the a service with the default name of -%% ?MODULE, the second defines a connecting transport that results in -%% a connection to the peer (if it's listening), the third sends it a -%% RAR and returns the answer. -%% - --module(client). - --include_lib("diameter/include/diameter.hrl"). --include_lib("diameter/src/app/diameter_gen_base_rfc3588.hrl"). - --export([start/1, %% start a service - connect/2, %% add a connecting transport - call/1, %% send using the record encoding - cast/1, %% send using the list encoding and detached - stop/1]). %% stop a service -%% A real application would typically choose an encoding and whether -%% they want the call to return the answer or not. Sending with -%% both the record and list encoding here, one detached and one not, -%% is just for demonstration purposes. - -%% Convenience functions using the default service name, ?SVC_NAME. --export([start/0, - connect/1, - stop/0, - call/0, - cast/0]). - --define(SVC_NAME, ?MODULE). --define(APP_ALIAS, ?MODULE). --define(CALLBACK_MOD, client_cb). - --define(L, atom_to_list). - -%% The service configuration. As in the server example, a client -%% supporting multiple Diameter applications may or may not want to -%% configure a common callback module on all applications. --define(SERVICE(Name), [{'Origin-Host', ?L(Name) ++ ".example.com"}, - {'Origin-Realm', "example.com"}, - {'Vendor-Id', 0}, - {'Product-Name', "Client"}, - {'Auth-Application-Id', [?DIAMETER_APP_ID_COMMON]}, - {application, [{alias, ?APP_ALIAS}, - {dictionary, ?DIAMETER_DICT_COMMON}, - {module, ?CALLBACK_MOD}]}]). - -%% start/1 - -start(Name) - when is_atom(Name) -> - peer:start(Name, ?SERVICE(Name)). - -start() -> - start(?SVC_NAME). - -%% connect/2 - -connect(Name, T) -> - peer:connect(Name, T). - -connect(T) -> - connect(?SVC_NAME, T). - -%% call/1 - -call(Name) -> - SId = diameter:session_id(?L(Name)), - RAR = #diameter_base_RAR{'Session-Id' = SId, - 'Auth-Application-Id' = 0, - 'Re-Auth-Request-Type' = 0}, - diameter:call(Name, ?APP_ALIAS, RAR, []). - -call() -> - call(?SVC_NAME). - -%% cast/1 - -cast(Name) -> - SId = diameter:session_id(?L(Name)), - RAR = ['RAR', {'Session-Id', SId}, - {'Auth-Application-Id', 0}, - {'Re-Auth-Request-Type', 1}], - diameter:call(Name, ?APP_ALIAS, RAR, [detach]). - -cast() -> - cast(?SVC_NAME). - -%% stop/1 - -stop(Name) -> - peer:stop(Name). - -stop() -> - stop(?SVC_NAME). |