2012-02-18 4 views
0

필자가 작성한 간단한 비 SIP 클라이언트 프로그램을 사용하여 PC에서 원격 다이얼을 원하고 wchich가 TCP 연결을 통해 원격 명령을 수락하는 독점 SIP 클라이언트에 명령을 보냅니다. 독점 SIP 클라이언트는 RTP를 위해 SDP에서 내 PC의 IP 및 포트 번호를 사용하여 원격 상대방에게 전화를 겁니다. 이것이 원칙적으로 가능한가? 이 개념을 사용하는 오픈 소스 클라이언트가 있습니까? 사용할 수있는 문서 (IETF RFC, 블로그 등)가 있습니까?SIP 클라이언트를 사용하는 원격 다이얼

이 문제에 도움을 주셔서 감사합니다.

+0

소품의 프로토콜은 무엇입니까? SIP 클라이언트? 어떤 고객입니까? 자세한 내용을 알려주십시오! – CharlesB

+0

소품 SIP 클라이언트는 SIP를 사용하여 한쪽면의 소프트 스위치 (별표, 프리 스위치 등)와 통신합니다. 다른 쪽 끝의 독점적 인 요청 - 응답 명령을 사용하여 내 TCP 클라이언트와 통신합니다. –

+0

그래, 프로토콜을 안다면 뭐가 문제 야? – CharlesB

답변

0

pjsip을 확인하십시오. 모든 주요 플랫폼과 C의 API 및 Python 용 API 래퍼 중 원하는 방식으로 오픈 소스 크로스 플랫폼 SIP 클라이언트입니다. 또한 사이트에 예제가 있습니다. 만약 내가 제대로 이해하고 pjsip과 통화를 시작하기 위해 함수를 호출하도록 TCP 파싱 코드를 연결합니다, 당신은 자신의 사이트에 작업을 수행하는 방법을 찾을 수있는 것은

+0

PJSIP와 TCP 클라이언트가 서로 다른 컴퓨터에 있습니다. 원격 TCP 클라이언트에 RTP 피드를 가져 오는 방법은 무엇입니까? 내가 원격 포트 및 원격 IP 주소를 지정하는 생각. 하지만이게 효과가 있니? 어떤 아이디어? 귀하의 회신에 감사드립니다. –

+0

이론적으로 INVITE 메시지의 SDP 매개 변수를 조심스럽게 조정하여 RTP 스트림을 세 번째 IP로 리디렉션 할 수는 있지만이 작업을 수행 한 적이 없으며 수행 할 사람을 전혀 들어 본 적이 없으므로 아무런 성공도 보장되지 않습니다. 여기에서 시작하십시오 : http://www.ietf.org/rfc/rfc2327.txt – MrTJ

+0

미디어 RTP 스트림이 다른 IP 주소로 라우팅되도록 Skype4b Android SDK가 메시지의 SDP 부분을 수정하도록 지원합니까? 응용 프로그램이 실행되는 것보다 포트가 더 큽니까? 원격 연결의 SDP 정보를 추출 할 수 있으므로 정보를 Linux 상자로 보낼 수 있습니까? –

0

, 여기 당신이 원하는 무엇인가 :

TCP    SIP/SDP/RTP 
PC <===> SIP client <===========> softswitch 

사실, PC와 SIP 클라이언트 간의 TCP는 RTP 미디어 스트림이 종종 UDP를 통해 전송되기 때문에 시그널링에는 정확하지만 미디어에는 맞지 않습니다.

제 생각에는 첫 번째 단계는 소프트 스위치가 SIP 클라이언트와 다른 IP 주소로 RTP 패킷을 보내는 것을 허용하는 것입니다 (보안상의 이유로 대부분 거부합니다). 그것이 받아 들여지고 SIP 클라이언트와 PC 사이에 NAT가 없다면 RTP 스트림을 PC로 직접 보낼 수 있어야합니다. 이 경우 RTP 패킷을 검색하고 다시 정렬하고 페이로드의 압축을 풀어 스피커로 보내야합니다.

소프트 스위치가 SIP IP 주소와 다른 IP 주소로 RTP 패킷을 보내지 않으려면 SIP 클라이언트에서 PC로 RTP 패킷을 전달해야합니다. 그러나 SIP 클라이언트를 수정할 수 없다면 (아마도 독점 소프트웨어 일 것입니다.) 아마 갇혀있을 것입니다.

소프트 스위치가 의도하지 않은 IP 주소로 RTP 패킷을 보내는 것을 허용하는지 테스트하려면 sipp을 사용하고 SIP 신호 IP 주소와 다른 원격 미디어 IP 주소를 지정할 수 있습니다.

+0

Skype4b Android SDK가 미디어 RTP 스트림이 애플리케이션이 실행되는 것과 다른 IP 주소와 포트로 라우팅되도록 메시지의 SDP 부분을 수정할 수 있도록 지원합니까? 원격 연결의 SDP 정보를 추출 할 수 있으므로 정보를 Linux 상자로 보낼 수 있습니까? –

관련 문제