2015-04-04 5 views
9

Я пытаюсь создать простую VoIP-приложение с помощью C#, поэтому я обнаружил, что Ozeki SDK - это простой способ сделать это, но когда я пытаюсь зарегистрировать учетную запись SIP, используя класс SIPAccountOzeki SDK и мой местный IP он не в состоянии всегда и это кодРегистрация SIP с использованием Ozeki SDK не работает

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Ozeki.VoIP; 
using Ozeki.VoIP.SDK; 

namespace SIP_R 
{ 
    class Program 
    { 
     private static ISoftPhone softphone; // softphone object 
     private static IPhoneLine phoneLine; // phoneline object 

     private static void Main(string[] args) 
     { 
      // Create a softphone object with RTP port range 5000-10000 
      softphone = SoftPhoneFactory.CreateSoftPhone(5000, 10000); 

      // SIP account registration data, (supplied by your VoIP service provider) 
      var registrationRequired = true; 
      var userName = "1000"; 
      var displayName = "1000"; 
      var authenticationId = "1000"; 
      var registerPassword = "1000"; 
      var domainHost = SoftPhoneFactory.GetLocalIP().ToString(); 
      var domainPort = 9000; 

      var account = new SIPAccount(registrationRequired, displayName, userName, authenticationId, registerPassword, domainHost, domainPort); 

      // Send SIP regitration request 
      RegisterAccount(account); 

      // Prevents the termination of the application 
      Console.ReadLine(); 
     } 

     static void RegisterAccount(SIPAccount account) 
     { 
      try 
      { 
       phoneLine = softphone.CreatePhoneLine(account); 
       phoneLine.RegistrationStateChanged += sipAccount_RegStateChanged; 
       softphone.RegisterPhoneLine(phoneLine); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Error during SIP registration: " + ex); 
      } 
     } 

     static void sipAccount_RegStateChanged(object sender, RegistrationStateChangedArgs e) 
     { 
      if (e.State == RegState.Error || e.State == RegState.NotRegistered) 
       Console.WriteLine("Registration failed!"); 

      if (e.State == RegState.RegistrationSucceeded) 
       Console.WriteLine("Registration succeeded - Online!"); 
     } 
    } 
} 

поэтому, пожалуйста, любая помощь, что делать большое спасибо заранее за любую помощь ..

при попытке сделать софтфон звонки с помощью Ozeki SDK и местных IP-адресах выдаст ошибку NatType:UDPBlocked

ответ

1

У вас есть как UDP, так и TCP-порт 5060? (Стандартный порт SIP) Можете ли вы зарегистрировать обычный программный телефон SIP с вашей машины разработки?

Из вашего сообщения об ошибке похоже, что у вас проблема с брандмауэром, а не проблема с кодом.

И, глядя на ваш код, я бы проверял все введенные вами порты: от 5000 до 10000.

0

Ошибка: NatType:UDPBlocked

код SDK:

<member name="F:Ozeki.Network.Nat.NatType.UdpBlocked"> 
     <summary> 
      Firewall that blocks UDP. 
      </summary> 
     <remarks> 
      Probably no internet connection available or firewall issue. 
      </remarks> 
    </member> 

Возможно нет подключения к Интернету отсутствует или брандмауэра проблема.

Попробуйте включить расширенный исходящий NAT, измените правило исходящего по умолчанию, чтобы включить статический порт. Перезагрузите адаптер.

Как видно из кода SDK,

Проверьте брандмауэр и порты вы проблема решена

0

После изучения кода и регистрации SIP объяснение на сайте SDK, я думаю, что эта линия порождает проблему:

var domainHost = SoftPhoneFactory.GetLocalIP().ToString(); 

чтобы иметь возможность общаться, нам необходимо зарегистрировать наш софтфон к УАТС. Для этого в примере используется метод Register. Для этой регистрации нам необходимо создать телефонную линию , для которой требуется учетная запись SIP и метод NAT .

(Источник: How to register to a PBX using SIP Account?)

Таким образом, цель данного фрагмента кода, чтобы определить SIP аккаунта, который будет зарегистрирован в определенный УАТС. Соответственно, domainHost должен быть IP-адресом УАТС, к которой вы хотите зарегистрироваться. (И domainPort должен быть номером порта этой УАТС.)

 Смежные вопросы

  • Нет связанных вопросов^_^