No menu items!
No menu items!
More

    Cài đặt Asterisk 22.4.1 mới nhất trên Linux

    1. Tổng Quan

    Asterisk là một nền tảng mã nguồn mở dùng để xây dựng các hệ thống tổng đài IP (VoIP PBX), gateway, hoặc các ứng dụng truyền thông như IVR, call center,… Phiên bản Asterisk 22.4.1 hiện tại là bản phát hành mới nhất trong nhánh Asterisk 22, có nhiều cải tiến về hiệu năng và bảo mật.

    Bài viết này sẽ hướng dẫn chi tiết cách build và cài đặt Asterisk từ mã nguồn trên hệ điều hành Debian/Ubuntu, đồng thời cấu hình cơ bản hai máy nhánh SIP để kiểm thử.

    ✅ Ưu điểm khi build từ mã nguồn

    • ✔️ Luôn cài được phiên bản mới nhất, cập nhật tính năng mới.
    • ✔️ Tùy chỉnh linh hoạt các thành phần cần hoặc không cần.
    • ✔️ Tối ưu theo nhu cầu sử dụng cụ thể (ít tính năng → nhẹ hơn).

    ❌ Nhược điểm

    • ❗ Cài đặt phức tạp hơn so với dùng package sẵn có.
    • ❗ Dễ gặp lỗi thiếu thư viện, phải xử lý thủ công.
    • ❗ Khó bảo trì nếu hệ thống lớn, nhiều node.

    2. Các Bước Cài Đặt Chi Tiết

    2.1. Cài Đặt Gói Phụ Thuộc

    apt update
    apt install -y build-essential git wget curl screen tmux net-tools vim \
      psmisc tree cron iputils-ping traceroute snmp python3-pip \
      uuid-dev libedit-dev libsqlite3-dev libncurses5-dev libxml2-dev \
      libtiff-dev libaudiofile-dev libgtk2.0-dev libnewt-dev libtool \
      libgmime-3.0-dev subversion libjansson-dev sox

    Cài thêm một số thư viện hệ thống cần thiết để build pjprojectAsterisk.

    2.2. Cài Đặt Thư Viện pjproject (PJSIP)

    cd /usr/src/
    git clone https://github.com/pjsip/pjproject.git
    cd pjproject
    git checkout 2.13  # Phiên bản ổn định, tương thích tốt
    ./configure CFLAGS="-fPIC" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
    make
    make install
    ldconfig

    PJSIP là thư viện quan trọng để Asterisk xử lý giao thức SIP.

    2.3. Cài Python Packages

    pip3 install --upgrade pip
    pip3 install paramiko jsonpath-ng requests

    Một số package Python sẽ hữu ích nếu bạn dùng script quản lý hoặc automation cho Asterisk.

    2.4. Tải và Cài Đặt Asterisk 22.4.1

    cd /usr/src/
    wget https://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-22.4.1.tar.gz
    tar -xvzf asterisk-22.4.1.tar.gz
    cd asterisk-22.4.1
    ./configure --libdir=/usr/lib
    contrib/scripts/get_mp3_source.sh
    make
    make install
    make samples
    make config
    ldconfig

    2.5. Cấu Hình Người Dùng Asterisk

    groupadd asterisk
    useradd -r -d /var/lib/asterisk -g asterisk asterisk
    usermod -aG audio,dialout asterisk
    

    Tạo user riêng để chạy Asterisk – giúp bảo mật và phân quyền rõ ràng hơn.

    2.6. Phân Quyền và Cấu Hình Dịch Vụ

    chown -R asterisk:asterisk /etc/asterisk
    chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
    chown -R asterisk:asterisk /usr/lib/asterisk
    chown -R asterisk:asterisk /var/run/asterisk
    cat >> /etc/default/asterisk << 'OEF'
    AST_USER="asterisk"
    AST_GROUP="asterisk"
    OEF
    sed -i 's|;runuser =.*|runuser = asterisk|' /etc/asterisk/asterisk.conf
    sed -i 's|;rungroup =.*|rungroup = asterisk|' /etc/asterisk/asterisk.conf

    2.7. Cấu Hình RTP (Media)

    sed -i 's|^rtpstart=.*|rtpstart=10000|' /etc/asterisk/rtp.conf
    sed -i 's|^rtpend=.*|rtpend=16459|' /etc/asterisk/rtp.conf

    Cổng RTP truyền âm thanh, nên mở range trong firewall (10000–16459).

    2.8. Bật Dịch Vụ Asterisk

    systemctl enable asterisk
    systemctl restart asterisk
    systemctl is-active asterisk
    

    2.9. Cấu Hình PJSIP Endpoint

    ; /etc/asterisk/pjsip.conf
    [global]
    type=global
    user_agent=Asterisk-PJSIP
    
    [transport-udp]
    type=transport
    protocol=udp
    bind=0.0.0.0:5060
    external_media_address=113.161.201.128
    external_signaling_address=113.161.201.128
    local_net=192.168.100.0/24
    
    [1000]
    type=endpoint
    transport=transport-udp
    context=internal
    disallow=all
    allow=ulaw
    auth=1000-auth
    aors=1000
    
    [1000-auth]
    type=auth
    auth_type=userpass
    username=1000
    password=1000
    
    [1000]
    type=aor
    max_contacts=1
    
    [1001]
    type=endpoint
    transport=transport-udp
    context=internal
    disallow=all
    allow=ulaw
    auth=1001-auth
    aors=1001
    
    [1001-auth]
    type=auth
    auth_type=userpass
    username=1001
    password=1001
    
    [1001]
    type=aor
    max_contacts=1
    

    2.10. Cấu Hình Dialplan

    ; /etc/asterisk/extensions.conf
    [internal]
    exten => 1000,1,Dial(PJSIP/1000)
    exten => 1001,1,Dial(PJSIP/1001)
    

    2.11. Cấu Hình Logger

    mkdir -p /var/log/asterisk
    touch /var/log/asterisk/full
    chown asterisk:asterisk /var/log/asterisk/full
    ; /etc/asterisk/logger.conf
    [general]
    dateformat=%F %T
    
    [logfiles]
    console => notice,warning,error
    messages.log => notice,warning,error
    full => notice,warning,error,debug,verbose
    syslog.local0 => notice,warning,error,verbose,debug
    asterisk -rx "logger reload"

    Khởi Động và Kiểm Tra

    asterisk -rvv
    dialplan reload
    pjsip reload
    pjsip show endpoints
    module reload 
    module show like pjsip
    

    3. Ví Dụ Gọi Điện Giữa Hai Máy SIP

    Giả sử bạn có 2 phần mềm softphone (VD: Zoiper) và đăng nhập:

    Máy A:
    SIP: 1000@your_server_ip
    Password: 1000
    
    Máy B:
    SIP: 1001@your_server_ip
    Password: 1001
    

    Từ máy A, gọi đến 1001, máy B sẽ đổ chuông nếu cấu hình thành công.

    Sơ Đồ Hoạt Động (ASCII)

    +--------+       SIP       +-------------+       SIP        +--------+
    | 1000   | <-------------> |  Asterisk   | <------------->  | 1001   |
    | (Zoiper)                 |   Server    |                  | (Zoiper)
    +--------+                 +-------------+                  +--------+
                  RTP media <------ Voice -------> RTP media
    

    4. Lời Khuyên

    • 🔐 Bảo mật: Luôn dùng mật khẩu mạnh, đổi port mặc định nếu cần.
    • 🔄 Sao lưu: Backup định kỳ thư mục /etc/asterisk/ và database (nếu có).
    • 📊 Giám sát: Dùng fail2banufw để giám sát tấn công SIP.
    • 💻 Phát triển: Kết hợp với AGI hoặc AMI để viết ứng dụng tổng đài tùy biến.

    5. Kết Luận

    Cài đặt Asterisk 22.4.1 từ mã nguồn giúp bạn chủ động hơn về phiên bản, hiệu năng và tối ưu hệ thống tổng đài IP. Tuy mất nhiều công sức ban đầu, nhưng đây là hướng đi phù hợp cho doanh nghiệp hoặc người dùng chuyên sâu.

    Hy vọng bài viết này giúp bạn thiết lập thành công một tổng đài Asterisk hoàn chỉnh và sẵn sàng để triển khai thực tế. 🚀

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email