Dashboard
Overview of your IVR system activity
| Customer | Phone | Brand | Merchant | Amount | Status | Source | When |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Place Call
Originate an outbound IVR call directly from the dashboard
1. Fill in all required fields and click Place Call.
2. Asterisk dials the customer phone. Caller ID is spoofed to the number you provide.
3. When answered, the IVR reads the transaction script using text-to-speech (Piper).
4. Live updates appear in the Live Call panel below as the customer enters OTP digits.
5. Use Approve, Decline, or Try Again to control the hold.
Ring any phone and check what caller ID shows up. No IVR plays, no charge.
Live Calls
All calls — active, completed, and failed
| Customer | Phone | Caller ID | Brand | Merchant | Amount | Status | Source | Time | Actions |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||
Bot Users
Telegram users registered with the IVR bot
| Telegram ID | Name | Status | Plan | Balance | Registered | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Operator Lookup
Search a Telegram ID to pull everything that operator has done on the system
Call Transcripts
Admin only — search an operator’s Telegram ID to review their call transcripts
VPS Control
Manage Asterisk, PM2, and system from the dashboard — no SSH needed
Select a file above and click View…
Hold Music
Upload an audio file or paste a URL — it will be converted and applied to both hold slots
The uploaded file is automatically converted to 8 kHz mono 16-bit signed linear PCM (.sln) format required by Asterisk, using ffmpeg or sox.
Both hold music slots are replaced at once. The conversion happens on the VPS — the file is streamed directly there.
After upload the change is immediate — no Asterisk reload needed.
SIP & WebRTC
Saves trunk credentials to pjsip_trunk.conf, patches the Dial() line in extensions.conf, and runs pjsip reload automatically. WebRTC changes also update pjsip_webrtc.conf.
🔌 SIP Trunk
Credentials are written to pjsip_trunk.conf. The Dial() timeout in extensions.conf is patched in-place. A pjsip reload applies changes with zero downtime — calls in progress are unaffected.
🌐 WebRTC Phone
The password updates pjsip_webrtc.conf and is pushed to the in-browser dialer immediately. The WebRTC endpoint connects over WSS — the direct phone tab uses this exclusively.
📡 Reload Sequence
On save: write config → pjsip reload → dialplan reload. Both are non-disruptive Asterisk module reloads, not a full restart.
Takes effect
Instantly
pjsip reload runs on save
Telegram Bot
Configure your bot credentials and webhook endpoint. The bot handles operator authentication, call dispatching, and real-time status notifications — no restart required after saving.
🤖 Getting a Bot Token
Open Telegram, message @BotFather, send /newbot and follow the prompts. Copy the token it gives you — treat it like a password.
👤 Finding Your Telegram ID
Message @userinfobot on Telegram. It replies with your numeric user ID (e.g. 123456789). This ID gets auto-elevated to admin.
🔗 Webhook Registration
The webhook URL must be a publicly accessible HTTPS endpoint. When you save a new token or URL, HIRIKACHI SYSTEMS calls setWebhook on the Telegram API automatically.
🔑 Security Notes
The bot token is stored server-side and never returned to the browser. The field shows a "token saved" indicator only. To rotate, paste the new token and save.
Changes apply within
60 s
No Asterisk or bot restart needed
Dialplan Settings
Control how outbound calls behave — voice speed, ring timeout, and post-call reporting. Changes patch extensions.conf and run dialplan reload automatically.
🔊 Voice Speed
Sets the rate parameter on the TTS engine. A slight slow-down (0.85) measurably improves OTP digit comprehension without sounding unnatural.
⏱ Dial Timeout
Passed directly to Asterisk's Dial() application. When the timer expires with no answer the channel is released cleanly — no orphaned channels.
📬 Webhook Payload
POST body (JSON): session_id, phone, customer_name, otp_entered, duration_sec, status. Test with webhook.site.
Reload method
dialplan reload
No Asterisk restart needed
🎙️ IVR Prompts
Every phrase spoken to callers. Changes take effect on the next call — no restart needed. Use ${BRAND_NAME}, ${TXN_AMOUNT}, ${TXN_MERCHANT}, ${TXN_DATE}, ${TXN_ACCOUNT} as placeholders where shown.
🗑️ Logs & Cleanup
Free disk space by clearing VPS log files and database call records. Auto-delete removes calls older than 30 days every hour. Admin can also clear manually at any time.
Loading…
Clears Asterisk full.log, AGI logs, rotated & compressed logs, PM2 logs, and CDR CSV. Active log files are truncated so Asterisk keeps writing without restart.
Deletes all call records from the database and resets the ID counter back to 1. Auto-delete runs every hour removing records older than 30 days automatically.
Wipes both VPS log files and all database call records in one shot. Resets ID sequence to 1. Cannot be undone.
Wipes all transactional data for a clean go-live: every call record, OTP event, IVR log, and all crypto deposits (BTC/LTC/USDT), and resets every operator’s balance & deposit counters to zero. Operators, admins, plans/pricing, and wallet config are kept. Old blockchain history is permanently ignored, never re-imported. Cannot be undone.
Click the 🔒 icon in your address bar → Allow microphone → reload.
Direct Dialer Locked
Direct calls are not available on the Basic plan. Upgrade to Standard or higher to place direct calls.
💰 Wallets & Pricing
Set per-minute rates, configure wallet keys for crypto top-ups, and monitor deposits.
| Plan | $/min | Deposit | Mins | Profit/min | Last Updated | Update Plan |
|---|---|---|---|---|---|---|
⏳ Loading… | ||||||
| TX Hash | Currency | User | Crypto Amt | Gross USD | Fee USD | Net USD | Status | Time | |
|---|---|---|---|---|---|---|---|---|---|
📭 No deposits yet | |||||||||
💳 Top Up Balance
Send crypto to your unique deposit address. Amounts shown include the 2% fee — your balance is credited the full intended amount after confirmation.
| TX Hash | Currency | Crypto Amt | Time |
|---|---|---|---|
📭 No deposits yet | |||
📈 My Call Log
Every call you've placed — duration, cost, customer, transaction amount, and date.
| Date | Phone | Customer | Brand | Amount | Status | Duration | Cost |
|---|---|---|---|---|---|---|---|
📋 Loading… | |||||||
Call Reports
Full audit trail of every call placed through the system — operator, duration, cost, and billing status. Admin only.
| Time | Operator | Plan | Phone | Customer | Brand | Status | Duration | Cost | Billed |
|---|---|---|---|---|---|---|---|---|---|
📋 Loading… | |||||||||
| Operator | Plan | Total Calls | Answered | Minutes Used | Total Spent | Balance Left |
|---|---|---|---|---|---|---|
👥 Loading… | ||||||
