Οδηγοί
Δικός σας πράκτορας
Θέλετε να συνδέσετε στον αριθμό volai τη δική σας φωνητική πλατφόρμα - ElevenLabs Conversational AI στο δικό σας workspace, Vapi, Retell ή ακόμη και δικό σας IVR Asterisk/FreeSWITCH - αντί για τον ενσωματωμένο πράκτορα του volai; Αυτή η σελίδα είναι οδηγός και για τις δύο κατευθύνσεις: εισερχόμενες και εξερχόμενες κλήσεις. Στις εξερχόμενες επιπλέον δεν πληρώνετε την επιβάρυνση πράκτορα 2,50 kr/min (≈ 0,10 EUR) - τον πράκτορα τον τρέχετε (και τον πληρώνετε) εσείς στη δική σας πλατφόρμα.
Γρήγορη επισκόπηση
Τις εισερχόμενες κλήσεις τις ρυθμίζετε δρομολογώντας τον αριθμό στη διεύθυνση SIP της πλατφόρμας σας - κανένας νέος μηχανισμός. Οι εξερχόμενες κλήσεις περνούν από σύντομης διάρκειας σύνδεση relay, επειδή η πλατφόρμα δεν μπορεί να καταχωρίσει μόνιμα τη γραμμή ως πελάτη SIP.
Θα χρειαστείτε: έναν αριθμό volai, κλειδί API (vk_...) και λογαριασμό στην πλατφόρμα σας (ElevenLabs, Vapi, δικό σας τηλεφωνικό κέντρο...).
1Πότε δικός σας πράκτορας και πότε ενσωματωμένος
Και οι δύο δρόμοι λειτουργούν στον ίδιο αριθμό και με το ίδιο υπόλοιπο - διαφέρουν μόνο ως προς το ΠΟΙΟΣ τρέχει τη λογική της συνομιλίας και πόσο κοστίζει αυτό επιπλέον:
| Κριτήριο | Ενσωματωμένος πράκτορας | Δικός σας πράκτορας |
|---|---|---|
| Ποιος διαχειρίζεται τη συνομιλία | Εμείς - μία systemPrompt, η δική μας φωνή και το δικό μας workspace ElevenLabs. | Εσείς - οποιαδήποτε πλατφόρμα, δικό σας prompt, δική σας φωνή, δικά σας εργαλεία. |
| Ρύθμιση | Μία POST /v1/agents. | Τα στοιχεία SIP του αριθμού + η διαμόρφωση της πλατφόρμας σας (αυτή η σελίδα). |
| Τιμή κλήσης | 0,92 kr/min (≈ 0,04 EUR) εξερχόμενη, 0,50 kr/min (≈ 0,02 EUR) εισερχόμενη | ίδια - 0,92 kr/min (≈ 0,04 EUR) εξερχόμενη, 0,50 kr/min (≈ 0,02 EUR) εισερχόμενη |
| Επιβάρυνση πράκτορα | + 2,50 kr/min (≈ 0,10 EUR) | καμία - πληρώνετε μόνο τα λεπτά της κλήσης |
| Απομαγνητοφώνηση, περίληψη, ανίχνευση αυτόματου τηλεφωνητή | Ναι, αυτόματα. | Όχι - το χειρίζεται (ή δεν το χειρίζεται) η δική σας πλατφόρμα. |
Δεν πληρώνετε επιβάρυνση πράκτορα, αλλά ούτε και παίρνετε κάτι επιπλέον από εμάς - την πλατφόρμα σας (ElevenLabs, Vapi...) την πληρώνετε εσείς απευθείας, σύμφωνα με τον δικό της τιμοκατάλογο. Εμείς χρεώνουμε μόνο τα λεπτά κλήσης στη γραμμή volai, όπως και με πελάτη SIP ή με τον ενσωματωμένο πράκτορα. Οι τιμές είναι χωρίς ΦΠΑ, όπως ολόκληρος ο τιμοκατάλογος.
2Εισερχόμενες κλήσεις προς τον δικό σας πράκτορα
Κανένας νέος μηχανισμός - αρκεί η υπάρχουσα δρομολόγηση mode: "sip" (όπως για το δικό σας softphone, βλ. SIP) με τη sipUri της πλατφόρμας σας. Για αριθμό SIP-trunk του ElevenLabs καταχωρισμένο στο ΔΙΚΟ ΣΑΣ workspace, αυτή είναι η διεύθυνση με τον ίδιο αριθμό που έχει η γραμμή σας στο volai:
curl -X PATCH "https://volai.cz/v1/numbers/+420601234567" \
-H "Authorization: Bearer vk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"routing": {"mode": "sip", "sipUri": "sip:+420601234567@sip.rtc.elevenlabs.io"}}'Και στον λογαριασμό σας στο ElevenLabs (Settings → Phone Numbers → Import → SIP trunk) καταχωρίζετε αυτόν τον αριθμό με inbound_trunk_config:
{
"provider": "sip_trunk",
"phone_number": "+420601234567",
"label": "Ο δικός μου πράκτορας",
"inbound_trunk_config": {
"allowed_addresses": ["81.31.45.0/24"],
"media_encryption": "allowed"
}
}Το allowed_addresses παραπάνω είναι το εύρος σηματοδοσίας μας (81.31.45.0/24) - ασφαλέστερο από το καθολικό 0.0.0.0/0, που αφήνει να περάσει INVITE από οπουδήποτε. Και τα δύο αφήνουν την κλήση να περάσει, αλλά σε εισαγωγή χωρίς στοιχεία σύνδεσης η λίστα επιτρεπόμενων είναι ο ΜΟΝΟΣ έλεγχος - γι' αυτό δώστε το εύρος και όχι 0.0.0.0/0.
Χρησιμοποιείτε άλλη πλατφόρμα από το ElevenLabs; Η αρχή είναι η ίδια - βρείτε στην τεκμηρίωσή της τη διεύθυνση SIP στην οποία πρέπει να φτάνει η κλήση για τον αριθμό σας και βάλτε την στο sipUri. Στο Vapi το ίδιο εύρος μπαίνει στο BYO trunk ως gateways.
Στο Vapi η διεύθυνση δρομολόγησης είναι sip:<E164>@<credentialId>.sip.vapi.ai - το <credentialId> θα το βρείτε στο BYO SIP trunk σας στο Vapi, ενώ οργανισμός στην περιοχή EU έχει αντί για sip.vapi.ai τον τομέα sip.eu.vapi.ai. Το απλό sip.vapi.ai ανήκει σε εγγενείς αριθμούς Vapi και για αριθμό από εμάς δεν λειτουργεί. Το όνομα χρήστη και τον κωδικό στο BYO trunk αφήστε τα κενά, το Vapi αναγνωρίζει τις κλήσεις μας από την IP στα gateways.
Στα gateways δώστε το εύρος ξεχωριστά ως IP 81.31.45.0 και μάσκα (netmask) 24. Με την προεπιλεγμένη μάσκα 32 το Vapi θα επέτρεπε μόνο μία διεύθυνση και θα απέρριπτε τις κλήσεις μας.
3Εξερχόμενες κλήσεις από τον δικό σας πράκτορα (relay)
Αυτή είναι η αντίθετη κατεύθυνση - η πλατφόρμα σας καλεί μόνη της προς τα έξω. Οι περισσότερες πλατφόρμες φωνητικής AI (και το ElevenLabs) όμως δεν μπορούν να καταχωρίσουν μόνιμα μια τηλεφωνική γραμμή ως πελάτη SIP - στέλνουν μόνο μία πιστοποιημένη κλήση με τα στοιχεία σύνδεσης της γραμμής σας. Το τηλεφωνικό δίκτυο δεν αφήνει μια τέτοια κλήση να περάσει απευθείας στον αριθμό προορισμού, γι' αυτό τη διοχετεύετε μέσω σύντομης σύνδεσης relay:
Γιατί relay και όχι άμεση κλήση
Η άμεση κλήση του αριθμού προορισμού μέσω του trunk δεν λειτουργεί σε καμία από τις δύο δυνατές περιπτώσεις: προς αριθμό εκτός του δικτύου μας η κλήση δεν δημιουργείται καθόλου (η πλατφόρμα αναφέρει αποτυχία και δεν μένει πουθενά κανένα ίχνος), και προς άλλον αριθμό volai στο δίκτυό μας συνδέεται μόνο ΕΣΩΤΕΡΙΚΑ ως ανώνυμη κλήση - δεν βγαίνει ποτέ πραγματικά από το δίκτυό μας, παρότι φαίνεται ως συνδεδεμένη κλήση. Το relay είναι ο μόνος τρόπος να βγει η κλήση πραγματικά προς τα έξω.
1. Ρυθμίστε την πλατφόρμα σας στη γραμμή σας
Πάρτε τα στοιχεία SIP της γραμμής σας:
curl "https://volai.cz/v1/numbers/+420601234567/sip" \
-H "Authorization: Bearer vk_YOUR_KEY"{
"server": "sip.volai.cz",
"username": "123456",
"password": "a1b2c3d4e5f6",
"outboundTrunkAddress": "sip.volai.cz",
"port": 5060,
"transport": "tcp",
"inboundSignallingCidrs": ["81.31.45.0/24"]
}Η απάντηση επιστρέφει server (για το REGISTER του softphone, βλ. SIP) και outboundTrunkAddress ΞΕΧΩΡΙΣΤΑ - δεν είναι εναλλάξιμα.
Και ορίστε το outboundTrunkAddress - ΟΧΙ το server - ως εξερχόμενο trunk της πλατφόρμας σας. Στο ElevenLabs πρόκειται για το outbound_trunk_config του συγκεκριμένου τηλεφωνικού αριθμού (Settings → Phone Numbers → ο αριθμός σας → Outbound calling), ακριβώς σε αυτή τη μορφή:
{
"outbound_trunk_config": {
"address": "sip.volai.cz",
"transport": "tcp",
"media_encryption": "allowed",
"credentials": {
"username": "123456",
"password": "a1b2c3d4e5f6"
}
}
}Δώστε ακριβώς το outboundTrunkAddress
Η διεύθυνση του εξερχόμενου trunk πρέπει να είναι ακριβώς η τιμή outboundTrunkAddress από την απάντηση - είτε ταυτίζεται με το server είτε όχι. Άλλη διεύθυνση σημαίνει ότι η κλήση δεν δρομολογείται στο δίκτυο και η πλατφόρμα το αναφέρει ως 1011 sip request timed out - στο ιστορικό κλήσεων δεν μένει τίποτα.
2. Δημιουργήστε σύνδεση relay
Ακριβώς πριν από την κλήση (η σύνδεση έχει σύντομη διάρκεια ζωής, βλ. τα όρια παρακάτω) καλέστε:
curl -X POST https://volai.cz/v1/relay \
-H "Authorization: Bearer vk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+420777123456", "from": "+420601234567"}'{
"id": "rl_4f2a91cd",
"sipName": "volai_relay_2",
"sipUri": "sip:volai_relay_2@sip.volai.cz",
"expiresAt": 1756111760000,
"callId": "c_9d4e2b7f"
}Τον αριθμό που καλείτε τον δίνετε ΣΕ ΕΜΑΣ στο to - η πλατφόρμα δεν τον βλέπει ποτέ, παίρνει μόνο το απλό sipName από την απάντηση.
3. Πείτε στην πλατφόρμα να καλέσει το sipName
Το απλό όνομα, όχι ολόκληρο το SIP URI
Το ElevenLabs to_number απορρίπτει ολόκληρο το SIP URI με το μήνυμα «SipCallTo should be a phone number or SIP user, not a full SIP URI» - γι' αυτό η παραπάνω απάντηση επιστρέφει sipName (το απλό volai_relay_2) και sipUri (ολόκληρο το sip:volai_relay_2@sip.volai.cz) ΞΕΧΩΡΙΣΤΑ. Στο to_number ανήκει μόνο το πρώτο.
Στο ElevenLabs αυτό σημαίνει κλήση μέσω /v1/convai/sip-trunk/outbound-call με to_number απευθείας το sipName:
{
"agent_id": "agent_...",
"agent_phone_number_id": "phnum_...",
"to_number": "volai_relay_2"
}agent_id θα το βρείτε στον πράκτορά σας στο ElevenLabs, agent_phone_number_id είναι το phone_number_id του εισαγμένου αριθμού - το επιστρέφει η απάντηση της εισαγωγής ή μπορείτε να το διαβάσετε από τη λίστα Phone numbers.
Έχετε δικό σας πελάτη SIP ή τηλεφωνικό κέντρο αντί για το ElevenLabs; Καλέστε απευθείας ολόκληρο το sipUri όπως σε μια κανονική κλήση SIP - ο περιορισμός ισχύει μόνο για πλατφόρμες που θέλουν απλό όνομα χωρίς το sip: πρόθεμα.
4. Τι συμβαίνει στη συνέχεια
Το τηλεφωνικό δίκτυο δέχεται την κλήση με το όνομα volai_relay_2, τη μεταφέρει στο to σας και ορίζει ως ορατό αριθμό καλούντος το from σας - ο καλούμενος βλέπει στην οθόνη του τη γραμμή σας στο volai και όχι το εσωτερικό όνομα της θέσης relay (αν ο αριθμός έχει δικά του ονόματα relay - βλ. Χρέωση παρακάτω, αλλιώς ο καλούμενος βλέπει τον αριθμό επίδειξης του volai). Μετά το τέλος της κλήσης το lease αποδεσμεύεται και τα λεπτά χρεώνονται όπως μια κανονική εξερχόμενη κλήση - 0,92 kr/min (≈ 0,04 EUR), χωρίς επιβάρυνση πράκτορα.
Η απάντηση για την έναρξη της κλήσης φτάνει μόνο μετά από ολόκληρο το κουδούνισμα (άνετα δεκάδες δευτερόλεπτα) - δεν είναι σφάλμα, αλλά ένα σύντομο timeout από τη δική σας πλευρά θα έμοιαζε εκείνη τη στιγμή με αποτυχία, ενώ η κλήση συνεχίζεται.
4Αντιμετώπιση προβλημάτων
Τα συχνότερα μηνύματα με δικό σας πράκτορα και τι να κάνετε:
| Μήνυμα | Αιτία | Λύση |
|---|---|---|
| 1011 sip request timed out | Η διεύθυνση του εξερχόμενου trunk δεν είναι το outboundTrunkAddress. | Ορίστε στο ElevenLabs το outbound_trunk_config.address στο outboundTrunkAddress από την απάντηση με τα στοιχεία SIP και όχι στο server. |
| SipCallTo should be a phone number or SIP user, not a full SIP URI | Το to_number περιέχει ολόκληρο το sipUri αντί για το απλό όνομα. | Στο to_number ανήκει μόνο το sipName από την απάντηση του POST /v1/relay. |
| Η κλήση από την πλατφόρμα τελειώνει αμέσως (στο ElevenLabs failed), σε εμάς τίποτα | Καλέσατε απευθείας τον τηλεφωνικό αριθμό και όχι μέσω relay. | Δημιουργήστε σύνδεση relay (POST /v1/relay) και καλέστε το sipName που επιστρέφεται. |
| max auth retry attempts reached for SIP invite | Η πλατφόρμα δεν πέρασε την πιστοποίηση: είτε δεν ταιριάζει το όνομα χρήστη ή ο κωδικός του εξερχόμενου trunk, είτε η κλήση έφτασε ως τηλεφωνικός αριθμός αντί για sipName - το δίκτυο τότε ζητά νέα πιστοποίηση, την οποία η πλατφόρμα δεν περνά. | Αντιγράψτε το όνομα χρήστη και τον κωδικό ακριβώς από τα στοιχεία SIP του αριθμού (username, password). Στο to_number βάλτε μόνο το sipName από το POST /v1/relay και ξεκινήστε την κλήση μέσω API (POST /v1/convai/sip-trunk/outbound-call) ή του εργαλείου MCP του ElevenLabs make_outbound_call, όχι από φόρμα που δέχεται μόνο τηλεφωνικό αριθμό. Το lease περιμένει την κλήση μόνο ttlSecs (προεπιλογή 120 s). |
| 404 from_number_not_owned | Το from στο POST /v1/relay δεν είναι δικός σας αριθμός volai. | Βάλτε στο from ακριβώς τον αριθμό volai από τον οποίο καλείτε. |
| 400 relay_lease_limit | Σε αυτόν τον αριθμό (1) ή λογαριασμό (2) τρέχει ήδη ενεργό lease. | Περιμένετε να αποδεσμευτεί το lease ή ακυρώστε ένα αχρησιμοποίητο (DELETE /v1/relay/{id}). |
| 503 capacity_busy | Η κοινή δεξαμενή θέσεων relay είναι προς το παρόν γεμάτη. | Δεν χρεώνεται τίποτα - δοκιμάστε ξανά σε λίγο. |
| Η εισερχόμενη κλήση δεν χτυπά | Ο αριθμός δεν έχει εισαχθεί στο ElevenLabs, το allowed_addresses δεν αφήνει το εύρος μας ή η δρομολόγηση στο volai δεν έχει αποθηκευτεί. | Ελέγξτε και τα τρία βήματα παραπάνω· αν το τηλεφωνικό κέντρο ζητά πιστοποίηση 401, συμπληρώστε όνομα χρήστη και κωδικό στη δρομολόγηση. |
| Ο καλούμενος βλέπει τον αριθμό volai αντί για τον δικό σας | Ο αριθμός δεν έχει ακόμη δικά του ονόματα relay. Δημιουργούνται αμέσως μετά την αγορά, αυτή τη φορά όμως δεν πέτυχε. | Η επόμενη κλήση επαναλαμβάνει μόνη της τη δημιουργία. Αν ο καλούμενος βλέπει τον αριθμό volai και μετά από μία ώρα, γράψτε στην υποστήριξη. |
| Η επαναλαμβανόμενη κλήση τελειώνει αμέσως με απόρριψη (SIP 603) | Η πλατφόρμα κάλεσε ξανά το ίδιο sipName, συνήθως μετά από κλήση που δεν απαντήθηκε. Ένα lease συνδέει μόνο μία κλήση. | Πριν από κάθε προσπάθεια, ακόμη και στην επανάληψη μετά από κλήση που δεν απαντήθηκε, δημιουργήστε νέο lease (POST /v1/relay) και απενεργοποιήστε την αυτόματη επανάκληση στην πλατφόρμα. |
5Χρέωση
Η εξερχόμενη κλήση μέσω relay χρεώνεται με την ίδια τιμή όπως μια κανονική εξερχόμενη κλήση - 0,92 kr/min (≈ 0,04 EUR) - χωρίς καμία επιβάρυνση πράκτορα. Οι τιμές είναι χωρίς ΦΠΑ, όπως ολόκληρος ο τιμοκατάλογος.
Ο ταυτόχρονος αριθμός κλήσεων είναι περιορισμένος (βλ. τα όρια παρακάτω): το πολύ 1 ενεργή κλήση ανά αριθμό σας και το πολύ 2 σε ολόκληρο τον λογαριασμό ταυτόχρονα.
Ο καλούμενος θα δει τη γραμμή σας στο volai ΜΟΝΟ αν ο αριθμός έχει δικά του ονόματα relay (relayNames) - ο αριθμός τα παίρνει αμέσως μετά την αγορά. Όσο δεν τα έχει, το lease πέφτει στην κοινή δεξαμενή και ο καλούμενος βλέπει τον αριθμό επίδειξης του volai. Αν αυτό διαρκεί πάνω από μία ώρα, γράψτε στην υποστήριξη.
6Όρια, ποσοστώσεις και ασφάλεια
Το όριο είναι 1 ενεργό lease ανά αριθμό σας και το πολύ 2 σε ολόκληρο τον λογαριασμό - σκόπιμη δικλίδα, ώστε ένας πελάτης να μην καταλάβει ολόκληρη την κοινή δεξαμενή θέσεων relay:
| Τι | Τιμή |
|---|---|
| Το lease περιμένει την πρώτη κλήση (pending) | 120 s προεπιλογή, ttlSecs 15 έως 300 s |
| Η κλήση διαρκεί (active) | 15 λεπτά |
| Ενεργό lease ανά αριθμό σας | το πολύ 1 |
| Ενεργά lease ανά λογαριασμό | το πολύ 2 |
| Χρήση του lease | μίας χρήσης - δεύτερη κλήση στο ίδιο lease απορρίπτεται, και η επανάληψη μετά από κλήση που δεν απαντήθηκε χρειάζεται επίσης νέο lease |
- το from πρέπει να είναι δικός σας αριθμός volai - αλλιώς
from_number_not_owned. Χωρίς αυτόν τον έλεγχο θα μπορούσε κάποιος να παριστάνει ξένη γραμμή (caller ID spoofing). - Οι ίδιες πύλες όπως σε κανονική κλήση - λίστα «μην καλείτε» (ισχύει μόνο για κλήσεις, όχι SMS), αυτόματος αποκλεισμός 30 ημερών μετά από 3 ανεπιτυχείς προσπάθειες προς τον ίδιο αριθμό μέσα σε 24 ώρες, γραμμές πριμοδοτούμενης χρέωσης, προστασία από βρόχο μεταξύ αριθμών volai, κλείδωμα του αριθμού του καλούμενου και το γενικό όριο ρυθμού κλήσεων. Τίποτα από αυτά δεν παρακάμπτεται μέσω relay.
- Γεμάτη δεξαμενή -> 503 capacity_busy - οι θέσεις relay είναι κοινό όριο ταυτοχρονισμού ΟΛΗΣ της πλατφόρμας, όχι μόνο του λογαριασμού σας. Στο
capacity_busyδεν χρεώνεται τίποτα, δοκιμάστε ξανά σε λίγο. - Την πλήρη αναφορά REST (κωδικοί σφαλμάτων,
GET/DELETEστα lease) θα βρείτε στο REST API.
Κάθε σφάλμα του API φέρει cause (ποιος το διορθώνει) και action (τι να κάνετε) - βλ. Μορφή σφαλμάτων στην αναφορά REST API.
Σχετικά
MCP server
Connect Claude Code, Codex CLI, Codex desktop, Cursor and other AI editors.
REST API
Complete reference for every endpoint: numbers, calls, SMS, mobile numbers for SMS, agents and their drafts, tools, recordings, webhooks, do-not-call list, relay, account, tasks, credit, documents, calendars and integrations.
Voice agent
System prompt, tools, handoff to a human, recordings and structured call data.
SIP
Your own softphone, SIP credentials, outbound calls through a SIP client.