Telefonie
Instalace
Na serveru, kde běží asterisk, je třeba nainstalovat službu phone gateway. Tato služba je součástí systému mluvii a instaluje se jako docker container. Služba může naslouchat na libovolném tcp portu na adrese localhost. Na tento port se budou odesílat požadavky z asterisku. V žádném případě nesmí být tcp port služby dostupný z internetu, protože samotná služba neprovádí žádnou autentizaci!
V následujících příkladech bude služba naslouchat na portu 9085.
Přesměrování hovoru do mluvii
Libovolný hovor lze v dialplanu přesměrovat do mluvii, kde vznikne sezení a provede se routing. Přesměrování se provede zavoláním http koncového bodu služby phone gateway jako v následujícím příkladě:
[mluvii-inbound]
exten => s,1,NoOp(New call to mluvii)
same => n,Answer()
same => n,Playback(beep)
same => n,Set(mluvii_result=${CURL(http://127.0.0.1:9085/phone/incoming,chan=${CHANNEL})})
same => n,GotoIf($["${mluvii_result}" = "1"]?success:failure)
same => n(success),Verbose(MusicOnHolding)
same => n,MusicOnHold()
same => n,Hangup()
same => n(failure),Hangup()
V momentě odeslání http požadavku prostřednictvím CURL()
se dané volání předává systému mluvii, který ho bude dál zpracovávat.
Kromě parametru chan lze předat i další parametry, které budou uloženy jako proměnné hovoru pro vzniklé sezení a bude možné se na ně dotazovat v routingu. Například takto lze předat zvolenou položku z IVR v proměnné need
:
...
same => n,WaitExten()
same => n(getonwithit),Set(mluvii_result=${CURL(http://127.0.0.1:9085/phone/incoming,chan=${CHANNEL}&need=${need})})
...
exten => 2, 1, NoOp(Call Front Office)
same => n,Set(need=FrontOffice)
same => n,Goto(s,getonwithit)
Instalace Site2Site VPN pro potřeby telefonie
Pro zřízení VPN spojení od Vás potřebujeme dodat:
- IP adresu, ze které se budete na ústřednu připojovat
- Seznam subnetů na vaší straně
- Na vaší straně je třeba nakonfigurovat DNS telefonní ústředny (dodá mluvii) na 10.64.0.2, aby šla komunikace přes VPN tunel
- Na vaší straně je třeba povolit UDP protokol
Nahrávání
Přenos nahrávek do mluvii a spárování se sezením se provádí nastavením proměnné MIXMON_POST
.
Pro kompatibilitu s FreePBX je vhodné toto nastavení umístit do souboru /etc/asterisk/globals_custom.conf
, který FreePBX nepřepisuje.
Příklad nastavení, které záznam převede do mp3 a uploaduje jej do mluvii:
MIXMON_POST=sh -c 'AF=^{MIXMONITOR_FILENAME} && RF=`echo $AF | sed "s/\.[[:alnum:]]\+$/.mp3/"` && ffmpeg -i $AF -y -aq 100 $RF && curl -F "recording=@$RF" http://localhost:9085/phone/recording?chan=^{UNIQUEID} && rm $RF'
Po převedení do formátu mp3 je soubor odeslán do služby phone gateway.
Ta nahrávku uloží do mluvii a spáruje ji se správným sezením na záladě unique id kanálu předaného v parametru chan
.