问题 用C#拨打电话


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


8610
2018-03-25 16:40


起源

使用硬件和电话线,VOIP和互联网电话提供商,移动设备,还是其他什么? (也不是这个邪恶?) - Rup
很高兴听到有充分的理由!但是,不是经常改变你的业务数量不好吗? - Rup
伙计们,如果你不想回答这个问题,请不要回答。我已经清理了十几个与这里的评论相关的标志。 - Tim Post♦


答案:


您可以使用Twilio拨打电话。他们有个 REST API 你可以从你的申请中打电话。看看 拨打电话部分

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


10
2018-03-25 16:48



很好的答案,许可开销不应该是所述目标的问题。大规模拨号是不可接受的。 - Henk Holterman
Twilio的另一票。我刚发布了另一条评论 这里 因为我正在研究类似的开发工具。 - TonyG


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

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

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

祝你好运。


4
2018-03-25 17:46



我们确实有预算,但如果解决方案价格昂贵但是“最佳”解决方案,那么我确信可以坚持会计。 - Dat
那么www.voicent.com呢?有人曾经使用它们,看看它们与竞争对手相比有多好吗? - Dat


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


0
2018-03-07 16:01





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

公共类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

结束类


0
2017-07-28 17:21