TwiML™ Voice: <Sip> - Twilio

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

The verb's noun lets you set up VoIP sessions by using SIP -- Session Initiation Protocol. With this feature, you can send a call to any SIP ... 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: Theverb'snounletsyousetupVoIPsessionsbyusingSIP--SessionInitiationProtocol.Withthisfeature,youcansendacalltoanySIPendpoint.SetupyourTwiMLtousethenounwithintheverbwheneveranyofyourTwiliophonenumbersarecalled.IfyouareunfamiliarwithSIP,orwantmoreinformationonhowTwilioworkswithyourSIPendpoint,pleaseseetheSIPoverview. TheSIPsession TheSIPINVITEmessageincludestheAPIversion,theAccountSid,andCallSidforthecall.Optionally,youcanalsoprovideasetofparameterstomanagesignalingtransportandauthentication,orconfigureTwiliotopasscustomSIPheadersintheINVITEmessage:thismethodincludesheaderssuchasUUI(User-to-userInformation). OncetheSIPsessioncompletes,TwiliorequeststheactionURL,passingalongtheSIPCallIDheader,theresponsecodeoftheinviteattempt,anyX-headerspassedbackonthefinalSIPresponse,aswellasthestandardTwilioparameters. IfEnhancedProgrammableSIPFeaturesisnotenabledonyouraccount,onlyonenounmaybespecifiedper,andtheINVITEmessagemaybesenttoonlyoneSIPendpoint.Also,youcannotaddanyothernouns(eg,)inthesameastheSIP.Ifyouwanttouseanothernoun,setupacallbackonthetousealternatemethods. Theregionparameter TospecifythegeographicregionfromwhichTwiliowillsendSIP-outtraffictowardsyourcommunicationinfrastructure,youmustincludetheregionparameterinyourSIPURI.Forexample,iftheregion=ie1parameterisincludedinyourSIPURI,TwiliowillsendtheSIPtrafficfromtheEuropeIrelandregion: sip:[email protected];region=ie1 Region Location us1 NorthAmericaVirginia us2 NorthAmericaOregon ie1 EuropeIreland de1 EuropeFrankfurt sg1 AsiaPacificSingapore jp1 AsiaPacificTokyo br1 SouthAmericaSãoPaulo au1 AsiaPacificSydney Iftheregionparameterisnotspecified,TwiliowillsendSIP-outtrafficfromtheNorthAmericaVirginiaregion. UsetheSipnoun Alloftheexistingparametersworkwiththenoun(record,timeout,hangupOnStar,etc).ForSIPcalls,thecallerIdattributedoesnotneedtobeavalidatedphonenumber.Enteranyalphanumericstring.Optionallyincludethefollowingchars:+-_.,butnowhitespace. Withinthenoun,youmustspecifyaURIforTwiliotoconnectto.TheURIshouldbeavalidSIPURIunder255characters.Forexample: YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Usethenoun Authentication SendusernameandpasswordattributesforauthenticationtoyourSIPinfrastructureasattributesonthenoun. AttributeName Values username UsernameforSIPauthentication password PasswordforSIPauthentication Forexample: YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Authenticationwithyour Customheaders SendcustomheadersbyappendingthemtotheSIPURI--justasyou'dpassheadersinaURIoverHTTP.Forexample: YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Customheaderswith WhiletheSIPURIitselfmustbeunder255chars,theheadersmustbeunder1024characters.Anyheadersstartingwiththex-prefixcanbesentthisway. Youcanalsosendmultipleparametersandvaluesaspartofthex-header sip:[email protected]?x-customname=Madhu%2CMathiyalagan%3BTitle%3DManager&x-myotherheader=bar UUI(User-to-UserInformation)headercanbesentwithoutprependingx- sip:[email protected]?User-to-User=123456789%3Bencoding%3Dhex&x-myotherheader=bar Transport SetaparameteronyourSIPURItospecifywhattransportprotocolyouwanttouse.Currently,thisislimitedtoUDP,TCPandTLS.Bydefault,TwiliosendsyourSIPINVITEoverUDP.Changethisbyusingthetransportparameter: YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Transportwith Alternatively,youmaycustomizeittouseTLSforSIPsignaling.WhenusingTLS,thedefaultportwillbe5061however,adifferentonemaybespecified. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode TLSTransportwith Callparameters WhenaSIPcallisanswered,TwiliopassesthefollowingparameterswithitsrequestinadditiontothestandardTwiMLVoicerequestparameters: Parameter Values Called ToheaderoftheSIPInvitemessage.TheSIPidentifierofthecalledparty. Caller FromheaderoftheSIPInvitemessage.TheSIPidentifierofthepartythatinitiatedthecall. SipCallId TheSIPcallIDheaderoftherequestmadetotheremoteSIPinfrastructure. SipDomain ThehostpartoftheSIPrequest. SipDomainSid YourSIPDomainID.Itis34characterslong,andalwaysstartswiththelettersSD. SipHeader_ Thename/valueofanyX-headersreturnedinthe200responsetotheSIPINVITErequest.ThisisapplicableonlyifyouareusingSIPcustomheaders. SipSourceIp SourceIPaddressforSIPsignaling. Additionalparameters Whenyouinvokedialactionattributeand,Twiliopassesthefollowingparameterswithitsrequestinadditiontothestandarddialactionparameters.UsetheactioncallbackparameterstomodifyyourapplicationbasedontheresultsoftheSIPdialattempt: Parameter Values DialSipCallId TheSIPcallIDheaderoftherequestmadetotheremoteSIPinfrastructure. DialSipResponseCode TheSIPresponsecodeasaresultoftheINVITEattempt. DialSipHeader_ Thename/valueofanyX-headersreturnedinthefinalresponsetotheSIPINVITErequest. Attributes Thenounsupportsthefollowingattributesthatmodifyitsbehavior: AttributeName AllowedValues DefaultValue method GET,POST POST password PasswordforSIPauthentication statusCallbackEvent initiated,ringing,answered,completed none statusCallback anyurl none statusCallbackMethod GET,POST POST url callscreeningurl none username UsernameforSIPauthentication url TheurlattributeallowsyoutospecifyaurlforaTwiMLdocumentthat runsonthecalledparty'send,aftertheyanswer,butbeforethetwopartiesare connected.YoucanusethisTwiMLtoprivatelyorinformationtothe calledparty,orprovideachancetodeclinethephonecallusing and.IfanswerOnBridgeattributeisusedon, thecurrentcallerwillcontinuetohearringingwhiletheTwiMLdocumentexecutesontheotherend. TwiMLdocumentsexecutedinthismannerarenotallowedtocontaintheverb. method ThemethodattributeallowsyoutospecifywhichHTTPmethodTwilioshould usewhenrequestingtheURLspecifiedintheurlattribute.ThedefaultisPOST. statusCallbackEvent Whendialingouttoanumberusing,anoutboundcallisinitiated.The calltransitionsfromtheinitiatedstatetotheringingstatewhenthe phonestartsringing.Ittransitionstotheansweredstatewhenthecallis pickedup,andfinallytothecompletedstatewhenthecallisover.With statusCallbackEvent,youcansubscribetoreceivewebhooksforthedifferent callprogressevents:initiated,ringing,answered,orcompletedfora givencall. ThestatusCallbackEventattributeallowsyoutospecifywhicheventsTwilio shouldwebhookon.Tospecifymultipleeventsseparatethemwithaspace: initiatedringingansweredcompleted.IfastatusCallbackisprovidedandno statuscallbackeventsarespecifiedthecompletedeventwillbesentbydefault. AsopposedtocreatinganoutboundcallviatheAPI,outboundcallscreated usingareinitiatedrightawayandneverqueued.Thefollowingshowsa timelineofpossiblecalleventsthatcanbereturnedandthedifferentcall statusesthatalegmayexperience: Event Description initiated TheinitiatedeventisfiredwhenTwiliostartsdialingthecall. ringing Theringingeventisfiredwhenthecallstartsringing. answered Theansweredeventisfiredwhenthecallisanswered. completed Thecompletedeventisfiredwhenthecalliscompleted,regardlessoftheterminationstatus:busy,canceled,completed,failed,orno-answer.IfnoStatusCallbackEventisspecified,completedwillbefiredbydefault. statusCallback ThestatusCallbackattributeallowsyoutospecifyaURLforTwiliotosend webhookrequeststooneacheventspecifiedinthestatusCallbackEvent attribute.Non-relativeURLsmustcontainavalidhostname(underscoresarenotpermitted). TheparametersTwiliopassestoyourapplicationinitsasynchronousrequestto theStatusCallbackURLincludeallparameterspassedinasynchronousrequest toretrieveTwiMLwhenTwilioreceivesacalltooneofyourTwilionumbers. ThefulllistofparametersanddescriptionsofeachareintheTwiMLVoice Requestdocumentation. Whenthecallprogresseventsarefired,theStatusCallbackrequestalsopassestheseadditionalparameters: Parameter Description CallSid Auniqueidentifierforthiscall,generatedbyTwilio.YoucanusetheCallSidtomodifythechildcallbyPOSTingtoCalls/{CallSid}withanewTwiMLURL. ParentCallSid Auniqueidentifierfortheparentcall. CallStatus Adescriptivestatusforthecall.Thevalueisoneofqueued,initiated,ringing,in-progress,busy,failed,orno-answer.SeetheCallStatussectionformoredetails. CallDuration Thedurationinsecondsofthejust-completedcall.Onlypresentinthecompletedevent. RecordingUrl TheURLofthephonecall'srecordedaudio.Thisparameterisincludedonlyifrecordissetontheanddoesnotincluderecordingsinitiatedinotherways.RecordingUrlisonlypresentinthecompletedevent. RecordingSid TheuniqueIDoftheRecordingfromthiscall.RecordingSidisonlypresentinthecompletedevent. RecordingDuration Thedurationoftherecordedaudio(inseconds).RecordingDurationisonlypresentinthecompletedevent.Togetafinalaccuraterecordingdurationafteranytrimmingofsilence,userecordingStatusCallback. Timestamp Thetimestampwhentheeventwasfired,givenasUTCinRFC2822format. CallbackSource Astringthatdescribesthesourceofthewebhook.Thisisprovidedtohelpdisambiguatewhythewebhookwasmade.OnStatusCallbacks,thisvalueisalwayscall-progress-events. SequenceNumber Theorderinwhichtheeventswerefired,startingfrom0.Althougheventsarefiredinorder,theyaremadeasseparateHTTPrequestsandthereisnoguaranteetheywillarriveinthesameorder. statusCallbackMethod ThestatusCallbackMethodattributeallowsyoutospecifywhichHTTPmethod TwilioshouldusewhenrequestingtheURLinthestatusCallbackattribute. ThedefaultisPOST. Examples Example1:DialingtoaSIPendpoint Inthisexample,[email protected],useaverbwithanounnestedinside. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode DialingtoaSIPendpoint Example2:DialaSIPendpoint,protectedbyauthentication Inthisexample,youarestilldialingKate,butyouneedtopassauthenticationcredentialstoreachher. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode DialaSIPendpoint,protectedbyauthentication Example3:Passingheaders Inthisexample,passcustomheadersalongwiththeSIPaddress. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Passingheaders Example4:Dialwithseveralattributes AmorecomplexDial,specifyingcustomsettingsasattributeson,includingcallscreening. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Dialwithseveralattributes Example5:CallProgressEvents Inthisexample,wewanttoreceiveawebhookforeachcallprogresseventwhen dialingaSIPendpointusing. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode CallProgressEvents Example6:ParallelCallingorSimultaneousDialing InordertousetheSIPParallelCallingTwiliofeature,youmustenablethe"EnhancedProgrammableSIPFeatures"inyourVoicesettingsintheConsole. Parallelcalling,alsoknownassimultaneousdialing,isusefulwhenyouhaveseveralphones(orseveralpeople)thatyouwanttoringwhenyoureceiveanincomingcall.Sayyouhavemultipledifferentendpointswhereyoucantakeacall,suchasamobilephone,homephone,officephone,and/orPCsoftphone.Thisfeatureallowsyoutocalluptotenendpointsatthesametimebyspecifyingaverbwithmultipledestinations.Additionally,foreachendpoint,youcanspecifywhichStatusCallbackeventsforwhichyouwanttoreceiveWebhookrequests. Inadditiontophonenumbersand/orTwilioClientidentifiers,youcannowspecifySIPURIsforparallelcallingusingtheverb’snoun. Youcanmixuptotendifferent,,ornounswithinaDialverbtocallsimultaneously. Keepinmindthatthefirstcallthatconnectswillcancelalltheotherattempts.Ifyoudialanofficephonesystemoramobilephoneinairplanemode,etc.,thatendpointmaypickupafterasinglering,preventingtheotherendpointsfromringinglongenoughforahumantoeveranswer.Henceyoushouldtakecaretousesimultaneousdialinginsituationswhereyouknowthebehaviorofthecalledparties. Fortheexample,AlicehasthreedifferentwaystocontactherusingSIP.ShewantsyoutoringheronherSIPsoftphone,SIPdeskphoneandSIPmobileclientatthesametime,andshewillpickuponedependingonwheresheisatthetimeofthecall. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Parallelcalling Example7:SerialCallingorSequentialDialing InordertousetheSIPSerialCallingTwiliofeature,youmustenablethe"EnhancedProgrammableSIPFeatures"inyourVoicesettingsintheConsole. Serialcalling,alsoknownassequentialdialing,isusefulwhenyouhaveseveralphones(orseveralpeople)thatyouwanttoringinaspecificorderwhenyoureceiveanincomingcall.Sayyouhaveagroupofagentsinacallcenter,andyouwanttotryeachoftheminorderuntiloneofthempicksup.Thisfeatureallowsyoutocalluptotenagentssequentiallybyspecifyingaverbwithmultipledestinations,andsettingthesequentialattributetotrue.Thepriorityofthecallsisbasedontheorderwithintheverb.Additionally,foreachendpoint,youcanspecifywhichStatusCallbackeventsyouwanttoreceiveviaWebhooks. Youcanmixuptotendifferent,,ornounswithinaverbtocallsequentially. Keepinmindthatthefirstcallthatconnectswillcancelalltheremainingattemptsinthesequence.Ifyoudialanofficephonesystemoramobilephoneinairplanemode,etc.,thatendpointmaypickupafterasinglering,preventingtheremainingendpointsfrombeingcalled.Henceyoushouldtakecaretousesequentialdialinginsituationswhereyouknowthebehaviorofthecalledparties. Fortheexamplebelow,ifAlicerejectsordoesnotanswerthenthecallwillgotoBob.SimilarlyifBobrejectsordoesnotanswerthenthecallwillgotoCharlie.IfCharliedoesnotanswer,thecallwillfail. YouareviewinganoutdatedversionofthisSDK. Showsampleresponse ExampleJSONresponse Showcode Serialcalling 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



請為這篇文章評分?