This application allows users to dial any sip extension and ask any question from Gemini
git clone https://github.com/aqeelabpro/gemini-asterisk
cd gemini-asterisk
open in your favourite editor or IDE
- FreePBX installed
- Zoiper Installed
- Follow The instructions on FreePBX Installation on Ubuntu 22.04/23.04
- Goto Config Edit in the Admin tab in FreePBX(you will have to download config edit module)
- Paste the code provided at the end to the
extensions_custom.conf
file, and clickSave
button and theApply Config
button at the top - create
Jar file
from this Application and upload to server - Create a main folder like
gemini-asterisk
inside your home dir or whereever you want and also create relevant folders and files in the respective folder as described below - Inside
gemini-asterisk
folder, create 2 folders,config
andbin
- Inside the
config
folder, create a fileapplication.yml
and paste content from this Java Application - Inside the Same
config
folder, create another filelog4j2.xml
and pastelog4j2.xml
from this Java Application - You also have to have a
google-auth.json
file and replace its path in theapplication.yml
file
- Goto
Admin Tab
as shown inFigure.1
- Select the
Updates
from dropdown as shown inFigure 1.1
- Click The
Modules Updates
as shown inFigure 1.2
- Click
Standard
andExtended
in there and hit check online button as shown inFigure 1.2
- You will get
Download All
button, Press that button and it will download all modules includingConfig Edit
module, we require as shown inFigure 1.2
Figure 1.1 |
Figure 1.2 |
[google-speech]
exten => 111,1,NoOp(============ ${CONTEXT} =============)
exten => 111,n,Set(__AGI_SERVER_IP=127.0.0.1)
exten => 111,n,Set(__AGI_SERVER_PORT=9000)
exten => 111,n,Set(__AGI_SERVER=agi://${AGI_SERVER_IP}:${AGI_SERVER_PORT})
exten => 111,n,Set(__SOUND_FOLDER=/var/lib/asterisk/sounds/en)
exten => 111,n,Set(__LANG_CODE=en-GB)
exten => 111,n,Set(__LANG_NAME=en-GB-Wavenet-F)
exten => 111,n,Goto(record-answer,111,1)
exten => h,1,Goto(grace_fully_hangup,s,1)
[record-answer]
exten => 111,1,NoOp(=========== ${CONTEXT} ===========)
exten => 111,n,Set(__RECORDING_FILE_NAME=${EPOCH})
; ADDED THIS LINE
exten => 111,n,Playback(ask_question&interrupt-ai)
exten => 111,n(record),Record(${SOUND_FOLDER}/${RECORDING_FILE_NAME}:wav,8,300)
exten => 111,n,AGI(${AGI_SERVER}/speechToText.agi)
exten => 111,n,Goto(play-prompt,111,1)
exten => h,1,Goto(grace_fully_hangup,s,1)
[play-prompt]
exten => 111,1,NoOp(=========== ${CONTEXT} ===========)
exten => 111,n,AGI(${AGI_SERVER}/textToSpeech.agi)
exten => 111,n,Wait(1)
exten => 111,n,Background(${SOUND_FOLDER}/${ANSWER_FILE})
exten => 111,n,Goto(record-answer,${EXTEN},record)
exten => _X,1,Goto(record-answer,111,record)
exten => h,1,Goto(grace_fully_hangup,s,1)
[grace_fully_hangup]
exten => s,1,NoOp(=========== ${CONTEXT} ===========)
exten => s,n,StopMonitor()
exten => s,n,Hangup