用C#拨打电话

时间:2011-03-25 16:40:43

标签: c# tapi

我需要一个相对便宜的解决方案来从.net平台拨打电话(特别是C#)。它必须能够拨打一个号码并确定线路是否断开连接,是否有人接听,以及是否有人应答可能会播放信息。感谢您的任何信息。

4 个答案:

答案 0 :(得分:10)

您可以使用Twilio拨打电话。他们可以从您的应用程序中调用REST API。查看Making Calls section

我与Twilio无关 - 它只是我使用的一项有用的服务。

答案 1 :(得分:4)

根据您手头的资源,您需要使用的资源,您拥有的预算类型,有很多不同的选择。有些会根据每次通话向您收费,有些会让您在内部运行时设置一些内容,而您只需支付前期硬件成本和支持费用。

正如Tai Squared所说,Twilio是一个坚实的答案。我也知道思科有一些自动拨号选项。

电话树也是我过去使用的另一种,虽然与它们的集成可能很毛茸茸。 http://www.phonetree.com/

祝你好运。

答案 2 :(得分:0)

另一个解决方案是http://wwww.talksoftonline.com - 它与大多数允许导出文件的调度系统集成。

答案 3 :(得分:0)

以下代码在我工作的公司工作了一段时间。但是,最近TAPI无法初始化,因为我们的电话系统发生了一些重大变化,其中我还不知道发生了什么变化。

Public Class MakeACall

Private m_tobj As TAPIClass
Private m_array_ITAdresses(10) As ITAddress
Private m_bcc As ITBasicCallControl

Public Sub New()
    initializetapi3()
End Sub



Dim m_nIPPHONEline As Integer
Dim m_nGetIPPhoneLineNumber As Integer


Public Sub initializetapi3()

    Try

        For Each ob1 As ITAddress In m_array_ITAdresses

        Next

        m_tobj = New TAPIClass()
        m_tobj.Initialize()
        Dim ea As IEnumAddress = m_tobj.EnumerateAddresses()
        Dim ln As ITAddress
        Dim arg3 As UInteger = 0

        m_nGetIPPhoneLineNumber = -1 'Must initialze to -1 because the phone lines start counting from zero.
        m_nIPPHONEline = -1



        'm_tobj.EventFilter = DirectCast(TAPI_EVENT.TE_CALLNOTIFICATION | TAPI_EVENT.TE_DIGITEVENT |TAPI_EVENT.TE_PHONEEVENT |TAPI_EVENT.TE_CALLSTATE |TAPI_EVENT.TE_GENERATEEVENT |TAPI_EVENT.TE_GATHERDIGITS | TAPI_EVENT.TE_REQUEST, integer) 

        For i As Integer = 0 To 10
            ea.Next(1, ln, arg3)
            m_array_ITAdresses(i) = ln
            If (ln Is Nothing) = False Then
                m_nGetIPPhoneLineNumber += 1
                If m_array_ITAdresses(i).AddressName.ToUpper().IndexOf("IP PHONE") > -1 Then
                    m_nIPPHONEline = m_nGetIPPhoneLineNumber
                End If
            End If
        Next



    Catch ex As Exception

    End Try

End Sub
Public Sub MakeCall(ByVal stPhoneNumber As String)


    If stPhoneNumber.Length > 6 Then

        Try

            m_bcc = m_array_ITAdresses(m_nIPPHONEline).CreateCall(stPhoneNumber, TapiConstants.LINEADDRESSTYPE_IPADDRESS, TapiConstants.TAPIMEDIATYPE_AUDIO)
            m_bcc.Connect(False)

        Catch ex As Exception
            MessageBox.Show("Failed to create call.")
        End Try
    End If
    m_tobj.Shutdown()

End Sub

结束班