# YMCS Documentation Chunks

Large PDF documentation broken into bite-sized markdown files for easier processing.

## Generated From

4 YMCS PDFs downloaded 2026-07-09, totaling ~300MB:

1. **Open API for Yealink Management Cloud Service V4X.pdf** (164 pages, 1.1MB)
   - 9 chunks, 20 pages each
   - Directory: `open-api-for-yealink-management-cloud-service-v4x/`
   - **KEY:** SIP account schema (chunk-03, pages 41-60)

2. **YMCS 4X Enterprise Open API Webhook.pdf** (5 pages, 47KB)
   - 1 chunk
   - Directory: `ymcs-4x-enterprise-open-api-webhook/`

3. **Yealink Management Cloud Service(YMCS)_User Guide.pdf** (953 pages, 90MB)
   - 48 chunks, 20 pages each
   - Directory: `yealink-management-cloud-serviceymcs_user-guide/`

4. **Yealink Management Cloud Service(YMCS)_Channel User Guide.pdf** (84 pages, 210MB)
   - 5 chunks, 20 pages each
   - Directory: `yealink-management-cloud-serviceymcs_channel-user-guide/`

**Total:** 63 markdown files, ~1MB

## Quick Reference

### Find SIP Account Provisioning
- **chunk-03** (pages 41-60): Add SIP account endpoint and schema
- **chunk-04** (pages 61-80): SIP account management operations
- See: `../SIPSERVER_SCHEMA.md` for critical field formats

### Find Device Management
- **chunk-02** (pages 21-40): Device operations
- **chunk-03** (pages 41-60): Bind/unbind accounts to devices

### Search All Chunks

```bash
# Search for a topic across all chunks
grep -r "your search term" .

# Find which chunk contains specific API endpoint
grep -r "POST /v2/dm/" .

# List all chunks for a specific PDF
ls -1 open-api-for-yealink-management-cloud-service-v4x/
```

## How Chunks Were Created

Script: `../scripts/chunk-pdf-docs.py`

```bash
# Process all PDFs
python3 ../scripts/chunk-pdf-docs.py --all --pages-per-chunk 20

# Process single PDF
python3 ../scripts/chunk-pdf-docs.py ~/Downloads/example.pdf --output-dir ./custom-output

# Extract just table of contents
python3 ../scripts/chunk-pdf-docs.py ~/Downloads/example.pdf --toc-only
```

## File Naming Convention

```
{PDF-stem}-chunk-{number:02d}-p{start}-{end}.md
```

Examples:
- `Open API for Yealink Management Cloud Service V4X-chunk-03-p41-60.md`
- `Yealink Management Cloud Service(YMCS)_User Guide-chunk-01-p1-20.md`

Each chunk includes:
- Source PDF name
- Page range (X-Y of total)
- Chunk number
- Full extracted text with layout preserved

## Critical Findings

### SIP Account sipServer1 Field (HTTP 412 Fix)

**Problem:** YMCS API returns HTTP 412 "Parameter error" on sipServer1 field

**Solution:** sipServer1 is an **object**, not a string:

```json
"sipServer1": {
  "host": "pbx.packetdial.com",
  "port": 5060
}
```

See `../SIPSERVER_SCHEMA.md` for complete schema and examples.

## Tools Used

- **poppler-utils** (pdftotext, pdfinfo) - PDF text extraction
  - Install: `brew install poppler`
- **Python 3** - Chunking script
