Совершать телефонные звонки с помощью С#

Мне нужно относительно недорогое решение для совершения телефонных звонков с платформы .net(в частности, С#). он должен иметь возможность набирать номер и определять, отключена ли линия, если кто-то ответил, и если кто-то ответит, возможно, сыграет сообщение. Спасибо за любую информацию.

Ответ 1

Вы можете использовать Twilio для выполнения исходящих вызовов. У них есть REST API, который вы можете вызывать из своего приложения. Просмотрите раздел Выполнение вызовов.

Я не связан с Twilio - это просто полезный сервис, который я использую.

Ответ 2

В зависимости от того, какие ресурсы у вас есть, что вам нужно использовать для этого, какой у вас бюджет, есть множество разных опций. Некоторые из вас будут взимать плату за каждый звонок, некоторые позволяют вам что-то устанавливать там, где вы запускаете его в доме, и вы просто оплачиваете авансовые расходы на оборудование и поддержку.

Как сказал Тай Сквард, Twilio - солидный ответ. Я также знаю, что у Cisco есть некоторые варианты автоматического дозвона.

Телефонное дерево также является другим, которое я использовал в прошлом, хотя интеграция с ними может быть волосатой. http://www.phonetree.com/

Удачи.

Ответ 3

Другим решением является http://wwww.talksoftonline.com - который интегрируется с большинством систем планирования, которые позволяют экспортировать файл.

Ответ 4

Следующий код работал некоторое время в компании, в которой я работаю. Но в последнее время 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

Конечный класс