11

I need a relatively inexpensive solution to make phone calls from the .net platform (C# in particular). it has to be able to dial a number and determine if the line is disconnected, if someone answered, and if someone answer possibly play a message. Thanks for any info.

Searock
  • 6,278
  • 11
  • 62
  • 98
Nick Dat Le
  • 369
  • 4
  • 12
  • 12
    Using hardware and a phone line, or VOIP and an internet telephony provider, or a mobile device, or something else? (Also isn't this evil?) – Rup Mar 25 '11 at 16:43
  • Glad to hear there's a good reason! But isn't constantly changing your number bad for business? – Rup Mar 25 '11 at 16:54
  • Folks, if you don't want to answer this, don't answer it. I've cleaned up over a dozen flags related to the comments here. – Tim Post Mar 25 '11 at 21:41

4 Answers4

11

You can use Twilio to make outgoing calls. They have a REST API you can call from your application. Check out the Making Calls section.

I'm not associated with Twilio - it's just a useful service I use.

Tai Squared
  • 12,273
  • 24
  • 72
  • 82
  • 1
    Good answer, the licensing overhead should not be a problem for the stated goal. It will be unacceptable for mass-dialing. – H H Mar 25 '11 at 17:33
  • Another vote for Twilio. I just posted another comment about it [here](http://stackoverflow.com/questions/4203211/replacement-technology-for-tapi/6485541#6485541) as I'm researching similar development tools. – TonyG Jun 26 '11 at 17:38
4

Depending on what resources you have on hand, what you need to use it for, what type of budget you have, there are a bunch of different options. Some will charge you on a per call basis, some let you set something up where you run it in house and you just pay for up front hardware costs and support.

As Tai Squared stated, Twilio is a solid answer. I also know that Cisco has some automated dialer options.

Phone tree is also another that I have used in the past, though integration with them can be hairy. http://www.phonetree.com/

Good luck.

Phillip Benages
  • 661
  • 2
  • 9
  • 20
0

Another solution is http://wwww.talksoftonline.com - which integrates with most scheduling systems which allow an export of a file.

0

The below code was working for a while at the company I work for. But, recently TAPI is unable to initialize because some significant changes were made to our phone system, of which I don't know what was changed, as of yet.

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

End Class