안녕하세요..
asterisk 설치 잘 하셨나요?
이번시간에는 Asterisk를 이용하여 내선설정을 하여 통화를 해보도록 하겠습니다.
asterisk 로 접속합니다.
먼저 메뉴에서 Applications -> Extensions 클릭합니다.
그다음 Generic SIP Device 선택후 Submit
User Extension : 5001
Display Name : 5001
CID Num Alias 5001
SIP Alias : 5001
secret : 비밀번호 입력 ( 문자 2자리 숫자 조합으로 8자리 이상 입력)
dtmfmode : RFC2833
nat : Yes
이렇게 입력합니다.
그리고 Submit 버튼으로 저장합니다.
위와같이 다른 내선번호 (5002,5003···········)를 추가로 더 등록합니다.
이제 SIP 외부에서 통화가능하게 셋팅을 해야 합니다.
외부라 함은 Asterisk 서버가 연결되어 있는 네트워크(공인,사설) IP 대역을 벗어나 다른 IP 대역에서 통화가 가능하게 설정하는걸 말합니다.
일반적으로 공유기 같은 사설IP 대역에서는 이 설정을 필히 해줘야 3G 및 LTE 에서도 통화가 가능합니다.
Setting -> Advanced Settings 클릭
SIP NAT : yes 로 변경
Settings -> Asterisk SIP Setting 선택
NAT : yes
IP Configuration : static IP
External IP : 공인IP를 넣어줍니다.
Local Networks : 사설IP대역 / 서브넷
(공유기에서 할당 받은 IP가 192.168.0.2 라 하면 192.168.0.0 / 255.255.255.0 C클래스 서브넷을 넣어줍니다.)
코덱부분은 저는 전부 다 클릭했어요
일반적으로 SIP는 UDP로 5060포트를 사용합니다. 이것을 변경할수 있어요 그 옵션은 아래와 같이 Other SIP Settings 에서
똑같이 입력하시면 변경 가능합니다.
TCP로 변경하게 되면 아이폰에서 백그라운드에서도 전화가 울리구요
안드로이드에서는 배터리 소모에 대한 리스크를 줄일수 있습니다.
필히 UDP를 TCP로 변경하도록 합시다
이제 생성된 계정을 확인해볼까요? 다시 Applications -> Extensions 클릭
우측에 생성된 5001 <5001>을 클릭합니다.
아래와 같이 생성된 정보를 확인하실수 있습니다.
스크롤을 아래와 같이 내리면
port : 5060
transport :UDP Only에서 TCP Only로 변경합니다.
상위에 Apply Config 클릭하여 저장하시면 됩니다.
이제 통화를 해보면 됩니다.
안드로이드 어플은 CSipsimple 이라는 어플어다가 설정하시면 되구요.
아이폰 같은 iOS는 C2phone으로 설정하시면 됩니다.
3G나 LTE로 통화할시 공유기에서 포트를 열어줘야 하는데
열어줘야 하는 포트는 5060 TCP / UDP 10000~20000을 열어주시면 정상적인 통화가 가능합니다.
감사합니다
안드로이드에서 CSipsimple 프로그램을 추천해주셨는데,
이거 말고 안드로이드의 "전화걸기" 메뉴에 들어 있는 기본 SIP 셋팅으로도 잘 될런지 궁금하군요.
https://www.callcentric.com/support/device/android/sip_client
셋팅만 이상없게 하신다면 충분할것으로 생각이 들어요..
코덱은 G.711 U-law , G.711 A-law 정도만 사용하시면 될거에요.. G.729 라든지.. G.723 은 요샌 이름만 보이는 거같아요.
그리구.. TCP 를 사용하면 그런 차이점이 생긴다는건 시..신기하네요 +_+
VoIP에서 UDP 를 기본적으루 쓰던건 음성스트리밍 중 통신이 불안정할 경우에도 그냥그냥 넘어간다는 점?.. 이 있던거같네요. 대역폭도 덜 필요하고.
(TCP는 핸드쉐이크라든지.. 신뢰성..무결성? 뭐시긴지 패킷 망가지면 재요청, 재요청,, 뭐 그런게 있으니)
- 전 실사이트는 UDP 로 전부 구축합니다..만 TCP 도 요샌 뭐.. 문제 없겠죠?..ㅎㅎ
그나저나 프록시 설정은 어떻게 하셨기에 외부로 통화하시는거지???.. 했는데
자세히 읽어보니 스마트폰의 LTE 망에서 asterisk 로 regi 시킨 경우를 말씀하신거군요
<< 3G나 LTE로 통화할시 공유기에서 포트를 열어줘야 하는데 >> -> 다른 외부와 통화할 시 (공인아이피나 모바일 어플)
이라고 설명을 조금 수정하면 유연하지 않을까요? (걔네들두 결국은 공인아이피인지라 ㅎㅎ)
코덱부분은 Freepbx에서 모든 설정을 해놓은 이유는 제가 알기론 해당 코덱이 활성화가 안되어있다면 바이패스 한다고 들었습니다.
바이패스 되면 해당 코덱이 SIP어플에 활성화가 안되어있다면 원웨이 현상이 생갈수도 있다고 들었습니다. (코덱이 맞지않아 송수화음 전달이 제대로 안된다는..)
UDP로 하게되면 애플사의 노티 서버를 이용할수 없다고 들었습니다. 그래서 노티 메세지를 받을려면 TCP로 변경하여 등록하게 되면 노티 서버를 이용할수 있는것이죠 ^^
말씀해주신 내용 토대로 본문내용을 조금 수정해야겠습니다 정말 감사합니다 ^^
제쪽은 VoIP전화기 도입하러 가면, Client 쪽이 글로벌 IP를 가진 기기라면 SIP NAT 기능이 있으면 괜찮긴한데,
아무래도 전화기가 한대만 놓는게 아니다 보니 사용하는 라우터가 SIP NAT 기능이 없으면 one way 통화가 되거나,
발신은 되도 착신이 안되거나하는 문제가 많더군요.
때문에 SIP ALG 기능이 있는 라우터를 찾는데, 종류도 잘 없고, 불안하고... 어흑
- 공유기가 널리 퍼진 이 시대에 클라이언트에게 그런걸 요구할 수 없습니다.ㅎㅎ
ALG 기능을 대신하는 게 asterisk의 NAT 설정입니다. (글쓴님도 있다고 하더군요ㅎㅎ)
- FreePBX 기준으로는 http://wiki.freepbx.org/display/FPG/Old+SIP+Settings 검색이 되네요
NAT: This setting is used to indicate whether the other systems you connect with are behind a router that provides Network Address Translation ("NAT"). If is it set to "Yes," Asterisk will ignore the from address specified by the remote system and instead send response packets to the address that the packets actually came from. In most cases, it is safe to set this to "Yes."
PBX가 NAT기능을 적용해주면 ALG가 필요없지요. ALG라니까 어색하네요 SBC가 필요없죠..
다만.. asterisk NAT는 제가 실제 적용하여 테스트하지는 않아서 =_=.....
기술적 내용은 아랫 댓글에 적어놓았습니다
고객측은 고객측대로 pbx를 회사에 놓으면 후진 시스템이라고...
덕분에 VPS에 서버 올리고 이상하게 돌리고 있습니다. ㅎㅎ;
뭐 관심있던 분이 더 계실지는 모르...겠지만
SIP 패킷은 IP 계층의 src. dest (발신자, 수신자)와는 또 다르게 SIP src, dest 가 있습니다. from, to, contact 까지..
PC또는 서버를 떠난 IP패킷은 공유기나 L3에서 변환되어 192.168.0.10 -> 121.11.22.33 으로 변환이 되었는데..
SIP 내부에는 여전히 from 192.168.0.10 으로 남게 됩니다..
이 패킷을 수신한 상대측에서는 응답패킷의 dest IP를 192.168.0.10 으로 하게되는 현상이 나타나고..
당연히 그 패킷들은 소실됩니다... 즉.. 음성이 한쪽만 전달이 됩니다.
이 현상을 one way 라고 표현합니다. (정상인 경우를 two way)
SIP NAT 기능은 그것을 보완하고자 SIP 패킷에도 미리 지정한 extenal IP 를 심어주겠다는 기능이죠..
설정은 간단한데, 이기능을 지원하지 않는다면... 꽤나 짜증납니다 ㅠㅠ SBC(Session Border Contoller) 가 필요해집니다,, 비싸요...
일단 ip255s의 펌웨어가 통신사 마다 각기 달라서 마음대로 셋팅이 가능한 일반펌웨어가 필요한데 이것도 쉽지 않은 모양입니다.
- 일반용도
- KT전용
- LG전용
이런식으로 구분할 수 있는데,
이 중 LG전용폰은 타 PBX에 사용이 불가능하다고 보면 됩니다.
과거엔 펌웨어 교체신공을 했는데.. 최근몇년사이 나온 LG전용폰은 펌웨어 교체도 안되요..
펌웨어파일은 총 7개 가지고 있습니다.
IP폰은 저희회사보니 작년에 http://www.eicn.co.kr/ 여기서 주문하더라구요. (사업자라며.. 테스트용도라고 구매하시려면 참고)
srtp 항목은 있는데 호환이 안되네요 답변 꼭 부탁드립니다