Use SIP with Twilio Voice

文章推薦指數: 80 %
投票人數:10人

Twilio's Programmable Voice SIP Interface product enables you to use your existing SIP communications infrastructure to initiate SIP sessions with the Twilio ... TwilioDocs SMS Voice Runtime Video Studio Alldocs... SDKs Help Login Signup SMS Voice Runtime Video Studio Alldocs... SDKs Help Login Signup ProgrammableVoice Twilio Menu GettingStartedwithProgrammableVoice C#/.NETquickstart Javaquickstart Node.jsquickstart PHPquickstart Pythonquickstart Rubyquickstart AndroidSDKquickstart iOSSDKquickstart(Objective-CandSwift) TwilioJavaScriptSDKQuickstarts Tutorials Howtomakeoutboundphonecalls Howtorespondtoincomingphonecalls Howtomodifycallsinprogress Howtorecordphonecalls Howtocreateconferencecalls Howtogatheruserinputviakeypad Howtoretrievecalllogs Consumeareal-timeMediaStreamusingWebSockets,Python,andFlask Howtocapturepaymentduringavoicecall Howtocapturepaymentduringavoicecall(GenericPayConnector) BuildClick-to-CallintoyourWebApplication BuildanInteractiveVoiceResponse(IVR)PhoneTree BuildanIVRforScreeningandRecordingCalls BuildWarmTransferswithTwilio BuildaRapidResponseKitwithVoiceConferenceandBroadcasting Howtobuildcalltracking Howtobuildcallforwarding Howtoaddadditionalsecuritytoyourvoicerecordings BuildIn-BrowserCallingwithTwilioClient BuildanAutomatedSurveywithTwilioProgrammableVoice HowtoroutecallstoyourSIPnetworkwithanoutboundcall HowtoaddProgrammabilitytoyourexistingSIPnetwork Howtorecordasinglesideofacall HowtomakeemergencycallswithProgrammableVoice BrowseallProgrammableVoicetutorials APIReference VoiceAPIOverview ApplicationResource CallResource CallEventResource FeedbackResource FeedbackSummaryResource ArchivedCalls MediaStreams SIPREC ConferenceResource ConferenceParticipantResource DialingPermissionsResources DialingPermissionsCountryResource DialingPermissionsBulkCountryUpdateResource DialingPermissionsHighRiskSpecialPrefixResource DialingPermissionsSettingsResource OutgoingCallerID PaymentResource QueueResource MemberResource RecordingResource RecordingTranscription TwiML Overview Changelog PayConnectors GenericPayConnector Text-to-Speech VoiceConference ProgrammableVoiceSIP Overview SIPQuickstart UseSIPwithTwilioVoice Inbound-SendingSIPtoTwilio Outbound-ReceivingSIPfromTwilio SIPRegistration SecureMedia EmergencyCallingforSIPInterfaces InboundSIPREFERtoTwilio MakingSIPCalls TwiML™Voice: SIPAPI SIPAPIOverview SIPCredentialResource SIPCredentialListResource SIPCredentialListMappingResource SIPDomainResource SIPDomainRegistrationCredentialListMappingResource SIPIpAccessControlListResource SIPIpAccessControlListMappingResource SIPIpAddressResource EmergencyCallingforSIPInterfacesAPI BringYourOwnCarrier(BYOC)Trunking Overview BYOCAPI BYOCAPIOverview ByocTrunkResource ConnectionPolicyResource ConnectionPolicyTargetResource SourceIpMappingResource IpRecordResource PlatformSDKs Overview NetworkConnectivityRequirements ErrorCodes AndroidSDK Overview GettingStarted EdgeLocations UsingTwilioVoicesidebysidewithWebRTC-Android Changelog APIDocs FAQ iOSSDK Overview GettingStarted EdgeLocations UsingTwilioVoicesidebysidewithWebRTC-iOS Changelog MigratingtoiOS13 APIDocs FAQ JavaScriptSDK Overview GettingStarted Twilio.Call Twilio.Device Twilio.Device.audio Twilio.PreflightTest EdgeLocations Changelog APIReference BestPractices MigrationGuide(v2.0) Version1.xResources BestPractices&Troubleshooting ProgrammableVoiceProductBehaviorChangesinnon-us1HomeRegions HowtoShareInformationBetweenYourApplications ProtectyouraccountwithVoiceDialingGeographicPermissions TroubleshootingVoiceCalls CallandConferenceLogRetention FailoverBestPractices SHAKEN/STIR TrustedCallingwithSHAKEN/STIR SHAKEN/STIROnboarding OnboardingwithTwilioConsole TrustHubRESTAPI-DirectCustomers,noSubaccounts TrustHubRESTAPI-DirectCustomersusingSubaccounts TrustHubRESTAPI-ISVs/ResellerswithSingle,Top-LevelProject TrustHubRESTAPI-ISVs/ResellersusingSubaccounts CNAM BrandYourCallsUsingCNAM Collapse Expand Ratethispage: BeforeyouBegin BeforeyoucanuseSIPInterface,youmustsignupforaTwilioaccount(ifyoudon'talreadyhaveone).Tosignupforanaccountclickhere. Overview ConnectyourcommunicationsinfrastructuretoTwilioandstartbuildingprogrammablevoiceapplications,suchascallcentersandIVRs,withTwilio’spowerfulandflexiblevoicecapabilities.YoucanconnecttoTwiliooverthepublicinternetoralternativelyviaaprivateconnectionusingTwilio’sInterconnect.ProgrammableVoiceSIPletsyourouteyourvoicecallswithglobalreachtoanylandlinephone,mobilephone,browser,mobileapp,oranyotherSIPendpoint. ThefollowingdiagramillustratesthepositionoftheTwilioCloudinthecallflows. WhatisSIP? SessionInitiationProtocol(SIP)isastandardizedcommunicationsprotocolthathasbeenwidelyadoptedformanagingmultimediacommunicationsessionsforvoiceandvideocalls.SIPmaybeusedtoestablishconnectivitybetweenyourcommunicationsinfrastructuressuchasanon-premiseorvirtualPBXandTwilio'scommunicationsplatform. SendingSIPtoTwilio Twilio’sProgrammableVoiceSIPInterfaceproductenablesyoutouseyourexistingSIPcommunicationsinfrastructuretoinitiateSIPsessionswiththeTwilioCloud.SIPInterfaceusesTwilio’sTwiMLlanguageand/orTwilio’sRESTAPIstocreateadvancedvoiceapplications.LearnhowtogetstartedconnectingyourSIPcommunicationsinfrastructuretotheTwilioCloud. ReceivingSIPfromTwilio Twilio’sProgrammableVoiceSIPInterfaceproductenablesyouradvancedvoiceapplicationstoinitiateSIPsessionsfromtheTwilioCloudtowardsyourexistingSIPcommunicationsinfrastructureusingTwilio’sTwiMLlanguageand/orTwilio’sRESTAPIs.LearnhowtogetstartedconnectingtheTwilioCloudtoyourSIPcommunicationsinfrastructure. Limits MakesureyouareawareofthefollowingProgrammableVoiceSIPDomainlimits. 100SIPDomainsperAccountorSubAccount IPAccessControlLists(ACLs)limits CredentialListslimits SIPRegistrationlimits Features SIPRegistration TwilioallowsyoutoregisteryourSIPPhonesorSIPEndpointswithTwilio.SIPRegistrationisusedtoidentifythelocationoftheSIPEndpoints.Therefore,theusercanreceivecallsirrespectiveofphysicallocationoftheSIPEndpoint. ThisfeatureallowsyourSIPEndpointscansendREGISTERrequesttoTwilio.Fordetailsseehere. CallTransfersusingSIPREFERfromTwilio Calltransferenablesyoutomoveanactivecallfromoneendpointtoanother,inSIPthisisaccomplishedusingtheSIPREFERmethod. TwiliosupportsinitiatingSIPREFERmethodfromTwiliotowardsyourIPcommunicationsinfrastructureleveragingtheverb. SIPCustomHeader SIPcustomheaderallowsyoutosendcustomizedheaders. UUI(User-to-UserInformation)Header UUIheaderallowsyoutosendcontextualinformationovertheSIPcall.YoucancheckSending-sipwithUUIandReceiving-sipwithUUIforfurtherUUIdetails. DTMF TwiliosupportsRFC-2833forsendingandreceivingDTMF. Mediacodec TwiliosupportsG.711μ-law(PCMU)andA-law(PCMA)codecsformedia.Thesearethemostpopularcodecsusedbycarrierssotranscodingisunnecessary. SecuringSIPTrafficusingTLS Encryptionensuresthatthecallsignalingremainsprivateduringtransmission.TransportLayerSecurity(TLS)providesencryptionforSIPsignaling. ToenableTLS,ensurethatyouhaveimportedTwilio'sRootCACertificate.ThereisnofurtherconfigurationrequiredforTLSandyoucanstartsendingoverport5061straightaway.TLSFunctionality/Port5061isalwaysactiveanddoesnotrequireamanualtogglelikeSecureMedia.TostopusingTLS,simplysendSIPtoPort5060orremovethetransport=tlsparameter. SIPInterfacesupportsthefollowingconfigurationsforTLS: 5060(noTLS,NoSecureMedia) 5061(TLS,NoSecureMedia) 5061(TLS,SecureMedia) ForcallswhereTLSisactivethiswillcausecertainfunctionalitytobehavedifferently: SIPPCAPsfromtheconsolewillproduceonlyablankfile. Callmetadatawillcontinuetobeavailableforexamplemajorerrorcodes,starttime,endtime,to/from. SIPReferwillfunctionasexpectedusingTLS. WhensendingTLSSIPtraffictoTwilio,youwillneedtoensurethatyourinfrastructureisusingnext-hopdomainasopposedtonext-hopip.Thisisacommonmisconfigurationandwillcausea403errorthatwillnotbevisibleonyourTwilioaccount.Trafficmustbesenttothedomain{example}.sip.{region}.twilio.com,ratherthananIPaddressinordertoassociatethetrafficwithyourTwilioaccount. SecureMedia SecureMediausesencryptiontoensurethatthecallmediaandassociatedsignalingremainsprivateduringtransmission.SecureReal-TimeProtocol(SRTP)providesencryptionformedia.Fordetailsseehere. TLS/SRTPSpecifications SIPTLS Versions:TwiliosupportsTLSv1.0,TLSv1.1andTLSv1.2. PLEASENOTE:Tobettercomplywithsecurityrequirements,wehavedeprecatedTLSv1.0andTLSv1.1forinboundandoutboundSIPcalls,aswellasSIPregistration.IfyourSIPinfrastructurerequiresusingTLSv1.0orTLSv1.1,youcanconfigureyourTwilioAccounttoallowthesedeprecatedversionsinyourconsoleunderVoice→Settings→AllowDeprecatedSIP/TLSversions.Ifthissettingisenabled,yourSIPendpointscanusethedeprecatedTLSv1.0andTLSv1.1versionsforSIPsignalingsenttoorreceivedfromTwilio.Ifdisabled,onlynon-deprecatedTLSv1.2+isallowed.TwiliostronglyrecommendstheuseofTLSversion1.2whenconnectingyourSIPinfrastructure. Ciphers:ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES128-SHA256,ECDHE-RSA-AES128-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256-SHA384,ECDHE-RSA-AES256-SHA384,AES128-GCM-SHA256,AES128-SHA256,AES128-SHA,AES256-GCM-SHA384,AES256-SHA256,AES256-SHA IfyouareusingTwiMLtosendSIPfromTwilio,toenableencryptionyoumustusethetransport=tlsparameterinyourSIPnouninyourDialverb. Bydefaultport5061willbeusedforTLS,however,youmayspecifytheportyouwishtouseinyourURI. SecureMedia SendingSRTPtoTwilio:TwiliosupportsthefollowingCryptosuites:AES_CM_128_HMAC_SHA1_80andAES_CM_128_HMAC_SHA1_32.Bothmaybeincludedinyourorderofpreference. ReceivingSRTPfromTwilio:Onlyasinglecryptosuitewillbeadvertised:AES_CM_128_HMAC_SHA1_80 ImportingTwilio'sRootCACertificateTLSisusedtoencryptSIPsignalingbetweenSIPendpoints.InorderforthistofunctionproperlyitisrequiredthatcertaindevicesinthenetworkimportaCAcertificate.TwiliousescertificatesfromaCA(CertificateAuthority).Itisimportantthatyouaddthefollowingrootcertificatetoyourcommunicationsinfrastructuretoestablishitsauthenticity.DownloadTwilio'sCAcertificate.ItisimportanttonotethatTwiliousesawildcardcertificatewhichcanbeusedformultiplesubdomainsofadomain(*.sip.twilio.com).Ifyournetworkelementdoesnotsupportwildcardedcertificatespleasedisablecertificatevalidation. TwiliosRootCAcontainsacertificatechainsignedbymultipleCertificateAuthorities.YoushouldimporttheentirePEMfileratherthanindividualcertificates. Twiliodoesnotsupportimportingrootcertificatesfromathirdpartyatthispointintime.InordertouseTwilioVoicewithTLS,theTwilioRootCAmustbeused. Note:TwilioSIPInterfaceoutboundcallURIconfigurationsusingthesipsURIschemeinordertoenableend-to-endencryptionisNOTsupportedbyTwilio.However,wedosupportsipURIschemesusingtransport=tlsforpoint-to-pointencryption. IfyouconfigureyourSIPInterfaceURIstousesipsschemes,thesesipsURIswillbehandledasiftheyweresipURIsusingTLStransport.TwiliowilleffectivelyadjusttheURIinternallytoinsteadberoutedusingthesipschemeandtransport=tlsontheoutboundmessages,resultinginpoint-to-pointencryptionbetweenTwilioandthecustomerequipment. TwiliostronglysuggestsnotusingsipsschemesinyourTwilioSIPconfigurations,asthiscouldcausepossiblyunintendedbehavior,duetohowweprocesssuchURIs.Instead,wesuggestusingsipschemeswithTLStransport.Thismethod,alongwiththesecurityofourvoicearchitectureandSuperNetwork,isaneffectivewayofaddingencryptiontoyourTwilioSIPconnections. IPaddresses PrepareyourcommunicationsinfrastructuretomakesurethatyourSIPinfrastructurehasconnectivitytotheTwilioCloudandviceversa.Toensurethatyourcommunicationsinfrastructuredoesn’tblockcommunication,youmustupdateyourlistofallowedIPaddresses.WestronglyencourageyoutoallowallofthefollowingIPaddressrangesandportsonyourfirewallforSIPsignalingandRTPmediatraffic. ThisisimportantifyouhaveNumbersindifferentregionsaswellasforavailabilitypurposes(e.g.ifNorthAmericaVirginiagatewaysaredown,thenNorthAmericaOregongatewayswillbeused). PleaseseeTwilio'sSIPIPaddressesforthecompletelist. Glossary CommunicationsInfrastructure AbroadtermtorefertoIP-PBX,SBC,IP-phones,etc... SIPEndpoint IP-phoneorasoftclientwithwhichauserinitiatesaVoIPcall SIPURI EquivalenttoaSIPphonenumberandtakestheform,sip:username@SIPDomain TwilioSIPDomain Ittakestheform{example}.sip.{region}.twilio.comwhere{example}isspecifiedbythecustomerand{region}isthedatacenterwheretheregistrarislocated.Initiallyonlyus1. Ratethispage: Needsomehelp? Wealldosometimes;codeishard.Gethelpnowfromoursupportteam,orleanonthewisdomofthecrowdbyvisitingTwilio'sStackOverflowCollectiveorbrowsingtheTwiliotagonStackOverflow. YouareviewinganoutdatedversionofthisSDK. NextSample ExampleJSONresponse Thankyouforyourfeedback! Pleaseselectthereason(s)foryourfeedback.Theadditionalinformationyouprovidehelpsusimproveourdocumentation: IfapplicablefillinthecountrieswhereyouareusingTwilio Missinginformationorcode Contentisconfusingorhardtofollow Inaccurateoroutdatedinformation Brokenlinkortypo Didnotsolvemyproblem Contentiseasytofollow Solvedmyproblem Other Sendyoursuggestions Needhelp?TalktoSupport ProtectedbyreCAPTCHA–Privacy-Terms Sendingyourfeedback... 🎉Thankyouforyourfeedback! Somethingwentwrong.Pleasetryagain. Thanksforyourfeedback! Referusandget$10in3simplesteps! Step1 Getlink Getafreepersonalreferrallinkhere Step2 Give$10 Yourusersignsupandupgradeusinglink Step3 Get$10 1,250freeSMSesOR1,000freevoiceminsOR12,000chatsORmore Learnmoreaboutthereferralprogram



請為這篇文章評分?