Asterisk / Elastix 설정 방법
Asterisk 11 버전
Elastix 3.0 버전
Freepbx 13 버전
기준으로 작성되었습니다
Elastix 3.0 버전 쓰지마세요.. 쓰다가 집어던지고 FreePBX로 넘어왔습니다…
아래 설정은 기본설정 (Organization, Extension, User 등이 셋팅되어 있어야 합니다)
언급하지 않은 셋팅은 기본값으로 두시면 됩니다.
————————————————-
+ SIP 설정
– Elastix :
PBX – Trunks 에서 [SIP] Create New Trunk 선택 (체크박스를 SIP로 설정)
Descriptive Name 은 알기쉽게 설정 (저는 Main)
Outbound Caller ID 에 SIP 계정의 전화번호 입력
Organization 선택
Peer Settings 탭으로 들어가서
Name 은 알기쉽게 암거나 (저는 Main)
Type = peer
secret = SIP 계정 비밀번호
username = SIP 전화번호
context = from-trunk
disallow = all
allow = ulaw;alaw;gsm
qualify = yes
nat = auto
dtmfmode = rfc2833
insecure = port,invite
(Advanced Settings 를 누름)
fromuser = SIP 전화번호
defaultuser = SIP 전화번호
fromdomain = SIP 서버주소
outboundproxy = SIP 프록시 주소(없으면 입력하지 않아도 됨)
User Settings 탭으로 들어가서
Peer Settings 이랑 똑같이 하되
type = user
로 변경
Registration 탭으로 들어가서
Register String 에
SIP전화번호:SIP계정비밀번호@SIP서버주소
라고 입력한다
그리고 저장
만약 incoming 전화가 에러가 난다면
SIP Setting 에서 Local network 가 셋팅되어 있는지 확인해보자
아래는 FreePBX 용 셋팅
CID Option 을 Force Trunk CID 로 셋팅
(이렇게 안하면 송신자가 Call Fail 뜸)
SIP Trunk
PEER Trunk
host=서버주소
username=번호
secret=비번
type=friend
disallow=all
qualify=yes
insecure=port,invite
context=from-trunk
fromuser=번호
defaultuser=번호
authuser=번호
allow=ulaw
위 대로 해서 안된다면 이렇게 해보자 (한국쪽 SIP Provider)
host=서버주소
username=070번호
secret=비밀번호
type=friend
disallow=all
qualify=yes
insecure=port,invite
context=from-trunk
fromdomain=서버주소
outboundproxy=서버주소
callbackextension=070번호
defaultuser=070번호
fromuser=070번호
allow=ulaw
————————————————-
————————————————-
전화 자동으로 연결되게 설정하기
PBX – Inbound Routes 에서
ADD Incomming Route 클릭
Description 에 설명입력
Set Destination 에 연결할 곳을 선택하면 끝
그리고 저장
————————————————-
————————————————-
+ SIP 설정 후 Inbound 전화가 연결음만 나고 연결이 안될때
– Asterisk :
/etc/asterisk/sip.conf 에 아래 옵션을 추가한다
externaddr=외부아이피
localnet=내부아이피
– Elastix :
PBX Admin Settings – General Settings Admin – SIP Settings 에서
Nat Support 에서
Type of NAT 을 static 으로 변경
Local Network 를 172.30.1.0 / 255.255.255.0 으로 설정
Extern Addres 에 외부아이피 입력
그리고 저장
그리고
/etc/asterisk/sip_general_custom.conf 에
bindaddr=0.0.0.0
추가 후 저장
+ Inbound 전화가 Call Fail (비프음이 나고 끊어질 때) 뜰 때
SIP 설정이 위와 같이 제대로 설정되어 있는지 확인
추가로 다른 설정이 기본값을 벗어났는지 확인
확인된 에러:
– Outbound Caller ID 가 설정되어 있으면 에러남
– Queue 로 전화를 연결한 후 끊으면 그 다음 전화가 Fail 날 때 Queue 의 Destination 을 지정해준다 (예: Terminate Call)
– IVR -> Queue 으로 라우팅 된 후 Queue 에서 대기하고 있을때 Queue 설정이 변경되고 Asterisk 가 reload 되면 일정확률에서 송신자 Call Fail 이 뜬다. Asterisk 를 재시작하거나 Trunk 에서 CID Option 을 다른걸로 변경하고 Apply Config 한 후 다시 원상복귀 하면 정상작동 한다 (버그인듯 하다)
멍청한 짓이였다…
No route to peer for ‘Caller ID’ from ‘IP Address’
라는 에러메세지가 떴는데 이게 요청을 보낸 아이피주소와 요청이 오는 아이피주소가 달라서 그랬던거다.. host에 아이피주소 대신 도메인 주소를 썼기때문..
그래서 SIP Trunk 의 host 를 모두 IP 주소로 변경했더니 잘 동작한다
————————————————-
SIP Trunk 에서 컬러링(Ring back tone)이 들리지 않고 그냥 기본 통화연결음만 들릴때:
이건 기본적으로 Asterisk 가 통화가 연결될 때 까지 통화연결음을 만들어 내기 때문이다.
외국에는 컬러링 같은 개념이 없나보다..
SIP.conf 에 아래 두개를 추가해주면 된다
(Freepbx – Setttings – Asterisk SIP Settings – 오른쪽 탭 Chan SIP – 맨밑에 Other SIP Setting)
progressinband=yes
prematuremedia=no (확인해보니 이건 안넣어도 되네요)
————————————————-
+ Asterisk SIP Provider 인증상태 확인
asterisk -rx “sip show registry”
+ Asterisk Log 실시간 확인
tail -f /var/log/asterisk/full 혹은 tail -f /var/log/asterisk/messages
————————————————-
Cisco CP-9971 과 CP-9951을 Asterisk 에 연결하기
http://linuxmanr4.com/2011/09/05/telefono-cisco-9951-y-elastix/
FreePBX 12 기준 :
아래 모든 사항은 유저셋팅, Extension 셋팅이 끝나고 나서 해야한다.
Extension 은 CHAN_SIP로 만듭니다.
아래 쪽에 있는 TFTP 설치방법을 참고하여 TFTP 설치
69번 포트 오픈
/tftpboot 폴더에 필요한 파일들을 넣는다
SEP{기기고유ID}.xml
dialplan.xml
Korean_Korea_Republic (언어파일, CME 관련된 페이지에서 받을수 있는듯 하다, 없어도 됨)
RINGLIST.DAT (벨소리리스트, 없어도 됨)
Settings – SIP Setting 에서 외부아이피 다 설정하고
NAT 은 공유기 환경이면 yes 아니면 no
그리고 오른쪽 탭의 SIP Setting 에서 맨 아래
Other SIP Settings 에 아래 두개를 추가한다
callcounter = yes
tcpenable = yes
Extension 페이지 오른쪽 탭에서 시스코 전화기를 접속시킬 Extension 을 선택하고
NAT MODE 를 Automatic Force Both로 선택
Port 를 5061 (CHAN_SIP 포트)로
Transport 를 All – TCP Primary 로 선택하고 저장합니다.
(추가 업데이트 예정)
————————————————-
————————————————-
TFTP 서버 설치하기
sudo apt-get install xinetd tftpd tftp
vim /etc/xinetd.d/tftp 에 아래 내용 추가
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
sudo /etc/init.d/xinetd restart
————————————————-
1 comment
thank you for sharing. is there any other tutorials related to asterisk ?