Měli jsme článek o instalaci Asterisk 13 na Ubuntu, ale neprošli jsme skutečným připojením k softwarovému telefonu a uskutečněním hovoru. Článek byl pouze o nastavení na straně serveru. Nyní budeme stavět na tomto článku a připojit Linphone k Asterisk 13.
Předpoklady
- Dva počítače Ubuntu ve stejné síti (nebo počítač a virtuální počítač, v mém případě to budou dva notebooky)
- Jeden z nich má nainstalovanou hvězdičku
Instalace Linphone a konfigurace Asterisk
Instalace linphone je snadná, na oba vaše počítače typu
sudo apt install linphone
Poté musíme nastavit Asterisk pro přijímání nových uživatelů. Na počítači Asterisk zadejte
cd /etc/asterisk/
Zde jsme se přesunuli do adresáře, kde jsou umístěny všechny konfigurační soubory Asterisk. Potřebujeme sip.conf, ale před jeho úpravou si jej zazálohujeme:
sudo cp sip.conf sip.conf.orig
Pokud se podíváte do souboru, je obrovský. Posouvání chvíli trvá, takže jej budeme muset oříznout, abychom vyloučili všechny komentované řádky, prázdná místa a ponechali pouze řádky, které se počítají jako konfigurace.
Když jsme uvnitř /etc/asterisk/
, otevřeme soubor pomocí visudo vi sip.conf
A ve vi zadáme toto pro odstranění komentářů
:g/^\s*;/d
Poté toto odstraníte bílá místa.
:g/^$/d
Zůstává skutečná konfigurace. Na konci této konfigurace musíme přidat dva uživatele, jako je tento:
[miki]
type=friend
context=phones
allow=ulaw,alaw
secret=12345678
host=dynamic
[bobby]
type=friendcontext=phonesallow=ulaw,alawsecret=87654321host=dynamic
Dále zadáme příkaz Hvězdička s hvězdičkou -rvvv a do řádku s hvězdičkou napíšeme
sip reload
A pak ukázat vrstevníkům
sip show peers
Připojování Linphone
Na obou počítačích spusťte linphone a spusťte průvodce přidáním uživatelů s hesly, která zadáte do souboru sip.conf
Poté ještě nejsme připraveni zavolat. Potřebujeme napsat plán vytáčení v extensions.conf. Nejprve jej zazálohujte a poté vytvořte nový prázdný soubor:
sudo mv extensions.conf extensions.conf.orig
sudo nano extensions.conf
Do prázdného souboru vložíme vytáčecí plán.
[phones]
exten => 100,1,NoOp(First Line)
same => n,NoOp(Second Line)
same => n,Dial(SIP/miki)
same => n,Hangup
exten => 200,1,NoOp(First Line)
same => n,NoOp(Second Line)
same => n,Dial(SIP/bobby)
same => n,Hangup
Pojďme vysvětlit, co to všechno znamená
Do [] dáváme kontext, což jsou v našem případě telefony. Operujeme nástavky, 100 pro miki a 200 pro boby. K provádění věcí uvnitř vytáčecího plánu používáme věci zvané aplikace. To jsou věci jako NoOp, Dial a Hangup. Nejprve si vysvětlíme první řádek.
Exten je pro pobočku, následuje => a pak říkáme, na kterém čísle pobočky operujeme. Je to 100, za nímž následuje 1 jako číslo řádku. NoOp je aplikace, kterou používáme pro první řádek. Ve druhém řádku věci vypadají jinak, ale v zásadě je to stejné. Místo exten píšeme to samé, protože pracujeme na stejném rozšíření, 100.
To znamená, že číslo 100 se nemusí opakovat ve druhém řádku a přejdeme na číslo řádku, ale také zde máme zvrat. Místo psaní 2 (což bychom také mohli udělat) napíšeme n s významem další. Má to jednoduchý důvod. Pokud bychom napsali 2 a pak vložili další řádek mezi 1 a 2 s novou aplikací, museli bychom změnit všechna čísla řádků. Tímto způsobem, když napíšeme n, nemusíme to dělat.
Když se přesuneme do druhého prodloužení, jsme opět na čtvercovém. První řádek je třeba napsat celý, zatímco karty lze použít k odpočinku.
První hovor
Poté, co jsme vytvořili a uložili číselný plán, jsme připraveni volat. Než to uděláme, nejprve znovu načtěte telefonní plán. To je povinný krok, kdykoli přidáváme novou konfiguraci.
asterisk -rvvv
Po zadání prompt
dialplan reload
Zadejme hvězdičku a podívejme se nyní na naše kolegy
ThinkPad-X220T*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
bobby/bobby 192.168.1.6 D Auto (No) No 5060 Unmonitored
miki/miki 192.168.1.5 D Auto (No) No 5060 Unmonitored
Máme připojené dva peery a můžeme si mezi sebou volat. Zavoláme Bobbymu
== Using SIP RTP CoS mark 5
-- Executing [200@phones:1] NoOp("SIP/miki-0000000a", "First Line") in new stack
-- Executing [200@phones:2] NoOp("SIP/miki-0000000a", "Second Line") in new stack
-- Executing [200@phones:3] Dial("SIP/miki-0000000a", "SIP/bobby") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/bobby
-- SIP/bobby-0000000b is ringing
Jak vidíme, volání funguje.
Jak najít další aplikace
Chcete-li napsat složitější vytáčecí plány, budete muset použít více aplikací. Aplikace ve výzvě hvězdičky můžete procházet několika způsoby. Chcete-li například vytáčet aplikace, zadejte core show applications dial
ThinkPad-X220T*CLI> core show applications like dial
-= Matching Asterisk Applications =-
Dial: Attempt to connect to another device or endpoint and bridge the call.
RetryDial: Place a call, retrying on failure allowing an optional exit extension.
-= 2 Applications Matching =-
Poskytuje nám dvě aplikace, jednu jsme již používali a jednu pro nás novou, RetryDial. Pokud tedy zadáte
core show application RetryDial
(všimněte si ne s, pouze aplikace následovaná názvem), získáte dlouhý soubor nápovědy pro aplikaci, kterou jste vybrali.
Ale předpokládejme, že se vám nelíbí ani jedna z těchto dvou aplikací, chcete něco víc. Vyhledávání můžete rozšířit přidáním vágnější definice, jako je tato
core show applications describing dial
Tímto vyhledáváním jsem získal 41 aplikací.
Závěr
Na základě našeho předchozího článku Asterisk jsme tedy ukázali, jak nakonfigurovat Asterisk pro použití s Linphone. Vytvořili jsme telefonní plán a uskutečnili první hovor přes náš server Asterisk. Také jsme představili, jak najít aplikace, které potřebujete k napsání požadovaného vytáčecího plánu. Děkuji za přečtení a bavte se telefonováním.