2017-10-30 11 views
0

나는 ahmed이고 opensips에서 일하고 있습니다. 사실, 나는 포럼에 귀하의 질문을 뿌리고 나는 당신이 대답한다고 생각하는 문제가 있습니다.Opensips 2.1 SIP 트렁크 구성

사실, 나는 opensips 서버에 등록 된 사용자간에 전화를 걸기 위해 간단한 senario를 만들었지 만 실제 IP 전화 (각자 IP 주소가 있음)에서는 작동하지 않습니다. (트렁크). 예 : 내 opensips 주소 : 10.42.15.18 이고 내 IP 주소는 10.42.13.82 입니다. 내 생각에 그게 전부라고 생각합니다.

나는이 부분에서 차단되어 해결책을 찾지 못했다. 아마도 내가 놓친 세부 사항이있을 수있다. IP 전화로 요청 및 응답을 처리하는 기능은 무엇입니까?

이 코드를 사용

:

계정 만

if ($rU=="49894614950666"){ 
         $rU = $tU; 
         rewritehostport("10.42.13.82:5060"); 
         $du = "sip:[email protected];user=phone"; 
         t_relay(); 
         xlog("reference to URI of 'To' header ====> $tu"); 
         xlog("reference to domain in URI of 'TO' header ====> $td"); 
         # route the call out based on RURI 
         route(3); 
         } 



route[3]{ 

     seturi("sip:[email protected];user=phone"); 
     $du = "sip:[email protected];user=phone"; 
     rewriteuri("sip:[email protected];user=phone"); 
     xlog("route 2 : forwarding to $tU \n $ruri \n"); 
     xlog("Received $rm from $fu (callid: $ci)\n"); 
     forward(); 



       if (is_method("INVITE")) { 
       t_on_branch("2"); 
       t_on_reply("2"); 
       t_on_failure("1"); 
     } 



     if (!t_relay()) { 
       sl_reply_error(); 
     }; 
     exit; 
} 

부드러운 휴대 전화에서 요청 된 번호로 전화를 걸어, 서버는 요청이 다음과 같이 초대 전송 초대 :

INVITE sip:[email protected];transport=TCP SIP/2.0 
Via: SIP/2.0/TCP 10.42.15.12:5060;branch=z9hG4bK-524287-1---dedd27ee7475c0f1 
Max-Forwards: 70 
Contact: <sip:[email protected]:5060;transport=tcp> 
To: <sip:[email protected];transport=TCP> 
From: <sip:[email protected];transport=TCP>;tag=2f025b44 
Call-ID: tdO14DnlADH9Okx6Sr0p4A.. 
CSeq: 1 INVITE 
Content-Type: application/sdp 
User-Agent: Z 3.15.40006 rv2.8.20 
Allow-Events: presence, kpml, talk 
Content-Length: 237 

및 타겟 VM은 Opensips 서버에 INVITE 요청을 재전송하지만, 서버는 자신에게 메시지를 보내고 대상 머신에 응답하지 않습니다.

INVITE 메시지의 "To (받는 사람)"필드가 FALSE입니다. opensips는 IP 전화로 초청을 보내고 그로부터 오는 메시지를 무시하고, 어떤 ack로도 응답하지 않습니다. 무엇을 추가하거나 수정해야합니까? 감사합니다.

+0

중 하나를 사용하여 런타임에서 위치를 변경할 수 있습니다! –

답변

0

lookup 기능을 사용하지 않는 이유는 무엇입니까? 그것은 당신과 같은 경우를 위해 의도되었으며 URI를 자동으로 다시 쓰는 데있어 모든 의무를 다할 것입니다. 그런

뭔가 :

    if (lookup("location","m")) { 
          xlog("[INCOMINGCALL][$rU @ $si:$sp ] Forward call call to <$ru> via <$du>\n"); 
          if (!t_relay()) { 
            send_reply("503","Internal Error"); 
          }; 
          exit; 
        } 

        t_reply("404", "Not Found"); 
        exit; 

이 기술의 장점은 'opensipsctl 주소'명령 도움이 될 수 있습니다