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_IDandAPP_API_HASHfor 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¶
- Contact the ECall partner program team
- Provide company/organization information:
- Company name
- Contact person and email
- Intended use case
- Expected user volume
- 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¶
- Never Commit Credentials
- Use
.gitignoreto exclude credential files - Use environment variables or configuration files
-
Store in Xcode build settings or Info.plist (not in source code)
-
Separate by Environment
- Development credentials for testing
- Production credentials for App Store builds
-
Use build configurations (Debug/Release/Staging)
-
Access Control
- Limit access to credentials to authorized developers only
- Use secret management tools for teams
- 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 applicationBASE_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_URLSOCKET_BASE_URLJANUS_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¶
- Apple Developer Program membership
- App Store Connect account setup
- Completed app configuration
- Tested application build
- App Store assets (screenshots, descriptions)
Submission Process¶
- Archive application in Xcode
- Upload to App Store Connect
- Complete App Store listing information
- Submit for review
- 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
Compliance and Legal¶
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¶
- Read Technical Guide: See Partner Build Guide for Xcode setup
- Prepare Assets: Gather branding assets and bundle ID
- Set Up Apple Developer: Create certificates and provisioning profiles
- Configure Project: Set up API credentials and branding
- Build and Test: Create development build and test thoroughly
- 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