2011-03-25 66 views
11

.net 플랫폼 (특히 C#)에서 전화를 걸려면 비교적 저렴한 솔루션이 필요합니다. 전화를 걸고 회선이 끊어 졌는지, 누군가 응답했는지, 그리고 누군가가 대답 할 가능성이 있는지를 결정할 수 있어야합니다. 모든 정보 주셔서 감사합니다.C#으로 전화 걸기

+12

하드웨어 및 전화 회선 또는 VOIP 및 인터넷 전화 제공 업체 또는 모바일 장치, 또는 다른 뭔가를 사용하십니까? (또한이 악마가 아닌가요?) – Rup

+0

다행히도 좋은 이유가 있습니다. 하지만 비즈니스에 대한 전화 번호가 끊임없이 바뀌지는 않습니까? – Rup

+0

여러분,이 질문에 대답하고 싶지 않다면 대답하지 마십시오. 나는이 논평과 관련된 12 가지의 깃발을 정리했다. –

답변

10

Twilio를 사용하여 전화를 걸 수 있습니다. 신청서에서 전화 할 수있는 REST API이 있습니다. Making Calls section을 확인하십시오.

저는 Twilio와 관련이 없습니다. 제가 사용하는 유용한 서비스 일뿐입니다.

+1

좋은 대답은 명시된 목표에 대해 라이선스 오버 헤드가 문제가되지 않아야한다는 것입니다. 대량 전화 걸기는 받아 들일 수 없을 것입니다. –

+0

Twilio에 또 다른 투표. 방금 비슷한 개발 도구를 연구 중이므로 [여기] (http://stackoverflow.com/questions/4203211/replacement-technology-for-tapi/6485541#6485541)에 대한 다른 의견을 게시했습니다. – TonyG

4

보유하고있는 리소스, 사용하고자하는 예산, 보유하고있는 예산 유형에 따라 다양한 옵션이 있습니다. 일부 고객은 한 통화 기준으로 요금을 부과 할 수 있으며, 일부는 집에서 실행하고 소프트웨어 하드웨어 비용과 지원 비용 만 지불하면됩니다.

Tai Squared가 말한 것처럼, Twilio는 확실한 답변입니다. 또한 시스코에는 자동 다이얼러 옵션이 있습니다.

전화 트리도 내가 과거에 사용한 적이 있지만, 그와의 통합은 털이있을 수 있습니다. http://www.phonetree.com/

행운을 빈다.

+0

우리에게는 예산이 있지만 솔루션이 비싸지 만 "최상의"솔루션이라면 나는 회계가 박탈 될 수 있다고 확신합니다. – Dat

+0

www.voicent.com은 어떤가? 누구든지 그것을 사용하고 그들이 경쟁과 경쟁하는 것을 얼마나 잘 볼 수 있습니까? – Dat

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 

최종 클래스