Như ta đã biết với kiến trúc nền mở của ejabberd im server + vm erlang và sức mạnh của ngôn ngữ lập trình erlang, cho phép chúng ta implement/deploy ejabberd modules (ở đây interface là gen_mod behavior) vào hệ thống.
Cơ bản của một ejabberd module (gen_mod behavior) có skeleton như sau :
- Ở đây tôi đặt tên module này là : mod_test.
- Skeleton bắt buộc khi viết ejabberd module gen_mod behavior là phải có 2 export api (2 hàm callback) :
+ start với 2 arguments signal (_Host, _Opts).
+ stop với 1 arguments signal (_Host).
- Lưu ý underscores trước mỗi argument signal.
- 2 hàm callback trên sẽ được gọi sau khi start/stop ejabberd server.
-module(mod_test).
-behavior(gen_mod).%%Export API
-export([start/2, stop/1]).%% External APIs implement
start(_Host, _Opts) ->
ok.stop(_Host) ->
ok.
%% Internal APIs implement
- Tiến hành compile ejabberd module trên bằng erlc, chúng ta có được mod_erlang.beam (erlang bye code) file.
(erlc -I /path/to/include -pz /path/to/ebin mod_test.erl).
- Deploy module này vào hệ thống thông qua file cấu hình (/path/to/ejabberd-x.x.x/conf/ejabberd.cfg) :
{modules,[
...
{mod_test, []},
…
]}.
* Stop/Start ejabberd server.


