メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

3.x Changelog

3.1.0

May 16, 2019

改善点

Improved error codes

We now surface more details about errors encountered during [TwilioVoice registerWithAccessToken:deviceToken:completion:], [TwilioVoice unregisterWithAccessToken:deviceToken:completion:], [TwilioVoice connectWithOptions:delegate:], and [TVOCallInvite acceptWithOptions:delegate:]. Previously, these functions reported these errors with the generic error TVOErrorRegistrationError or TVOErrorConnectionError.

With the new error codes, you can make more informed decisions with how to remedy the problem. For example, TVOErrorBadRequestError and TVOErrorTooManyRequestsError indicate potential programming issues, while TVOErrorTokenAuthenticationRejected indicate an issue with your Access Token.

Please note, you may need to change your code if you have added special handling for TVOErrorRegistrationError or TVOErrorConnectionError.

For more information see the API docs

The following is a summary of the new codes available for [TwilioVoice registerWithAccessToken:deviceToken:completion:], [TwilioVoice unregisterWithAccessToken:deviceToken:completion:]:

エラー コード エラーメッセージ
TVOErrorBadRequestError 31400 Bad Request
TVOErrorForbiddenError 31403 アクセス拒否
TVOErrorNotFoundError 31404 見つかりません
TVOErrorRequestTimeoutError 31408 Request Timeout
TVOErrorConflictError 31409 Conflict
TVOErrorUpgradeRequiredError 31426 Upgrade Required. This is most likely related to a TLS version not accepted by Twilio's infrastructure
TVOErrorTooManyRequestsError 31429 非常に多いリクエスト
TVOErrorInternalServerError 31500 サーバー内部エラー
TVOErrorBadGatewayError 31502 Bad Gateway
TVOErrorServiceUnavailableError 31503 Service Unavailable
TVOErrorGatewayTimeoutError 31504 Gateway Timeout

The following is a summary of the new codes available for [TwilioVoice connectWithOptions:delegate:], and [TVOCallInvite acceptWithOptions:delegate:]:

エラー コード エラーメッセージ
TVOErrorTransportError 31009 Transport Error
TVOErrorBadRequestError 31400 Bad Request
TVOErrorForbiddenError 31403 アクセス拒否
TVOErrorNotFoundError 31404 見つかりません
TVOErrorRequestTimeoutError 31408 Request Timeout
TVOErrorTemporarilyUnavailableError 31480 Temporarily Unavailable
TVOErrorCallDoesNotExistError 31481 Call/Transaction Does Not Exist
TVOErrorBusyHereError 31486 Busy Here
TVOErrorRequestTerminatedError 31487 Request Terminated
TVOErrorInternalServerError 31500 Internal Server
TVOErrorBadGatewayError 31502 Bad Gateway
TVOErrorServiceUnavailableError 31503 Service Unavailable
TVOErrorGatewayTimeoutError 31504 Gateway Timeout
TVOErrorDNSResolutionError 31530 DNS Resolution Error
TVOErrorBusyEverywhereError 31600 Busy Everywhere
TVOErrorDeclineError 31603 Decline
TVOErrorDoesNotExistAnywhereError 31604 Does Not Exist Anywhere

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0

April 25, 2019

We have promoted 3.0.0-beta13 to 3.0.0. Reference our migration guide to upgrade your applications to 3.0.

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.3 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta13

April 18, 2019

バグ修正

  • CLIENT-5982 Fixed a bug where call quality warnings might be sent to Insights multiple times before the warning is cleared.

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.3 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta12

April 17, 2019

改善点

  • CLIENT-5973 Removed TVOErrorConnectionTimeoutError, TVOErrorSignalingConnectionError, TVOErrorSignalingConnectionTimeoutError, TVOErrorSignalingIncomingMessageInvalidError, TVOErrorSignalingOutgoingMessageInvalidError, TVOErrorConfigurationAcquireFailedError and TVOErrorConfigurationAcquireTurnFailedError from TVOError.h.

バグ修正

  • CLIENT-5935 Fixed a bug where constant audio level warning events are being sent to Insights when the call is muted or onhold.
  • CLIENT-5969 Renamed kDefaultAVAudioSessionConfigurationBlock to kTVODefaultAVAudioSessionConfigurationBlock so that TwilioVoice.framework and TwilioVideo.framework may be used in the same application.
  • CLIENT-5977 Fixed a bug where the SDK was sending double values for packets_lost_fraction to Insights instead of integer.

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.3 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta11

April 4, 2019

改善点

  • CLIENT-5379 Added network reachability monitoring for the signaling socket for a reliable network change detection.

バグ修正

  • CLIENT-5379 Fixed a bug where WiFi to WiFi network hand off was causing one-way audio followed by Call disconnect.

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta10

April 2, 2019

バグ修正

  • CLIENT-5828, CLIENT-5868 A network change that occurs during a reconnection will now trigger another reconnection attempt ensuring media is restored on the correct network.
  • CLIENT-5882 Call metrics insights will always be available after a network handover when the call is in TVOCallStateConnected state.

既知の問題

  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta9

March 27, 2019

改善点

  • CLIENT-5806 CLIENT-5807 Updated the API documentation for [TVOCallInvite acceptWithDelegate:] and [TVOCallInvite acceptWithOptions:delegate:].
  • CLIENT-5810 Updated the API documentation for TVOCall.

API の変更点

  • Attempts to connect a Call via [TwilioVoice connectWithDelegate:] or [TVOCallInvite acceptWithDelegate:] that fail prior to reaching the TVOCallStateConnected state will always result in the call:didFailToConnectWithError: callback with an error code. However, if [TVOCall disconnect] is called while an attempt to connect or accept a call is made, the call:didDisconnectWithError: callback will be raised with no error.

バグ修正

  • CLIENT-5813 Network loss scenarios that resulted in a Call failure now raise the call:didFailToConnectWithError: callback. Previously these scenarios erroneously raised call:didDisconnectWithError:.
  • CLIENT-5754 A Call that fails as a result of not establishing a media connection prior to being connected now raises the call:didFailToConnectWithError: callback. Previously this scenario erroneously raised call:didDisconnectWithError:.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is correctly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.

既知の問題

  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta8

March 20, 2019

バグ修正

  • CLIENT-5796 Fixed an issue where the millisecond timestamp in the Insights event payload overflows on 32-bit architecture devices.
  • CLIENT-5830 Removed scripts from TwilioVoice.framework that could cause code signing issue when uploading apps to iTunes Connect.

既知の問題

  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is incorrectly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta7

March 19, 2019

API の変更点

  • The from property of the TVOCallInvite and TVOCancelledCallInvite objects is now nullable in case the value is not available in the call invite notification.

バグ修正

  • CLIENT-5801 Fixed an issue where an incoming call invite that did not contain a from field was not considered a valid notification.

既知の問題

  • CLIENT-5830 Apps using 3.0.0-beta7 may have code signing issue when uploading to iTunes Connect due to some development scripts included in TwilioVoice.framework.
  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is incorrectly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta6

March 14, 2019

改善点

  • CLIENT-5258 Reduced SDK size by stripping video software codecs.
  • CLIENT-5353 Reduced SDK size by stripping SCTP data channels.

既知の問題

  • CLIENT-5830 Apps using 3.0.0-beta6 may have code signing issue when uploading to iTunes Connect due to some development scripts included in TwilioVoice.framework.
  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is incorrectly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 5.8 MB 12.4 MB
arm64 2.8 MB 6.8 MB
armv7 3.0 MB 5.6 MB

3.0.0-beta5

March 4, 2019

改善点

  • CLIENT-5678 The size impact report now includes both armv7 and arm64 architectures.
  • The libboringssl.a library is now separated and shipped alongside the static library libTwilioVoice.a. Add -lboringssl in the Other Linker Flags to link the SDK properly.

バグ修正

  • CLIENT-5664 The static library libTwilioVoice.a is now properly linked with dependencies.

既知の問題

  • CLIENT-5830 Apps using 3.0.0-beta5 may have code signing issue when uploading to iTunes Connect due to some development scripts included in TwilioVoice.framework.
  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-4805 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is incorrectly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 6.4 MB 13.4 MB
arm64 3.1 MB 7.4 MB
armv7 3.3 MB 6.1 MB

3.0.0-beta4

February 14, 2019

API の変更点

  • TVOCallFeedbackScoreNoScore is replaced with TVOCallFeedbackScoreNotReported.

既知の問題

  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-5578 WiFi to WiFi handover may disconnect the Call.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-4805 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is incorrectly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 6.4 MB 13.4 MB
arm64 3.1 MB 7.3 MB
armv7 3.3 MB 6.0 MB

3.0.0-beta3

February 7, 2019

改善点

  • The Voice SDK publishes Call Insights. Publishing is enabled by default. The preference can be updated by configuring TVOCallOptions.enableInsights.
  • CLIENT-5595 Added TVOErrorTokenAuthenticationRejected (51007). This error is raised when attempting to perform registration or unregistration with a token that is invalid.
  • Added [TVOCall postFeedback:issue:] method to TVOCall that posts the feedback collected for this Call to Twilio. If TVOCallFeedbackScoreNoScore and TVOCallFeedbackIssueNotReported are passed, Twilio will report feedback was not available for this call.
  • CLIENT-2985 The SDK can connect to Twilio’s Servers in an IPv6 environment.
  • CLIENT-4998 Call will continue after network handoff.

バグ修正

  • CLIENT-5573 Fixed a crash that occurred when a client issued a disconnect while already processing a termination request from the server.

既知の問題

  • CLIENT-5576 LTE -> WiFi may cause one way audio.
  • CLIENT-5578 WiFi to WiFi handover may disconnect the Call.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-4805 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-5821 The packets_lost_fraction value reported to Insights is incorrectly computed and within the expect range of 0 to 100.
  • CLIENT-5835 Events were erroneously reported to Insights when the TVOConnectOptions.enableInsights property was set to false.
  • CLIENT-5882 Call metrics insights becomes unavailable after a network handover during a call.

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 3.1 MB 7.3 MB
arm64 3.1 MB 7.3 MB

3.0.0-beta2

December 13, 2018

改善点

  • Added a preferredAudioCodecs property to TVOCallOptions. Support for Opus is added to the Voice SDK but yet to be enabled on Twilio infrastructure. It will be notified to the users of the Voice SDK when Opus codec is enabled on Twilio infrastructure.
  • Added new error code 31008. This error is raised when a TVOCallInvite is accepted after the Call has ended.

バグ修正

  • CLIENT-5398 Unmuting a Call on hold causes audio to flow.

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-4805 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-4998 Network handoff, and subsequent connection renegotiation is not supported.
  • CLIENT-2985 IPv6はサポートされません。
  • CLIENT-4547 Insights is not published.
  • CLIENT-4537 PCMU is the only supported codec. We plan on adding support for Opus moving forward. #117

Size Report

アーキテクチャ App Download Size App Storage Size
Universal 3.1 MB 7.2 MB
arm64 3.1 MB 7.2 MB

3.0.0-beta1

November 26, 2018

改善点

  • Added media and signaling related error codes.

既知の問題

  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5258 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-4998 Network handoff, and subsequent connection renegotiation is not supported.
  • CLIENT-2985 IPv6はサポートされません。
  • CLIENT-4547 Insights is not published.
  • CLIENT-4537 PCMU is the only supported codec. We plan on adding support for Opus moving forward. #117
  • CLIENT-5398 Unmuting a call on hold causes audio to flow.

3.0.0-preview5

October 24, 2018

バグ修正

  • CLIENT-5186 Fixed a crash when network is lost during an active Call.
  • CLIENT-5132 The call:didDisconnectWithError: delegate method of the caller should be called with nil error instead of call:didFailToConnectWithError: when the TVOCallInvite is rejected with answerOnBridge enabled.
  • CLIENT-4837 Fixed a crash caused by SIGPIPE when a signaling socket is closed due to an error.

既知の問題

  • CLIENT-5059 Calls made to a client or PSTN number that have a long duration before answering may not get connected.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5258 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-4998 Network handoff, and subsequent connection renegotiation is not supported.
  • CLIENT-2985 IPv6はサポートされません。
  • CLIENT-4547 Insights is not published.
  • CLIENT-4672 CLIENT-4673 Error codes 20157 and 20151 report different message and explanation text than Voice 2.0 SDKs.
  • CLIENT-4537 PCMU is the only supported codec. We plan on adding support for Opus moving forward. #117

3.0.0-preview4

October 2, 2018

改善点

  • TVOCallInvitecustomParameters プロパティが追加されました。

Pass custom parameters in TwiML

  <?xml version="1.0" encoding="UTF-8"?>
  <Response>
    <Dial callerId="client:alice">
      <Client>
        <Identity>bob</Identity>
        <Parameter name="caller_first_name" value="alice" />
        <Parameter name="caller_last_name" value="smith" />
      </Client>
    </Dial>
  </Response>

callInvite.customParameters:

  {
    "caller_first_name" = "alice";
    "caller_last_name" = "smith";
  }

バグ修正

  • CLIENT-5202 Fixed a potential crash caused by a memory corruption when a custom TVOAudioDevice is created.
  • CLIENT-5160 The Voice SDK is built using the audio variant of WebRTC 67. Developers are no longer are required to add NSCameraUsageDescription key in app's Info.plist to consume the Voice SDK in an app and upload it to the App Store. #164
  • CLIENT-5204 Call audio was not able to recover from AVAudioSession interruptions. TVOAVAudioSessionConfigurationBlock now configures AVAudioSession.preferredIOBufferDuration to 20 milliseconds by default, to match changes in WebRTC.

既知の問題

  • CLIENT-5059 Calls made to a PSTN number may not get connected when answerOnBridge is set to true.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio's Network Traversal Service.
  • CLIENT-5258 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-4998 Network handoff, and subsequent connection renegotiation is not supported.
  • CLIENT-2985 IPv6はサポートされません。
  • CLIENT-4547 Insights is not published.
  • CLIENT-4672 CLIENT-4673 Error codes 20157 and 20151 report different message and explanation text than Voice 2.0 SDKs.
  • CLIENT-4537 PCMU is the only supported codec. We plan on adding support for Opus moving forward. #117

3.0.0-preview3

September 12, 2018

バグ修正

  • CLIENT-5101 The inject_credentials.sh which was accidentally included in the TwilioVoice.framework bundle has been removed.

改善点

  • This release is based on Chromium WebRTC 67.
  • Provide a stateless mechanism for processing push notifications related to call invites and call invite cancellations. The [TwilioVoice handleNotification:] no longer raises errors via the notificationError: method when processing invalid notifications, instead a BOOL value is returned when it is called. The boolean value is YES when the provided notification payload results in a TVOCallInvite or TVOCancelledCallInvite object. If [TwilioVoice handleNotification:] returns NO it means the data provided was not a Twilio Voice push notification. The TVOCallInvite has an accept() and a reject() method. While the TVOCancelledCallInvite simply provides the to, from, and callSid fields also available in the TVOCallInvite object. The callSid can be used to associate a TVOCallInvite with a TVOCancelledCallInvite.
  • notificationError: is removed from the TVONotificationDelegate protocol. cancelledCallInviteReceived: is added for the SDK to notify the application when a Call cancellation notification is received.

Processing push notifications in 2.X

- (void)pushRegistry:(PKPushRegistry *)registry
        didReceiveIncomingPushWithPayload:(PKPushPayload *)payload
             forType:(NSString *)type {
    [TwilioVoice handleNotification:payload.dictionaryPayload delegate:self];
}

#pragma mark - TVONotificationDelegate

- (void)callInviteReceived:(TVOCallInvite *)callInvite {
    if (callInvite.state == TVOCallInviteStatePending) {
        [self handleCallInviteReceived:callInvite];
    } else if (callInvite.state == TVOCallInviteStateCanceled) {
        [self handleCallInviteCanceled:callInvite];
    }
}

- (void)notificationError:(NSError *)error {
    NSLog(@"Failed processing notification payload: %@", error);
}

- (void)handleCallInviteReceived:(TVOCallInvite *)callInvite {
    // Call invite received
}

- (void)handleCallInviteCanceled:(TVOCallInvite *)callInvite {
    // Call invite canceled
}

Processing push notifications in 3.X

- (void)pushRegistry:(PKPushRegistry *)registry
        didReceiveIncomingPushWithPayload:(PKPushPayload *)payload
             forType:(NSString *)type {
    BOOL result = [TwilioVoice handleNotification:payload.dictionaryPayload delegate:self];
    if (!result) {
        NSLog(@"The processed data was not a Twilio push notification payload");
    }
}

#pragma mark - TVONotificationDelegate

- (void)callInviteReceived:(TVOCallInvite *)callInvite {
    // Call invite received
}

- (void)cancelledCallInviteReceived:(TVOCancelledCallInvite *)cancelledCallInvite {
    // Call invite cancelled
}

API の変更点

  • Deprecated the TVOAudioOptions.levelControl and TVOAudioOptions.levelControlInitialPeakLevelDBFS properties as they are no longer supported in Chromium WebRTC 67.

既知の問題

  • CLIENT-5121 The apps using 3.0.0-preview3 may need to include NSCameraUsageDescription key and purpose string in it's Info.plist in order to submit the app to the App Store. The WebRTC used by the Twilio Voice SDK is using camera APIs. We are working on building the Voice SDK with the audio only variant of WebRTC where this workaround will not be required. #163
  • CLIENT-5059 Calls made to a client or PSTN number that have a long duration before answering may not get connected.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio Network Travarsal Service.
  • CLIENT-4805 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-4998 Network handoff, and subsequent connection renegotiation is not supported.
  • CLIENT-2985 IPv6はサポートされません。
  • CLIENT-4698 Params that are passed to your TwiML Application while making calls are not URL encoded
  • CLIENT-4547 Insights is not published
  • CLIENT-4672 CLIENT-4673 Error codes 20157 and 20151 report different message and explanation text than Voice 2.0 SDKs
  • CLIENT-4537 PCMU is the only supported codec. We plan on adding support for Opus moving forward. #117

3.0.0-preview2

August 28, 2018

改善点

  • Introduced a new callback method [TVOCallDelegate callDidStartRinging:]. This callback is emitted once before the [TVOCallDelegate callDidConnect:] callback when the callee is being alerted of a Call. The duration of the TVOCallStateRinging is determined by the answerOnBridge flag provided in the Dial verb of your TwiML application associated with this client. If the answerOnBridge flag is false, which is the default, the [TVOCallDelegate callDidConnect:] callback will be emitted immediately after [TVOCallDelegate callDidStartRinging:]. If the answerOnBridge flag is true this will cause the Call to emit the callDidConnect callback only until the call is answered. See answeronbridge for more details on how to use it with the Dial TwiML verb. If the twiML response contains a Say verb, then the call will emit the [TVOCallDelegate callDidConnect:] callback immediately after [TVOCallDelegate callDidStartRinging:] is raised, irrespective of the value of answerOnBridge being set to true or false.
  • Added a new Call state TVOCallStateRinging.
  • TwilioVoice.region is moved to TVOCallOptions.region.
  • Added a getStatsWithBlock: method to TVOCall that builds a TVOStatsReport with metrics for all the audio tracks in a Call.

既知の問題

  • CLIENT-5121 The apps using 3.0.0-preview2 may need to include NSCameraUsageDescription key and purpose string in it's Info.plist in order to submit the app to the App Store. The WebRTC used by the Twilio Voice SDK is using camera APIs. We are working on building the Voice SDK with the audio only variant of WebRTC where this workaround will not be required. #163
  • CLIENT-5059 Calls made to a client or PSTN number that have a long duration before answering may not get connected.
  • CLIENT-4943 Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio Network Travarsal Service.
  • CLIENT-4805 The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • CLIENT-4998 Network handoff, and subsequent connection renegotiation is not supported.
  • CLIENT-2985 IPv6はサポートされません。
  • CLIENT-4698 Params that are passed to your TwiML Application while making calls are not URL encoded
  • CLIENT-4547 Insights is not published
  • CLIENT-4672 CLIENT-4673 Error codes 20157 and 20151 report different message and explanation text than Voice 2.0 SDKs
  • CLIENT-4537 PCMU is the only supported codec. We plan on adding support for Opus moving forward. #117

3.0.0-preview1

August 10, 2018

This is our first WebRTC based release using Chromium WebRTC 57.

This SDK introduces audio device APIs. The Voice SDK uses TVODefaultAudioDevice by default. This release intruduces a new protocol, TVOAudioDevice. This protocol gives you the ability to replace TVODefaultAudioDevice. By implementing the TVOAudioDevice protocol, you can write your own audio capturer to feed audio samples to the Voice SDK and an audio renderer to receive the remote audio samples. For example, you could integrate with ReplayKit2 and capture application audio for broadcast or play music using AVAssetReader.

This SDK introduces TVOConnectOptions and TVOAcceptOptions to allow developers to make behaviorial changes associated with a Call.

This SDK allows multiple active Calls to be managed by the application.

改善点

  • Introduced TwilioVoice.audioDevice class property. You should set your audio device on TwilioVoice.audioDevice before performing any other actions with the SDK such as creating Tracks or connecting to a Call.
  • Added TVODefaultAudioDevice to render and capture audio. By default, the Voice SDK uses TVODefaultAudioDevice to capture and render audio.
  • Added the ability to provide your own audio capturing and rendering via the TVOAudioDevice protocol. As a part of this change we've also added TVOAudioFormat which describes audio that is being captured and rendered.
  • This release deprecates CallKitIntegration category from TwilioVoice in favor of a new property called TVODefaultAudioDevice.enabled. This property provides developers with a mechanism to enable or disable the activation of the audio device prior to connecting to a Call or to stop or start the audio device while you are already connected to a Call. A Call can now be connected without activating the audio device by setting TVODefaultAudioDevice.enabled to NO and can be enabled during the lifecycle of the Call by setting TVODefaultAudioDevice.enabled to YES. The default value is YES. This API change was made to ensure full compatibility with CallKit as well as supporting other use cases where developers may need to disable the audio device during a call.

Examples #1 - Changing the audio route from receiver to the speaker in a live call:

// The Voice SDK uses TVODefaultAudioDevice by default.

// ... connect to a Call. The `TVODefaultAudioDevice` is configured to route audio to the receiver by default.

TVODefaultAudioDevice *audioDevice = (TVODefaultAudioDevice *)TwilioVoice.audioDevice;

audioDevice.block =  ^ {
    // We will execute `kDefaultAVAudioSessionConfigurationBlock` first.
    kDefaultAVAudioSessionConfigurationBlock();

    if (![session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]) {
        NSLog(@"AVAudiosession overrideOutputAudioPort %@",error);
    }
};
audioDevice.block();

Example #2 - Connecting to a Call using the AVAudioSessionCategoryPlayback category:

id<TVOAudioDevice> audioDevice = [TVODefaultAudioDevice audioDeviceWithBlock:^ {

    // Execute the `kDefaultAVAudioSessionConfigurationBlock` first.
    kDefaultAVAudioSessionConfigurationBlock();

    // Overwrite the category to `playback`
    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *error = nil;
    if (![session setCategory:AVAudioSessionCategoryPlayback
                         mode:AVAudioSessionModeVoiceChat
                      options:AVAudioSessionCategoryOptionAllowBluetooth
                        error:&error]) {
        NSLog(@"AVAudioSession setCategory:options:mode:error: %@",error);
    }
}];

TwilioVoice.audioDevice = audioDevice;

TVOCall *call = [TwilioVoice connectWithOptions:connectOptions delegate:self];
  • Migrated the API to make an outbound Call from [TwilioVoice call] to [TwilioVoice connectWithOptions:delegate:].
TVOConnectOptions *connectOptions = [TVOConnectOptions optionsWithAccessToken:self.accessToken
                                                                       block:^(TVOConnectOptionsBuilder *builder) {
   builder.params = twiMLParams;
   builder.uuid = [NSUUID UUID];
}];
TVOCall *call = [TwilioVoice connectWithOptions:connectOptions delegate:self];
  • Migrated the API to accept a TVOCallInvite using TVOAcceptOptions.
TVOAcceptOptions *options = [TVOAcceptOptions optionsWithCallInvite:self
   block:^(TVOAcceptOptionsBuilder *builder) {
   builder.uuid = weakSelf.callInvite.uuid;
}];
TVOCall *call = [callInvite acceptWithOptions:options delegate:strongSelf];
  • Added standalone log modules: TVOLogModuleCore, TVOLogModulePlatform, TVOLogModuleSignaling and TVOLogModuleWebRTC.
  • [TwilioVoice setModule:logLevel:][TwilioVoice setLogLevel:module:] になりました。
  • [TwilioVoice logLevelForModule:] is added for retrieving log level for specific module.
  • [TwilioVoice version] is now [TwilioVoice getVersion] to avoid type conflict with NSObject.
  • Voice iOS SDK 3.0.0 supports iOS 10.0 and later versions.

既知の問題

  • CLIENT-5121 The apps using 3.0.0-preview1 may need to include NSCameraUsageDescription key and purpose string in it's Info.plist in order to submit the app to the App Store. The WebRTC used by the Twilio Voice SDK is using camera APIs. We are working on building the Voice SDK with the audio only variant of WebRTC where this workaround will not be required. #163
  • CLIENT-5059 Calls made to a client or PSTN number that have a long duration before answering may not get connected.
  • [CLIENT-4943] Restrictive networks may fail unless ICE servers are provided via TVOConnectOptions or TVOAcceptOptions. ICE servers can be obtained from Twilio Network Travarsal Service.
  • [CLIENT-4805] The SDK size is significantly larger than 2.x. A reduced size will be introduced during the beta period.
  • [CLIENT-4998] Network handoff, and subsequent connection renegotiation is not supported.
  • [CLIENT-2985] IPv6 is not supported.
  • [CLIENT-4698] Params that are passed to your TwiML Application while making calls are not URL encoded
  • [CLIENT-4547] Insights is not published
  • [CLIENT-4672] [CLIENT-4673] Error codes 20157 and 20151 report different message and explanation text than Voice 2.0 SDKs
Rate this page:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.