Skip to content

Partner Setup Guide

Complete guide for partners/resellers to set up and customize their own ECall iOS application.

Overview

ECall is an open-source, white-label E2EE calling solution that allows partners to create their own branded calling applications. Partners receive unique API credentials (APP_API_ID and APP_API_HASH) to build and distribute custom applications with their own branding, bundle identifier, and app name.

Partner Program

What is a Partner?

A partner is an organization, company, or reseller that: - Wants to offer E2EE calling services under their own brand - Requires custom branding (app name, logo, bundle ID) - Needs independent API credentials for their user base - Wants to build and distribute their own iOS application

Partner Benefits

  • White-Label Solution: Full customization of app branding and identity
  • Independent User Base: Separate user accounts and data per partner
  • Custom Bundle ID: Deploy to App Store with your own identifier
  • API Credentials: Unique APP_API_ID and APP_API_HASH for security
  • Full E2EE: Complete end-to-end encryption for all calls
  • Source Code Access: Open-source codebase for transparency and customization

Registration Process

Step 1: Apply for Partner Account

  1. Contact the ECall partner program team
  2. Provide company/organization information:
  3. Company name
  4. Contact person and email
  5. Intended use case
  6. Expected user volume
  7. Region/country of operation

Step 2: Receive API Credentials

After approval, you will receive: - APP_API_ID: Unique identifier for your partner account - APP_API_HASH: Secret hash for API authentication - Partner Portal Access: Dashboard to manage your account - Documentation Access: Technical setup guides and API documentation

Step 3: Configure Application

Configure your application with: - Bundle identifier (e.g., com.yourcompany.ecall) - App display name - App icon and branding assets - Deep link configuration - Push notification certificates (APNs and VoIP)

Application Configuration

Required Information

Before building your application, prepare:

1. Bundle Identifier

  • Format: Reverse domain notation (e.g., com.companyname.appname)
  • Requirements: Must be unique, registered with Apple Developer Program
  • Usage: Used in Xcode project, provisioning profiles, App Store Connect

2. App Display Name

  • Length: Maximum 30 characters (iOS display limit)
  • Examples: "YourCompany Call", "SecureCall", "BusinessCall"
  • Note: Appears under app icon on iOS home screen

3. API Credentials (per partner)

  • APP_API_ID: Provided by ECall partner program
  • APP_API_HASH: Provided by ECall partner program
  • Security: Keep credentials secure, never commit to public repositories

4. Branding Assets

  • App Icon: 1024x1024px (App Store), multiple sizes for iOS
  • Launch Screen: Custom launch screen with your branding
  • Color Scheme: Primary colors for your brand
  • Logo: High-resolution logo files

5. Apple Developer Account

  • Membership: Active Apple Developer Program membership ($99/year)
  • Certificates: Development and distribution certificates
  • Provisioning Profiles: For development and distribution builds
  • App Store Connect: Account for app submission

6. Push Notification Setup

  • APNs Certificate: For standard push notifications
  • VoIP Certificate: For VoIP push notifications (call invitations)
  • Note: Required for incoming call notifications via CallKit

Configuration Workflow

High-Level Process

1. Register as Partner
   ↓
2. Receive API Credentials (APP_API_ID, APP_API_HASH)
   ↓
3. Prepare Branding Assets (icon, logo, colors)
   ↓
4. Set Up Apple Developer Account
   ↓
5. Configure Bundle ID and App Name
   ↓
6. Configure API Credentials in Project
   ↓
7. Build and Test Application
   ↓
8. Submit to App Store

API Credentials

Understanding Credentials

APP_API_ID

  • Type: Numeric identifier (e.g., 12345678)
  • Purpose: Identifies your partner account on the backend
  • Usage: Included in API requests and configuration
  • Security: Can be public (not sensitive)

APP_API_HASH

  • Type: Alphanumeric hash string (e.g., a1b2c3d4e5f6g7h8)
  • Purpose: Authenticates your partner account
  • Usage: Used for API authentication and validation
  • Security: KEEP SECRET - Never commit to version control

Credential Management

Security Best Practices

  1. Never Commit Credentials
  2. Use .gitignore to exclude credential files
  3. Use environment variables or configuration files
  4. Store in Xcode build settings or Info.plist (not in source code)

  5. Separate by Environment

  6. Development credentials for testing
  7. Production credentials for App Store builds
  8. Use build configurations (Debug/Release/Staging)

  9. Access Control

  10. Limit access to credentials to authorized developers only
  11. Use secret management tools for teams
  12. Rotate credentials if compromised

Customization Options

Branding

App Icon

  • Replace default app icon with your branded icon
  • Provide all required sizes (iOS icon set)
  • Ensure icon meets Apple's design guidelines

App Name

  • Customize display name in project settings
  • Update Info.plist CFBundleDisplayName
  • Consider localization for multiple languages

Color Scheme

  • Update primary brand colors
  • Customize navigation bar, buttons, accent colors
  • Maintain accessibility contrast ratios

Launch Screen

  • Custom launch screen with your logo
  • Branded loading animation (optional)
  • Ensure fast loading experience

Functional Customization

Features

  • Enable/disable features via configuration where explicitly exposed
  • Customize default settings
  • Modify UI flows only if agreed and supported by the ECall core team

Partner-facing URLs

  • Each partner provides:
  • SHARE_URL — public share or landing URL used by the application
  • BASE_DOMAIN — primary domain that is shown to users (e.g., in links or deep links)
  • These values are configured per partner in Xcode build settings.

Server Endpoints (managed by ECall)

  • Backend API endpoints are owned and managed by the ECall system
  • Partner builds always connect to the shared ECall infrastructure
  • Partners must not change:
  • API_BASE_URL
  • SOCKET_BASE_URL
  • JANUS_SOCKET_URL
  • Environment selection (ENVIRONMENT_NAME) is defined by ECall per build (Dev/Staging/Production)

Localization

  • Add custom translations
  • Support multiple languages
  • Customize error messages and UI text

Distribution

App Store Submission

Prerequisites

  1. Apple Developer Program membership
  2. App Store Connect account setup
  3. Completed app configuration
  4. Tested application build
  5. App Store assets (screenshots, descriptions)

Submission Process

  1. Archive application in Xcode
  2. Upload to App Store Connect
  3. Complete App Store listing information
  4. Submit for review
  5. Wait for Apple review (typically 1-3 days)

App Store Requirements

  • Privacy policy URL (required for VoIP apps)
  • App description and screenshots
  • Support URL and contact information
  • Age rating information
  • Export compliance (if applicable)

Enterprise Distribution

For enterprise/internal distribution: - Enterprise Developer Program ($299/year) - In-house distribution certificate - MDM (Mobile Device Management) integration - Internal distribution methods

Support and Resources

Partner Portal

Access your partner dashboard for: - API credential management - Usage statistics and analytics - Documentation and guides - Support tickets and help

Technical Support

  • Documentation: See Partner Build Guide
  • GitHub Repository: Access source code and issue tracker
  • Community Forum: Connect with other partners
  • Email Support: Direct support for partners

Resources

  • API Documentation: Backend API reference
  • Architecture Guide: System architecture overview
  • User Flows: Application user flow documentation
  • Security Documentation: E2EE implementation details

Pricing and Licensing

Partner Agreement

Partners must agree to: - Terms of service and usage policy - E2EE security requirements - Data handling and privacy compliance - Service level agreements (if applicable)

Usage-Based Pricing

Pricing model may include: - Monthly active users (MAU) - API call volume - Server resources usage - Support tier selection

Open Source License

ECall source code is open source (check LICENSE file): - Partners can modify and customize code - Must comply with license terms - Contributions back to community encouraged

Privacy Requirements

  • Privacy Policy: Required for App Store submission
  • GDPR Compliance: For EU users
  • Data Handling: Clear disclosure of data usage
  • User Consent: Proper consent mechanisms

Security Compliance

  • E2EE: End-to-end encryption must be maintained
  • Key Management: Secure key storage and handling
  • Certificate Pinning: Recommended for production
  • Security Audits: Regular security assessments

Regional Compliance

  • Comply with local regulations
  • App Store guidelines per region
  • Data residency requirements (if applicable)
  • Export controls (if applicable)

Next Steps

  1. Read Technical Guide: See Partner Build Guide for Xcode setup
  2. Prepare Assets: Gather branding assets and bundle ID
  3. Set Up Apple Developer: Create certificates and provisioning profiles
  4. Configure Project: Set up API credentials and branding
  5. Build and Test: Create development build and test thoroughly
  6. Submit for Review: Prepare App Store submission

FAQ

Q: Can I modify the source code?

A: Yes, the source code is open source. You can modify and customize as needed, following the license terms.

Q: How do I get API credentials?

A: Contact the ECall partner program team to apply and receive credentials after approval.

Q: Can I use my own backend server?

A: The current implementation uses ECall backend. Custom backend integration would require significant development work.

Q: What happens if my credentials are compromised?

A: Contact support immediately to revoke and regenerate credentials. Implement proper credential management practices.

Q: Can I white-label the entire app?

A: Yes, you can customize branding, bundle ID, app name, colors, and icons. Some UI elements may require code modifications.

Q: Is multi-language support available?

A: Yes, the app supports 15+ languages. You can add custom translations and localizations.

Q: What iOS version is required?

A: Minimum iOS 16.6+ is required. Check latest requirements in technical documentation.

Contact

For partner program inquiries: - Email: partners@ecall.example.com - Portal: https://partners.ecall.example.com - Documentation: https://docs.ecall.example.com/partners