여러 개의 IP를 수신하는 OpenSIPS 서버가 있습니다. 전화를 다음 지점으로 되돌려 보내는 경우 원래 신호가 착신 된 IP에서 모든 신호와 미디어가 전송되도록하고 싶습니다 (발신자와 수신자가 서로의 IP 주소를 알지 못하게하고 싶습니다).OpenSIPS/Kamailio/OpenSER로 RTP 프록 싱
나는 RTPProxy와 같은 것을 위해 무엇이 필요한지 믿습니다.
내 질문에 IP 주소 하나당 하나의 RTPProxy 서버가 필요합니까? 아니면 단일 서버를 통해 여러 IP를 라우팅 할 수 있습니까? 더 나은 해결책이 있습니까?
나는 이것을 직접 시도 할 것이지만, RTPProxy 서버가 올바르게 실행되도록 고심하고있다. 나는 내가 시간을 낭비하고 있는지 아는 사람이 있는지 미리 확인했다.
[업데이트]
는 관심있는 사람들을위한, 이것은 내가 내가 최종 솔루션이 실행하려는 모르겠어요 비록이 작업했던 방식이다. 더 많은 테스트가 필요합니다. 토폴로지 숨김 및 RTP 프록 싱을 사용하는 2 개의 IP의 경우. 아래 답변과 함께, 나는 그것이 누군가를 돕기를 바랍니다.
로드 rtpproxy 프로세스 -
rtpproxy -l _your_public_ip_1_ -s udp:localhost:7722
rtpproxy -l _your_public_ip_2_ -s udp:localhost:7723
그 다음 kamailio.cfg 파일 개조 -
loadmodule "/usr/local/lib64/kamailio/modules/topoh.so"
modparam("topoh", "mask_key", "Your_key_here")
modparam("topoh", "mask_ip", "10.0.0.1")
다음 비트는 RTP 프록시 두 그룹 생성 - 1 & 2 -
#!ifdef WITH_NAT
# ----- rtpproxy params -----
modparam("rtpproxy", "rtpproxy_sock", "1 == udp:127.0.0.1:7722")
modparam("rtpproxy", "rtpproxy_sock", "2 == udp:127.0.0.1:7723")
을
표준 (선적 된) 구성의 NAT 섹션에서 다음 중 어느 것을 선택합니까? 그룹은 인바운드 콜이 착신 한 IP를 기반으로 프록시에서 사용할 그룹입니다. rtp_proxy_manage는 force_ 및 unforce_ 명령의 매우 상위 버전입니다. 기본적으로는 그냥 화재와 당신을 위해 모든 것을 않습니다 - 당신이 RTPProxy를 사용하는 경우 IP 주소 당 하나 개의 RTPProxy 서버를 필요
route[NATMANAGE] {
#!ifdef WITH_NAT
....
if($Ri=="X.X.X.1")
set_rtp_proxy_set("1");
if($Ri=="X.X.X.2")
set_rtp_proxy_set("2");
rtpproxy_manage("",$Ri);
감사합니다. 나는 이것을 대답으로 받아들이고있다. 몇 개의 IP를 실행하려면 여러 개의 프록시가 필요할 것이므로이 방법을 사용하여 Kamailio/OpenSIPS의 성능을 향상시킬 수 있을지 확신하지는 않습니다. Freeswitch의 버전을 사용하지 않을 것입니다. 프록시 미디어 모드. 이 모든 것은 물론 테스트가 필요하며 두 방법 모두를 테스트 할 것입니다. 자세한 답변을 주셔서 감사합니다. – beigerac
또한 OpenSIPS와 Kamailio를 시범 적으로 테스트 중이라는 질문에 OpenSIPS를 구체적으로 언급했음을 주목합니다. 동일한 코드 기반에 속해 있음에도 불구하고 모듈에는 다른 모듈이 있습니다. 누락에 대한 사과. – beigerac
전혀 문제가 없습니다. 위의 rtp_proxy 예제는 kamailio 설치에서 가져온 것입니다. 위의 mediaproxy 예제는 OpenSIPS 설치에서 가져온 것입니다 (기존의 이유로 두 가지를 혼합하여 실행합니다). – IanBlenke