[태그:] 전화

  • 전화접속 서버 만들기

    이번에는 전화로 인터넷에 접속하는 서버를 만들 것이다.

    우선 가상머신에 우분투 서버를 깔아주고 USB모뎀을 연결해 주었다.

    다음 명령어를 입력하여 mgetty와 ppp를 깔아준다.

    sudo apt update
    sudo apt upgrade
    sudo apt install mgetty ppp

    이제 mgetty가 자동으로 실행 되도록 서비스를 등록해 줄 것이다.

    /lib/systemd/system/mgetty.service 파일을 만들어 준 후 다음 내용을 채워 넣는다.

    [Unit]
    Description=External Modem
    Documentation=man:mgetty(8)
    Requires=systemd-udev-settle.service
    After=systemd-udev-settle.service
    
    [Service]
    Type=simple
    ExecStart=/sbin/mgetty /dev/ttyACM0
    Restart=always
    PIDFile=/var/run/mgetty.pid.ttyACM0
    
    [Install]
    WantedBy=multi-user.target

    그리고 이제 /etc/mgetty/mgetty.config 파일을 열고 맨 아래에 다음 내용을 채워 넣는다.

    debug 9
    
    port ttyACM0
     port-owner root
     port-group dialout
     port-mode 0660
     data-only yes
     ignore-carrier no
     toggle-dtr yes
     toggle-dtr-waittime 500
     rings 2
     #autobauding yes
     speed 57600

    그리고 아래 명령어를 실행해서 부팅시 켜지도록 해 준다.

    sudo systemctl enable mgetty.service

    재부팅 하고나서 서버로 전화를 걸면 터미널에 접속할 수 있다.

    터미널 접속 영상

    이제 ppp를 설정해 줄 것이다 /etc/ppp/options 파일일에서 아래 부분과 같이 주석을 해제하고 수정해 준다

    # Define the DNS server for the client to use
    ms-dns 8.8.8.8
    # async character map should be 0
    asyncmap 0
    # Require authentication
    auth
    # Use hardware flow control
    crtscts
    # We want exclusive access to the modem device
    lock
    # Require the client to authenticate with pap
    +pap
    # Heartbeat for control messages, used to determine if the client connection has dropped
    lcp-echo-interval 30
    lcp-echo-failure 4
    # Cache the client mac address in the arp system table
    proxyarp
    # Disable the IPXCP and IPX protocols.
    noipx

    이제 /etc/ppp/options.ttyACM0 를 아래 내용으로 생성해 준다

    local
    lock
    nocrtscts
    192.168.32.1:192.168.32.105
    netmask 255.255.255.0
    noauth
    proxyarp
    lcp-echo-failure 60

    이제 ppp계정을 만들 것이다. 계정을 만들고 비밀번호를 설정해 주

    sudo useradd -G dialout,dip,users -m -g users -s /usr/sbin/pppd ppp
    sudo passwd ppp

    /etc/ppp/pap-secrets 파일의 맨 아랫부분에 아래와 같이 아까 만든 아이디와 비밀번호를 추가 한다.

    아이디 * "비밀번호" *

    이제 ppp에 사용되는 ip가 외부에 접근할 수 있도록 설정을 해야 한다.

    /etc/systemd/system/ppp-ready.service 파일을 만들고 아래 내용을 넣는다.

    [Unit]
    After=network.target
    
    [Service]
    ExecStart=/usr/local/bin/ppp-ready.sh
    
    [Install]
    WantedBy=default.target

    그리고 /usr/local/bin/ppp-ready.sh 파일을 만들고 아래 내용을 넣는다.

    #!/bin/bash
    iptables -t nat -A POSTROUTING -s 192.168.32.0/24 -o enp0s3 -j MASQUERADE

    아래 명령어를 입력 해 파일의 권한을 수정해 준다

    sudo chmod 744 /usr/local/bin/ppp-ready.sh
    sudo chmod 644 /etc/systemd/system/ppp-ready.service

    마지막으로 /etc/sysctl.conf 파일에서 아래 부분을 주석 해제 한다.

    net.ipv4.ip_forward=1

    이제 다 끝났다 시스템을 껐다가 키면 이제 전화 접속을 할 준비가 됐다.

    아래는 전화 접속으로 Google에 접속하는 영상이다.

    인터넷 연결 영상

    참조
    Dial up server – Doge Microsystems
    How to run script on startup on Ubuntu 22.04 Jammy Jellyfish Server/Desktop – Linux Tutorials – Learn Linux Configuration

  • FreePBX에 계정 추가 후 VoIP 어댑터에 등록하기

    저번 시간에 FreePBX를 설치하는 것 까지 하였다. 이번엔 Extension을 생성하고 그것을 VoIP 어댑터에 등록을 해 보도록 하자.

    FreePBX Administration에 로그인 한다. 로그인 하면 대시보드가 뜬다.

    Applications를 클릭하고 하위에 있는 Extensions를 클릭한다.

    Add Extension을 클릭 후 Add New SIP [chan_pjsip] Extension을 클릭.

    User Extension은 전화번호이다.
    Display Name은 전화 올 때 추가적으로 뜨는 이름이다.
    Secret은 비밀번호이다. 안전을 위해 그냥 그대로 두고 기억만 하자.

    위 세가지 정도만 설정 하면 된다.

    그다음 공유기 관리 페이지에 들어가서 VoIP 어댑터의 ip주소를 찾아낸 후 브라우저 주소창에 친다.

    위와 같은 페이지가 뜨는데 오른쪽 위의 Admin Login을 클릭한다.

    메뉴가 몇 개 더 생겼다. Line 1을 클릭해 주자.

    Proxy는 FreePBX의 ip주소를 입력한다.
    User ID에 아까 생성한 User Extension 전화번호를 입력해 준다.
    Password에 아까 생성한 Secret 비밀번호를 입력해 준다.

    이제 Save Settings를 Line 1 포트에 전화기를 꽂고 수화기를 들면 신호음이 들린다.

    마찬가지로 계정을 또 만들고 Line 2도 설정하면 모든 것이 완료되었다.

  • VMware로 FreePBX설치하여 나만의 전화국 만들기

    오늘은 인터넷전화 서버를 만드려 한다.

    인터넷전화 서버 중에 여러가지가 있었고 나는 FreePBX를 쓰기로 했다. 이름은 ‘Free’이지만 개인 사용자만 무료이고 기업은 유료인가 보다.

    FreePBX | Open source, web-based, IP PBX management tool.

    먼저 FreePBX 사이트에 들어 가준다 아래와 같은 화면이 뜬다.

    Download를 눌러주자.

    이메일 등 개인정보를 물어본다. 이메일과 나라 사용자 유형과 사용 이유에 대해서 물어본다. 아래와 같이 선택하고 넘어간다.

    그러면 파일을 다운 받을 수 있고 SNG7-PBX로 시작하는 iso파일을 받아준다.

    그리고 VMware를 실행해 준다. Create a New Virtual Machine 클릭.

    install operating system later. 누르고 Next 클릭.

    운영 체제는 CentOS 7 64-bit로 하고 Next 클릭.

    가상머신 이름과 위치를 알아서 잘 지정해 주고 Next클릭.

    디스크 사이즈를 물어본다 그냥 Next 누른다.

    여기서 Customize Hardware 눌러서 부팅 파일을 다운 받았던 파일로 지정해야 한다.

    CD/DVD 항목에서 Use ISO image file:에 있는 Browse를 클릭하여 아까 다운 받은 iso파일을 선택해준다.

    Network Adapter는 VoIP어댑터가 접근할 수 있어야 하니 공유기에서 잡힐 수 있게 Bridged로 설정하였다. 그 다음 Close를 누른다.

    그다음 아까 이 화면이 다시 뜨는데 설정이 맞는지 확인하고 이번엔 Finish를 누른다.

    Play virtual machine 클릭.

    그러면 위와 같은 화면이 뜬다 추천한다니까 엔터를 누르자.

    엔터를 누른다.

    또 엔터를 누른다.

    그러면 위와 같은 화면이 뜨는데 빨간 글씨 뜨는 곳을 클릭해서 루트 계정의 비밀번호를 설정해 준다.

    설치가 완료되면 위와 같이 뜨는데 Reboot를 눌러주자.

    그러면 위와 같은 화면이 반기고 있는데 root를 치고 엔터를 입력한 다음 아까 설정한 비밀번호를 입력하고 엔터 치면 된다.

    그러면 위와 같이 화면이 뜨면서 ip주로를 알려줄 것이다. 기억하고 있어야 한다.

    그리고 나서 웹 브라우저를 연 후 위에 뜬 ip주소로 접속한다.

    여기서 Admin 계정의 이름과 비밀번호를 설정해 주고 Setup System을 클릭한다.

    설정이 완료 되면 위와 같이 뜨는데 FreePBX Administration을 클릭 후 방금 설정한 이름과 비밀번호를 입력하고 Continue를 클릭한다.

    유료 등록할 것이냐고 물어보는 것인데 Skip을 누르자. 그리고 다른 여러 광고들도 뜨는데 모두 Skip누르면 된다.

    언어는 한국어가 지원이 안되니 영어를 선택하고 Submit을 클릭한다.

    방화벽이 켜지면 웹 서버에 들어가는 것이 힘들기 때문에 Abort를 클릭한다. 필자는 Continue를 눌렀다가 한참 헤매다 고생했다.

    광고가 또 뜬다. Not Now를 클릭.

    자 이제 이런 식으로 뜨면 설정이 완료 된 것이다.

    이제 전화번호를 만들고 VoIP 어댑터에 등록해 주면 된다. 이것은 다음에 한번 올려보겠다.