Spaces:
Sleeping
Sleeping
Ajit Panday
commited on
Commit
·
2abc620
1
Parent(s):
3cb4e02
Add separate setup guides for central server and FreePBX
Browse files- FREEPBX_SETUP.md +276 -0
- SERVER_SETUP.md +246 -0
FREEPBX_SETUP.md
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# vBot FreePBX Setup Guide
|
| 2 |
+
|
| 3 |
+
## Overview
|
| 4 |
+
|
| 5 |
+
This guide provides detailed instructions for setting up FreePBX to work with vBot. FreePBX will handle call recording and webhook integration, while vBot processes the recordings and returns analysis results.
|
| 6 |
+
|
| 7 |
+
## Prerequisites
|
| 8 |
+
|
| 9 |
+
- FreePBX 16 or higher
|
| 10 |
+
- MySQL 5.7 or higher (included with FreePBX)
|
| 11 |
+
- PHP 7.4 or higher (included with FreePBX)
|
| 12 |
+
- SSL certificate for secure webhooks
|
| 13 |
+
- vBot API key (provided by central server admin)
|
| 14 |
+
|
| 15 |
+
## Step 1: FreePBX Installation
|
| 16 |
+
|
| 17 |
+
1. Download FreePBX:
|
| 18 |
+
- Visit https://www.freepbx.org/downloads/
|
| 19 |
+
- Download FreePBX 16 or higher
|
| 20 |
+
- Follow the installation guide
|
| 21 |
+
|
| 22 |
+
2. Complete FreePBX Setup:
|
| 23 |
+
- Run the setup wizard
|
| 24 |
+
- Configure basic settings
|
| 25 |
+
- Set up admin credentials
|
| 26 |
+
- Configure network settings
|
| 27 |
+
|
| 28 |
+
3. Verify Installation:
|
| 29 |
+
```bash
|
| 30 |
+
# Check FreePBX version
|
| 31 |
+
sudo asterisk -rx "core show version"
|
| 32 |
+
|
| 33 |
+
# Check MySQL version
|
| 34 |
+
mysql --version
|
| 35 |
+
|
| 36 |
+
# Check PHP version
|
| 37 |
+
php -v
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
## Step 2: FreePBX Configuration
|
| 41 |
+
|
| 42 |
+
1. Configure Call Recording:
|
| 43 |
+
- Log in to FreePBX Admin
|
| 44 |
+
- Go to Admin → Call Recording
|
| 45 |
+
- Enable call recording
|
| 46 |
+
- Set recording path: `/var/spool/asterisk/monitor`
|
| 47 |
+
- Configure recording format: WAV
|
| 48 |
+
- Set recording options
|
| 49 |
+
|
| 50 |
+
2. Set Up Recording Post-Processing:
|
| 51 |
+
- Go to Admin → Advanced Settings
|
| 52 |
+
- Configure post-recording script
|
| 53 |
+
- Set up webhook integration
|
| 54 |
+
|
| 55 |
+
3. Configure SSL:
|
| 56 |
+
- Go to Admin → Certificates
|
| 57 |
+
- Generate or upload SSL certificate
|
| 58 |
+
- Configure HTTPS settings
|
| 59 |
+
- Verify SSL configuration
|
| 60 |
+
|
| 61 |
+
## Step 3: Webhook Integration
|
| 62 |
+
|
| 63 |
+
1. Install Webhook Package:
|
| 64 |
+
```bash
|
| 65 |
+
cd /var/www/html
|
| 66 |
+
git clone https://huggingface.co/spaces/iajitpanday/vBot/customer_webhook
|
| 67 |
+
cd customer_webhook
|
| 68 |
+
composer install
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
2. Configure Webhook:
|
| 72 |
+
```bash
|
| 73 |
+
cp config/config.example.php config/config.php
|
| 74 |
+
nano config/config.php
|
| 75 |
+
```
|
| 76 |
+
```php
|
| 77 |
+
<?php
|
| 78 |
+
return [
|
| 79 |
+
'db' => [
|
| 80 |
+
'host' => 'localhost',
|
| 81 |
+
'name' => 'vbot_calls',
|
| 82 |
+
'user' => 'vbot_user',
|
| 83 |
+
'pass' => 'your_password'
|
| 84 |
+
],
|
| 85 |
+
'api_key' => 'your_api_key',
|
| 86 |
+
'api_url' => 'https://your-vbot-space.huggingface.space',
|
| 87 |
+
'webhook_secret' => 'your_webhook_secret'
|
| 88 |
+
];
|
| 89 |
+
```
|
| 90 |
+
|
| 91 |
+
3. Set Permissions:
|
| 92 |
+
```bash
|
| 93 |
+
chown -R asterisk:asterisk /var/www/html/customer_webhook
|
| 94 |
+
chmod -R 755 /var/www/html/customer_webhook
|
| 95 |
+
```
|
| 96 |
+
|
| 97 |
+
## Step 4: Database Setup
|
| 98 |
+
|
| 99 |
+
1. Create Database:
|
| 100 |
+
```sql
|
| 101 |
+
CREATE DATABASE vbot_calls;
|
| 102 |
+
USE vbot_calls;
|
| 103 |
+
|
| 104 |
+
CREATE TABLE call_records (
|
| 105 |
+
id VARCHAR(36) PRIMARY KEY,
|
| 106 |
+
customer_id INT NOT NULL,
|
| 107 |
+
caller_number VARCHAR(20) NOT NULL,
|
| 108 |
+
called_number VARCHAR(20) NOT NULL,
|
| 109 |
+
transcription TEXT,
|
| 110 |
+
summary TEXT,
|
| 111 |
+
sentiment VARCHAR(50),
|
| 112 |
+
keywords TEXT,
|
| 113 |
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
| 114 |
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
| 115 |
+
);
|
| 116 |
+
```
|
| 117 |
+
|
| 118 |
+
2. Create Database User:
|
| 119 |
+
```sql
|
| 120 |
+
CREATE USER 'vbot_user'@'localhost' IDENTIFIED BY 'your_password';
|
| 121 |
+
GRANT ALL PRIVILEGES ON vbot_calls.* TO 'vbot_user'@'localhost';
|
| 122 |
+
FLUSH PRIVILEGES;
|
| 123 |
+
```
|
| 124 |
+
|
| 125 |
+
## Step 5: Call Processing Setup
|
| 126 |
+
|
| 127 |
+
1. Configure Dialplan:
|
| 128 |
+
- Go to Admin → Dialplan
|
| 129 |
+
- Add custom dialplan for call recording
|
| 130 |
+
- Configure post-recording processing
|
| 131 |
+
|
| 132 |
+
2. Set Up AGI Script:
|
| 133 |
+
```bash
|
| 134 |
+
nano /var/lib/asterisk/agi-bin/process_call
|
| 135 |
+
```
|
| 136 |
+
```bash
|
| 137 |
+
#!/bin/bash
|
| 138 |
+
CALL_ID=$1
|
| 139 |
+
CALLER=$2
|
| 140 |
+
CALLED=$3
|
| 141 |
+
|
| 142 |
+
curl -X POST https://your-vbot-space.huggingface.space/api/process-call \
|
| 143 |
+
-H "X-API-Key: your_api_key" \
|
| 144 |
+
-H "Content-Type: multipart/form-data" \
|
| 145 |
+
-F "file=@/var/spool/asterisk/monitor/${CALL_ID}.wav" \
|
| 146 |
+
-H "caller_number=${CALLER}" \
|
| 147 |
+
-H "called_number=${CALLED}"
|
| 148 |
+
```
|
| 149 |
+
|
| 150 |
+
3. Set Script Permissions:
|
| 151 |
+
```bash
|
| 152 |
+
chmod +x /var/lib/asterisk/agi-bin/process_call
|
| 153 |
+
chown asterisk:asterisk /var/lib/asterisk/agi-bin/process_call
|
| 154 |
+
```
|
| 155 |
+
|
| 156 |
+
## Step 6: Security Configuration
|
| 157 |
+
|
| 158 |
+
1. Firewall Setup:
|
| 159 |
+
```bash
|
| 160 |
+
sudo ufw allow 80/tcp
|
| 161 |
+
sudo ufw allow 443/tcp
|
| 162 |
+
sudo ufw allow 5060/udp # SIP
|
| 163 |
+
sudo ufw allow 10000:20000/udp # RTP
|
| 164 |
+
sudo ufw enable
|
| 165 |
+
```
|
| 166 |
+
|
| 167 |
+
2. SSL Configuration:
|
| 168 |
+
- Use Let's Encrypt for free SSL certificates
|
| 169 |
+
- Configure automatic renewal
|
| 170 |
+
- Use strong cipher suites
|
| 171 |
+
|
| 172 |
+
3. File Permissions:
|
| 173 |
+
- Secure webhook handler files
|
| 174 |
+
- Restrict access to call recordings
|
| 175 |
+
- Use appropriate ownership
|
| 176 |
+
|
| 177 |
+
## Step 7: Testing
|
| 178 |
+
|
| 179 |
+
1. Test Call Recording:
|
| 180 |
+
```bash
|
| 181 |
+
# Make a test call
|
| 182 |
+
# Check recording directory
|
| 183 |
+
ls -l /var/spool/asterisk/monitor/
|
| 184 |
+
|
| 185 |
+
# Check FreePBX logs
|
| 186 |
+
tail -f /var/log/asterisk/messages
|
| 187 |
+
```
|
| 188 |
+
|
| 189 |
+
2. Test Webhook:
|
| 190 |
+
```bash
|
| 191 |
+
curl -X POST https://your-domain.com/customer_webhook/webhook.php \
|
| 192 |
+
-H "Content-Type: application/json" \
|
| 193 |
+
-d '{"test": true}'
|
| 194 |
+
```
|
| 195 |
+
|
| 196 |
+
3. Test Database:
|
| 197 |
+
```sql
|
| 198 |
+
SELECT * FROM call_records ORDER BY created_at DESC LIMIT 1;
|
| 199 |
+
```
|
| 200 |
+
|
| 201 |
+
## Step 8: Monitoring
|
| 202 |
+
|
| 203 |
+
1. Log Monitoring:
|
| 204 |
+
```bash
|
| 205 |
+
# FreePBX logs
|
| 206 |
+
tail -f /var/log/asterisk/messages
|
| 207 |
+
|
| 208 |
+
# Webhook logs
|
| 209 |
+
tail -f /var/log/apache2/vbot-access.log
|
| 210 |
+
|
| 211 |
+
# Database logs
|
| 212 |
+
tail -f /var/log/mysql/error.log
|
| 213 |
+
```
|
| 214 |
+
|
| 215 |
+
2. System Monitoring:
|
| 216 |
+
```bash
|
| 217 |
+
# Install monitoring tools
|
| 218 |
+
sudo apt install prometheus node-exporter
|
| 219 |
+
|
| 220 |
+
# Configure monitoring
|
| 221 |
+
sudo nano /etc/prometheus/prometheus.yml
|
| 222 |
+
```
|
| 223 |
+
|
| 224 |
+
## Step 9: Maintenance
|
| 225 |
+
|
| 226 |
+
1. Regular Tasks:
|
| 227 |
+
- Update FreePBX
|
| 228 |
+
- Rotate logs
|
| 229 |
+
- Backup database
|
| 230 |
+
- Clean old recordings
|
| 231 |
+
|
| 232 |
+
2. Backup Strategy:
|
| 233 |
+
```bash
|
| 234 |
+
# Database backup
|
| 235 |
+
mysqldump -u vbot_user -p vbot_calls > backup.sql
|
| 236 |
+
|
| 237 |
+
# Configuration backup
|
| 238 |
+
tar -czf config_backup.tar.gz /etc/asterisk/
|
| 239 |
+
```
|
| 240 |
+
|
| 241 |
+
3. Update Process:
|
| 242 |
+
```bash
|
| 243 |
+
# Update FreePBX
|
| 244 |
+
sudo apt update
|
| 245 |
+
sudo apt upgrade
|
| 246 |
+
|
| 247 |
+
# Update webhook package
|
| 248 |
+
cd /var/www/html/customer_webhook
|
| 249 |
+
git pull
|
| 250 |
+
```
|
| 251 |
+
|
| 252 |
+
## Troubleshooting
|
| 253 |
+
|
| 254 |
+
1. Common Issues:
|
| 255 |
+
- Call recording failures
|
| 256 |
+
- Webhook delivery problems
|
| 257 |
+
- Database connection errors
|
| 258 |
+
- SSL certificate issues
|
| 259 |
+
|
| 260 |
+
2. Debug Tools:
|
| 261 |
+
```bash
|
| 262 |
+
# Check FreePBX CLI
|
| 263 |
+
sudo asterisk -rx "core show version"
|
| 264 |
+
|
| 265 |
+
# Check webhook logs
|
| 266 |
+
tail -f /var/log/apache2/vbot-error.log
|
| 267 |
+
|
| 268 |
+
# Test database connection
|
| 269 |
+
mysql -u vbot_user -p vbot_calls
|
| 270 |
+
```
|
| 271 |
+
|
| 272 |
+
3. Support:
|
| 273 |
+
- Check FreePBX documentation
|
| 274 |
+
- Review logs
|
| 275 |
+
- Contact support
|
| 276 |
+
- Submit issues
|
SERVER_SETUP.md
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# vBot Central Server Setup Guide
|
| 2 |
+
|
| 3 |
+
## Overview
|
| 4 |
+
|
| 5 |
+
This guide provides detailed instructions for setting up the central vBot server that handles call transcription and analysis. The central server is deployed on Hugging Face Space and manages customer accounts, API keys, and webhook delivery.
|
| 6 |
+
|
| 7 |
+
## Prerequisites
|
| 8 |
+
|
| 9 |
+
- Hugging Face account
|
| 10 |
+
- MySQL database (version 5.7 or higher)
|
| 11 |
+
- Python 3.8 or higher
|
| 12 |
+
- Git
|
| 13 |
+
|
| 14 |
+
## Step 1: Deploy to Hugging Face Space
|
| 15 |
+
|
| 16 |
+
1. Create a new Space:
|
| 17 |
+
- Go to https://huggingface.co/spaces
|
| 18 |
+
- Click "New Space"
|
| 19 |
+
- Choose "Gradio" as the SDK
|
| 20 |
+
- Set the Space name (e.g., "vBot")
|
| 21 |
+
- Set visibility (public/private)
|
| 22 |
+
|
| 23 |
+
2. Clone the repository:
|
| 24 |
+
```bash
|
| 25 |
+
git clone https://huggingface.co/spaces/iajitpanday/vBot
|
| 26 |
+
cd vBot
|
| 27 |
+
```
|
| 28 |
+
|
| 29 |
+
3. Configure environment variables:
|
| 30 |
+
```bash
|
| 31 |
+
cp .env.example .env
|
| 32 |
+
# Edit .env with your configuration
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
4. Required environment variables:
|
| 36 |
+
```bash
|
| 37 |
+
DATABASE_URL=mysql://user:password@host:port/database
|
| 38 |
+
SECRET_KEY=your-secret-key
|
| 39 |
+
API_BASE_URL=https://your-space.huggingface.space
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
5. Push to Hugging Face:
|
| 43 |
+
```bash
|
| 44 |
+
git add .
|
| 45 |
+
git commit -m "Initial deployment"
|
| 46 |
+
git push
|
| 47 |
+
```
|
| 48 |
+
|
| 49 |
+
## Step 2: Database Setup
|
| 50 |
+
|
| 51 |
+
1. Create the database:
|
| 52 |
+
```sql
|
| 53 |
+
CREATE DATABASE vbot_central;
|
| 54 |
+
USE vbot_central;
|
| 55 |
+
```
|
| 56 |
+
|
| 57 |
+
2. Create required tables:
|
| 58 |
+
```sql
|
| 59 |
+
CREATE TABLE customers (
|
| 60 |
+
id INT AUTO_INCREMENT PRIMARY KEY,
|
| 61 |
+
name VARCHAR(255) NOT NULL,
|
| 62 |
+
company_name VARCHAR(255),
|
| 63 |
+
email VARCHAR(255) NOT NULL,
|
| 64 |
+
api_key VARCHAR(64) NOT NULL UNIQUE,
|
| 65 |
+
webhook_url VARCHAR(255),
|
| 66 |
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
| 67 |
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
| 68 |
+
);
|
| 69 |
+
|
| 70 |
+
CREATE TABLE call_records (
|
| 71 |
+
id VARCHAR(36) PRIMARY KEY,
|
| 72 |
+
customer_id INT NOT NULL,
|
| 73 |
+
caller_number VARCHAR(20) NOT NULL,
|
| 74 |
+
called_number VARCHAR(20) NOT NULL,
|
| 75 |
+
transcription TEXT,
|
| 76 |
+
summary TEXT,
|
| 77 |
+
sentiment VARCHAR(50),
|
| 78 |
+
keywords TEXT,
|
| 79 |
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
| 80 |
+
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
| 81 |
+
FOREIGN KEY (customer_id) REFERENCES customers(id)
|
| 82 |
+
);
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
## Step 3: Admin Setup
|
| 86 |
+
|
| 87 |
+
1. Access the admin interface:
|
| 88 |
+
- URL: `https://your-space.huggingface.space/admin`
|
| 89 |
+
- Default credentials: admin/admin
|
| 90 |
+
|
| 91 |
+
2. Change admin password:
|
| 92 |
+
- Click "Change Password"
|
| 93 |
+
- Enter new secure password
|
| 94 |
+
- Save changes
|
| 95 |
+
|
| 96 |
+
3. Create first customer:
|
| 97 |
+
- Click "Add Customer"
|
| 98 |
+
- Fill in customer details
|
| 99 |
+
- System will generate API key
|
| 100 |
+
- Save customer information
|
| 101 |
+
|
| 102 |
+
## Step 4: API Configuration
|
| 103 |
+
|
| 104 |
+
1. Verify API endpoints:
|
| 105 |
+
```bash
|
| 106 |
+
curl https://your-space.huggingface.space/health
|
| 107 |
+
```
|
| 108 |
+
|
| 109 |
+
2. Test customer API:
|
| 110 |
+
```bash
|
| 111 |
+
curl -X POST https://your-space.huggingface.space/api/process-call \
|
| 112 |
+
-H "X-API-Key: customer-api-key" \
|
| 113 |
+
-H "Content-Type: multipart/form-data" \
|
| 114 |
+
-F "file=@test.wav" \
|
| 115 |
+
-H "caller_number=+1234567890" \
|
| 116 |
+
-H "called_number=+0987654321"
|
| 117 |
+
```
|
| 118 |
+
|
| 119 |
+
## Step 5: Security Setup
|
| 120 |
+
|
| 121 |
+
1. Configure SSL:
|
| 122 |
+
- Hugging Face Spaces provides SSL by default
|
| 123 |
+
- Verify SSL certificate is valid
|
| 124 |
+
|
| 125 |
+
2. API Security:
|
| 126 |
+
- All API endpoints require valid API key
|
| 127 |
+
- Implement rate limiting
|
| 128 |
+
- Validate input data
|
| 129 |
+
- Sanitize output data
|
| 130 |
+
|
| 131 |
+
3. Webhook Security:
|
| 132 |
+
- Require HTTPS for webhook URLs
|
| 133 |
+
- Validate webhook signatures
|
| 134 |
+
- Implement retry mechanism
|
| 135 |
+
- Log webhook delivery attempts
|
| 136 |
+
|
| 137 |
+
## Step 6: Monitoring Setup
|
| 138 |
+
|
| 139 |
+
1. Log Configuration:
|
| 140 |
+
```bash
|
| 141 |
+
# Application logs
|
| 142 |
+
tail -f logs/app.log
|
| 143 |
+
|
| 144 |
+
# Error logs
|
| 145 |
+
tail -f logs/error.log
|
| 146 |
+
|
| 147 |
+
# Access logs
|
| 148 |
+
tail -f logs/access.log
|
| 149 |
+
```
|
| 150 |
+
|
| 151 |
+
2. Health Monitoring:
|
| 152 |
+
- Set up health check endpoint
|
| 153 |
+
- Monitor API response times
|
| 154 |
+
- Track webhook delivery success
|
| 155 |
+
- Monitor database performance
|
| 156 |
+
|
| 157 |
+
## Step 7: Maintenance
|
| 158 |
+
|
| 159 |
+
1. Regular Tasks:
|
| 160 |
+
- Monitor system logs
|
| 161 |
+
- Check API performance
|
| 162 |
+
- Verify webhook delivery
|
| 163 |
+
- Review security logs
|
| 164 |
+
|
| 165 |
+
2. Backup Strategy:
|
| 166 |
+
- Regular database backups
|
| 167 |
+
- Configuration backups
|
| 168 |
+
- Log rotation
|
| 169 |
+
- API key rotation
|
| 170 |
+
|
| 171 |
+
3. Update Process:
|
| 172 |
+
```bash
|
| 173 |
+
# Update code
|
| 174 |
+
git pull
|
| 175 |
+
|
| 176 |
+
# Update dependencies
|
| 177 |
+
pip install -r requirements.txt
|
| 178 |
+
|
| 179 |
+
# Restart application
|
| 180 |
+
```
|
| 181 |
+
|
| 182 |
+
## Troubleshooting
|
| 183 |
+
|
| 184 |
+
1. Common Issues:
|
| 185 |
+
- API authentication failures
|
| 186 |
+
- Webhook delivery failures
|
| 187 |
+
- Database connection issues
|
| 188 |
+
- Performance problems
|
| 189 |
+
|
| 190 |
+
2. Debug Tools:
|
| 191 |
+
```bash
|
| 192 |
+
# Check application logs
|
| 193 |
+
tail -f logs/app.log
|
| 194 |
+
|
| 195 |
+
# Check error logs
|
| 196 |
+
tail -f logs/error.log
|
| 197 |
+
|
| 198 |
+
# Check database connection
|
| 199 |
+
mysql -u user -p vbot_central
|
| 200 |
+
```
|
| 201 |
+
|
| 202 |
+
3. Support:
|
| 203 |
+
- Check documentation
|
| 204 |
+
- Review logs
|
| 205 |
+
- Contact support
|
| 206 |
+
- Submit issues
|
| 207 |
+
|
| 208 |
+
## Security Best Practices
|
| 209 |
+
|
| 210 |
+
1. API Security:
|
| 211 |
+
- Use strong API keys
|
| 212 |
+
- Implement rate limiting
|
| 213 |
+
- Validate all inputs
|
| 214 |
+
- Sanitize all outputs
|
| 215 |
+
|
| 216 |
+
2. Database Security:
|
| 217 |
+
- Use strong passwords
|
| 218 |
+
- Limit database access
|
| 219 |
+
- Regular backups
|
| 220 |
+
- Encryption at rest
|
| 221 |
+
|
| 222 |
+
3. Webhook Security:
|
| 223 |
+
- Require HTTPS
|
| 224 |
+
- Validate signatures
|
| 225 |
+
- Implement retries
|
| 226 |
+
- Monitor delivery
|
| 227 |
+
|
| 228 |
+
## Performance Optimization
|
| 229 |
+
|
| 230 |
+
1. API Optimization:
|
| 231 |
+
- Implement caching
|
| 232 |
+
- Optimize database queries
|
| 233 |
+
- Use connection pooling
|
| 234 |
+
- Monitor response times
|
| 235 |
+
|
| 236 |
+
2. Webhook Optimization:
|
| 237 |
+
- Implement queue system
|
| 238 |
+
- Use async processing
|
| 239 |
+
- Monitor delivery times
|
| 240 |
+
- Handle failures gracefully
|
| 241 |
+
|
| 242 |
+
3. Database Optimization:
|
| 243 |
+
- Index frequently queried columns
|
| 244 |
+
- Optimize table structure
|
| 245 |
+
- Regular maintenance
|
| 246 |
+
- Monitor performance
|