회원가입 | 고객센터 |
DESIGNONEX
디자인원엑스
DX마켓
PR리그
Q&A
지식공유
공지사항
통계
로그인 회원가입
고객센터

MB Phone 1:1 음성통화 플러그인

D DX관리자
2026.08.21 00:24(수정됨) 5 0



MB Phone — 1:1 음성통화 플러그인 매뉴얼

DesignOneX · designonex.com DXCMS v8.8.3+




개요

MB Phone 은 DXCMS 회원 간 1:1 음성통화 플러그인입니다. DX Socket 을 시그널링 서버로 활용하며, WebRTC P2P 방식으로 직접 연결되어 서버 부하가 없습니다. MB Profile Extend 의 더보기 버튼에 자동 등록됩니다.



필수 조건

조건 설명
DXCMS v8.8.3 이상
dx-socket 활성화 + API 키 발급 필수
mb-profile-extend 더보기 버튼 연동
HTTPS WebRTC 는 HTTPS 환경 필수
index.php 수정 Permissions-Policy 헤더 추가 필수


설치

1. index.php 수정

ob_start(); 바로 다음에 추가합니다.

ob_start();

// Permissions-Policy: 마이크 허용 (안드로이드 Chrome 필수)
if (!headers_sent()) {
    header('Permissions-Policy: camera=*, microphone=*');
}


2. 파일 업로드

압축 해제 후 루트에 그대로 덮어씁니다.

plugins/
└── mb-phone/
    ├── plugin.json
    └── plugin.php


3. 플러그인 활성화

관리자 → 플러그인 → MB Phone → 활성화


4. DX Socket API 키 확인

관리자 → 실시간 소켓 → API 키 관리
→ 현재 도메인에 dxk_ 로 시작하는 키가 있는지 확인
→ 없으면 키 발급


더보기 모달 위치

프로필 모달 → [더보기 ...] 클릭

┌─────────────────────────┐
│ 더보기 — 홍길동         │
│─────────────────────────│
│ 📹  MB 화상채팅         │
│ 📞  MB 전화통화         │  ← MB Phone
│ 🖥  MB 화면공유         │
└─────────────────────────┘


사용 방법

전화 걸기

1. 게시판 또는 댓글에서 상대방 이름 클릭
2. 프로필 모달 → [더보기 ...] 클릭
3. [📞 MB 전화통화] 클릭
4. 마이크 권한 팝업 → 허용
5. 발신 대기 화면 → 상대방 수락 대기 (30초 타임아웃)


전화 받기

1. 수신 모달 자동 표시
2. [📞 수락] 또는 [거절] 선택
3. 수락 시 → 통화 시작


화면 구성

발신 대기 모달

┌──────────────────┐
│     [아바타]      │
│     홍길동        │
│   전화 연결 중... │
│    • • •          │
│    [✕ 취소]      │
└──────────────────┘


수신 모달

┌──────────────────┐
│     [아바타]      │
│    홍길동 님      │
│  전화가 왔습니다  │
│  [✕ 거절] [📞 수락] │
└──────────────────┘


통화 중 화면

┌─────────────────────────────────┐
│          [통화 중]               │
│           [아바타]               │
│           홍길동                 │
│           00:00                  │
│    ▁▂▃▄▅ 이퀄라이저 ▅▄▃▂▁      │
│                                  │
│  [🎤]  [🔊]  [📵]  [⌨️]  [➖] │
│  마이크 스피커 종료 키패드 최소화 │
│                          [🔴녹음]│
└─────────────────────────────────┘


컨트롤 버튼

버튼 기능
🎤 마이크 음소거 / 해제 토글
🔊 스피커 상대방 음소거 / 해제
📵 종료 통화 종료
⌨️ 키패드 DTMF 키패드 표시/숨김
➖ 최소화 플로팅 버튼으로 최소화
🔴 녹음 녹음 시작/중지


이퀄라이저

통화 중 상대방 음성을 실시간 주파수 분석하여 시각화합니다.

연결 전: 파란색 물결 애니메이션 (대기 상태)
통화 중: 실시간 주파수 바 표시
  조용할 때  → 파란색
  보통 목소리 → 노란색
  큰 목소리  → 빨간색
  • WebAudio API AnalyserNode + Canvas 2D 렌더링
  • 60fps 실시간 업데이트


녹음 기능

특징

  • 서버 전송 없이 브라우저 로컬 저장
  • 각 사용자가 자신의 브라우저에서 독립적으로 녹음
  • 내 마이크 + 상대방 음성 동시 녹음 (믹싱)
  • 저장 형식: WAV (무압축, 모든 기기 재생 가능)


파일명 형식

MB_Phone_홍길동_2026-08-20_00-00-00.wav


녹음 시작

[🔴 녹음] 버튼 클릭 → 헤더에 REC 표시 깜빡임 → 녹음 시작


녹음 중지 (통화 유지)

[🔴 녹음 중] 버튼 다시 클릭 → WAV 파일 자동 다운로드 → 통화 계속


녹음 중 통화 종료

[📵 종료] 클릭
→ 확인 모달:
  "통화를 종료하면 녹음이 자동 저장됩니다."
  [계속 통화]  [저장 후 종료]
→ [저장 후 종료] 클릭 → WAV 저장 → 통화 종료


상대방이 먼저 끊는 경우

녹음 중 상대방 종료 → 자동으로 WAV 저장 후 통화 종료


최소화 기능

통화 중 다른 화면을 사용해야 할 때 사용합니다.

[➖ 최소화] 클릭 → 우측 하단 플로팅 버튼으로 전환
플로팅 버튼 클릭 → 통화 화면 복원


통화 흐름

발신자                    소켓 서버                   수신자
  │                          │                          │
  │── phone_invite ─────────>│──────────────────────>  │
  │                          │              수신 모달   │
  │  <── phone_invite_accept │<─────────────────────── │
  │                          │                          │
  │── phone_offer ──────────>│──────────────────────>  │
  │  <── phone_answer ───────│<─────────────────────── │
  │  <──── phone_ice ────────│<──> (양방향)             │
  │                          │                          │
  │═══════════ P2P 직접 연결 (소켓 불필요) ══════════════│
  │                          │                          │
  │── phone_end ────────────>│──────────────────────>  │


소켓 이벤트

이벤트 방향 설명
phone_invite 발신 → 수신 통화 요청
phone_invite_accept 수신 → 발신 수락
phone_invite_reject 수신 → 발신 거절
phone_offer 발신 → 수신 WebRTC offer SDP
phone_answer 수신 → 발신 WebRTC answer SDP
phone_ice 양방향 ICE candidate
phone_end 양방향 통화 종료


트러블슈팅

증상 원인 해결
더보기에 전화통화 안 보임 MB Phone 미활성화 플러그인 활성화 확인
소켓 미연결 DX Socket 키 없음 API 키 발급
마이크 권한 차단 Permissions-Policy 헤더 없음 index.php 수정
안드로이드에서 마이크 안 됨 시스템 권한 차단 설정 → 앱 → 브라우저 → 마이크 허용
30초 후 자동 취소 상대방 미응답 상대방 접속 확인
녹음 파일 없음 다운로드 차단 브라우저 다운로드 허용 확인
이퀄라이저 미동작 WebAudio 미지원 Chrome/Firefox 최신 버전 사용


브라우저 지원

브라우저 지원
Chrome (PC/Android)
Firefox
Safari (iOS/Mac)
Samsung Internet
Edge
IE


파일 구성

plugins/mb-phone/
├── plugin.json    ← 플러그인 메타정보
└── plugin.php     ← 메인 (UI + WebRTC + 녹음 + 이퀄라이저)


예정 기능

기능 설명
링톤 MP3 파일 기반 수신 벨소리
통화 이력 발신/수신/부재중 목록
그룹 통화 다자간 음성통화


라이선스

항목 내용
라이선스명 DesignOneX License (디자인원엑스 라이선스)
원천 소유 DesignOneX — designonex.com
재배포·판매 ❌ 금지 (원천 소스 90% 이상 수정 시 재배포·판매 가능)
상업적 사용 ✅ 상업적 프로젝트 제작에만 허용 (학습·개인 포트폴리오 포함)
플러그인 원천 plugin.php, core/, admin/ 자체의 재배포 및 판매 금지
보증 본 플러그인은 현재 상태 그대로 제공되며 어떠한 명시적·묵시적 보증도 없습니다.


🚫 plugin.php, core/, admin/ 디렉터리의 코드를 그대로 또는 일부 수정하여 재배포하거나 판매하는 행위는 엄격히 금지됩니다.

🚫 MB Phone 을 기반으로 제작한 서비스는 반드시 DesignOneX 라이선스 조건을 준수해야 합니다.


✅ 상업적 프로젝트 제작 및 사용은 허용됩니다. (학습·개인 포트폴리오 포함)

✅ 원천 소스를 90% 이상 수정한 경우 재배포·판매가 가능합니다.

첨부파일 1개 회원전용 500P

댓글0

로그인 후 댓글을 작성할 수 있습니다.
Plugin 32
42
전체 회원
1,569
전체 게시글
2,642
전체 댓글
10
오늘 방문
52,667
전체 방문
1
현재 접속
인기글 7일 이내
최신글
최신댓글
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록
목록