azure / communication Goto Github PK
View Code? Open in Web Editor NEWAzure Communication Services - SDKs and Release Notes
License: MIT License
Azure Communication Services - SDKs and Release Notes
License: MIT License
Is there a way to access the audio stream of a call, to build IVR or call routing capabilities?
Eg: the Service-hosted media scenario from -
https://docs.microsoft.com/en-us/microsoftteams/platform/bots/calls-and-meetings/calls-meetings-bots-overview
In this example I call an echo bot:
https://docs.microsoft.com/en-us/azure/communication-services/quickstarts/voice-video-calling/getting-started-with-calling?pivots=platform-web
But how I can call a Teams User ? Is that posible ?
Great work thanks !
Is your feature request related to a problem? Please describe.
At the moment, the Azure calling library/Javascript npm package is closed source (to my knowledge). Are there any plans to make this package open source?
Is your feature request related to a problem? Please describe.
If a user is working with a LocalVideoStream
, they can fetch the type through the method getMediaStreamType()
.
If a user is working with a RemoteVideoStream
, they can fetch the type through the property type
.
Describe the solution you'd like
Could LocalVideoStream
expose a property called type
so the developer does not have to have two code paths for dealing with type determination?
This line in readme.md is incorrect. in the sample https://github.com/Azure-Samples/communication-services-web-chat-hero
./Chat/ClientApp/src/constants.tsx
with the location of your resource. (e.g https://<RESOURCE_NAME>.communication.azure.com)In the version I just downloaded, constants.tsx does NOT contain this item.
Here is the supplied constants.tsx
// Project settings
export const GUID_FOR_INITIAL_TOPIC_NAME =
'c774da81-94d5-4652-85c7-6ed0e8dc67e6';
// Project configurations
export const COOL_PERIOD_THRESHOLD = 60 * 1000;
export const INITIAL_MESSAGES_SIZE = 2000;
export const MAXIMUM_LENGTH_OF_NAME = 10;
export const MAXIMUM_LENGTH_OF_MESSAGE = 8000;
export const MAXIMUM_LENGTH_OF_TOPIC = 30;
export const MAXIMUM_LENGTH_OF_TYPING_USERS = 35;
export const MAXIMUM_RETRY_COUNT = 3;
export const MINIMUM_TYPING_INTERVAL_IN_MILLISECONDS = 8000;
export const MAXIMUM_INT64 = 9223372036854775807;
export const NUMBER_OF_MESSAGES_TO_LOAD = 10;
export const PAGE_SIZE = 200;
export const PARTICIPANTS_THRESHOLD = 20;
// Keyboard keys
export const ENTER_KEY = 13;
export const SPACE_KEY = 32;
// Http Status Code
export const OK = 200;
export const CREATED = 201;
export const MULTI_STATUS = 207;
export const PRECONDITION_FAILED_STATUS_CODE = 412;
export const TOO_MANY_REQUESTS_STATUS_CODE = 429;
// Regex
export const URL_REGEX = /https?://(www.)?[-a-zA-Z0-9@:%.+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%+.~#?&//=])/;
export const EMPTY_MESSAGE_REGEX = /^\s$/;
Given the browser compatibility list it seems this SDK is relying on the client running in a browser supporting WebRTC. Will desktop or non-browser based clients ever be supported?
Inbound PSTN is a desirable feature.
With the ability to retrieve and use Caller ID as a variable. Think a Call Center or Collections Dept app that routes an inbound call to an agent based on account ownership via Caller ID.
Thanks!
In WebRTC applications, it is possible to re-route a MediaStream through effects.
Are there any entrypoints known for the JS Azure Communication SDK?
Describe the bug
From the group call sample via the localhost, or deployed, there are 2 notable things.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
A video call with the ability for others to join or leave with ease.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Hi,
I went through with the group calling sample code, which is available on the azure communication service link. Here, the UI part is developed in reactjs.
By any chance, do we any sample code base using Angular and .net core for group video calling?
We are trying to support screen share in the browser across multiple different OS. We have found a few products already which work well apart from IOS safari. This is a big problem for us as a large proportion of our userbase own an iPad.
Unfortunately we don't have the resource to create a separate mobile app natively so we need a solution that works in the default browser of most devices (or the ability to install a supported browser on the device). We really only need the current tab shared which may make the solution easier to fix.
Currently we are using a mix of technologies, we have split the video call from the screen sharing to make life easier. For screen sharing we are using [https://github.com/rrweb-io/rrweb] and streaming the playback via signalr. It works but it is not a stable solution and we run into problems with IFrames. We have also been trialling ACS but have not been able to move past the evaluation stage as support for iPad is a hard requirement.
Ideally we would like to have a solution for video and screen share under one roof which can scale from 5 -> 5000 users with ease.
Describe the bug
After permissions are granted by the user (call deviceManager.askDevicePermission), the desktop version of Chrome fires the audioDevicesUpdated and videoDevicesUpdated events. These events are not called when accessed from Mobile Chrome.
Expected behavior
Expected behavior is unclear from documentation. When should these events fire? Is a change defined as when a device is attached or when Azure Communication Services SDK learns of the device?
Desktop (please complete the following information):
Smartphone (please complete the following information):
Is your feature request related to a problem? Please describe.
For remote users, it is possible to view their screen sharing stream by looking at the RemoteParticipant
videoStreams array. Is the same possible for a local participant?
When the screen sharing request succeeds in a call, the Call.localVideoStreams
array does not seem to update with the new screen share stream.
Describe the bug
Joining a group call always unmutes microphone.
To Reproduce
Steps to reproduce the behavior:
ASCAudioOptions
's muted
property to YES
Expected behavior
My microphone should be muted after specifying muted = YES
for the audio options.
Smartphone (please complete the following information):
Code Snippet
ACSAudioOptions *audioOptions = [[ACSAudioOptions alloc] init];
audioOptions.muted = YES;
ACSJoinCallOptions *joinCallOptions = [[ACSJoinCallOptions alloc] init];
joinCallOptions.audioOptions = audioOptions;
ACSGroupCallContext *groupCallContext = ...;
self.call = [self.callAgent joinWithGroupCallContext:groupCallContext joinCallOptions:joinCallOptions];
...
Prompting to install aspnetcore-2.2.8 on running the code.
Visual studio 2019 community
Just want to cross check if this required as the latest version is installed already.
Describe the bug
.NET Core 2.2 is out of support and no samples should be published using them. Upgrade to .NET 3.1 targeting.
Some changes to the web apps will be required to remove Obsolete API usage.
Changes to:
Expected behavior
Microsoft samples use supported softare.
Additional context
https://dotnet.microsoft.com/download/dotnet-core for a list of supported versions.
Is your feature request related to a problem? Please describe.
I'm building a video app and would like to have functionality similar to a collaborative whiteboard. Currently there doesn't seem to be anything like WebRTC data channels available in Azure Communication Service.
Describe the solution you'd like
I'd like to have a mechanism similar to data channels in group calls to allow for additional data related to the group to be passed among/between the group members.
Describe alternatives you've considered
SignalR might be an alternative, or a separate websocket style connection, but this requires multiple connections to be made and duplicates some of the apps business logic.
This is not a big problem until you try to bundle the app for distribution.
When trying to upload IPA from build server, I got this:
ERROR ITMS-90056: "This bundle Payload/TCPRLink.iOS.app/Frameworks/AzureCommunication.framework is invalid. The Info.plist file is missing the required key: CFBundleVersion
Added it manually to info.plist of AzureCommunication.framework and AzureCore.framework, and got this:
ERROR ITMS-90057: "The bundle 'Payload/TCPRLink.iOS.app/Frameworks/AzureCommunicationCalling.framework' is missing plist key. The Info.plist file is missing the required key: CFBundleShortVersionString.
After I added this one as well, I was able to upload the IPA, but got this in a mail:
ITMS-90338: Non-public API usage - The app links to non-public libraries in Frameworks/AzureCommunicationCalling.framework/AzureCommunicationCalling: /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
Is there a way to get around this last one? (I assume you need to fix the other 2 at your end, in the build scripts)
Is your feature request related to a problem? Please describe.
We are needing to implement with an existing UWP solution which is used in a large number of field locations. We were just assigned this a research user story with the goal of implementing probably in the next sprint.
Describe the solution you'd like
Integrate with a Teams meeting created by district, division, or corporate management that can be used within an existing UWP solution.
Describe alternatives you've considered
We have been looking at integrating with the WebEx Browser SDK and we have tried to see how to do it with the MS Graph Communication APIs. We could also figure out how to use the ACS Web SDK inside the WebView control.
as the title suggested
Hi,
From the calling hero sample, as I understand, is browser starting the call, then others who want to join will access through the given url.
But is it possible that browser/iOS/android using ACS libraries will be able to start a call to sip address of MS Teams users?
When I try to export .ipa from archive in Xcode 11.5 and Xcode 12.0.1
I am implement video calling feature using Azure Communication service. After that when I tried to share build on App Center we have pipeline setup. In that I got errors. So, we tried with manual distribute method. I archived build on Xcode 12.0.1 and tried to export .ipa from archive. For this I choose Ad Hoc Provisioning profile. Then I am getting error saying "IPA processing failed".
When I show logs then I found that
2020-10-19 14:39:42 +0000 Assertion failed: Expected 2 archs in otool output:
/var/folders/_8/fdh7st9x6xlf_3hx1858q28h0000gn/T/IDEDistributionOptionThinning.~~~CxGDKf/Payload/AcelityPatientApp.app/Frameworks/AzureCommunicationCalling.framework/AzureCommunicationCalling:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 38 4960 NOUNDEFS DYLDLINK TWOLEVEL WEAK_DEFINES BINDS_TO_WEAK NO_REEXPORTED_DYLIBS MH_HAS_TLV_DESCRIPTORS
This issue. When searched on different portal for this I didn't found any solution so, raising issue here.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It should export .ipa from archive.
Screenshots
Added screenshot as well
Desktop (please complete the following information):
Hi,
I had the first customer demo / adhoc poc as a webcast last week.
So I worked with the two Hero Samples.
The Use Case of the customer (international enterprise service and manufactory) is to chat with endusers on his website.
They wan't to have the option, to chat inside an internal website inside an iframe.
The Hero sample for Video Call could not start inside an iframe with webcam and microphone because the Pop-Up ("Allow to open...") dosn't opening.
Of course, it's works well, when i open the call in a new tab.
but like the demo videos from Ignite and Garage, this should be working inside an iframe.
regards, michael
Will there be Xamarin bindings for the existing Android / iOS SDK, or ideally will there be a Xamarin Forms SDK in the near future?
Thanks
CommunicationUserCredential
has two designated initializers (initWithToken:error:
and initWithInitialToken:refreshProactively:error:tokenRefresher
). Due to lack of documentation for these methods, I am not sure which to use or when to use one vs the other. Also, can we improve the documentation overall for the SDK?
Thanks
Teams has Direct Routing through an SBC.
When will you be adding similar feature to ACS?
This will open up many more applications when you can integrate to outside carriers.
I can see below examples in React , Can anyone give same demos In JavaScript or C# ?
We have a business requirement to integrate SMS service for appointment reminders, schedule and reschedule appointments with back and forth conversation via SMS. But we have this restriction that our data (such as message sent to phone number, message body .. etc) should always reside in Canada.
This is a show stopper for us to integrate SMS Service. I reached out to 10-15 providers starting with Twilio.. none of them has this feature. Hoping ACS will give us flexibility to select region or country to store data in selected region? Even if we dont have option to select, if ACS service can restrict our data to always reside in Canada, that will be great.
Not sure if this is something ACS already has it. If not we would like to know if this something on ACS road map to rollout sooner?
Describe the bug
Unable to get phone number on my Pay-As-You-Go subscription
To Reproduce
Steps to reproduce the behavior:
Your subscription isn't eligible to acquire phone numbers.
Expected behavior
3. To see a list of available phone numbers
Additional context
My account was recently upgraded to paid from trial account, so it's still within the 12 months where many services are free.
I would like to use this on my React Native application. Anyone tried this before? Any suggestions?
May I know when and how I can send SMS and Email using Azure communication services ?
Can anyone show me a simple demo in C# or Javascript ?
When we called stopVideo
on the call, it did nothing.
Steps to reproduce the behavior:
On our demo app, joined an existing call with video and audio enabled. Once connected, we called stopVideo
on the existing call object. However, the remote participants were still able to see my local stream. Also, the stopVideo
completion handler did tell me no error so I assume stopping sharing the local video has been performed successfully.
Expected:
Once stopVideo
call is complete, the other participants should no longer see my local stream.
Code snippet:
ACSVideoDeviceInfo *camera = [[self.deviceManager getCameraList] firstObject];
if (!camera) {
return;
}
[self.activeCall stopVideo:[[ACSLocalVideoStream alloc] init:camera] withCompletionHandler:^(NSError *error) {
if (error) {
NSLog(@"Failed to stop video");
} else {
NSLog(@"successfully stopped video");
}
}];
I would like to clarify on SMS Pricing, is SMS cost same as Chat? It doesn't specify in documentation.
$0.0008 USD per SMS?
Hi, I realized both ACSRenderer and ACSRendererView have a method dispose
. Since it doesn't have doc, when are we supposed to call this method?
We have developed an Android video chat application using Azure Communication Service. It is working successfully in Debug mode. But when we make release build, the app crashes when we initialize a call.
We are using 'com.azure.android:azure-communication-calling:1.0.0-beta.2'
Parts of Error Message:
CallClient: Native library $nativeLib failed to load during initialization.
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.xpertmemos.inpocket-6QXGEXeOIs3FFbOF1JHg5g==/base.apk"],nativeLibraryDirectories=[/data/app/com.xpertmemos.inpocket-6QXGEXeOIs3FFbOF1JHg5g==/lib/arm, /data/app/com.xpertmemos.inpocket-6QXGEXeOIs3FFbOF1JHg5g==/base.apk!/lib/armeabi-v7a, /system/lib, /system/product/lib]]] couldn't find "libskypert.so"
2020-10-18 13:44:16.184 28108-28108/? E/CallClient: Native library $nativeLib failed to load during initialization.
No implementation found for com.azure.communication.calling.status com.azure.communication.calling.NativeLibrary.sam_call_client_create(com.azure.communication.calling.Out) (tried Java_com_azure_communication_calling_NativeLibrary_sam_1call_1client_1create and Java_com_azure_communication_calling_NativeLibrary_sam_1call_1client_1create__Lcom_azure_communication_calling_Out_2)
So far, we think it may be proguard rules issue.
Please help us to resolve this issue.
Regards
Habib
Is your feature request related to a problem? Please describe.
When a group call is started, it is possible for there to be 1 participant. Other participants can join. The call continues until there is only one participant left. At that point the group call terminates.
Unsure if this is intended behavior or a bug. Our thinking was that a group call continues until the last participant leaves.
For all participants, we use hangUp({forEveryone: false})
which should prevent terminating the call for everyone.
What is the expected behavior of group calls in this case?
During the call, I was not able to get notified when a remote participant unmuted/muted or was speaking.
To Reproduce:
Expected behavior:
I was assuming the state of remote participant should have been changed and I could get notified by implementing the ACSRemoteParticipantDelegate
protocol method (void)onParticipantStateChanged:(ACSRemoteParticipant *)remoteParticipant :(ACSPropertyChangedEventArgs *)args
.
Below is the code snippet:
- (void)onRemoteParticipantsUpdated:(ACSCall *)call :(ACSParticipantsUpdatedEventArgs *)args {
for (ACSRemoteParticipant *remoteParticipant in args.addedParticipants) {
self.remoteParticipants[remoteParticipant.identity.getId] = remoteParticipant;
remoteParticipant.delegate = self;
...
}
I also verified the other protocol method (void)onVideoStreamsUpdated:(ACSRemoteParticipant *)remoteParticipant :(ACSRemoteVideoStreamsEventArgs *)args
did get called when I enabled and disabled the video stream.
If (void)onParticipantStateChanged:(ACSRemoteParticipant *)remoteParticipant :(ACSPropertyChangedEventArgs *)args
is not the one I should listen for mute and speaking state changes, how could I do that?
Maybe me not cleaning up something, but the SDK throws an exception on initiating call nr 2:
Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: SKPPreviewVideoRenderer: Failed to create vb::IAppleRendererBinding
Native stack trace:
0 CoreFoundation 0x00000001aef71358 C89C0E79-E3BA-397B-84AB-0B884D980499 + 1250136
1 libobjc.A.dylib 0x00000001aec86cc0 objc_exception_throw + 60
2 CoreFoundation 0x00000001aee6e878 C89C0E79-E3BA-397B-84AB-0B884D980499 + 190584
3 Foundation 0x00000001af311c74 2F43F187-0E88-35B3-82EE-D53E3FCEF0D2 + 904308
4 AzureCommunicationCalling 0x0000000105766bd4 _Z27skp_NSStringFromOpenGLErrorj + 36552
5 AzureCommunicationCalling 0x0000000105a47538 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 2949932
6 AzureCommunicationCalling 0x0000000105a4b090 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 2965124
7 AzureCommunicationCalling 0x0000000105a24570 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 2806628
8 AzureCommunicationCalling 0x0000000105d57c10 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 6162948
9 AzureCommunicationCalling 0x0000000105db4aa4 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 6543512
10 AzureCommunicationCalling 0x0000000105db4920 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 6543124
11 AzureCommunicationCalling 0x0000000105db4d74 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 6544232
12 AzureCommunicationCalling 0x0000000105db3afc _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 6539504
13 AzureCommunicationCalling 0x0000000105db3c64 _ZN8MySkyLib20OnMediaStatusChangedEN6SkyLib11MEDIASTATUSE + 6539864
14 libdispatch.dylib 0x00000001aec12134 6D9E71A9-98B8-3473-A940-CA049AE82C79 + 8500
15 libdispatch.dylib 0x00000001aec135ac 6D9E71A9-98B8-3473-A940-CA049AE82C79 + 13740
16 libdispatch.dylib 0x00000001aec15a1c 6D9E71A9-98B8-3473-A940-CA049AE82C79 + 23068
17 libdispatch.dylib 0x00000001aec22724 6D9E71A9-98B8-3473-A940-CA049AE82C79 + 75556
18 libdispatch.dylib 0x00000001aec22ed0 6D9E71A9-98B8-3473-A940-CA049AE82C79 + 77520
19 libsystem_pthread.dylib 0x00000001aec796dc _pthread_wqthread + 216
20 libsystem_pthread.dylib 0x00000001aec7f9c8 start_wqthread + 8
In the release note, I saw 11.5+ is required for running the build script. So, I guess that (11.5+) isn't necessarily the min version for Xcode to run the frameworks. If true, what would be the min version?
Is your feature request related to a problem? Please describe.
When in a call, if a remote participant is speaking, the property isSpeaking
changes.
Is there a similar method/property that can be used on the local participant?
Describe the solution you'd like
Perhaps a LocalParticipant
type that behaves like the RemoteParticipant
type - would reduce the amount of "unique" code for dealing with local video stream previews, screen share previews, etc.
The idea would be that local code used to display camera & screen share previews would only need to deal with a "Participant." That could be Local or Remote - perhaps local would have more functions e.g. mute, change camera, etc.. For components in a PWA, it would mean we could use the same display components more easily for Local & Remote participants.
Related - issue #65 - re: local/remote users have unique code paths.
As the tittle suggest, I think it's just a good practice to follow. Otherwise, we need to manually disable warnings for this library.
This is fantastic! I can't find any reference to recording though. Is that going to be available? That would be essential if I were to use this in my application.
It would also be convenient - but not critical - if it were possible to record each participant's audiovideo feed separately. At minimum I would like to have each person's audio in a separate channel because we would want to run it through Cognitive Services to get a speech to text transcript with speakers identified.
Build successful but facing below issue.
https://localhost:44316/
This page isn’t workinglocalhost is currently unable to handle this request.
HTTP ERROR 500
node -v v14.8.0
VS 2019
Describe the bug
Device names do not appear on Android Chrome after calling DeviceManager.AskDevicePermission(), then enumerating the Microphone List.
To Reproduce
If the user reloads the page, device names appear when gML and gCL are called.
Expected behavior
Once device permissions are fetched, device names appear.
Screenshots
See screenshot attached for a console log of getMicrophoneList vs. webRTC navigator.mediaDevices.enumerateDevices.
Note that enumerateDevices is called before getMicrophoneList.
Smartphone (please complete the following information):
Describe the bug
Deploying a Communication Service with resource name starting with comm
results in the following error:
{
"code": "DeploymentFailed",
"message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.",
"details": [
{
"code": "BadRequest",
"message": "{\r\n \"error\": {\r\n \"code\": \"HostNamePrefixTaken\",\r\n \"message\": \"Specified host name prefix is not available\"\r\n }\r\n}"
}
]
}
Perhaps either the uniqueness of the Resource Name is not being correctly validated, or comm
is a reserved keyword and should not be allowed to be used.
To Reproduce
Steps to reproduce the behavior:
Resource Name
enter comm
, communicate
or communication
, and click CreateExpected behavior
It would be amazing if the service would have the ability to allow for reservations.
Similarly to how one can reserve for a lower price compute compute, Cosmos DB, SQL Database, Storage capacity and more, I would appreciate if, in exchange for a year/3-years term I could save the overall cost on my subscription(s) for Azure Communication Service.
We are trying to integrate the group calling application with the group chat application. We want the users to initiate a call in the same group in which the chat is in process. How do we achieve this?
Hello,
Is there anywhere to review the actual protocol documentation for this? Personally, I hate using libraries, and that is all I can find reference to in the material about this service.
Thanks much.
I get these errors after running the app
I followed the steps mentioned
the run project dotnet run
I get this error on browser
Unhandled Rejection (SyntaxError): Unexpected end of JSON input
▼ 3 stack frames were expanded.
getToken
src/core/sideEffects.ts:720
async
src/core/sideEffects.ts:64
async Object.setup
src/containers/ConfigurationScreen.ts:18
And in console
fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HM2VP*****", Request id "0HM2VPP3******": An unhandled exception was thrown by the application.
System.UriFormatException: Invalid URI: The URI is empty.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.