Pages

2014년 10월 30일 목요일

[Synology] Asterisk IP-PBX 인터넷전화

1. Asterisk란 무엇인가?

요점만 말해서 인터넷을 통해 전화를 주고 받을 수 있는 서비스를 제공하는 프로그램입니다.
자세한 내용은 http://blog.naver.com/PostView.nhn?blogId=hsunryou&logNo=60104736007 를 참조하시고
http://cafe.naver.com/asterisker 카페에 가입하시면 많은 정보를 얻으실 수 있습니다.

2. Asterisk를 어떻게 설치하나?

DSM에 접속하셔서 패키지센터을 뒤져보시면 나옵니다. 
설치안하신 분은 사용 가능 > 서드 파티의 패키지 항목에서 찾으실 수 있습니다.

3. 어디까지 해봤나?

- 서버 설정 후 
- 사용자를 추가하여 전화번호를 부여하였고
- 아이폰4와 안드로이드폰 갤럭시S에 SIP 어플을 설치하여
- 무선랜 환경에서 서로 통화해보고
- 3G 환경에서 서로 통화해 보았습니다.

참고로 갤럭시S는 데이터쉐어링용 유심만 장착한 폰입니다.
따라서 아이팟터치나 아이패드와 같은 단말에서도 사용이 가능합니다.

4. 서버 설정하기

패키지센터에서 설치하고 나면 DSM에 바로가기 아이콘이 생성됩니다.
아이폰을 누르면 새창이 열리면서 로그인 할 수 있습니다. admin으로 로그인하여 설정할 수 있습니다.
아래 설정에서 ... Name 부분은 각자 알아서 적으시면 됩니다. 제가 설정한 내용을 적겠습니다.

1) Trunks 설정
- 왼쪽 메뉴에서 Trunks 를 누르고, VOIP Trunks > New SIP/IAX Trunk 클릭
- Provider Name : iPhoneDS(제 NAS 이름입니다)
- Hostname : NAS의 IP주소(공인IP)나 DDNS 주소
- Codec : 제일 중요한데 설명이 너무 길어지고 기술적입니다. 제가 설정한 것은 SPEEX, GSM, ILBC, u-law, a-law 입니다.
- 나머지는 모두 비워두고 Save (사실 뭘 적어야 할지 몰라서 비워뒀는데 사용하는데는 문제 없더군요)

2) Outgoing Calling Rules 설정
- New Calling Rule 클릭
- Calling Rule Name : Local
- Pattern : XXXX (다양한 패턴을 넣을 수 있는데 일단 통화되는 것만 확인하기 위해서)
- Save

3) Dial Plans 설정
- New DialPlan 클릭
- DialPlan Name : DialPlanLocal
- 나머지 모두 체크 후 Save

4) Users 설정
- Create New User 클릭
- 첫번째 전화번호가 6000번 이네요. 저는 테스트를 위해서 ID, Password, CID등 모든 것을 6000으로 통일시켰습니다.
- Extention, CallerID Name, CallerID Number, VoiceMail Access PIN code, MAC Address, SIP/IAX Password 모두 6000
- DialPlan : 3)에서 설정한 이름을 고릅니다. DialPlanLocal
- 체크 : Enable Voicemail for this User, SIP, NAT
- Codec Preference : SPEEX, GSM, ILBC, u-law, a-law
- DTFM Mode : RFC2833
- Line Number, LineKeys, Pickup Group : 1
- Update
- 마찬가지 방법으로 필요한 만큼 번호 생성

5) Apply Changes 클릭 (화면 오른쪽 상단에 있습니다)
- 나머지 설정은 안해도 통화하는데는 문제 없더군요.

5. 스마트폰용 어플리케이션 설치하기

많은 어플들이 있어 선택하는데 어려움이 많습니다.
제가 선택하여 설치한 어플은 다음과 같습니다.

1) 아이폰용 어플 : C2Phone(무료)
- Settings > SIP account
  * User name : 6000
  * Password : 6000
  * Proxy : NAS의 IP주소 또는 DDNS주소:5060
- Settings > Setting > Audio > Codecs
  * Speex 8Khz, GSM, ILBC, PCMU, PCMA : ON
- Settings > Network
  * Random Port, Push Notification : ON

2) 안드로이드용 어플 : CSipSimple(무료)
- 설정 > 네트워크
  * 수신전화, 발신전화 : 모두 체크
- 설정 > 미디어
  * 에코취소, Codec priority list per bandwidth : 체크
  * 코덱 체크(Fast/Slow): speex 8 kHz, GSM 8 kHz, ILBC 8 kHZ, PCMU 8 kHZ, PCMA 8 kHz 
- 설정 > 사용자 인터페이스
  * 전화걸기통합, 통화기록통합, 화면회전차단 : 체크

6. 마무리

- 가장 품질이 좋은 코덱은 G729라고 합니다. 다만 유료라서 별도의 지출을 하셔야 합니다.
- PCMU = u-law : G711 북미 방식
- PCMA = a-law : G711 유럽 방식
- C2Phone 지원 코덱 : Speex, SILK, G722, GSM, ILBC, PCMU, PCMA
- CSipSimple 지원 코덱 : Speex, SILK, G722, GSM, ILBC, PCMU, PCMA, AMR, ISAC, G729, CODEC2, opus, G726, G7221

이상으로 제가 지금까지 설정했던 내용을 마무리합니다.
이렇게 하면 스마트폰끼리 무료통화가 가능합니다.
추가로 3G 네트워크에서 통화를 해보면 도저히 사용할 수 없을 정도의 품질을 보여줍니다. 이건 품질도 아니죠.
그래서 NAS에서 추가로 설치해 줘야 하는게 VPN 서버입니다. 이것도 패키지 센터에서 설치 가능합니다.
스마트폰들을 NAS에 설정한 VPN에 접속한 후 3G상태에서 통화를 해보면 무지 깨끗한 품질을 확인할 수 있습니다.
(통신사의 요금제 정책에 따라 필요없을 수도 있습니다.)

여기까지는 초보자인 제가 작성을 했구요, 이제 고수들께서 나머지 부분에 대해서 강좌를 적어주셨으면 좋겠습니다.

Synology NAS를 정말 잘 선택했다는 생각이 점점 많이 들고, 주변에 계속 봄뿌질을 하여 사무실에만 벌써 4명이나 사용중입니다.
점점 더 기대가 됩니다.

7. 추가사항: 방화벽 설정 (중요)

가장 중요한 방화벽 설정을 까먹었네요.
대부분 DSM에서 방화벽 설정하셔서 사용하실겁니다. 만약 사용안하신다면 당장 사용하시기 바랍니다.
제가 이 설정 때문에 이틀동안이나 고생했는데 그 부분을 놓쳤습니다.

- DSM 접속
- 제어판 > 방화벽 > 생성 클릭
  * 포트 : 사용자 지정 > 유형: 대상포트, 프로토콜: UDP, 포트범위 시작: 10000, 종료: 20000
  * 소스 IP : 모두
  * 작업 : 허용
- 확인 눌러 저장 후 다시 생성 클릭
  * 포트: 내장된 응용 프로그램 목록에서 선택
  * 선택: 응용프로그램 Asterisk 인 모든 항목 선택 후 확인
  * 소스 IP : 모두
  * 작업 : 허용
- 확인 누른 후 저장 눌러 방화벽 정책 활성화 시키시면 됩니다.

8. 추가사항2: 스크린샷


댓글 없음:

댓글 쓰기