2012-05-29 3 views
0

두 개의 다른 UA를 사용하는 UA에 대해 병렬로 많은 SIP 트랜잭션을 수행 할 수 있습니까? 예를 들어, UA1이 INVITE의 중간에 있다면, UA1은 UA3으로부터 들어오는 INVITE에 응답 할 수 있습니까? 독립 실행 형 트랜잭션은 어떻습니까?병렬 SIP 트랜잭션

답변

2

SIP 디바이스가 여러 개의 동시 트랜잭션을 처리하는 것을 방지하는 표준은 없습니다. 실제로 SIP 서버는 모든 종류의로드를 처리 할 수 ​​있어야합니다.

SIP 사용자 에이전트가 동시 SIP 트랜잭션을 처리해야하는 방법은 별도로 고려해야합니다. UA1이 이미 통화 중이고 UA3에서 새로운 INVITE 요청이 들어오는 경우,이를 처리하는 일반적인 방법은 일종의 통화 대기 표시입니다. Softphone을 사용하면 표시가 시각적 일 수있는 반면 ATA는 UA의 오디오 스트림에 일부 색조를 주입하여 오디오 채널에 표시되는 경우가 많습니다.

비 INVITE 트랜잭션의 경우 대부분 사용자 작업이 필요하지 않으므로 일반적으로 훨씬 간단합니다. 예를 들어, UA는 다른 SIP 서버와 다양한 등록 및/또는 가입 트랜잭션 (이 경우 트랜잭션은 단순히 요청과 응답의 조합 임)과 함께 6 개의 서로 다른 등록을 유지할 수 있습니다.

+0

예를 들어, UA1이 세션 새로 고침을 위해 UA2에 reINVITE를 보내고 UA3이 UA1을 호출 중이라고 가정합니다. UA1이 UA2에서 20 OK를 기다릴 필요가 없다는 말입니까? 맞습니까? 감사. – Bob

+0

네, 맞습니다. SIP 표준에는 관련없는 트랜잭션을 처리해야하는 순서가 결정됩니다. 트랜잭션을 순서대로 처리해야하는 경우 UA1 또는 UA2가 동일한 세션에 대한 후속 초대 트랜잭션을 보내기 전에 UA2가 완료되어야한다는 원래 초대가 있어야합니다. – sipwiz

+0

SIP 표준은 동일한 대화 (통화/세션) 내에서 트랜잭션으로 수행 할 작업 만 정의합니다. UA에 하나의 서버/UA가있는 대화 상자가있는 경우 해당 세션/대화 상자 외부의 요청은 완전히 독립적이며 사용자가 시스템에 그렇게하도록 프로그램하지 않는 한 다른 세션에 영향을주지 않아야합니다. 적절한 행동) – Toote

2

다른 SIP 병렬이있는 경우도 ... 한 모금 대화 상자 내에서

가 여러 UAC 거래 짧은 공간의 시간 내에 시작 "gothca - 투 - 시계-은"거래 (~ 0.5 초를있다) 및 신뢰할 수없는 (UDP) 로의 전송으로 인해 초기 요청 패킷이 손실되면 문제가 발생할 수 있습니다.

시퀀스 번호 (CSeq)가 'n'인 손실 패킷은 도착하지 않지만 CSeq n + 1을 포함하는 다음 패킷은 도착합니다.

이는 수신 (UAS) 측에서 허용 가능하며 "원격 cseq"에 대한 지식을 'n + 1'로 업데이트합니다.

초기 요청은 다시 보내지 만 CSeq 'n'은 이제 remote-cseq보다 낮으므로 폐기해야하며 UAS는 (500 서버 내부 오류)로 응답합니다.

예상했던 것 같지 않습니다!

전송이 "신뢰할 수없는"경우 대화 상자를 사용하여 요청을 직렬화하는 것을 고려해야합니다.