--- title: "Send Fax Module Documentation" description: "Documentation for Fax Sending" --- ## Table of Contents 1. [Navigation & Access](#navigation--access) 2. [Screenshots & Visual Interface](#screenshots--visual-interface) 3. [Module Overview (Technical)](#1-module-overview-technical) 4. [Module Overview (Commercial/Business)](#2-module-overview-commercialbusiness) 5. [Module Overview (End User/Administrator)](#3-module-overview-end-useradministrator) 6. [Sending Process](#4-sending-process) 7. [Supported Formats](#5-supported-formats) 8. [Common Scenarios & Examples](#6-common-scenarios--examples) 9. [Limitations & Important Notes](#7-limitations--important-notes) 10. [Model Context Protocol (MCP) AI Integration](#8-model-context-protocol-mcp-ai-integration) 11. [Troubleshooting Tips](#9-troubleshooting-tips) 12. [Glossary](#10-glossary) --- ## Navigation & Access To access the Fax Sending interface: 1. Log in to the Ring2All Web Portal (`https:///login`). 2. In the left navigation sidebar, expand **PBX Engine**. 3. Under **Virtual Faxes**, click **Fax Sending** (`/pbx/virtual-faxes/sending`). 4. Select the sending device, enter the recipient fax number, attach your document (PDF or TIFF), and click **Send Fax**. --- ## Screenshots & Visual Interface ### Web Fax Transmission Console Modern outbound fax dispatch dashboard with integrated file upload dropzone, sending endpoint selector, resolution quality options, and real-time transmission feedback. ![Fax Sending Interface](/screenshots/pbx/virtual-faxes/fax-sending-form.png) --- ## 1. Module Overview (Technical) ### What Is Send Fax? Send Fax is a **web-based fax transmission interface** that allows users to send documents as faxes through configured fax devices. Documents are uploaded, converted if necessary, and transmitted via Telephony Server's fax engine. ### Architecture ``` ┌─────────────────────────────────────────────────────────────────┐ │ Send Fax Architecture │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Admin Panel │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ FaxSendingPage.tsx │ │ │ │ │ │ │ │ 1. Select fax device │ │ │ │ 2. Enter destination number │ │ │ │ 3. Upload PDF/TIFF document │ │ │ │ 4. Click "Send Fax" │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ API Call │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ Backend Fax API │ │ │ │ │ │ │ │ 1. Validate file and device │ │ │ │ 2. Store document temporarily │ │ │ │ 3. Convert PDF to TIFF if needed │ │ │ │ 4. Originate call via Telephony Server │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ Telephony Server Originate │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ fax/fax_send.lua │ │ │ │ │ │ │ │ 1. Load fax device config from public.fax_devices │ │ │ │ 2. Configure T.38 / ECM settings │ │ │ │ 3. Connect to destination │ │ │ │ 4. Transmit fax (txfax) │ │ │ │ 5. Send email notification │ │ │ │ 6. Log to public.fax_logs │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ Remote Fax Machine │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 2. Module Overview (Commercial/Business) ### Business Value Send Fax provides **web-based fax transmission**: | Without Send Fax | With Send Fax | |------------------|---------------| | Physical fax machine | Web interface | | Print documents | Upload PDF | | Manual dialing | Click to send | | No status tracking | Email notifications | ### Use Cases 1. **Document Transmission** - Send contracts and agreements - Transmit signed documents 2. **Business Communications** - Send invoices to vendors - Transmit purchase orders 3. **Healthcare/Legal** - HIPAA-compliant fax - Court document filing 4. **Remote Work** - Fax from anywhere - No physical equipment ### Feature Highlights | Feature | Benefit | |---------|---------| | **PDF Support** | No conversion needed | | **TIFF Support** | Native fax format | | **T.38 Protocol** | Reliable FoIP | | **Auto-Retry** | Handle busy lines | | **Notifications** | Email on success/fail | | **Logging** | Full audit trail | --- ## 3. Module Overview (End User/Administrator) ### What Can You Do? - Select outbound fax device - Enter destination number - Upload PDF or TIFF document - Send fax with one click - Receive email notifications - View transmission status ### Send Fax Interface ``` ┌─────────────────────────────────────────────────────────────────┐ │ Send Fax │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ Section: Send Fax │ │ ├─ Fax Device: [Main Office Fax ▼] │ │ │ Only devices with outbound capability shown │ │ │ │ │ └─ Destination Number: [+15551234567 ] │ │ Include country code for international faxes │ │ │ │ Section: Document Upload │ │ ┌──────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ 📄 Drop your document here │ │ │ │ or click to browse │ │ │ │ │ │ │ │ [Browse Files] │ │ │ │ │ │ │ │ Supported formats: PDF, TIFF (max 10 MB) │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────┘ │ │ │ │ ℹ️ Important Information: │ │ • Supported formats: PDF and TIFF │ │ • Maximum file size: 10 MB │ │ • Email notifications based on device configuration │ │ • T.38 protocol used if enabled and supported │ │ │ │ [Send Fax] [Cancel] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` ### Quick Tips > [!TIP] > **PDF Format**: Upload PDFs directly - they're converted automatically. > [!TIP] > **Country Code**: Always include country code (e.g., +1) for reliable delivery. > [!CAUTION] > **File Size**: Maximum 10 MB per document. --- ## 4. Sending Process ### Step-by-Step Flow 1. **Select Device** - Choose outbound-capable fax device - Device determines caller ID and settings 2. **Enter Destination** - Full phone number with country code - Example: +15551234567 3. **Upload Document** - Drag and drop or browse - PDF or TIFF format 4. **Send** - Click "Send Fax" - System queues transmission 5. **Transmission** - Telephony Server originates call - T.38 negotiation if enabled - Document transmitted 6. **Notification** - Email sent on success/failure - Log recorded in database ### Retries | Setting | Default | Description | |---------|---------|-------------| | **Max Retries** | 3 | Total retry attempts | | **Retry Interval** | 300s | Seconds between retries | --- ## 5. Supported Formats ### PDF Documents | Aspect | Details | |--------|---------| | **Format** | PDF 1.0 - 2.0 | | **Conversion** | Auto-converted to TIFF | | **Pages** | Multi-page supported | | **Color** | Converted to B&W | ### TIFF Documents | Aspect | Details | |--------|---------| | **Format** | TIFF (Group 3/4 fax) | | **Native** | No conversion needed | | **Pages** | Multi-page supported | | **Compression** | G3/G4 fax compression | ### Size Limits | Limit | Value | |-------|-------| | **Max File Size** | 10 MB | | **Max Pages** | Depends on document | --- ## 6. Common Scenarios & Examples ### Scenario 1: Send Contract 1. Select fax device: "Sales Fax" 2. Destination: +14155551234 3. Upload: contract.pdf 4. Click "Send Fax" 5. Receive success email ### Scenario 2: International Fax 1. Select fax device: "International Fax" 2. Destination: +442071234567 (UK) 3. Upload: invoice.pdf 4. Send and wait for confirmation ### Scenario 3: Multi-Page Document 1. Upload multi-page PDF 2. System converts all pages 3. Transmits as single fax 4. Pages sent sequentially --- ## 7. Limitations & Important Notes ### Technical Notes > [!NOTE] > **Outbound Only**: This module is for sending only. See Fax Devices for receiving. > [!NOTE] > **Device Required**: Must have fax device with outbound direction enabled. > [!WARNING] > **Carrier Support**: Remote carrier must support fax protocol. ### Best Practices 1. **Use T.38**: Enable on device for reliability 2. **Include Country Code**: Always use full E.164 format 3. **Check File Size**: Stay under 10 MB limit 4. **Verify Device**: Ensure device is enabled 5. **Monitor Logs**: Check fax viewer for status --- ## 8. Model Context Protocol (MCP) AI Integration The Ring2All Platform Copilot connects directly with the Fax Outbound Transmission engine via the Model Context Protocol (MCP), providing conversational document transmission, spooling, recipient normalization, and delivery status tracking. ### Exposed MCP Tools | Tool Name | Operation | Primary Parameters | Description | |:---|:---|:---|:---| | `send_virtual_fax` | Outbound Spooling | `fromFaxDevice` (string), `toNumber` (string), `documentPath` (string, optional), `callerIdNumber` (string, optional) | Dispatches an outbound virtual fax job to a remote recipient phone number using an existing domain fax endpoint. | | `query_fax_history` | Outbound Transmission Audit | `direction` ("outbound"), `search` (string, optional), `limit` (number) | Retrieves recent outbound fax delivery attempts, success flags, page counts, and transmission speeds. | | `list_fax_devices` | Available Sending Gateways | `search` (string, optional) | Lists active fax endpoints available to originate outgoing faxes. | ### Transmission Safeguards & Formatting Validation - **E.164 Destination Sanitization**: Recipient fax numbers are normalized automatically. Punctuation, dashes, and parentheses are stripped to avoid dialplan string injection (`+1 (305) 555-0199` → `+13055550199`). - **Sender Verification**: The originating device identifier (`fromFaxDevice`) is resolved against active domain fax devices. Disabled devices or devices with inbound-only direction cannot be used to dispatch faxes. - **Asynchronous Telephony Server Job Spooling**: Outbound faxes are inserted into `public.fax_logs` and dispatched asynchronously via `txfax` so long transmission handshakes do not block Copilot responses. ### Example MCP Payloads #### 1. Dispatching an Outbound Fax (`send_virtual_fax`) ```json { "fromFaxDevice": "Main Virtual Fax", "toNumber": "+13055550199", "callerIdNumber": "+17863643150", "documentPath": "/var/lib/ring2all/fax/invoices/INV-9021.pdf" } ``` *Response:* ```json { "success": true, "data": { "message": "Outbound virtual fax transmission queued successfully to +13055550199!", "faxJobId": 412, "fromDevice": "Main Virtual Fax", "fromNumber": "2099", "toNumber": "+13055550199", "status": "queued" } } ``` #### 2. Querying Recent Outbound Fax Dispatches (`query_fax_history`) ```json { "direction": "outbound", "limit": 5 } ``` ### Copilot Natural Language Prompts - *"Send a fax to +13055550199 using the Accounting Virtual Fax."* - *"Check if our last outbound fax to +13055550199 went through successfully."* - *"Which fax devices in our domain are configured for outbound transmission?"* - *"Show me all failed outbound faxes from today."* --- ## 9. Troubleshooting Tips ### Common Issues | Symptom | Possible Cause | Solution | |---------|---------------|----------| | No devices shown | No outbound devices | Create device with outbound direction | | Send fails | File too large | Reduce file size | | Invalid format | Wrong file type | Use PDF or TIFF | | Transmission fails | Remote busy | Retries will occur | | No notification | Email not configured | Set email_to on device | ### Validation Errors | Error | Meaning | |-------|---------| | `deviceRequired` | Select a fax device | | `destinationRequired` | Enter destination number | | `fileRequired` | Upload a document | | `invalidFileType` | Only PDF/TIFF allowed | | `fileTooLarge` | File exceeds 10 MB | ### Check Recent Transmissions ```sql SELECT direction, remote_number, pages, success, result_text, created_at FROM public.fax_logs WHERE direction = 'outbound' AND domain_id = [domain_id] ORDER BY created_at DESC LIMIT 10; ``` --- ## 10. Glossary | Term | Definition | |------|------------| | **txfax** | Telephony Server transmit fax | | **T.38** | Fax over IP protocol | | **ECM** | Error Correction Mode | | **TIFF** | Tagged Image File Format | | **E.164** | International phone format | | **Originate** | Telephony Server call initiation | --- *Documentation last updated: January 2026*