是否可以检测VOIP呼叫何时开始和结束使用C#?

时间:2012-09-17 09:43:40

标签: c# voip skype

我想在Skype通话结束时运行一个程序,有没有办法用C#.NET检测这样的动作?有没有可以帮助我的图书馆?我找不到任何东西!

理想情况下,我想检测任何VOIP类型的呼叫开始/结束。这可能吗?

2 个答案:

答案 0 :(得分:1)

你见过SkypeKit吗?它允许设置回调,例如这些。

答案 1 :(得分:0)

我想是的。您可以使用Skype4COM并将以下代码作为起点:

using System;
using System.Windows.Forms;
using SKYPE4COMLib;

namespace SkypeCall
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeSkype();
        }

        private void InitializeSkype()
        {
            s = new Skype();
            _ISkypeEvents_Event events = s;

            events.AttachmentStatus += OnAttachementStatusChanged;
            events.CallStatus += OnCallStatusChanged;

            s.Attach();
        }

        private void OnCallStatusChanged(Call call, TCallStatus status)
        {
            switch (status)
            {
                case TCallStatus.clsInProgress: break;
                case TCallStatus.clsCancelled: break;
                case TCallStatus.clsFinished: break;
                case TCallStatus.clsRinging: break;
                //.
                //.
                //.                 
            }


            // call.PstnNumber;
            // call.PstnStatus;
        }

        private void OnAttachementStatusChanged(TAttachmentStatus status)
        {
            if (status == TAttachmentStatus.apiAttachSuccess)
            {
                attached = true;
            }
        }


        private Skype s;
        private bool attached;
    }
}

并在OnCallStatusChanged方法中实现您的逻辑。