소개
이 문서에서는 Wireshark와 관련된 Jabber SIP 통화 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- SIP 신호
- Jabber 통화 흐름
- Wireshark 및 패킷 필터링에 대한 기본 지식
사용되는 구성 요소
- Windows 15.0.2용 Jabber
- CUCM 15su2
- Wireshark 4.4.7
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
SIP(Session Initiation Protocol)는 VoIP 통신에서 신호를 보내는 데 사용되는 표준 프로토콜입니다. SIP는 통화 설정, 수정 및 해제를 관리합니다. 통화가 설정되지 않으면 SIP 시그널링에 문제가 있는 경우가 많습니다. Cisco Jabber는 음성 또는 화상 통화를 할 때 SIP를 사용하여 신호를 보냅니다. Wireshark를 사용하면 엔지니어가 SIP 메시지를 캡처 및 분석하고 오류를 식별하며 통화 설정 오류의 원인을 정확히 찾아낼 수 있습니다.
문제 해결
1. 영향을 받는 통화 흐름을 식별하고 격리합니다. 이 단계는 문제와 관련된 네트워크 장치를 결정하는 중요한 단계입니다. 이 문서에서는 CUCM에 등록된 2개의 Jabber 클라이언트 간의 포인트-투-포인트 통화를 참조로 사용하지만, 이 기본 문제 해결은 여러 시나리오에 적용됩니다.
2. 오픈 와이어샤크
3. 올바른 네트워크 인터페이스를 선택하고 영향을 받는 디바이스에서 Wireshark 패킷 캡처를 시작합니다.

4. 문제를 복제하고 타임스탬프, 수신 번호, 통화 번호 및 통화 중 특정 오류나 동작과 같은 중요한 정보를 기록합니다.
5. Wireshark 패킷 캡처를 중지하고 수집합니다.

6. 패킷 캡처를 열고 Telephony(텔레포니) > VoIP Calls(VoIP 통화) > Identify the test call(테스트 통화 식별)로 이동하여 Flow Sequence(플로우 시퀀스)를 클릭합니다.

7. Wireshark는 장치 관점에서 통화 흐름 다이어그램을 표시합니다. 플로우의 네트워크 디바이스를 식별하고 SIP 오류를 찾거나 통화가 종료되거나 시작되지 않는 이유를 나타내는 SIP 신호를 분석합니다.

8. 조사를 위해 관심 있는 SIP 메시지가 있으면 해당 메시지를 클릭하면 Wireshark가 패킷 캡처에서 메시지를 자동으로 강조 표시합니다. 그런 다음 해당 특정 패킷에 대해 심층 검사를 수행할 수 있습니다. 여기서 Session Initiation Protocol(세션 시작 프로토콜) 정보를 확장합니다. 이 정보는 패킷 세부사항에 있습니다.

9. Wireshark의 패킷 세부사항 섹션에는 해당 패킷의 모든 정보가 포함됩니다. 여기에서 해당 오류나 메시지의 Call-ID, From, To, Date, Time, Errors 및 Reason과 같은 자세한 정보를 얻을 수 있습니다. 이 정보는 통화 흐름 경로를 따라 이 통화를 추적해야 하는 경우에 유용합니다.
10. SIP 통화에 대한 가장 일반적인 오류는 아래 표에 지정되어 있습니다.
코드
|
의미
|
가능한 원인
|
수정/조치
|
403 금지
|
수락되었지만 요청이 거부됨
|
사용자에게 권한이 없으며 잘못된 SIP 도메인이 정책에 의해 차단되었습니다.
|
다이얼 플랜/권한을 확인합니다.
|
404 찾을 수 없음
|
사용자/내선 번호를 찾을 수 없음
|
사용자가 만들어지지 않았거나 등록되지 않았고 잘못된 전화 번호입니다.
|
사용자가 있는지 확인; 엔드포인트 등록 확인; 라우팅/다이얼 플랜을 확인합니다.
|
408 요청 시간 초과
|
대상에서 응답이 없습니다.
|
네트워크 문제, 방화벽/NAT 차단, 디바이스 오프라인
|
연결 테스트(ping/traceroute), SIP/RTP 포트 열기, 장치가 온라인 상태인지 확인합니다.
|
415 지원되지 않는 미디어 유형
|
지원되지 않는 미디어 유형입니다.
|
SDP에 지원되지 않는 코덱/형식이 포함되어 있습니다.
|
코덱 조정; 호환 가능한 SDP 제안/답변을 확인합니다.
|
480 일시적으로 사용할 수 없음
|
사용자에게 연결할 수 없습니다.
|
디바이스가 등록되지 않음, DND, 네트워크 손실
|
엔드포인트 상태 확인; 수표 등록; 네트워크 연결성을 확인합니다.
|
486 여기 통화 중
|
엔드포인트가 사용 중입니다.
|
다른 통화의 사용자이며 DND가 활성 상태입니다.
|
나중에 다시 시도; 통화 대기 또는 착신 전환을 활성화합니다.
|
488 여기에 허용되지 않음
|
미디어 협상에 실패했습니다.
|
코덱 불일치, SRTP 대 RTP 불일치, 지원되지 않는 DTMF 방법입니다.
|
코덱 목록을 정렬합니다. 암호화 설정 확인; DTMF 유형과 일치시킵니다.
|
500 내부 서버 오류
|
서버측 오류입니다.
|
SIP 서비스 충돌, 잘못된 컨피그레이션
|
서버 로그/컨피그레이션 확인; SIP 서비스 다시 시작
|
503 서비스를 사용할 수 없음
|
서버를 사용할 수 없거나 서버가 오버로드되었습니다.
|
서버 다운, 유지 보수, 과부하.
|
서버 상태 확인; 백업으로 페일오버 부하를 줄입니다.
|
11. 이 시점에서 문제가 어디로 전달되는지, 일반적인 시나리오는 다음과 같습니다.
- Jabber에서 오류를 생성하거나 통화를 종료합니다. 이 경우 Jabber 로그를 수집하고 이전에 얻은 패킷 세부사항 섹션의 정보를 사용하여 통화를 추적해야 합니다. Jabber 로그 분석에서는 텍스트 편집기를 사용하는 것이 좋으며 Call-ID 정보를 사용하여 필터링하여 해당 통화에 관련된 정보를 표시할 수 있습니다. 또한 필터링하는 데 유용한 키워드는 로그의 모든 SIP 메시지를 표시하기 위해 sipio입니다. 문제를 일으킬 수 있는 SIP 오류와 관련된 오류나 이벤트를 검색해야 합니다.
- Jabber가 다른 디바이스 또는 서버에서 오류를 수신합니다. 이 경우 통화 흐름의 서버 부분에서 추가 로그를 수집해야 합니다. 경우에 따라 Call Manager 로그 및 추적, Expressway 로그 및 게이트웨이 디버그가 수행됩니다. 필요한 정보는 영향을 받는 통화 흐름에 따라 달라집니다.
SIP용 Wireshark 디스플레이 필터
디스플레이 필터는 Wireshark에서 특정 정보, 다중 통화 또는 메시지를 필터링하고 표시하는 데 사용할 수 있습니다. 몇 가지 예가 표에 나와 있습니다.
목적
|
필터 표시
|
참고
|
모든 SIP 트래픽
|
한 모금
|
SIP 신호만 표시합니다(미디어 없음).
|
초대 메시지
|
sip.Method == "INVITE"
|
통화 설정 분석에 사용됩니다.
|
메시지 등록
|
sip.Method == "REGISTER"
|
등록/인증 문제
|
모든 SIP 오류(4xx/5xx/6xx)
|
sip.상태 코드 >= 400
|
실패한 요청을 신속하게 격리합니다.
|
특정 SIP 오류(예: 403)
|
sip.Status-Code == 403
|
한 가지 실패 유형만 확인합니다.
|
Call-ID로 필터링
|
sip.Call-ID == "abcd1234@domain.com"
|
단일 통화/세션을 엔드 투 엔드로 추적
|
특정 IP에서 SIP로
|
ip.addr == 192.168.1.50 및& sip
|
한 엔드포인트의 SIP 트래픽에 초점을 맞추십시오.
|
모든 RTP 트래픽
|
rtp
|
RTP 미디어 스트림만 표시합니다.
|
결론
엔지니어는 이 구조화된 워크플로를 사용하여 Cisco Jabber SIP 통화 문제를 효율적으로 해결할 수 있습니다. Wireshark는 SIP 플로우 시각화 및 패킷 분석을 결합하여 Jabber 호출 설정 문제를 해결하는 중요한 도구입니다.