Utwórz głosowego agenta Gemini Realtime
Wprowadzenie
Przykładowy skrypt geminivoiceagent.cs łączy przychodzące połączenie 3CX z sesją głosową Google Gemini Live. Agent może witać dzwoniących, korzystać z dozwolonych obiektów książki telefonicznej, kierować połączenia, oferować pocztę głosową lub czat, a po odpowiedniej konfiguracji – zapisywać przydatny kontekst rozmówcy.
Skrypt zawiera również wyłączone domyślnie niestandardowe narzędzie get_department_hours, które pokazuje, jak zarejestrować bezpieczną funkcję możliwą do wywołania przez sztuczną inteligencję.
Skrypt wymaga licencji 3CX AI, centrali PBX w wersji Update 10 oraz konta API Gemini.
Tworzenie skryptu połączenia w systemie 3CX
- Zaloguj się do Konsoli Administracyjnej 3CX.
- Przejdź do „Admin” > „Integrations” (Integracje) > „Call Scripts” (Skrypty połączeń).
- Wybierz „+Add from Store” (Dodaj ze sklepu).
- Wybierz plik geminivoiceagent.cs.
- Wprowadź nazwę skryptu pisaną małymi literami bez spacji, na przykład geminireception.
- Wybierz sposób uruchamiania skryptu i przypisz wymagany numer DID, trasę łącza TRUNK lub wewnętrzny punkt docelowy.
- Wybierz dział (Department), do którego należy skrypt.
- Przejdź do edytora kodu.
Konfiguracja Gemini oraz skryptu
Dodaj następujące chronione parametry w centrali PBX:
- GEMINI_API_KEY - klucz API dla Twojego projektu Google AI.
- GEMINI_REALTIME_MODEL - model Gemini Realtime.
Pozostaw pola ApiKeyOverride oraz ModelOverride w skrypcie puste. Gdy te wartości są puste, skrypt automatycznie odczytuje klucz API i model z parametrów centrali PBX.
Nie wprowadzaj klucza Gemini API bezpośrednio w skrypcie, zwłaszcza jeśli skrypt będzie udostępniany, eksportowany lub publikowany. Wartość skonfigurowana w ApiKeyOverride lub ModelOverride ma priorytet nad odpowiadającym jej parametrem PBX.
Następnie przejrzyj poniższe ustawienia znajdujące się w górnej części skryptu:
Ustawienie | Cel | Przykładowa wartość |
FallbackDestination | Trasa używana po awarii mediów lub dostawcy | 102 |
VoiceName | Głos Gemini Live | Capella |
AgentName | Nazwa sesji agenta | Capella |
AllowAllVisibilityForTesting | Szeroki dostęp do katalogu dla testów wstępnych | true |
VisibleNumbers | Jawne miejsca docelowe, których AI może używać | 100, 102 |
VisibleDepartments | Zatwierdzone działy | Sales, Support |
VisibleRoles | Opcjonalne zatwierdzone role | puste |
AgentInstructions | Instrukcje zachowania i reguły routingu firmy | Example Company |
Ustaw AllowAllVisibilityForTesting na false przed wdrożeniem produkcyjnym i skonfiguruj możliwie najmniejszą praktyczną listę widoczności.
Aby włączyć opcjonalny przykład funkcji (custom tool), przejrzyj jego dane i odkomentuj w kodzie:
RegisterExampleCustomTool();
Kliknij Save (Zapisz) i zweryfikuj pomyślną kompilację skryptu.
Jak to działa
- Połączenie przychodzące dociera do punktu trasowania skryptu.
- Skrypt czyści i odbudowuje dozwoloną listę widoczności obiektów 3CX dla Gemini.
- System 3CX przygotowuje kanał mediów.
- Skrypt uruchamia sesję głosową Gemini Live ze skonfigurowanymi instrukcjami, głosem, nazwą agenta, kluczem API oraz modelem.
- Zatwierdzone narzędzia wykonują akcje związane z książką telefoniczną, transferem, pocztą głosową, czatem oraz kontekstem.
- Awarie są kierowane do skonfigurowanej trasy zapasowej (Fallback), a następnie używają komunikatu ERROR, jeśli trasowanie jest niedostępne.
Testowanie skryptu
- Zweryfikuj wybrany głos Gemini oraz zachowanie dotyczące języka rozmówcy.
- Wyszukaj dozwolone obiekty w książce telefonicznej.
- Potwierdź, że ukryte punkty docelowe nie mogą być wybrane.
- Przetestuj potwierdzenie transferu, pocztę głosową oraz czat.
- Przetestuj naturalne zakończenie rozmowy i pożegnanie.
- Zasymuluj awarię dostawcy i potwierdź działanie trasowania zapasowego (Fallback).
Rozwiązywanie problemów
- Sesja Gemini nie powodzi się: Potwierdź klucz Gemini API, obsługiwany model realtime, licencję, wersję kompilacji PBX oraz łączność wychodzącą.
- Głos został odrzucony: Użyj głosu obsługiwanego przez skonfigurowany model Gemini.
- Brak wyników z książki telefonicznej: Sprawdź widoczność numerów, działów i ról.
- Udostępniono zbyt wiele obiektów: Wyłącz AddAll().
- Trasa zapasowa (Fallback) lub komunikat nie działa: Sprawdź punkt docelowy oraz aktywny komunikat ERROR.
Zobacz również
- Tworzenie skryptu przetwarzania połączeń
- Przykładowy skrypt przetwarzania połączeń dla kodu PIN
- Podręcznik administratora 3CX
Ostatnia aktualizacja
Ten dokument został ostatnio zaktualizowany 9 września 2026 r..
https://www.3cx.pl/docs/gemini-voice-agent/
