Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(phone).
- -export([start/0]).
- -export([idle/0]).
- -export([call/2]).
- -export([off_hook/1]).
- -export([off_hook/2]).
- -export([on_hook/1]).
- -export([billing/1]).
- -export([connected/1]).
- -export([ringing/1]).
- -export([start_tone/0]).
- -export([start_ringing/0]).
- -export([stop_ringing/0]).
- -export([billingCreate/0]).
- -export([billingList/0]).
- -export([billingAdd/2]).
- call(Pid, Number) ->
- Pid ! {Number, incoming}.
- off_hook(Pid) ->
- Pid ! off_hook.
- off_hook(Pid, Number) ->
- Pid ! {Number, off_hook}.
- on_hook(Pid) ->
- Pid ! on_hook.
- billing(Pid) ->
- Pid ! billing.
- start() ->
- billingCreate(),
- spawn(phone, idle, []).
- idle() ->
- io:fwrite("Telefon czeka na polaczenie!~n", []),
- receive
- {Number, incoming} ->
- start_ringing(),
- ringing(Number);
- off_hook ->
- start_tone(),
- dial();
- billing ->
- billingList(),
- idle()
- end.
- ringing(Number) ->
- io:fwrite("Oczekuje na odebranie!~n", []),
- receive
- {Number, other_on_hook} ->
- stop_ringing(),
- idle();
- {Number, off_hook} ->
- stop_ringing(),
- connected(Number)
- end.
- connected(Number) ->
- billingAdd(Number,"Rozpoczecie rozmowy"),
- io:fwrite("Polaczono ~n", []),
- receive
- on_hook->
- billingAdd(Number,"Zakonczenie rozmowy"),
- idle();
- _ ->
- connected(Number)
- end.
- dial() ->
- io:format("Tryb laczenia...~n"),
- receive
- on_hook ->
- idle();
- {Number, off_hook} ->
- connected(Number)
- end.
- start_tone() ->
- io:fwrite("Laczenie...~n", []).
- start_ringing() ->
- io:fwrite("Telefon dzwoni!~n", []).
- stop_ringing() ->
- io:fwrite("Telefon przestal dzownic!~n", []).
- billingCreate() ->
- ets:new(billing, [public,duplicate_bag,named_table]),
- ets:insert(billing, {"Phone","Podlaczenie telefonu"}).
- billingList() ->
- erlang:display(ets:lookup(billing, "Phone")).
- billingAdd(Number,Action) ->
- ets:insert(billing, {"Phone",Number,Action,erlang:localtime()}).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement