- Migrate from using
python-jose
with native-python cryptographic backend to thepyjwt
package
- Fix a bug with SIP options in the
Opentok.dial
method
- Add
publisher_only
role that can be specified when generating a token.
- Fixed an issue with the
opentok.create_session
method
- Added support for the Captions API
- Fixed an issue with end-to-end encryption not being called correctly when creating a new session
- Added the
maxBitrate
parameter to theClient.start_broadcast
method - Added the
hlsStatus
parameter to theBroadcast object
- Added the
streams
parameter so specific streams can be chosen to be included in a SIP call when using theClient.dial
method
- Fixed broken
opentok.Client.add_archive_stream
,opentok.Client.remove_archive_stream
,opentok.Client.add_broadcast_stream
andopentok.Client.remove_broadcast_stream
methods and tests - Fixed
opentok.Endpoints.get_archive_stream
andopentok.Endpoints.get_broadcast_stream
methods
- Added auto-archive improvements to the
opentok.Client.create_session
method to customize automatically created archives:archive_name
parameterarchive_resolution
parameter
- Added the option to append to the user-agent, which can be done with
opentok.Client.append_to_user_agent('my-appended-string')
- Added the option to specify audio-only or video-only broadcasts with the new booleans
hasAudio
andhasVideo
when starting a broadcast or adding new streams to a broadcast.
- Support for end-to-end encryption (E2EE) that can be specified by a user when creating an OpenTok session.
- Support for Audio Connector API via
connect_audio_to_websocket
method
- Support for Experience Composer (Render) API
- Support for multiple archives and broadcasts in the
start_archive
andstart_broadcast
methods - Support for low latency and DVR modes
- Documented more methods in README
- Updated some out-of-date dependencies
- Mute all and mute stream functionality #192, #197, #199
- Added selective stream feature to
Archive
andBroadcast
objects. #196 - Added PlayDTMF functionality to
SipCall
object #194 - Added SIP video outbound flag to
SipCall.dial
method #194 - Added the ObserveForceMute flag to
SipCall.dial
method #193
- Added mute/muteall functionality
- #188 - Added support for archive layouts, as well as the new
screenshareType
option for screenshare layouts
- Fixed
readme.rst
not displaying properly on Pypi
Thank you for your support and we are definitely excited to release even more exciting updates!! Stay tuned!!
- Verb to Noun format to make the SDK code more human-readable and maintain consistency with industry standard
- Renamed the Opentok class to Client to ensure compliance with best practice and industry standards
- Improved JWT generation
- Improved error handling
- Fixed Enum34 related issues
Fixing issues with Enum34.
- Add Broadcast APIs Thanks @normanargueta!
- Added SIP Dial API
- Added Set Stream Class Lists API
Thanks @normanargueta!
- List Archives filtration by sessionId (#137 )
- Added Update Archive Layout functionality (#139)
Added resolution
parameter for start_archive
Added signal
API
Added force_disconnect
API
Added get_stream
API
Added list_streams
API
Thanks @normanargueta and @maikthomas
- Add timeout option to opentok constructor (#117, #57 Thanks @tylergould!)
Changes:
- Exceptions now inherit from
Exception
instead ofBaseException
(#115, thanks @fernandogrd)
As well as:
- Update archive documentation (#80)
- Document the
initial_layout_class_list
param for thegenerate_token
function (#112) - Refactor sample app (#111)
This updates includes the following changes:
- Adds support for the
initial_layout_class_list
field in tokens - Adds support for JWT
X-OPENTOK-AUTH
header, replacing the deprecatedX-TB-PARTNER-AUTH
header - Updates the REST API endpoint URL to use
/project/
replacing the deprecated/partner/
- Only include connection data in generated token if it's been defined
- Ensure backwards compatibility with Python 2.6
- Removes Python 3.2 from supported version because it's not supported by our dependency
As well as:
This update adds support for the initial_layout_class_list
field in tokens.
This update adds version information to the User-Agent string for analytics (#78)
This update adds proxy configuration as a feature of the OpenTok object. (thanks @juandebravo!)
Here is an example of using proxy configuration:
from opentok import OpenTok
opentok = OpenTok(api_key, api_secret)
opentok.proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
session = opentok.create_session()
The format for the proxy configuration is identical to the format used by the underlying requests library.
New archiving features:
- Automatically archived sessions -- See the
archive_mode
parameter of theopentok.create_session()
method and theArchiveModes
class. - Audio-only or video-only archives -- See the
has_audio
andhas_video
parameters of theopentok.start_archive()
method. - Individual archiving -- See the
output_mode
parameter of theopentok.start_archive()
method and theOutputModes
class. - Paused archives -- When no clients are publishing to a session being archived, its status changes to "paused". See
archive.status
.
Other improvements:
- Adds Python 3.4 support
The default setting for the create_session()
method is to create a session with the media mode set
to relayed. In previous versions of the SDK, the default setting was to use the OpenTok Media Router
(media mode set to routed). In a relayed session, clients will attempt to send streams directly
between each other (peer-to-peer); if clients cannot connect due to firewall restrictions, the
session uses the OpenTok TURN server to relay audio-video streams.
This version of the SDK includes support for working with OpenTok 2.0 archives. (This API does not work with OpenTok 1.0 archives.)
The OpenTok.create_session()
method now includes a media_mode
parameter, instead of a p2p
parameter.
For details, see the reference documentation at http://www.tokbox.com/opentok/libraries/server/python/reference/index.html.