2011-03-25 174 views
11

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

+12

利用硬件和电话线,或VOIP和互联网电话提供商,还是移动设备,还是其他什么东西? (也不是这个邪恶?) – Rup 2011-03-25 16:43:07

+0

很高兴听到有一个很好的理由!但是,不是经常改变你的业务不利因素吗? – Rup 2011-03-25 16:54:41

+0

伙计们,如果你不想回答这个问题,请不要回答。我已经清理了十多个与这里的评论相关的标志。 – 2011-03-25 21:41:42

回答

10

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

我没有与Twilio相关 - 这只是一个我使用的有用服务。

+1

好的答案是,许可开销不应该成为既定目标的问题。这将是不可接受的大规模拨号。 – 2011-03-25 17:33:06

+0

Twilio的另一票。我刚刚发布了另一个关于它的评论[这里](http://stackoverflow.com/questions/4203211/replacement-technology-for-tapi/6485541#6485541),因为我正在研究类似的开发工具。 – TonyG 2011-06-26 17:38:38

4

根据您手边有哪些资源,您需要使用哪些资源,您拥有哪种类型的预算,还有一堆不同的选项。有些人会每次打电话给你,有些人会让你设置一些内部运行的地方,你只需支付前期的硬件成本和支持。

大平方说,Twilio是一个坚实的答案。我也知道思科有一些自动拨号器选项。

电话树也是我过去使用过的另一种电话树,虽然与它们的整合可能会很多。 http://www.phonetree.com/

祝你好运。

+0

我们确实有预算,但如果解决方案昂贵但是“最好”的解决方案,那么我确信会计可以被预测。 – Dat 2011-03-25 20:51:37

+0

www.voicent.com怎么样?任何人都会使用它们,看看它们与竞争对手的相处程度如何? – Dat 2011-03-25 20:54:01

0

下面的代码在我工作的公司工作了一段时间。但是,最近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 

末级