2011-08-18 5 views
0

Sipek Voip SDK를 가지고 놀았으며 전화를받는 데 문제가 있습니다.Sipek Voip SDK로 전화 받기

온라인 자습서는 도움이되지 않으며 여기 누군가가 과거에 사용했는지 궁금합니다. 등록하고 전화를 걸 수 있지만이 시점에서 전화를받는 방법을 모릅니다. 아래 코드를 붙여 넣습니다. 감사!

다음은 콜백 인터페이스를 유지하는 주요 클래스입니다.

public partial class MainWindow 
{ 
     #region Properties 
     // Get call manager instance 
     CCallManager CallManager 
     { 
      get { return CCallManager.Instance; } 
     } 

     private PhoneConfig _config = new PhoneConfig(); 
     internal PhoneConfig Config 
     { 
      get { return _config; } 
     } 

     private IStateMachine _call = null; 

     #endregion 


     #region Constructor 
     public MainWindow() 
     { 
      InitializeComponent(); 

      // register callbacks 
      CallManager.CallStateRefresh += new DCallStateRefresh(CallManager_CallStateRefresh); 
      pjsipRegistrar.Instance.AccountStateChanged += new Sipek.Common.DAccountStateChanged(Instance_AccountStateChanged); 

      // Inject VoIP stack engine to CallManager 
      CallManager.StackProxy = pjsipStackProxy.Instance; 

      // Inject configuration settings SipekSdk 
      CallManager.Config = Config; 
      pjsipStackProxy.Instance.Config = Config; 
      pjsipRegistrar.Instance.Config = Config; 

      // Initialize 
      CallManager.Initialize(); 
      // register accounts... 
      pjsipRegistrar.Instance.registerAccounts(); 
     } 
     #endregion 

     #region Callbacks 
     void Instance_AccountStateChanged(int accountId, int accState) 
     { 

      this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, (ThreadStart)delegate 
      { 
       OnRegistrationUpdate(accountId, accState); 
      }); 
     } 

     void CallManager_CallNotification(int sessionId) 
     { 

     } 
     void CallManager_CallStateRefresh(int sessionId) 
     { 
      this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, (ThreadStart)delegate 
      { 
       OnStateUpdate(sessionId); 
      }); 

     } 
     #endregion 

     public void OnRegistrationUpdate(int accountId, int accState) 
     { 
      authenticationStatus_Text.Text = accState.ToString(); 
     } 

     public void OnStateUpdate(int sessionId) 
     { 
      callStatus_Text.Text = CallManager.getCall(sessionId).StateId.ToString(); 
     } 

     private void release_Button_Click(object sender, RoutedEventArgs e) 
     { 
      dial_Text.Clear(); 
      CallManager.onUserRelease(_call.Session); 
     } 

     private void dial_Button_Click(object sender, RoutedEventArgs e) 
     { 
      _call = CallManager.createOutboundCall(dial_Text.Text); 
     } 
} 

답변

0

해결되었습니다. 들어오는 콜백을 지원하지 않는 dll의 이전 버전을 사용하고있었습니다.