2011-10-03 6 views
1

내 소프트 폰이 BYE를 끊어서 어떻게 다른 곳에서 다시 만들 수 있는지 이해하려고합니다. 아래는 ZoIPer가 SIP 신호 소프트웨어를 실행하는 서버로 보내는 패킷입니다.openSIPs 403 "Externa SIP domain forbidden"오류

이 문자열을 작성하여 누군가에게 성공적으로 연결을 시도하지만 400, 403, 407, 481 및 503 오류가 발생합니다. 문제는 Route 헤더에서 "수행 한"값의 출처를 확인할 수없고 Via 헤더에서 "분기"값의 출처를 알 수 없다는 것입니다. 다른 모든 매개 변수는 내 소비를 위해 별표로 표시됩니다.

"완료"와 "분기"는 어떻게 결정합니까?

또한이 예제는 프록시 인증을 사용하지만 짧은 호출의 경우이 줄은 ZoIPer에서 생략됩니다.

BYE sip:[email protected] SIP/2.0 
Via: SIP/2.0/UDP 192.168.1.183:5060;branch=z9hGda4bK-d8754z-678f2d4d1e5-1---d8754z- 
Max-Forwards: 70 
Route: <sip:sipHost;lr;ftag=733a98721;did=c0f.22438545> 
Contact: <sip:[email protected]:5060;transport=UDP> 
To: <sip:[email protected];transport=UDP>;tag=as4f57c9b8a 
From: <sip:[email protected];transport=UDP>;tag=733a98721 
Call-ID: Nzg1ZTEyYTg4NasdlkSZLK3j10. 
CSeq: 3 BYE 
Proxy-Authorization: Digest username="bobby",realm="TomTest.voip.snohio.net",nonce="4e8a1b1700005997e6b1d8732be4b4c01f56d27a6d2dd80b",uri="sip:[email protected]:5060",response="3dbb0f4cbb0000c7786975cf043e6898",algorithm=MD5 
User-Agent: Zoiper rev.11137 
Content-Length: 0 

감사합니다.

답변

1

branchBYE 트랜잭션의 식별자입니다. z9hG4bK으로 시작해야하며 전 세계적으로 고유해야합니다. 그렇지 않으면 정확한 형식은 구현 자의 재량에 달려 있습니다. 요청에서 사용자 에이전트가 요청을 전송할 때 branch 매개 변수를 추가합니다. 귀하의 경우, Zoiper가 계산합니다.

대부분의 SIP 헤더는 임의의 매개 변수를 전달할 수 있으며 여기서는 ftagdid이 이러한 매개 변수의 예입니다. 그들은 IANA registry에 따르면 어떤 SIP RFC에도 속하지 않으므로 아무 의미가있을 수 있습니다. 그것은 Asterisk 내부의 무언가 인 것처럼 보입니다. 가장 좋은 방법은 Route 헤더 만 남겨 두는 것입니다. BYE 중요한 부분에 대한

FromTo 헤더의 Call-IDtag 매개 변수입니다. 잘못 입력하면 481 Call/Transaction Does Not Exist 응답을 받게됩니다.

Authorization (403) 또는 Proxy-Authorization (407) 자격 증명이 맞지 않으면 403 및 407 응답을 받게됩니다.

503 응답은 프록시가 요청을 처리하기에 너무 바쁜 것을 나타냅니다.

+0

감사합니다. 예, 결국 RFC에서 Magic Cookie 접두사를 찾았습니다. 또한 나는 방금 그 did 태그를 떨어 뜨 렸습니다. 나가 나의 구입을 정확하게 놓는 경우에, 나는 나의 외침의 1 개의 다리를서만 종결하고있는 것처럼 보인다, 나가는 발은 다른 사용자에게 _appears_ 살아있는 의미한다, 그러나 선은 죽다. – kmarks2