Cấu hình chat giữa 2 sip clients trên Asterisk

posted Dec 24, 2014, 10:09 AM by TEL4VN Channel   [ updated Dec 24, 2014, 10:27 AM ]
Bài này sẽ hướng dẫn cách cấu hình chat giữa 2 sip clients trên Asterisk server. Yêu cầu Asterisk phiên bản từ 11 trở về sau:

cd /usr/src
wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
tar xf iksemel-1.4.tar.gz
cd iksemel-1.4
./configure
make
make install

Mở module res_xmpp trên Asterisk
cd /usr/src/asterisk-11.14.1/
./configure
make menuconfig
make
make install

vi /etc/ld.so.conf.d/libiksemel.conf
# Và thêm vào nội dung sau: /usr/local/lib

Sau đó gõ lệnh: ldconfig

Kiểm tra xem module xmpp đã được load thành công hay chưa:

localhost*CLI> module show like res_xmpp.so
Module                         Description                              Use Count
res_xmpp.so                    Asterisk XMPP Interface                  0        
1 modules loaded

Cấu hình Dialplan trong file extensions.conf:

exten => _.,1,NoOp(SMS receiving dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
exten => _.,n,Set(ACTUALTO=${CUT(MESSAGE(to),@,1)})
exten => _.,n,MessageSend(${ACTUALTO},${MESSAGE(from)})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,GotoIf($["${MESSAGE_SEND_STATUS}" != "SUCCESS"]?
sendfailedmsg)
exten => _.,n,Hangup()
exten => h,1,Hangup()
;
; Handle failed messaging
exten => _.,n(sendfailedmsg),Set(MESSAGE(body)="[${STRFTIME(${EPOCH},,
%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Retry later.")
exten => _.,n,Set(ME_1=${CUT(MESSAGE(from),<,2)})
exten => _.,n,Set(ACTUALFROM=${CUT(ME_1,@,1)})
exten => _.,n,MessageSend(${ACTUALFROM},ServiceCenter)
exten => _.,n,Hangup()
exten => h,1,Hangup()

Sử dụng 2 softphones hỗ trợ text/plain để test, ví dụ như Jitsi (https://jitsi.org/Main/Download).


Nếu sử dụng Xlite, bạn có thể gặp lỗi sau

Comments