Asterisk SIP 서버를 통해 호출이 이루어지면 서버는 각 미디어 채널에 대해 2개의 포트를 엽니다.
- 통화 레그 1 비디오용 포트 2개
- 통화 레그 2 비디오용 포트 2개
- 통화 회선 1 오디오용 포트 2개
- 통화 회선 2 오디오용 포트 2개
Asterisk의 미디어 통신은 양방향이므로 호출 회선당 2개 포트(비디오 1개, 오디오 1개) 대신 4개 포트(비디오 2개, 오디오 2개)가 필요한 이유는 무엇입니까? 특정 레그에서 통신하는 데 하나의 포트만 사용하지만 netstat
분명히 두 개의 포트가 열려 있고 두 번째 열린 포트("사용되지 않은" 포트라고 함)는 항상 사용되는 포트보다 +1 더 많습니다. 예를 들어 통화 레그 1 비디오 포트는 17744이지만 포트 17745도 열려 있습니다.
Wireshark는 로컬 트래픽을 분석합니다.
Asterisk 서버의 Netstat 분석:
위에서 보면(부분적으로 간결성을 위해 다른 호출 레그의 Wireshark는 포함하지 않음) 모든 호출 레그의 오디오 및 비디오 포트에 동일한 문제가 적용되므로 네 가지 상황이 발생하는 것을 볼 수 있습니다. 통화할 때마다 이 문제가 발생합니다.
그래서:서버의 각 통신 경로에 추가 포트가 있는 이유는 무엇입니까?
asterisk의 미디어 통신은 한 포트에서 다른 포트로 트래픽을 전달하는 진정한 양방향이 아닌가?
또한 Asterisk에서 이러한 일반적인 동작이 발생합니까? 아니면 내 구성에 이 동작에 영향을 주는 뭔가가 있을 수 있습니까?
답변1
이것이 RTCP 스트림이 됩니다. SDP를 확인하세요.
답변2
저는 SIP 통화가 단방향 UDP RTP 오디오 스트리밍을 사용하는 것을 본 적이 있으므로 회선당 2개가 필요합니다.
Wireshark를 사용하여 SIP 통화를 캡처했습니다. Telphony 메뉴는 일부 VoIP 관련 분석 도구를 제공합니다. 위에서 캡처한 캡처에서 SIP 스트림을 표시해 볼 수 있습니다. 그러면 통화 신호가 표시됩니다. RTP 스트림 표시는 요청한 미디어 스트림을 표시합니다. 스트림을 선택하고 "분석"을 클릭하면 많은 패킷 데이터와 "스트림 재생" 버튼이 있는 대화 상자가 나타납니다. 캡처의 각 스트림에는 대화의 한 측면이 포함되어 있음을 알 수 있습니다.
단일 포트를 통한 양방향 통신의 경우 Asterisk 프로젝트에서 개발한 IAX/IAX2를 고려하고 있는 것 같습니다.
~에서https://www.voip-info.org/iax/
IAX 개정 2 프로토콜은 다른 IAX 지원 장치에 연결할 때 SIP, H.323 등의 대안으로 Asterisk 팀에서 개발했습니다(목록은 현재 제한되어 있지만 매우 빠르게 증가하고 있음). ... IAX2는 단일 UDP 포트 4569를 사용하므로 NAT 환경에서 잘 작동합니다(구식 IAX1 프로토콜은 포트 5036을 사용함). IAX2는 제어 및 데이터 트래픽에 하나의 UDP 포트만 사용합니다. IAX 대 SIP 주제의 4번 항목에서 언급했듯이 IAX를 사용하면 제어 연결을 설정할 수 있으면 항상 오디오를 사용할 수 있습니다.