teams
1035 Topicsteams and bulk adding of members
When I set up a new team or a channel under a team, I noticed that I have to add each name one at a time. It's really tedious, and it seems like an easy add just to cut and paste a bunch of emails from a spreadsheet into this (you can do this in outlook to send to a large distro). Why are bulk adds in teams so difficult?Solved444KViews7likes30CommentsjoinUrl is null when fetching via /chats/
Hi we have a production app for Teams that has broken as a result of a seemingly random api change that we can't find any documentation for in the api change log or anywhere for that matter. We are sending the following request via our front end app: https://graph.microsoft.com/v1.0/chats/19:meeting_MDc0NmQ4OWYtNTNiOC00NjY2LWIzYWItZGQ3ZTQyMWFjNzk2@thread.v2 { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats/$entity", "id": "19:meeting_MDc0NmQ4OWYtNTNiOC00NjY2LWIzYWItZGQ3ZTQyMWFjNzk2@thread.v2", "topic": "Besprechung mit <organiser_name>", "createdDateTime": "2025-08-21T10:41:11Z", "lastUpdatedDateTime": "2025-08-21T12:49:30.002Z", "chatType": "meeting", "webUrl": "https://teams.microsoft.com/l/chat/19%3Ameeting_MDc0NmQ4OWYtNTNiOC00NjY2LWIzYWItZGQ3ZTQyMWFjNzk2%40thread.v2/0?tenantId=<tenant_id>", "tenantId": "<tenant_id>", "isHiddenForAllMembers": false, "viewpoint": { "isHidden": false, "lastMessageReadDateTime": "2025-08-21T12:59:24.376Z" }, "onlineMeetingInfo": { "calendarEventId": null, "joinWebUrl": null, "organizer": { "id": null, "displayName": null, "userIdentityType": "aadUser" } } } In this request we would parse `onlineMeetingInfo` for the joinWebUrl however we now get `null` We've tried using the webUrl but this does not work since it doesn't contain the organisation Id which we later rely on. Our flow is the following: We make a graph api request to fetch the joinUrl We send the joinWebUrl to our backend That Url is passed to a Teams Bot we are hosting on Azure which parses the URL to send a bot join request to Microsoft. However the new webUrl does not have the organiser Id and as a result the bot fails to join. We've verified by hardcoding the organiser Id var meetingInfo = new OrganizerMeetingInfo { Organizer = new IdentitySet { User = new Identity { Id = <we_hard_coded_this> }, }, }; meetingInfo.Organizer.User.SetTenantId(tenantId) And we then use this as following: var tenantId = (meetingInfo as OrganizerMeetingInfo)?.Organizer .GetPrimaryIdentity() .GetTenantId(); var mediaSession = this.CreateLocalMediaSession(); var joinParams = new JoinMeetingParameters(chatInfo, meetingInfo, mediaSession) { TenantId = tenantId, }; if (!string.IsNullOrWhiteSpace(callParams.DisplayName)) { // Teams client does not allow changing of ones own display name. // If display name is specified, we join as anonymous (guest) user // with the specified display name. This will put bot into lobby // unless lobby bypass is disabled. joinParams.GuestIdentity = new Identity { Id = Guid.NewGuid().ToString(), DisplayName = callParams.DisplayName }; } if (!callParameters.TryAdd(chatInfo.GetMeetingId(), new() { AccessToken = callParams.AccessToken, AccountId = callParams.AccountId, BackendUrl = callParams.BackendUrl, JoinUrl = callParams.JoinUrl, Protocol = callParams.Protocol, Origin = callParams.Origin, InviterParticipantId = callParams.InviterParticipantId, SubscriptionId = callParams.SubscriptionId, })) { logger.Warning("Parameters for call already exist."); } var statefulCall = await this.Client.Calls() .AddAsync(joinParams) .ConfigureAwait(false); This is quite urgent as it's impacting our customers, could someone please have a look at provide us an update here? Thank you.101Views0likes2CommentsNo Tabs or Buttons Appearing in Teams
I just started a new Community in Teams. The only option I have in the tool bar is to upload files. Nothing to create anything new like folders. It's coming up that way on other computers and I've run out of ideas. Here is what I am seeing. Any help would be appreciated. Thanks. Chuck74Views0likes2CommentsA Point of View on transitioning from PRI/BRI Lines to SIP Trunking
The telecommunications industry from past few years is witnessing a significant migration from traditional circuit-switched technologies like Primary Rate Interface (PRI) and Basic Rate Interface (BRI) to modern packet-switched Session Initiation Protocol (SIP) trunking. This transition represents a fundamental shift in how voice communications are delivered and managed in business environments. Let first begin with understanding the basics of PRI and BRI technologies PRI (Primary Rate Interface) is a circuit-switched technology that operates as part of the Integrated Services Digital Network (ISDN). PRI channels can carry 23 Bearer (B) channels and one Delta (D) channel for T1 circuits in the US, or 30 B channels and one D channel for E1 circuits in other regions. Each Bearer channel operates at 64 Kbps for voice and data transmission, while the Delta channel operates at 16 Kbps for signalling and control. BRI (Basic Rate Interface) is the smaller version of ISDN, typically providing 2 B channels and 1 D channel (2B+1D configuration). Both technologies use dedicated physical lines and require specialized hardware for operation. SIP Trunking Architecture SIP (Session Initiation Protocol) trunking is an application layer protocol that enables voice, video, and messaging services over internet protocol (IP) networks. Unlike PRI/BRI which relies on physical circuit-switched connections, SIP is a packet-switched technology that utilizes existing data networks to transmit voice communications. Key technical differences include: • Technology Base: PRI/BRI uses circuit-switched technology, while SIP uses packet-switched technology • Infrastructure: PRI requires physical hardware installation and dedicated lines, while SIP is software-based and uses existing IP networks • Capacity: PRI has fixed capacity (23 channels per T1 line), while SIP can handle unlimited channels based on available bandwidth • Flexibility: SIP works across different networks including VoIP and PSTN, while PRI is designed primarily for PSTN integration. Technical Migration Aspects: 1. Infrastructure Assessment The migration begins with a comprehensive infrastructure audit to determine if the existing phone systems support IP technology natively or require an ISDN to SIP converter. Organizations must evaluate their current PBX compatibility and network readiness. It is very important to call out the Analog dependencies like loud speaker, ring bell mechanisms and paging system so that their integration and compatibility can be checked and determined in designing phase. 2. Network Bandwidth Planning Network bandwidth assessment is critical for SIP deployment. As a thumb rule, organizations should plan for approximately 100 Kbps per concurrent call. For example, replacing an ISDN30 (30-channel PRI) would require approximately 3 Mbps of dedicated bandwidth. 3. Hardware Integration Options ISDN to SIP Converters serve as bridge devices for organizations wanting to retain existing PBX systems: • BRI Converter (ISIP8): Converts Basic Rate ISDN lines to SIP • PRI Converter (ISIP30): Converts Primary Rate ISDN lines to SIP These converters allow legacy PBX systems to interface with modern SIP trunk providers without requiring complete system replacement. 4. Session Border Controller (SBC) Implementation Session Border Controllers are essential components that manage traffic, enhance security, and ensure compatibility between different networks and protocols. SBCs provide secure communication channels between the organization’s network and SIP providers. You can consider it as a Voice Firewall. 5. Quality of Service (QoS) Configuration Network QoS configuration ensures voice traffic receives priority over data traffic, maintaining call quality equivalent to traditional telephony systems. This includes bandwidth allocation, traffic shaping, and latency management. Technical Advantages of SIP Trunking Cost Optimization: SIP trunking eliminates the need for separate physical lines, utilizing existing data network infrastructure. Organizations only pay for the number of trunks used, unlike PRI which comes in fixed 23-channel increments. Scalability and Flexibility SIP trunking offers dynamic scalability without hardware constraints. Businesses can scale on-demand by adjusting software settings rather than installing additional physical lines. Enhanced Reliability SIP traffic can be routed to backup connections automatically during network disruptions. This built-in redundancy provides superior disaster recovery capabilities compared to physical PRI connections that can be affected by power outages or physical damage. Unified Communications Integration SIP trunking enables seamless integration of voice, video, and data on a single platform. This convergence eliminates the need for multiple communication systems and enables advanced collaboration features. Implementation Challenges and Considerations Network Dependency: SIP trunking requires a stable internet connection and organizations must maintain reliable backup connectivity to handle outages. Quality depends heavily on network performance and available bandwidth. Security Considerations: SIP systems can be vulnerable to cyber threats and require implementation of security measures including Secure Real-time Transport Protocol (SRTP) to protect voice data. Equipment Compatibility: Older hardware such as desk phones might need replacement to fully leverage SIP trunking capabilities. Organizations should budget for potential equipment upgrades during migration planning. Migration Best Practices Parallel Operation Testing: Organizations should run parallel operations of both PRI and SIP during transition phases, allowing testing and issue resolution before complete PRI phase-out. Comprehensive Validation: Thorough testing and validation of SIP infrastructure for compatibility and functionality is essential before full deployment. This includes call quality testing, feature verification, and failover testing. User Training and Support: Comprehensive user training facilitates adoption of new system capabilities and ensures optimal utilization of SIP trunking features. Summary : Why are organizations transitioning from PRI/BRI to SIP Trunking? Cost Efficiency SIP trunking eliminates the need for physical lines, reducing infrastructure and maintenance costs. Calls, especially long-distance and international, are significantly cheaper over IP. Scalability & Flexibility Unlike PRI/BRI which have fixed channel limits, SIP trunks can be scaled up or down easily based on business needs, without additional hardware. Unified Communications SIP enables integration of voice, video, messaging, and collaboration tools, supporting modern communication platforms and remote work environments. Business Continuity SIP trunks offer better disaster recovery options and call rerouting capabilities, ensuring communication remains uninterrupted during outages. Global Reach SIP trunking supports global connectivity without the need for local infrastructure in every region, making it ideal for multinational organizations. Futureproofing As telecom providers phase out legacy systems, SIP trunking ensures compatibility with evolving technologies and cloud-based services.48Views2likes0CommentsAn overview of Competella Integration with Microsoft Teams
POV: An overview of Competella Integration with Microsoft Teams Overview: Competella offers a cloud-based contact center and attendant console that integrates natively with Microsoft Teams. It is built on Microsoft’s Graph Communications API, it enhances Teams with advanced call routing, queue management, and real-time analytics features that go far beyond standard Teams Call Queues. Key features that make It stand out Multiple Voice Queues: Handle multilingual welcome messages, hold music, and queue-specific schedules. Smart Call Distribution: Choose from longest-idle, round robin, parallel ring, or serial call routing. Agent Portal in Teams: Agents can log in, monitor queues, and manage calls directly from the Teams interface. Advanced Reporting: Track missed calls, average wait times, and agent availability with detailed analytics. CRM Integration: Connects with Microsoft Dynamics, Exchange, and Salesforce for a 360° customer view. Introduction to Competella Contact Center: Competella is the third Contact Center to be Microsoft Teams Extend Certified. There are 14 contact centres certified for Microsoft Teams, but only Luware, Tendfor and Competella are certified for Extend. With Microsoft Teams Extend certified contact centres, customers can bring their own Contact Center PSTN connectivity via Microsoft Calling Plan, Operator Connect or Direct Routing. The Competella Communication Suite is a subscription SaaS multi-tenant solution running in Azure and leveraging native Microsoft Graph Communications APIs. Competella has over 700 customers with 100+ on the Competella Communication Suite for Teams, first released in March 2020. Competella was acquired by Enghouse Systems in June 2022. The Competella Communication Suite will become a part of the Enghouse Interactive portfolio of products for Teams. Competella Communication Suite consists of Attendant Console, Contact Center Workgroup and Contact Center Enterprise. The Competella solution includes advanced statistics and reporting capabilities which can be used for analytics and planning purposes. Customers can add additional features with add-on licences, including IVR Express, Voice Recording, Call Back, CRM integration and Realtime Wallboard. Advantage of Competella Contact Center with MS Team: Seamless Integration with Teams: Fully embedded in the Teams environment—agents can handle calls directly from their Teams client or mobile phone. Advanced Call Handling: Supports multiple incoming voice queues with multilingual greetings and hold messages. Offers flexible call distribution methods: longest-idle, round robin, parallel ring, and serial call. Real-Time & Historical Analytics: Provides live monitoring of queue stats like number of calls, available agents, and wait times. Generates detailed reports on answered/missed calls and average/max wait times for performance tracking2 Smart Resource Management: Skill-based routing and IVR (Interactive Voice Response) help optimize agent workload and improve customer experience. Managers get a 360° overview to make data-driven decisions using real-time and historical insights. Completella configuration with Azure and O365 environment. To start using the services in the Enghouse Competella Communication Suite for Teams you have to some basic setup of your Office 365 and Azure environment, this includes: Register a Calling Bot in your Azure environment Create a Resource Accounts (Endpoints) for your incoming queues Assign phone numbers from you Direct Routing to your Resource Accounts Register 3 different Apps that handles user logins, user import and presence Setup in Azure Portal Log on to your Azure portal and go to “App registrations”. Home>App registration>Competella Identity Server Navigate to Azure Active Directory > App registrations > New registration Fill in: Name: Competella Identity Server Supported account types: Choose Accounts in this organizational directory only Redirect URI (optional): Use https://<tenant>.competella365.com/signin-oidc (replace <tenant> with your actual tenant name) Click Register Generate Client Secret Go to Certificates & secrets > New client secret Add a description (e.g., CompetellaSecret) and choose an expiration period Azure User Importer App Step 1: Sign in to Azure Portal Go to portal.azure.com Ensure you're using an account with Global Administrator rights. Step 2: Register the Application Navigate to Azure Active Directory > App registrations > New registration Fill in: Name: Competella Azure User Importer Supported account types: Choose Accounts in this organizational directory only Redirect URI: Leave blank (not needed for this backend app) Click Register Step 3: Create a Client Secret Go to Certificates & secrets > New client secret Add a description (e.g., UserImporterSecret) and set an expiration Save the Value securely—it will be used in Competella’s backend 📎 Step 4: Assign API Permissions Go to API permissions > Add a permission Choose Microsoft Graph > Application permissions User.Read.All Group.Read.All Directory.Read.All Add: Click Grant admin consent to activate these perm Presence Server App: Step 1: Register the App in Azure Sign in to portal.azure.com with a Global Admin account. Go to Azure Active Directory > App registrations > New registration Fill in: Name: Competella Presence Server Supported account types: Choose Accounts in this organizational directory only Redirect URI: Leave blank (not required for this app) Click Register Step 2: Create a Client Secret Go to Certificates & secrets > New client secret Add a description (e.g., PresenceSecret) and choose an expiration period Save the Value securely Step 3: Assign API Permissions Go to API permissions > Add a permission Choose Microsoft Graph > Delegated permissions Presence.Read Presence.Read.All Add: Click Grant admin consent to activate them Step 4: Create a Dedicated Azure User Go to Azure Active Directory > Users > New user Create a user account (e.g., email address removed for privacy reasons) No groups or roles are needed Disable Multi-Factor Authentication (MFA) Log in with this account once to change the password and ensure it's active Calendar Service App: Step 1: Register the App in Azure Sign in to portal.azure.com with a Global Admin account. Go to Azure Active Directory > App registrations > New registration Fill in: Name: Competella Calendar Service Supported account types: Choose Accounts in this organizational directory only Redirect URI: Leave blank (not required for this backend service) Click Register Step 2: Create a Client Secret Go to Certificates & secrets > New client secret Add a description (e.g., CalendarServiceSecret) and choose an expiration period Save the Value securely Step 3: Assign API Permissions Go to API permissions > Add a permission Choose Microsoft Graph > Application permissions Calendars.Read Mail.Send Add: Click Grant admin consent to activate these permissions Add and grant the following API permissions: Microsoft Graph/Application/Calendars.Read Microsoft Graph/Application/Mail.Send Calling Bot To be able to tie your main numbers to corresponding incoming queues in Competella, you will have to register a calling bot in your Azure environment. To this bot you will then add a SIP/URI address per queue and tie it with a PSTN number. One bot can serve multiple incoming numbers. First you will need to register a Bot. Follow the steps below. Click “Create a resourc Step 1: Register the Bot in Azure Go to Azure Portal > Create a resource Choose Bot Channels Registration Fill in: Name: Competella Calling Bot Type of App: Set to Multi-Tenant Pricing Plan: Choose the appropriate tier Messaging Endpoint: Format: https://<customer>.competella365.com/callback/calling Example: If your domain is acme.com, use https://acme.competella365.com/callback/calling Click Review + Create, then Create Step 2: Enable Microsoft Teams Channel Go to the bot’s Channels section Add Microsoft Teams under Available Channels Click Enable Calling Step 3: Configure App Settings Go to Configuration > Manage under Microsoft App ID Generate and save: App ID Secret Key 📎 Step 4: Assign API Permissions Go to API permissions > Add a permission Choose Microsoft Graph > Application permissions Calls.Initiate.All Calls.InitiateGroupCall.All Calls.JoinGroupCall.All Calls.JoinGroupCallAsGuest.All (Optional) Calls.AccessMedia.All — if using Voice Recording Add: Click Grant admin consent Creating Resource accounts for Queues and IVR Now that your bot is setup, you can create SIP/URI’s for the incoming queues and IVR’s and assign them to the Bot. This is done through Power Shell and requires that you have installed the “Teams PowerShell Module”. If you have a Hybrid scenario, it is advised that you run the PS commands from a machine setup with UCMA and part of your Skype topology. The example below, using the “New-CsOnlineApplicationInstance”, is for a pure Azure environment. The command “New-CsHybridApplicationEnpoint” should be used instead if you are in a Hybrid scenario: (New-CsHybridApplicationEndpoint -ApplicationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DisplayName "HelpDesk" -SipAddress sip:email address removed for privacy reasons -OU "OU=OnLineApplications,DC=customer,DC=com") Start your PS session and follow the steps below: First change the meeting configuration of the bot, where "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" is the ID of your bot. Set-CsApplicationMeetingConfiguration -AllowRemoveParticipantAppIds @{Add="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"} Create an URI and tie it to the Application ID of your bot New-CsOnlineApplicationInstance -UserPrincipalName email address removed for privacy reasons -ApplicationId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -DisplayName " HelpDesk" Now wait for the AD synchronization towards Azure (if this is a Hybrid scenario). This may take a while! Fetch the Object ID of your Endpoint and sync it. Get-CsOnlineApplicationInstance -Identity email address removed for privacy reasons Sync-CsOnlineApplicationInstance -ObjectId [] Make sure that you assign the correct Voice Routing Policy to your Endpoint Grant-CsOnlineVoiceRoutingPolicy -Identity email address removed for privacy reasons -PolicyName "XXX-No Restrictions-3" Assign a Virtual Phone license to the resource account by going to the Office Admin portal and find your URI under users/active users Sync Competella Attendant Console and Contact Center Enterprise features: Competella CRM Integration Gateway – extended 360? view and AI CRM-based routing with a turnkey solution for Microsoft Dynamics and Salesforce, open API for other ITSM and CRM systems. Competella Voice Recording – record, and store inbound, outbound and on-demand call recording for compliance and training purposes. Competella Callback – offers callback to callers waiting in line, keeping their position. Competella AC – Attendant Console The Attendant Console offers fast call handling, directory search, Teams presence, Mobile presence (Northern Europe feature) and Exchange Calendar presence all in one view. Competella CCW – Contact Center Workgroup Competella CCW is an advanced hunt group solution for mobile and Microsoft Teams users, supporting simultaneous ring. It’s ideal for administrative staff, mobile front-line workers, and on-call agents, who can easily log in via Teams or a browser to handle calls directly in Teams. Competella CCE – Contact Center Enterprise: Offers fast call handling, directory search, Teams presence, mobile presence, 360? view call history of caller, previous agent, previous transfer to and wrap-up code to inform the agent about historical contact to improve first-time resolution.124Views3likes0CommentsCopilot for Teams features for Channel Meetings as opposed to Regular Meetings
For several years, I've scheduled our small departmental meetings as channel meetings rather than one-to-many meetings. I think there is a benefit to doing this. We are now using our M365 Copilot trial licenses (1 Week) and I'm starting to activate Copilot during meetings. This starts the transcription service and allows you to request a recap. Because I also have a Teams Premium license - the meeting has a recap section - but that only works if you use the Teams Premium feature of recording the meeting - which starts transcription and offers a recap. With Copilot - it seems you have to formally request a recap of the meeting. If you leave the meeting first - you can go back into the chat section of the meeting and request a meeting recap after the fact. But with a channel meeting, there is no separate chat section of that specific meeting. The chat is in the channel and that's by design. If you start copilot during a channel meeting - it appears that you MUST request the recap of the meeting while you are still in the meeting - because after you leave the meeting you lose the copilot session for that meeting and you can no longer ask for a recap - because the meeting is over. You can, however, download the transcript after the fact. However, you are then stuck with a transcript but no summary. The best I could do was to re-download the transcription as a docx file and then open it in word and then ask Copilot in Word to "summarize this file." Very awkward. Bottom line - it's very unlikely that one can remember to ask for a recap of the meeting while you are still in the meeting. And since you can go back and get a recap in normal meetings after you leave - one would expect you can do so in a Channel Meeting - but so far you can't. All-in-all, while this shows potential - it is kludgy and painful at the moment. I hope this is improved.2.8KViews3likes4CommentsTeams Meeting Intelligent Recap/AI Notes feature license requirement
Hello Experts, We've read that from this article: https://learn.microsoft.com/en-us/microsoftteams/intelligent-recap-calls-meetings The intelligent recap/AI notes for meetings license requirement is Teams Premium "or" M365 Copilot license. However, when we test this for a couple of test users that only has Copilot license(paid) but without Teams Premium. The AI Notes in Teams Meetings Recap is locked. See sample screenshot. We confirmed that the AI Notes is unlocked once you have Teams Premium license but this seems like a bug or maybe an error from the official article. Can someone from the engineering team confirm this? Your help is highly appreciated.103Views0likes0CommentsOrg-Wide Team in Tenant with A5 Licenses?
Hi all, we have a tenant with A5 licenses. I configured my global admin to use one of them and made sure Teams is active as app. However i am unable to create an org-wide team, the option just doesnt show up. Is this not an option for tenants using education licenses? Best Tobias2.2KViews0likes8Comments