> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# 3CX

3CX 시스템은 기존 통신사와 번호를 유지하면서, 선택한 통화를 [SIP 트렁크](/docs/ko/reception-ai/phone-numbers/bring-your-own-number#sip-trunk)를 통해 Reception.ai로 전달합니다. 3CX에서 Reception.ai를 가리키는 일반 IP 기반 트렁크를 추가한 다음, 번호를 해당 트렁크로 착신 전환합니다.

## 시작하기 전에

* 전용 설치 환경의 3CX V20: 자체 호스팅, 온프레미스 또는 3CX가 호스팅하는 전용 인스턴스입니다. 공유형(멀티 테넌트) 무료 및 SMB 요금제에서는 일반 SIP 트렁크를 사용할 수 없습니다.
* 3CX 서버의 고정 공인 IP 주소. Reception.ai는 허용한 주소에서 걸려 오는 통화만 수신합니다.
* 3CX 트렁크, 발신 규칙 및 방화벽 설정에 익숙한 담당자.

## 설정

### Reception.ai에서 SIP 트렁크 추가

**Integrations**로 이동해 **Add integration**을 선택한 뒤 **SIP Trunk**를 선택합니다. **Inbound allowed addresses**에서 3CX 서버의 공인 IP 주소를 추가합니다. IP 기반 3CX 트렁크는 인증하지 않으므로 인바운드 사용자 이름과 비밀번호는 비워 둡니다.

### 번호 추가

**Receptionists**로 이동해 **Phone** 타일을 선택하고, 발신자가 거는 번호를 국가 코드와 함께 입력한 후 **Add SIP Trunk number**를 선택합니다. Reception.ai에 통화를 보낼 SIP 서버 호스트가 표시됩니다.

### 3CX에서 트렁크 생성

3CX 관리 콘솔에서 **Voice & Chat**으로 이동한 후 **Add Trunk**를 선택합니다. **Generic** 국가와 일반 SIP 트렁크 템플릿을 선택한 다음 다음과 같이 설정합니다.

| 필드                                          | 값                                  |
| ------------------------------------------- | ---------------------------------- |
| **Registrar/Server/Gateway Hostname or IP** | Reception.ai SIP 서버 호스트, 포트 `5060` |
| **Authentication**                          | **Do not require - IP Based**      |
| **Transport** (**Options** 탭)               | **TCP**                            |

TCP를 사용합니다. 3CX는 사용자 이름과 비밀번호로 인증하는 트렁크에서만 TLS를 지원하며, Reception.ai의 SIP 트렁크는 등록하지 않습니다.

트렁크의 발신자 ID 설정에서 3CX가 원래 발신자의 번호를 전달하도록 합니다. 그렇지 않으면 리셉셔니스트에 모든 통화의 발신자가 대표 번호로 표시됩니다.

### +E.164를 전송하는 발신 규칙 추가

**Outbound Rules**로 이동해 `999`처럼 사용하지 않는 접두사로 시작하는 번호용 규칙을 추가합니다. **Route 1**을 Reception.ai 트렁크로 설정하고, `3`자리를 제거한 후 `+`를 앞에 붙입니다. 그러면 `99914155550123`으로 건 통화는 트렁크를 통해 `+14155550123`으로 전송되며, 이는 Reception.ai에서 요구하는 형식입니다.

### 통화를 Reception.ai로 착신 전환

3CX V20에서는 DID를 외부 번호로 바로 보낼 수 없습니다. 이 용도로만 존재하는 사용자를 생성하거나 기존 내선을 사용하고, 여기에 DID를 할당한 후 모든 통화를 `999` 뒤에 `+` 없이 E.164 형식의 번호를 붙인 번호(예: `99914155550123`)로 착신 전환합니다. IVR 옵션 또는 대기열의 무응답 대상에서 해당 내선으로 연결할 수도 있습니다.

### 방화벽 확인

Reception.ai의 오디오가 서버에 도달하도록 방화벽에서 3CX의 RTP 포트 범위(UDP)를 엽니다. 확실하지 않다면 3CX 방화벽 검사를 실행합니다.

### 테스트

다른 전화로 DID에 전화를 걸어 리셉셔니스트가 응답하는지 확인합니다.

## 제한 사항

* **전환.** 리셉셔니스트는 **Outbound SIP address**로 새 전화를 걸어 통화를 전환합니다. 사용자 이름과 비밀번호를 허용하는 통신사 계정을 사용하여 SIP 통신사를 가리키도록 설정합니다. 전환을 다시 3CX로 라우팅하는 방법은 여기서 다루지 않습니다. IP 기반 3CX 트렁크는 발신지 주소로 통화를 매칭하고, Reception.ai는 변경되는 주소 풀에서 전화를 겁니다.
* **TLS 미지원.** 3CX는 IP 기반 트렁크에서 TLS를 지원하지 않으므로 3CX와 Reception.ai 간 시그널링에는 TCP가 사용됩니다.
* **3CX 시스템은 모든 통화를 두 번 처리합니다.** 한 번은 통신사에서, 한 번은 Reception.ai로 처리하므로 라이선스에 충분한 동시 통화 수가 필요합니다.

## 문제 해결

| 문제                      | 확인할 사항                                                                               |
| ----------------------- | ------------------------------------------------------------------------------------ |
| 벨이 울리기 전에 통화 실패         | 트렁크 전송 방식이 TCP이고 포트가 `5060`인지 확인합니다.                                                 |
| 통화 거부                   | 3CX 서버의 공인 IP를 **Inbound allowed addresses**에 추가하고, 발신 규칙이 전체 번호 앞에 `+`를 붙이는지 확인합니다. |
| 통화가 대신 통신사를 통해 발신됨      | 착신 전환 번호가 규칙의 접두사로 시작하는지, 그리고 해당 규칙이 다른 발신 규칙 위에 있는지 확인합니다.                          |
| 리셉셔니스트에 대표 번호가 발신자로 표시됨 | Reception.ai 트렁크가 원래 발신자 ID를 전달하도록 설정합니다.                                            |
| 단방향 오디오 또는 오디오 없음       | 방화벽에서 RTP 포트 범위를 열고 3CX 방화벽 검사를 실행합니다.                                               |