الأكاديمية ← قنوات المراسلةتوثيق رسمي · إرشاد عربي

اجتماعات Teams

Teams Meetings

متوسط إلى متقدم5 دقائق قراءةالدرس 95 أسئلة✓ 2026-08-18
قبل أن تقرأ

ما هذه الصفحة، وماذا تحتوي.

بوابة المراسلة: الوصلة التي تجعلك تكلّم Hermes من تطبيق تستعمله أصلًا، مثل Telegram أو WhatsApp، بدل الطرفية. الوكيل الذي تصله من هاتفك تستعمله فعلًا. الذي يحتاج فتح الحاسوب تنساه بعد أسبوع. الصفحة فيها تحذير من المصدر، و5 دقائق قراءة. انتبه: افتح القناة لنفسك فقط في البداية عبر قائمة سماح. القناة المفتوحة تعني أن أي شخص يراسل وكيلك.

11أقسام
12أمثلة برمجية
1جداول
6أوامر
869كلمة من المصدر
الوصف الرسمي في سطر

Set up the Microsoft Teams meeting summary pipeline with Microsoft Graph webhooks

ماذا ستستطيع بعدها

نتائج مأخوذة من هذه الصفحة، لا من قالب.

  • تعرف ما بوابة المراسلة ولماذا قد تحتاجه.
  • تنفّذ hermes teams-pipeline subscribe وhermes gateway run وتفهم ما يحدث بعدها.
  • تقرأ الجدول وتأخذ منه السطر الذي يخصّك فقط.
  • تضبط MSGRAPH_TENANT_ID في المكان الصحيح.
ما ستقابله من أسماء

كما تظهر تمامًا داخل Hermes.

الأوامر
  • hermes teams-pipeline subscribe
  • hermes gateway run
  • hermes gateway setup
  • hermes teams-pipeline validate
  • hermes plugins enable teams_pipeline
  • hermes teams-pipeline maintain-subscriptions
متغيرات البيئة
  • MSGRAPH_TENANT_ID
  • MSGRAPH_CLIENT_ID
  • MSGRAPH_CLIENT_SECRET
  • MSGRAPH_WEBHOOK_ENABLED
  • MSGRAPH_WEBHOOK_PORT
  • MSGRAPH_WEBHOOK_CLIENT_STATE
  • MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES
  • MSGRAPH_WEBHOOK_HOST
خريطة الصفحة

انتقل مباشرة إلى ما تحتاجه.

  1. 01What This Feature Does
  2. 02Prerequisites
  3. 03Step 1: Add Microsoft Graph Credentials
  4. 04Step 2: Enable the Graph Webhook Listener
  5. 05Step 3: Configure Teams Delivery and Pipeline Behavior
  6. 06Teams Delivery Modes
  7. 07Step 4: Start the Gateway
  8. 08Step 5: Create Graph Subscriptions
  9. 09Validation
  10. 10Troubleshooting
  11. 11Related Docs
الصفحة الرسمية كاملة

بلا اختصار أو حذف.

النص أدناه منقول من المصدر الرسمي بالإنجليزية حتى تبقى الأوامر والأسماء دقيقة كما هي. قبل كل قسم شرح عربي يوضّح ما بداخله.

Use the Teams meeting pipeline when you want Hermes to ingest Microsoft Graph meeting events, fetch transcripts first, fall back to recordings plus STT when needed, and deliver a structured summary to downstream sinks.

Prerequisites: see Microsoft Teams for the underlying bot/credential setup.

Run hermes gateway setup and pick Teams Meetings for a guided walk-through.

This page focuses on setup and enablement:

  • Graph credentials
  • webhook listener configuration
  • Teams delivery modes
  • pipeline config shape

For day-2 operations, go-live checks, and the operator worksheet, use the dedicated guide: Operate the Teams Meeting Pipeline.

What This Feature Does

أوامر تكتبها في الطرفية. افهم ما يفعله الأمر قبل نسخه. الأوامر هنا: hermes plugins enable teams_pipeline.

The pipeline:

  1. receives Microsoft Graph webhook events
  2. resolves the meeting and prefers transcript artifacts first
  3. falls back to recording download plus STT when no usable transcript is available
  4. stores durable job state and sink records locally
  5. can write summaries to Notion, Linear, and Microsoft Teams

Operator actions stay in the CLI (the teams-pipeline subcommand is registered by the teams_pipeline plugin — enable it via hermes plugins enable teams_pipeline or set plugins.enabled: [teams_pipeline] in config.yaml):

Shell3 أسطر
hermes teams-pipeline validate
hermes teams-pipeline list
hermes teams-pipeline maintain-subscriptions

Prerequisites

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه. تذكير: الوصلة التي تجعلك تكلّم Hermes من تطبيق تستعمله أصلًا، مثل Telegram أو WhatsApp، بدل الطرفية.

Before enabling the meetings pipeline, make sure you have:

  • a working Hermes install
  • the existing Microsoft Teams bot setup if you want Teams outbound delivery
  • Microsoft Graph application credentials with the permissions required for the meeting resources you plan to subscribe to
  • a public HTTPS URL that Microsoft Graph can call for webhook delivery
  • ffmpeg installed if you want recording-plus-STT fallback

Step 1: Add Microsoft Graph Credentials

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية.

Add Graph app-only credentials to ~/.hermes/.env:

Shell3 أسطر
MSGRAPH_TENANT_ID=<tenant-id>
MSGRAPH_CLIENT_ID=<client-id>
MSGRAPH_CLIENT_SECRET=<client-secret>

These credentials are used by:

  • the Graph client foundation
  • subscription maintenance commands
  • meeting resolution and artifact fetches
  • Graph-based Teams outbound delivery when you do not provide a dedicated Teams access token

Step 2: Enable the Graph Webhook Listener

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية.

The webhook listener is a gateway platform named msgraph_webhook. At minimum, enable it and set a client state value:

Shell4 أسطر
MSGRAPH_WEBHOOK_ENABLED=true
MSGRAPH_WEBHOOK_PORT=8646
MSGRAPH_WEBHOOK_CLIENT_STATE=<random-shared-secret>
MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES=communications/onlineMeetings

The bind host is read from the platform's extra.host in config.yaml (there is no MSGRAPH_WEBHOOK_HOST env var — see the webhook listener reference).

The listener exposes:

  • /msgraph/webhook for Graph notifications
  • /health for a simple health check

You need to route your public HTTPS endpoint to that listener. For example, if your public domain is https://ops.example.com, your Graph notification URL would typically be:

Textسطر واحد
https://ops.example.com/msgraph/webhook

Step 3: Configure Teams Delivery and Pipeline Behavior

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية.

The meeting pipeline reads its runtime config from the existing teams platform entry. Pipeline-specific knobs live under teams.extra.meeting_pipeline. Teams outbound delivery stays on the normal Teams platform config surface.

Example ~/.hermes/config.yaml:

YAML32 سطرًا
platforms:
  msgraph_webhook:
    enabled: true
    extra:
      host: 127.0.0.1
      port: 8646
      client_state: "replace-me"
      accepted_resources:
        - "communications/onlineMeetings"

  teams:
    enabled: true
    extra:
      client_id: "your-teams-client-id"
      client_secret: "your-teams-client-secret"
      tenant_id: "your-teams-tenant-id"

      # outbound summary delivery
      delivery_mode: "graph" # or incoming_webhook
      team_id: "team-id"
      channel_id: "channel-id"
      # incoming_webhook_url: "https://..."

      meeting_pipeline:
        transcript_min_chars: 80
        transcript_required: false
        transcription_fallback: true
        ffmpeg_extract_audio: true
        notion:
          enabled: false
        linear:
          enabled: false

If you bind the listener to a non-loopback host such as 0.0.0.0, you must also set allowed_source_cidrs to Microsoft's webhook egress ranges. Loopback binds (127.0.0.1 / ::1) are the intended dev-tunnel and local reverse-proxy setup.

Teams Delivery Modes

إعدادات تضبطها مرة وتنساها. غيّر واحدًا في كل مرة حتى تعرف أثر كل تغيير.

The pipeline supports two Teams summary-delivery modes inside the existing Teams plugin.

incomingwebhook

Use this when you want a simple webhook post into Teams without channel-message creation through Graph.

Required config:

YAML6 أسطر
platforms:
  teams:
    enabled: true
    extra:
      delivery_mode: "incoming_webhook"
      incoming_webhook_url: "https://..."

graph

Use this when you want Hermes to post the summary through Microsoft Graph into a Teams chat or channel.

Supported targets:

  • chat_id
  • team_id + channel_id
  • team_id + home_channel fallback for the existing Teams platform

Example:

YAML7 أسطر
platforms:
  teams:
    enabled: true
    extra:
      delivery_mode: "graph"
      team_id: "team-id"
      channel_id: "channel-id"

Step 4: Start the Gateway

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية. الأوامر هنا: hermes gateway run.

Start Hermes normally after updating config:

Shellسطر واحد
hermes gateway run

Or, if you run Hermes in Docker, start the gateway the same way you already do for your deployment.

Check the listener:

Shellسطر واحد
curl http://localhost:8646/health

Step 5: Create Graph Subscriptions

فيه تحذير مهم. اقرأه قبل أن تنفّذ أي شيء من هذا القسم. الأوامر هنا: hermes teams-pipeline subscribe، hermes teams-pipeline maintain-subscriptions. نصّ التحذير من المصدر مذكور أسفل هذا الشرح.

Use the plugin CLI to create and inspect subscriptions.

Examples:

Shell9 أسطر
hermes teams-pipeline subscribe \
  --resource communications/onlineMeetings/getAllTranscripts \
  --notification-url https://ops.example.com/msgraph/webhook \
  --client-state "$MSGRAPH_WEBHOOK_CLIENT_STATE"

hermes teams-pipeline subscribe \
  --resource communications/onlineMeetings/getAllRecordings \
  --notification-url https://ops.example.com/msgraph/webhook \
  --client-state "$MSGRAPH_WEBHOOK_CLIENT_STATE"

For subscription maintenance and day-2 operator flows, continue with the guide: Operate the Teams Meeting Pipeline.

Validation

أوامر تكتبها في الطرفية. افهم ما يفعله الأمر قبل نسخه. الأوامر هنا: hermes teams-pipeline validate.

Run the built-in validation snapshot:

Shellسطر واحد
hermes teams-pipeline validate

Useful companion checks:

Shellسطران
hermes teams-pipeline token-health
hermes teams-pipeline subscriptions

Troubleshooting

قسم لحل المشكلات. ابحث فيه عن العطل الذي يشبه حالتك بدل قراءته كاملًا.

ProblemWhat to check
Graph webhook validation failsConfirm the public URL is correct and reachable, and that Graph is calling the exact /msgraph/webhook path
Jobs do not appear in hermes teams-pipeline listConfirm msgraph_webhook is enabled and that subscriptions point at the right notification URL
Transcript-first never succeedsCheck Graph permissions for transcript resources and whether the transcript artifact exists for that meeting
Recording fallback failsConfirm ffmpeg is installed and the Graph app can access recording artifacts
Teams summary delivery failsRe-check delivery_mode, target IDs, and Teams auth config
اختبار الفهم

5 أسئلة إجاباتها كلها في هذه الصفحة.

كل خيار اسم حقيقي من توثيق Hermes. حتى الخيارات الخاطئة حقيقية، لكنها من صفحات أخرى.

1. في جدول هذا الدرس، ما «What to check» المقابل لـ«Transcript-first never succeeds»؟
2. أي متغير بيئة من التالي يظهر فعليًا في هذا الدرس؟
3. ما التحذير الذي يذكره المصدر في هذا الدرس؟
4. أي عنوان من التالي لا يظهر في هذا الدرس؟
5. أي مفتاح إعداد يظهر في أمثلة هذا الدرس؟