t_relay([flags],[outbound_proxy])
현재 URI에 표시된 목적지로 stateful 메시지를 릴레이합니다. (원래 URI가 UsrLoc, RR, strip/prefix 등에 의해 재작성된 경우 새 URI가 사용됩니다). 실패 시 음수 값을 반환합니다. 업스트림 UAC를 곤경에 빠뜨리지 않도록 무상태로 부정적인 회신을 업스트림으로 보낼 수도 있습니다.
해당 트랜잭션은 이미 생성되었거나 생성되지 않았을 수 있습니다. 아직 생성되지 않은 경우 함수가 자동으로 생성합니다.
이 함수는 두 개의 선택적 매개변수를 사용할 수 있습니다.
첫 번째 매개변수는 내부 동작을 제어하기 위한 플래그 집합을 나타내는 숫자입니다. 플래그는 10진수 또는 16진수 형식으로 제공될 수 있습니다. 지원되는 플래그는 다음과 같습니다.
0x01 - 더 이상 사용되지 않음, 더 이상 사용되지 않음
0x02 - 전역 전달 실패(즉, 내부 오류, 잘못된 R-URI, 잘못된 메시지, 네트워크 도달 가능성 부족 등으로 인해 각 분기에 대한 전달 실패)의 경우 "477 전송 실패(477/TM)" SIP 응답을 내부적으로 생성 및 전송하지 않습니다.
이 플래그는 트랜잭션이 이전에 t_newtran() 에 의해 생성되지 않은 경우에만 적용됩니다 . 글로벌 포워딩 실패가 발생하면 SIP 요청이 릴레이되지 않으므로 fail_route(설정된 경우)에 부정적인 SIP 응답 또는 시간 초과가 표시되지 않습니다.
현재 생성된 분기를 전달할 수 없는 경우에 대한 장애 조치 논리를 구현하려는 경우에 유용합니다.
0x04 - 트랜잭션에 대한 DNS 장애 조치를 비활성화합니다. 첫 번째 IP만 사용됩니다. 전송 및 트랜잭션 수준 모두에서 장애 조치를 비활성화합니다.
0x08 - 요청이 CANCEL인 경우 수신된 CANCEL에서 Reason 헤더를 신뢰하고 추가로 전달하면 곧 Reason 헤더가 전파됩니다.
0x10 - OpenSIPS가 Content-Disposition "no-cancel" 표시(있는 경우)를 검사하고 따를 수 있습니다. RFC3841, 섹션 9.1에 따라 TM 모듈은 2xx 응답이 수신될 때 진행 중인 모든 분기를 취소하지 않도록 지시받을 수 있습니다. (1) 모든 분기가 최종 응답을 받거나 (2) 트랜잭션이 시간 초과에 도달할 때까지 보류 중인 분기를 계속 진행합니다.
두 번째 매개변수는 메시지를 보내야 하는 아웃바운드 프록시(고정 대상)를 나타내는 문자열입니다. 대상은 " [proto:]host[:port] " 로 지정됩니다 . 함수가 호출되기 전에 이 메시지에 대한 대상 URI " $du " 가 설정된 경우 함수 매개변수 대신 이 값이 대상으로 사용됩니다.
오류가 있는 경우 함수는 다음 코드를 반환합니다.
-1 - 일반 내부 오류
-2 - 잘못된 메시지(파싱 오류)
-3 - 사용 가능한 대상 없음(분기가 추가되지 않았거나 요청이 이미 취소됨)
-4 - 잘못된 대상(확인할 수 없는 주소)
-5 - 필터링된 대상(블랙리스트)
-6 - 일반 전송 실패
이 함수는 REQUEST_ROUTE, FAILURE_ROUTE에서 사용할 수 있습니다.