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);
}
}