Installatie en configuratie van telefooncentrales. Basis asterisk-installatie na installatie

Goedemiddag, in dit artikel vertel ik je hoe je het meest kunt installeren populaire server VoIP Asterisk-telefonie. Met deze server kun je telefonie op kantoor of thuis organiseren of automatische notificaties implementeren, maar daar zal ik in andere artikelen over praten. En laten we beginnen met het installeren van asterisk op de ubuntu-server.

Installeer Asterisk op Ubuntu-server Het is uiterst eenvoudig, je hebt maar één commando nodig:


sudo apt-get install asterisk

Het eerste dat u moet doen na het installeren van Asterisk, is het uitschakelen van de mogelijkheid om anoniem oproepen te ontvangen. Om dit te doen, opent u het bestand sip.conf en verwijdert u het commentaar op de regel allowguest=no, aangezien dit standaard Ja is. Om naar een bepaalde regel in nano te zoeken, kunt u trouwens op Ctrl+W drukken en het gewenste deel van de regel invoeren en op Enter drukken; als er meerdere van dergelijke woorden in de tekst staan, drukt u vervolgens op Ctrl+ om door te gaan met zoeken W en Enter.


sudo nano /etc/asterisk/sip.conf

In hetzelfde bestand kunnen we VoIP-providers en onze interne abonnees aangeven. Ik gebruik de operator it-sekret, omdat deze goedkoop it-sekret.ru kan noemen. Om dit te doen, voegt u aan het einde van het bestand toe

Voor de exploitant:

Type=peer context=it-sekret host=xxx.it-sekret.ru gebruikersnaam=GEBRUIKERSNAAM geheim=WACHTWOORD fromuser=GEBRUIKERSNAAM nat=force_rport insecure=poort,uitnodiging

Als de operator constante registratie nodig heeft, bijvoorbeeld voor inkomende oproepen, moet u deze regel schrijven

Registreren => gebruikersID: [e-mailadres beveiligd]/gebruikersID

Waar userID de gebruikersnaam is die door de operator is uitgegeven en PASSWORD het wachtwoord is, is xxx.it-sekret.ru het serveradres dat door de operator is uitgegeven.

Interne deelnemer aanmaken:

Type=vriend context=interne host=dynamische gebruikersnaam=1001 geheim=1234

Nadat u deze gegevens hebt toegevoegd, slaat u het bestand op en sluit u af. Om de instellingen toe te passen, moet u de server opnieuw opstarten of opdracht geven de instellingen opnieuw te lezen. Deze methode is beter, omdat als uw server actief is, de oproepen die momenteel actief zijn, niet worden onderbroken.


sudo sterretje -r
herladen
Een telefoon of softphone instellen

Laten we nu de telefoon of softphone instellen. Ik gebruik X-lite, er zijn best veel softphones, je kunt het naar eigen smaak gebruiken. X-lite-instellingen doe zoals in de schermafbeelding.

Om de juistheid van de instellingen in de Asterisk CLI (hierna eenvoudigweg CLI) te controleren, voert u de opdracht sip show peers uit

Asterisk-kiesregels instellen (kiesplan)

Laten we eerst een kopie maken van het originele extension.conf-bestand


sudo mv /etc/asterisk/extensions.conf
/etc/asterisk/extensions.conf.bak

Nu zullen we in extension.conf een regel schrijven voor een uitgaand gesprek.


sudo nano /etc/asterisk/extensions.conf exten => _X.,1,Dial(SIP/it-sekret/$(EXTEN))

Voer in de CLI de opdracht herladen uit om de instellingen toe te passen. En laten we nu proberen te bellen.

Het gesprek is doorgekomen. Nu moet u een inkomend gesprek instellen. Om dit te doen, moet u een kiesregel schrijven.


sudo nano /etc/asterisk/extensions.conf exten => s,1,Dial(SIP/1001)

Dit is waar de eenvoudige installatie eindigt, in de volgende artikelen zal ik u vertellen hoe u gesprekken kunt opnemen, een IVR kunt instellen, een CallBack kunt maken vanaf de site en nog veel meer.

23.02.2012 15:56

Een artikel waarmee beginnende programmeurs de basisinstallatie van een asterisk kunnen uitvoeren

Asterisk is een van de meest voorkomende IP-telefonieservers, samen met systemen als Switchwox en 3CX. Grotere populariteit dit systeem wijdverspreid werd in ons land kwaliteit internet, evenals vele telefoonaanbieders die dit aanbieden telefoonnummers in SIP-formaat of zogenaamde SIP-nummers. Eén van deze bedrijven is Datagroup, dat zichzelf heeft gevestigd als een van de leiders op de markt voor communicatiediensten. Nu SIP-nummers goedkoper worden, is het logisch om modern te gebruiken telefoonsystemen IP-telefonie in plaats van de oude analoge mini-PBX. Dit komt door de brede functionaliteit callcenters gebaseerd op Asterisk. Tegelijkertijd zijn de kosten van apparatuur en het opzetten van Asterisk vrijwel hetzelfde als de geldkosten.

Het installeren van asterisk gebeurt door het downloaden en vervolgens compileren van de door Digium ontwikkelde vrij verspreide broncode. Asterisk-bronnen bestaan ​​alleen voor Unix-compatibele besturingssystemen, waarvan Linux en FreeBSD de meest voorkomende zijn. Het installeren van asterisk onder Windows is alleen mogelijk door implementatie virtuele machine. Downloaden nieuwste versies sterretje is te vinden via de volgende link. Op dit moment worden er 4 versies van deze server ontwikkeld. De versies asterisk 1.4 en asterisk 1.6 hebben de grootste stabiliteit van alle modules. Aan de andere kant steekt versie asterisk 1.8 qua functionaliteit gunstig af, die ondersteuning biedt voor veel nieuwe modules en functies, waaronder ondersteuning voor het SRTP-protocol, werken met IPv6 en verbeterde prestaties bij het werken met SIP en ISDN.

Dit artikel bespreekt het installeren van asterisk v 1.6.22 op Linux Fedora Core.

Download de asterisk-bronnen om de installatie te starten. Om dit te doen, voert u de opdrachten uit in de serverconsole:

# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.22.tar.gz

# tar -xzvf sterretje-1.6.2.22.tar.gz

Laten we, voordat we de bronnen compileren, alle benodigde bijbehorende modules en hulpprogramma's installeren:

# yum installeer gcc

# yum installeer gcc-c++

#yum install make

# yum installeer libxml2-devel

# yum installeer ncurses-devel

Na alles extra nutsvoorzieningen geïnstalleerd, installeren we asterisk zelf:

# cd sterretje-1.6.2.22

Na een succesvolle installatie vindt u in de map /etc/asterisk de configuratiebestanden asterisk "a". Asterisk wordt geconfigureerd door configuratiebestanden te bewerken die een zeer specifieke structuur en operatoren hebben. De basis voor de configuratie bij het configureren van asterisk is sip.conf en extensions.conf-bestanden kunnen worden bereikt door deze bestanden te bestuderen en te bewerken juiste werking server.

Het bestand sip.conf bevat de instellingen van alle SIP-apparaten die op de server zijn geregistreerd en die vervolgens met elkaar communiceren door twee of meer SIP-kanalen met elkaar te verbinden, waardoor telefoon aansluiting- dat wil zeggen, een telefoontje.

Voorbeeld sip.conf-bestand:


in aanmerking komen = ja
nat=nee


standaardvervaldatum=3600
niet toestaan=alles
toestaan ​​= alaw
toestaan=ulaw
vangebruiker=044XXXXXXX
gastheer=80.91.169.2
onveilig=uitnodigen,poort
geheim=xxxxxxxxxxxx
type=peer
gebruikersnaam=044XXXXXXX
context=binnenkomend
taal=nl
in aanmerking komen = ja
dtmfmode=automatisch


type=vriend
gastheer=dynamisch
onveilig=uitnodigen,poort
gebruikersnaam=fxo
geheim=xxxxxxxxx
context=binnenkomend
in aanmerking komen = ja
nat=nee
kan opnieuw uitnodigen = nee
overdracht toestaan=nee
dtmfmode=automatisch
niet toestaan=alles
toestaan ​​= alaw
toestaan=ulaw


type=vriend
reextensie=101
geheim=xxxxxxxxxxxxxxx
context=intern
gastheer=dynamisch
callerid = "101"
niet toestaan=alles
toestaan ​​= alaw
toestaan=ulaw
taal=nl
belgroep=1
ophaalgroep=1
in aanmerking komen = ja
kan opnieuw uitnodigen = ja
bellimiet=4
nat=nee

Dit voorbeeld laat zien eenvoudige lijst sip-apparaten. Het is gemakkelijk op te merken dat de configuratie blokken tussen vierkante haken bevat. Het zijn deze blokken die de configuratie van alle apparaten (peers) beschrijven bij het instellen van Asterisk. Laten we kort de blokken en de meest elementaire parameters doornemen.

Het blok is vereist. Het bevat instellingen en opties die standaard op alle blokken van toepassing zijn. Met andere woorden: als een parameter niet is opgegeven bij het beschrijven van een apparaat, leest Asterisk deze uit dit blok.

De volgende drie blokken beschrijven rechtstreeks SIP-apparaten. Voor de duidelijkheid: alle drie de apparaten hebben verschillende doeleinden. Het blok beschrijft de parameters voor het sip-nummer van het Datagroup-bedrijf, het blok beschrijft de parameters voor verbinding met een VOIP-gateway, en het blok beschrijft de parameters van een regulier intern sip-apparaat dat kan worden gebruikt door een software- of hardware-IP-telefoon.

Laten we de belangrijkste parameters van SIP-apparaten doornemen. De contextparameter bepaalt welk actiealgoritme op een bepaald apparaat moet worden toegepast. Callerid definieert het peernummer en de naam, die worden weergegeven wanneer er een uitgaande oproep wordt gedaan. De opties Disallow en Allow bepalen welke codecs moeten worden gebruikt voor communicatie. De geheime optie is het wachtwoord voor het registreren van deze peer. Het is raadzaam om wachtwoorden voldoende complex te maken om hacking door kwaadwillenden te voorkomen.

Het extensions.conf-bestand beschrijft de interacties tussen contexten en communicatiekanalen, waarvan er een groot aantal kunnen zijn. In feite is dit bestand het belangrijkste bestand bij het configureren van asterisk.

Voorbeeld extensions.conf-bestand:


exten => _XXX,1,Dial(SIP/$(EXTEN),120,tT)
exten => _XXX,n,Ophangen

Exten => _X.,1,Dial(SIP/datagroep/$(EXTEN),120,tT)
exten => _X.,n,Ophangen


exten => _X.,1,Bellen(SIP/101,60,tT)
exten => _X.,2,Ophangen

Exten => h,1,Ophangen

In dit eenvoudigste voorbeeld hebben we twee algoritmen voor acties (context): intern en inkomend. Laten we niet vergeten dat het binden aan contexten wordt uitgevoerd bij het maken van peers in het bestand sip.conf en vervolgens wordt toegewezen in extensions.conf wanneer wordt geprobeerd communicatie met een peer te initiëren.

Laten we de twee contexten in meer detail beschrijven. Al aan hun naam wordt duidelijk dat ze worden gebruikt voor algoritmen voor interne abonnees (intern) en inkomende oproepen (inkomend). Een algemeen voorbeeld, dat in de volgende regel kan worden uitgedrukt, zal u helpen het ontwerp van dit bestand te begrijpen:

Exten => _XXX,n,Commando(Opties)

Deze opties worden als volgt ontcijferd:

Exten => _XXX - een servicevoorvoegsel waarmee bijna alle regels binnenkomen dit bestand. Het beschrijft de representatie van de binnenkomende context. Met andere woorden, als er contact werd opgenomen met deze context door peernummer 101, dan zou het algoritme ervoor moeten beginnen met de constructie exten => 101. Het voorvoegsel ondersteunt reguliere expressies en kan algemeen worden aangegeven. Exten => _XXX geeft bijvoorbeeld aan dat dit algoritme alle peers omvat die uit drie cijfers bestaan.

N - regelnummer van het algoritme. In elke programmacode is er een reeks instructies die beurtelings worden uitgevoerd. Op dezelfde manier is er een dergelijke volgorde in de asterisk-instellingen. Het enige verschil is dat de opdrachten die met een sterretje worden uitgevoerd, genummerd zijn. Het is verplicht om de eerste regel expliciet aan te geven. Zoals je misschien hebt gemerkt, beginnen alle contexten met de regels:

Exten => _XXX,1,…..
uitbreiden => _X.,1,…..
extensie => h,1,……

Maar verdere regels kunnen impliciet worden genummerd, dat wil zeggen als volgt:

Exten => _XXX,n,…..
uitbreiden => _X.,n,…..
extensie => h,n,……

Wanneer het regelnummer impliciet is opgegeven, voert asterisk deze opeenvolgend van boven naar beneden uit, net als bij elke andere code.

Commando - commando uitgevoerd door een sterretje. Er zijn niet zoveel basiscommando's. Voor de basisinstallatie is het voldoende om de syntaxis van de opdracht Kiezen te kennen, aan de hand waarvan we de overige opties als voorbeeld zullen bekijken.

Bijvoorbeeld:
exten => _X.,1,Dial(SIP/101,60,tT) - asterisk belt toestel 101 en probeert de abonnee binnen 60 seconden te bereiken met de mogelijkheid om de oproep van de bellende en ontvangende collega's te onderscheppen (tT-opties)
exten => _X.,1,Dial(SIP/datagroup/$(EXTEN),120,tT) asterisk zal het nummer bellen dat is doorgegeven in de $(EXTEN) variabele met behulp van de datagroep-peer die eerder is opgegeven in sip.conf

Het eerste voorbeeld werd gebruikt in de inkomende context. Dit betekent dat alle inkomende oproepen die in deze context binnenkomen, worden doorgestuurd naar de interne deelnemer die deze oproepen beantwoordt. Het tweede voorbeeld laat op zijn beurt zien hoe een uitgaande oproep tot stand komt door het gekozen nummer door te geven in de servicevariabele $(EXTEN).

Voorbeeldbestanden kunnen rechtstreeks uit dit artikel worden gekopieerd en in uw sip.conf en extensions.conf worden geplakt en enkele opties worden bewerkt (logins, peer-namen, wachtwoorden, enz.). Nadat we asterisk hebben ingesteld, starten we de server met een eenvoudig commando:

Verdere acties kunnen worden uitgevoerd vanaf de asterisk-opdrachtregel, die wordt gestart met de opdracht:

# sterretje -rvvvvd

Eenmaal in de console kunt u de werking van uw server controleren. Het toont alle acties die het uitvoert.

P.S. Als u de server niet kunt configureren, of als u een complexere configuratie nodig heeft, helpen wij u graag bij het configureren van asterisk. Onze contacten.


Configuratiebestand voor kanalen in , zowel voor inkomende als uitgaande oproepen.

Elke SIP-client of server wordt in dit bestand gedefinieerd als een tekstblok, vergelijkbaar met het onderstaande:


type=jjj
parameter1=waarde
parameter2=waarde

Waarbij xxx de naam is die aan de SIP-client is gekoppeld, of het kan een willekeurige naam zijn SIP-apparaten, waarnaar kan worden verwezen vanuit andere configuratiebestanden. Als een SIP-telefoon het toestelnummer 123 heeft, beginnen de overeenkomstige instellingen in dit bestand doorgaans met de regel . Let op: om dit 123-toestel te kunnen bellen, moet u dit in uw belplan beschrijven. kan zijn: "gebruiker", "peer" of "vriend".

De Asterisk-server bepaalt of een inkomende oproep overeenkomt met een apparaatnaam, voor clients met type=user, op basis van de header Van: gebruikersnaam (waarbij het SIP-domein wordt genegeerd). Een andere manier om inkomende SIP-verzoeken te verwerken is door te bepalen of ze overeenkomen met een sectie in dit bestand, door het IP-adres van het inkomende verzoek te gebruiken om te bepalen van wie het verzoek afkomstig is, en te zoeken naar de juiste parameterwaarde Host= in de gebruikerssectie. Als deze parameter is ingesteld op Host=dynamic, zijn er geen overeenkomende overeenkomsten totdat de SIP-client zich bij de server registreert.

Asterisk als SIP-client Voeg in het configuratiebestand in de sectie de registerdefinitie toe:

Formaat:
register => gebruiker [:geheim[:authuser]] @host [:port]

Voorbeeld:
; Registreer 2345 bij de sip-provider, zoals nummer 1234 aan onze kant.
registreren => 2345: [e-mailadres beveiligd]/1234

user - gebruikers-ID gebruikt voor de SIP-server (bijvoorbeeld 2345) authuser - optionele gebruikersnaam voor autorisatie op de SIP-server geheim - gebruikerswachtwoord host - domein- of hostnaam van de SIP-server. Deze SIP-server moet worden gedefinieerd in een eigen sectie van het sip.conf-bestand, waar de parameters moeten worden opgegeven (mysipprovider.com). poort - naar welk poortnummer verzoeken voor registratie op de hostserver moeten worden verzonden. Standaard - 5060/1234 - toestelnummer voor het ontvangen van oproepen in uw Asterisk. 1234 - ingevoegd in het SIP-headercontact, SIP-registratieverzoek. Deze extensie wordt gebruikt door een externe SIP-server wanneer deze uw Asterisk moet bellen. Zie de voorbeelden hieronder. Standaard wordt de contextuele "s" gebruikt.
Dit is natuurlijk allemaal goed en wel, maar het gebruik van niet-gecodeerde wachtwoorden is een vereiste tekstbestand- niet de beste goed idee, maar wat kan er nu nog meer worden gedaan.
U hoeft zich alleen aan te melden als: a) u gebeld moet kunnen worden, en b) één van de partijen over een dynamisch IP-adres beschikt. U kunt controleren of uw server succesvol is geregistreerd met behulp van het CLI-commando: "SIP SHOW REGISTRY". Op dezelfde manier kunt u een lijst met clients opvragen die op uw server zijn geregistreerd met behulp van het commando: "SIP SHOW PEERS". Je kunt meer bekijken gedetailleerde informatie over een geregistreerde client met behulp van het commando: "SIP SHOW PEER". Voer de opdracht "HELP SIP" uit in de CLI-console om een ​​lijst met aanvullende opdrachten te krijgen.

De serverdefinitie voor het maken van uitgaande oproepen zou ongeveer als volgt moeten zijn:


type=peer
geheim=wachtwoord
gebruikersnaam=2345
host=sipserver.mysipprovider.com
vangebruiker=2345
fromdomain=fwd.pulver.com
nat=ja
context=van-mijnsipprovider ; deze wedstrijd moet worden gedefinieerd in extensions.conf

Om uitgaande gesprekken te kunnen voeren, moet u in het bestand extensions.conf een kiesregel hebben die er ongeveer zo uitziet:

Exten => _9.,1,Dial(SIP/$(EXTEN:1)@mysipprovider-out,30,r)

Houd er rekening mee dat de constructie $(EXTEN:1) de volledige inhoud ophaalt van de variabele die de extensie bevat die wordt aangeroepen (overeenkomstig het patroon), behalve het eerste cijfer, in dit geval: 9 + een reeks cijfers. Zie de sectie over het werken met subtekenreeksen in de beschrijving voor meer details.


extensie => 1234,1,Antwoord; 1234 - uitbreiding van contactgegevens, standaard - "s"
exten => 1234,2,Dial(SIP/111,25,Ttr) ; inkomend gesprek doorverwijzen naar SIP-telefoonnummer 111
exten => 1234.3,Ophangen

SIP-configuratie - algemeen gedeelte Het gedeelte van het bestand sip.conf bevat de volgende variabelen:

= : Toegestane codecs, de volgorde waarin de codec wordt geselecteerd wordt bepaald door de volgorde waarin ze worden beschreven in deze opdracht (Eerste gebruik: DISALLOW=ALL, voordat specifieke codecs worden toegestaan) allowtransfer= yes | nee: Verscheen vanaf versie 1.4.0. Indien ingesteld op "nee" - verbiedt alle soorten doorverbinden van gesprekken. (behalve degene die zijn toegestaan ​​in de beschrijving van de gebruikersinstellingen). =all:Schakelt het gebruik van alle codecs uit (globale instelling) allowguest = yes (standaard) | no: Gastoproepen toestaan ​​of uitschakelen (standaard - ja, u kunt de parameter "osp" opgeven als de waarde als asterisk is gebouwd met OSP-ondersteuning) = ja | nee: Indien ingeschakeld kan iedereen de server als peer gebruiken (zonder te controleren of er toegang is; dit kan handig zijn als u met SER SIP-proxy werkt). bindaddr = 0.0.0.0:IP-adres waarnaar Asterisk IP-pakketten van SIP-oproepen zal ontvangen bindport=5060:poortnummer waarnaar Asterisk IP-pakketten van SIP-oproepen zal ontvangen callerid =: informatie voor beller*Id, gebruikt als er geen van deze is , die als deze waarde kan worden gebruikt. De standaardwaarde is "sterretje". (De mogelijkheid om de standaardwaarde te overschrijven is beschikbaar in Asterisk 1.0.9. Ik ben niet helemaal zeker van andere versies.) = update | ja | nee (algemene instelling). Om de een of andere reden is de standaardwaarde "Ja". Wees voorzichtig... context =: Dit is de standaardwaarde die wordt gebruikt als de client geen eigen definitie heeft. Dit klantspecifieke wordt gebruikt om oproepen van die klant naar te routeren de juiste plaats afspraken. De inhoud wordt beschreven in het belplanbestand - extensions.conf. defaultexpirey=120: Duur van de inkomende of uitgaande registratieperiode. : inband | informatie | rfc2833 (algemene instelling) = domeinen: door komma's gescheiden lijst met domeinen waarvoor de Asterisk-server verantwoordelijk is. (geïntroduceerd in Asterisk 1.2.x) = 200.201.202.203: IP-adres dat zal worden gebruikt in SIP-berichten als onze server achter NAT staat. externhost = hostname.tld: (nieuwe parameter in Asterisk 1.2.x) externrefresh = xxx: Met deze parameter bepalen we hoe vaak de DNS-invoer wordt opgezocht voor de hostnaam gedefinieerd in de parameter "externhost" (nieuwe parameter in Asterisk 1.2 .x) = 192.168.1.0/255.255.255.0: definitie van het lokale netwerk en zijn masker. fromdomain= : Het standaarddomein instellen in het Van:-veld van SIP-berichten wanneer u werkt als een SIP ua (client). maxexpirey=3600: Maximaal toegestane registratieduur. mineexpiry=60: (Variabele geïntroduceerd sinds Asterisk 1.4.0) Minimaal toegestane registratieduur. = ja | no (instelling voor verbindingen met peers) Houd er rekening mee dat in Asterisk 1.0.x de nat-parameter de volgende waarden kan aannemen: no | nooit | route | Ja. notificatiemimetype=text/plain:Hiermee kunt u het MIME-type in MWI NOTIFY-berichten overschrijven die worden gebruikt in berichten die door het systeem worden verzonden. pedant = ja|nee: Schakel een langzame, pedante controle in van oproep-ID-velden en alle regels in de meerregelige SIP-berichtkop en URI-gecodeerde headers port =: standaard SIP-poort. (dit is niet de poort waarop uw Asterisk naar IP-pakketten luistert. Zie parameter: bindport) promiscredir=yes | nee: ondersteuning inschakelen voor 302 Redirects-berichten; (Nee - zal alles doorsturen naar het lokale toestel dat wordt ontvangen in het veld Contact, en niet naar het toestel dat is opgegeven in het veld voor de oproepbestemming.) realm = realm (Deze instelling kan de realm voor autorisatie wijzigen van de standaardwaarde - Asterisk, voor iedereen die u heeft geselecteerd. Werkt vanaf Asterisk versie 1.x) register => @ /: Registreer op de server. SIP-aanbieder. = ja|nee: Zoeken naar oproepen inschakelen tos= : Deze optie is verwijderd sinds Asterisk 1.4.0. IP QoS-parameters instellen voor uitgaande mediastreams. t1min= : (Variabele geïntroduceerd sinds Asterisk 1.4.0) De minimale vertraging voor berichten om van en naar de host te reizen (retourtijd) waarvoor de status wordt gecontroleerd (gemonitorde host). De standaardwaarde is 100 ms. =: (Variabele verscheen vanaf Asterisk versie 1.4.0) IP QoS-parameters instellen voor SIP-pakketten. =: (Variabele verscheen vanaf Asterisk versie 1.4.0) IP QoS-parameters instellen voor pakketten die audiogegevens verzenden via het RTP-protocol. =: (Variabele verscheen vanaf Asterisk versie 1.4.0) IP QoS-parameters instellen voor pakketten die videogegevens verzenden via het RTP-protocol.
videosupport=yes|no: Schakelt SIP-video-ondersteuning in: Met deze parameter kunt u de waarde van de SIP-header "User-Agent" wijzigen. = yes|no: Indien ingeschakeld, kan de resulterende Remote-Party-ID-waarde worden vertrouwd.

SIP-configuratie - clients en peers De volgende variabelen kunnen worden ingesteld in de beschrijving van elke SIP-client:

: De gebruiker kan worden gekoppeld aan een bepaalde toegangscode (accountcode). Gebruikt voor. : Toegestane en verboden codecs. : Categorie voor CDR-records. U kunt kiezen uit: standaard, weglaten, facturatie, documentatie. Zie: .allowoverlap: Sinds versie 1.4.x. Waarden: ja/nee, standaard: ja. Als u deze instelling op "nee" zet, wordt de ondersteuning voor "overlap dialing" uitgeschakeld.allowsubscribe: Sinds versie 1.4.x. Waarden: ja/nee, standaard: nee. Als u 'nee' instelt, wordt het volgen van de status (abonnementen) uitgeschakeld van deze opdrachtgever .allowtransfer: Sinds versie 1.4.x. Toestaan ​​(ja) of weigeren (nee) oproepoverdracht voor deze gebruiker.auth: Sinds versie 1.4.x. Link naar een item uit een sectie (alleen peer-type). autoframing: sinds versie 1.4.x. Autoframing"a.buggymwi inschakelen (ja) of uitschakelen (nee): Sinds versie 1.4.x. Waarden: ja/nee, standaard: nee. Cisco SIP-firmware ondersteunt RFC niet volledig voor het aangeven van de aanwezigheid van een nieuwe voicemail (MWI Stel deze parameter in op "ja" om te voorkomen dat u foutmeldingen ontvangt bij het verzenden van MWI naar telefoons met dit probleem: Definieert de oproepgroep voor oproepen via dit apparaat.callingpres: Zie de waarden sinds versie 1.4.x CallerId in het bestand doc/callingpres.txt uit de distributie asterisk.call-limit: Vanaf versie 1.4.x__ Beperking van het aantal oproepen voor de gebruiker inkomend.: Alleen inschakelen als de client de functie ondersteunt: .cid_number: Sinds versie 1.4.x Nummergedeelte van het veld CallerID.context: De belplancontext waarin oproepen afkomstig van deze client vallen: het standaard IP-adres van de. client wanneer host= is gedefinieerd als DYNAMISCH. Wordt gebruikt als de client nog niet is geregistreerd, als het nodig is om deze aan te roepen. : Hoe de client omgaat met DMTF-signalering. : geef de gebruikersnaam op voor het veld "van" wanneer er via deze invoer wordt gebeld. = : Stelt het standaarddomein in in het Van:-veld van SIP-berichten wanneer er een oproep wordt gedaan via deze entry.fullname: Sinds versie 1.4.x. Naamgedeelte, velden CallerID.g726niet-standaard: Sinds versie 1.4.x. Waarden: ja/nee, standaard: nee. Als de klant ermee akkoord gaat om de G726-32-audiocodec te gebruiken voor een communicatiesessie, met behulp van AAL2-compressie, in plaats van RFC3551 (wat vereist is voor apparaten van Sipura en gateways van Grandstream, en misschien anderen). Dit is in strijd met de RFC3551-specificatie, de client _moet_ "instemmen" om in plaats daarvan AAL2-G726-32 te gebruiken:-(host: Hoe vinden we onze client - IP-adres of hostnaam. Als u de telefoon nodig heeft om zichzelf te registreren, gebruikt u de waarde dynamisch in plaats van IP-adres of hostnaam: Beperking van het aantal gelijktijdige verbindingen met onze SIP-client Deze parameters zijn verouderd, in versie 1.4.x - niet gebruikt: very|yes|no|invite|port: Definieert hoe ermee om te gaan. verbindingen met peers, waarde "no" (authenticatie is ingeschakeld voor alle verbindingen). (uitnodiging en poort toegevoegd in versie 1.2.x). : Taalcode, die is gedefinieerd in het indicaties.conf-bestand - waar de begroetingstaal en landspecifieke telefoontooninstellingen zijn gedefinieerd. : Voicemail-extensie (voor de nieuwe berichten-indicator) maxcallbitrate: Vanaf versie 1.4.x. Maximale bitsnelheid voor video in kbit/s. Standaard: 384 kbit/s.mohsuggest: Sinds versie 1.4.x. Zie sip.conf voor dit doel. : MD5-Hash strings: " :asterisk: " (kan worden gebruikt in plaats van de geheime parameter).musiconhold: Stelt de musiconhold-klasse in voor oproepen vanaf deze SIP-telefoon. Voor oproepen die binnenkomen deze telefoon, moet het specificeren van deze klasse gebeuren met een commando dat een hogere prioriteit heeft (lagere prioriteit in het belplan) dan het Kiescommando in het belplan. De parameter MusicOnHold wordt ingesteld voor gemaakte oproepen, niet voor telefoons, en als de opdracht wordt gebruikt om een ​​oproep voor een toestel af te handelen, overschrijft deze de waarde die door deze parameter voor die oproep is opgegeven. : Deze variabele verandert hoe de Asterisk-server zich gedraagt ​​tegenover clients achter een NAT-firewall. Maar deze parameter lost het probleem niet op als Asterisk zelf achter zo'n firewall zit en de client zich buiten (binnen) bevindt internetnetwerken met een normaal IP-adres).outboundproxy: proxyserveradres voor uitgaande oproepen (alleen peertype).permit, deny: beperkingen op IP-adres en IP-netwerk voor de client. Let op: in versie 1.4.x wordt de mask-parameter niet langer gebruikt. : Groep voor “pickup”-oproepen naar uw collega’s met behulp van de combinatie “*8” en de Pickup()-applicatie om te werken met de extensie *8.port: SIP-poort van de client.progressinband: Vanaf versie 1.4.x. Waarden: ja/nee/nooit, standaard: nooit. Mocht asterisk een eigen beltoon genereren beller (in-band beltoon). Gebruik de waarde "never" om dit signaal nooit te genereren, zelfs niet als sommige vreemde apparaten het zelf niet kunnen genereren. Waarden: ja/nee, standaard: nee. Indien ingesteld op "ja", staan ​​we toe dat SIP-berichten met code 302 of oproepdoorschakelberichten worden verzonden naar SIP-clients met niet-lokale IP-adressen. Het is vermeldenswaard dat het gedrag van promiscredir bij het doorsturen van een binnengekomen oproep lokaal systeem , kan leiden tot een oproeplus, omdat Asterisk kan geen haarspeldgesprekken aan. : Controleer regelmatig de beschikbaarheid van klanten. restrictcid: (ja/nee) Deze optie wordt niet gebruikt, gebruik in plaats daarvan callingpres. rfc2833compensate: Sinds versie 1.4.x. Waarden: ja/nee, standaard: nee. Maakt compensatie mogelijk voor de verzending van DTMF-signalen van andere asterisk-serverversies tot 1.4.*. In deze gevallen moet u deze functie inschakelen, anders werkt de DTMF-signaalontvangst niet goed. : beëindig het gesprek als er langer dan x seconden geen RTP-mediastreamactiviteit is en als de lijn niet in de wachtstand staat. : Breek de oproep af als er langer dan x seconden geen RTP-mediastreamactiviteit is, in de wachtmodus (de waarde moet groter zijn dan rtptimeout) geheim: Als Asterisk als SIP-server fungeert, moet deze SIP-client met dit wachtwoord worden geautoriseerd (gedeeld geheim). Als Asterisk fungeert als een SIP-client die werkt met een externe SIP-server die autorisatie vereist voor "SIP INVITE"-verzoeken, dan zal dit veld worden gebruikt voor autorisatie in "SIP INVITE"-berichten die onze Asterisk naar de externe server zal sturen..sendrpid: of de Remote-Party-Id-header wel of niet naar deze SIP-client moet worden verzonden. Waarden: ja/nee, standaard: yes.setvar: Sinds versie 1.4.x. De waarde specificeert het paar "variabele=waarde" voor de kanaalvariabele bij het bellen vanaf dit apparaat abonneecontext: Sinds versie 1.4.x. Specificeert de naam van de context waarin SIP-aanvragen worden verwerkt SUBSCRIBE.subscribemwi: Vanaf versie 1.4.x. De waarden zijn "ja" en "nee". Doel zie sip.conf.t38pt_udptl: Vanaf versie 1.4.x. Waarden: ja/nee, standaard: nee. Schakel T.38-ondersteuning voor deze client in/uit. : Waarden: ja/nee, standaard: nee. Stel deze in op "ja" als u de Remote-Party-ID kunt vertrouwen die u van de SIP-client heeft ontvangen. : Clienttype - alleen uitgaande oproepen, alleen inkomende oproepen of beide? Waarden: ja/nee, standaard: no.usereqphone: Sinds versie 1.4.x. De waarden zijn "ja" en "nee". Of ';user=phone' wel of niet moet worden toegevoegd aan de URI die het normale belnummer bevat. : Als Asterisk fungeert als een SIP-client die werkt met een externe SIP-server die autorisatie vereist voor "SIP INVITE"-verzoeken, dan zal dit veld worden gebruikt voor autorisatie in de "SIP INVITE"-berichten die onze Asterisk naar de externe SIP-server zal sturen . En ook, voor peers die zich registreren op onze Asterisk-server, als deze gebruikersnaam wordt gebruikt in INVITE-berichten, zolang deze op de server is geregistreerd.videosupport: Waarden: ja/nee, standaard: ja. Optie om SIP-video-ondersteuning in te schakelen. Mogelijk moet u video-ondersteuning inschakelen voor een specifieke SIP-client als deze bijvoorbeeld is uitgeschakeld in het globale deel van de configuratie en u deze selectief alleen voor specifieke gebruikers wilt inschakelen: vanaf versie 1.4.x. Zie voor dit doel sip.conf (alleen peer-type).

Let op: Asterisk ondersteunt (nog) geen SIP over TCP-transport. Alleen ondersteund via UDP-protocol. Voor Grandstream-telefoons: stel de parameter dtmfmode=info in, en voor GXP2000 gebruikt dtmfmode=inband Asterisk de inkomende stream als timingbron voor het verzenden van de uitgaande stream. Als de inkomende stream wordt onderbroken vanwege de stilteonderdrukkingsfunctie, zal de kwaliteit van de muziekonhold zeer slecht zijn. Hierdoor kunt u de stilte-onderdrukkingsfunctie niet gebruiken. Zorg ervoor dat IEDEREEN SIP-telefoons Stilte-onderdrukking is uitgeschakeld. Voorbeelden Elke SIP-client die met Asterisk moet werken, moet worden gedefinieerd in het SIP.CONF-bestand. Hieronder staan ​​een paar voorbeelden:


type=vriend; kan zijn: "vriend" (dit is: peer+gebruiker), "peer" of "gebruiker"
context=van-slokje
gebruikersnaam=grandstream1; meestal valt deze parameter samen met de sectienaam -
vangebruiker=grandstream1; wijst callerid opnieuw toe, bijvoorbeeld
; kan nodig zijn voor het doorsturen van oproepen - DSN
callerid=John Doe
gastheer=192.168.0.23; We gebruiken een statisch maar intranet IP-adres
nat=nee; Er is geen IP-adresvertaling (NAT) tussen onze telefoon en Asterisk
kanopnieuw uitnodigen=ja; dwingt al het RTP-spraakverkeer via Asterisk
dtmfmode=info; kan zowel INBAND als INFO zijn, bijvoorbeeld voor BudgeTone-telefoons
mailbox=1234@standaard; klant heeft voicebox 1234 in voiceboxcontext: "default"
niet toestaan=alles; u moet disallow=al instellen voordat u de parameter allow= gebruikt
toestaan=ulaw ; Let op: in de clientsecties de volgorde waarin de codec wordt geselecteerd
; beschreven in de allow= parameter heeft geen betekenis!
;toestaan=alaw
;toestaan=g723.1 ; Asterisk ondersteunt de g723.1-codec alleen in pass-thru-modus!
;toestaan=g729 ; Alleen in Pass-thru-modus, als u geen licentie hebt om de g729-codec te gebruiken


Schakel de stilte-onderdrukkingsfunctie in de X-Lite-client uit ("Transmit Silence"=YES)!
;Merk op dat Xlite zelf NAT keep-alive-pakketten verzendt, dus er is geen noodzaak voor kwalificeren=ja.
type=vriend
gebruikersnaam=xlite1
callerid = "Jane Smith"
gastheer=dynamisch
nat=ja; de X-Lite-client bevindt zich achter een router met IP-adresvertaling (NAT)
kan opnieuw uitnodigen = nee; Meestal ingesteld op "NEE" als de client zich achter NAT bevindt
niet toestaan=alles
toestaan=gsm; De GSM-codec vereist veel minder bandbreedte, dus ulaw.
toestaan=ulaw
toestaan ​​= alaw


type=vriend
geheim = bla
gastheer=dynamisch
dtmfmode=inband; Je kunt kiezen uit: inband, rfc2833 of info
standaardip=192.168.0.59
postbus=1234,2345; Stembox om de indicator "nieuwe berichten ontvangen" te laten werken
niet toestaan=alles
toestaan=ulaw ; als de modus voor dtmf is ingesteld op "inband",
toestaan=alaw ; dan moeten we alleen de g.711-codec gebruiken


type=vriend
gebruikersnaam=gebruiker2_pingtel
geheim = bla
gastheer=dynamisch
kwalificeren=1000; Wij beschouwen de opdrachtgever als niet-werkend,
; als het antwoord van hem langer dan 1 seconde duurt.
oproepgroep=1,3-4; De client is lid van belgroepen: 1, 3 en 4
ophaalgroep=1,3-4; We kunnen "opnemen"-gesprekken voeren door op *8 te drukken,
; voor oproepen uit groep 1, 3 en 4
standaardip=192.168.0.60
niet toestaan=alles
toestaan=ulaw
toestaan ​​= alaw
toestaan=g729

Type=vriend
gebruikersnaam=gebruiker3_cisco
geheim = bla
nat=ja; Deze telefoon bevindt zich achter een router met NAT
gastheer=dynamisch
kan opnieuw uitnodigen = nee; Cisco-apparaten lopen soms vast
; na een bepaald aantal heruitnodigingsverzoeken
kwalificeren=200; Wij beschouwen het feest als niet-werkend,
; als de reactie ervan langer duurt dan 200 ms
standaardip=192.168.0.4
niet toestaan=alles
toestaan=ulaw
toestaan ​​= alaw
toestaan=g729


type=vriend

Gebruikersnaam=user4_cisco
fromuser=markster ; Definieer de gebruikersnaam die in het veld "van" moet worden geplaatst in plaats van callerid
geheim = bla
standaardip=192.168.0.4; gebruik host=dynamic of defaultip=...
amaflags=standaard; Kan zijn: standaard, weglaten, facturering, documentatie
accountcode=markster ; Om de facturering te vereenvoudigen, wordt de gebruiker gekoppeld aan een accountcode.
niet toestaan=alles
toestaan=ulaw
toestaan ​​= alaw
toestaan=g729
toestaan=g723.1

De onderstaande beschrijving is afkomstig uit het Digium Asterisk-handboek.

Nadat u deze SIP-accounts voor uw clients in het bestand SIP.conf heeft gedefinieerd, hebben deze clients de mogelijkheid om zich op de asterisk-server te registreren en uitgaande gesprekken te voeren. Om ervoor te zorgen dat ze oproepen kunnen ontvangen, moet u de extensies voor hen beschrijven in uw belplanbestand. Voorbeeld:

Exten => 1010,1, Kiezen(SIP/user3_cisco,10,t)

Als iemand 1010 belt, wordt geprobeerd de SIP-client te bellen die is geregistreerd als user3_cisco.

Opmerkingen De variabele $(VXML_URL) kan worden gebruikt om toe te voegen extra element in de SIP-berichtkop "Aan:". De waarde van deze variabele wordt, gescheiden door puntkomma's, toegevoegd aan het einde van de kop 'Aan:' van het SIP-bericht. Houd er rekening mee dat de vorige beschrijving van het gebruik van deze functie onjuist was; het gebruik van deze variabele heeft geen effect bij het downloaden van berichten naar een Cisco 7960-telefoon (iets dat momenteel is uitgeschakeld in de SIP-firmware van Cisco-telefoons). Dit probleem wordt beschreven in: e-mail van de auteur De variabele $(ALERT_INFO) kan worden gebruikt om een ​​nieuwe header te maken met de naam "Alert-Info:" die kan worden gebruikt om een ​​specifiek beltype op te geven op Cisco SIP-telefoons met firmwareversie 6.0 of hoger. Voor telefoons kan de ALERT_INFO variabele de volgende waarden aannemen om een ​​specifieke ingebouwde beltoon in te stellen: - Bellcore-BusyVerify
- Bellcore-Stutter
- Bellcore-MsgWaiting
- Bellcore-dr1
- Bellcore-dr2
- Bellcore-dr3
- Bellcore-dr4
- Bellcore-dr5
Op dit moment is er geen manier om een ​​ander gesprek te definiëren; u kunt alleen opties selecteren om een ​​gesprek af te spelen. Je moet heel goed luisteren om te zien dat de beltonen op de een of andere manier echt anders zijn. Er is een bugrapport voor Cisco: Cisco bug-ID CSCec42938, waarin wordt voorgesteld om de mogelijkheid om oproepsignalen te selecteren te voltooien. Voorbeeld 1 John Todd, loligo.com: http://www.loligo.com/asterisk/current/sip.conf. Verbinding met Free World Dialup (zonder met behulp van NAT) [algemeen]
niet toestaan=alles
toestaan=gsm
toestaan=ulaw
toestaan ​​= alaw
context=van-slokje
maxexpirey=180
standaardvervaldatum=160
tos=betrouwbaarheid
registreer =>: @fwd.pulver.com/CONTACT

[fwd.pulver.com]
type=vriend
geheim=
gebruikersnaam=
host=fwd.pulver.com
onzeker=zeer ; vereist om inkomende DSN-oproepen te ondersteunen

Laten we nu naar de bestandsbeschrijving gaan en kijken hoe we contexten kunnen configureren in termen van bellen.

Voorbeeld 2 Asterisk gebruiken in combinatie met SIP-proxy SER [algemeen]
context=UITGAAND
autocreatepeer=ja

[Aanbieder]
type=vriend
gebruikersnaam=XXXXX
geheim=XXXX
host=xxxxx.FakeProvider.com

Dus wanneer Asterisk nu een oproep ontvangt met SER, voert het de actie "autocreatepeer" uit en staat toe dat de oproep wordt verwerkt in de UITGAANDE context.

Sip.conf beheren van externe bronnen: gebruik het RealTime-mechanisme voor SIP-kanalen. Net als in andere .conf-bestanden kan de #include-richtlijn worden gebruikt om een ​​ander bestand op te nemen in de sip.conf-configuratie verschillende versies: Extra functies toegevoegd vanaf versie 0.7.2 23-01-2004: CLI-opdracht "sip reload" toegevoegd om het sip-kanaal opnieuw op te starten, zodat de wijzigingen in het bestand sip.conf van kracht worden, zonder de Asterisk-server opnieuw op te starten. 25-01-2004: Ondersteuning voor het opslaan van SIP-peerdefinities in de database. Het opslaan van de configuratie in de database was op dit moment nog niet volledig geïmplementeerd, maar het werkt. Zie: 2004-06: Ondersteuning voor het opslaan van SIP-gebruikersdefinities in een database.

Asterisk is een open source computertelefonieoplossing broncode, dat VoIP-, SIP- en PJSIP-protocollen ondersteunt voor het Linux-besturingssysteem. Als u de juiste apparatuur op uw computer aansluit, kunt u met Asterisk een volwaardig ATC-station creëren. Tot de belangrijkste kenmerken van het programma behoren voicemail, conferenties, interactief spraakmenu en oproepverdeling.

In dit artikel zullen we bekijken hoe je Asterisk 13 op Ubuntu 16.04 installeert. Meest nieuwe versie het programma staat niet in de officiële repositories, omdat het niet zo vaak door gewone gebruikers wordt gebruikt, dus we zullen het vanaf de broncode moeten compileren.

Sterretje installeren op Ubuntu 16.04

Om vanuit bronnen te bouwen, zullen we de meeste acties namens de supergebruiker moeten uitvoeren, dus we zullen het meteen krijgen volledige rechten in het systeem:

Houd er rekening mee dat als u via ssh als root inlogt op uw server, u nog steeds verbinding moet maken als regelmatige gebruiker en schakel dan pas over naar de rootconsole. Vervolgens moet u afhankelijkheden installeren om het programma te laten werken:

apt-get install build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev git subversion

cd /usr/src
$ wget downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Om de bronnen uit te pakken, typt u:

tar zxvf asterisk-13-current.tar.gz

Voordat we het programma compileren, moeten we pjproject bouwen en installeren. Download eerst de bronnen:

git kloon git://github.com/asterisk/pjproject pjproject
$ cd pjproject
$ ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS="-O2 -DNDEBUG"
$ make dep make && make install
$ldconfig
$ ldconfig -p|grep pj

Eindelijk zijn we nu klaar om Asterisk op Ubuntu 16.04 te bouwen en te installeren:

cd .. contrib/scripts/get_mp3_source.sh
$ contrib/scripts/install_prereq install

Met deze opdrachten kunt u enkele afhankelijkheden installeren voor het afspelen van mp3. Het kan enige tijd duren voordat dit is voltooid en u moet ook een landcode invoeren. Vervolgens beginnen we met de montage:

./configure && make menuselecteer && make && make install

Wanneer de installatie is voltooid, voert u de volgende opdracht uit om te voorkomen dat u honderden configuratiebestanden handmatig aanmaakt:

Om init-scripts te installeren waarmee asterisk automatisch kan worden gestart, voert u het volgende uit:

maak configuratie ldconfig

Nu kunt u de asterisk-server starten en ervoor zorgen dat alles echt werkt:

service sterretje beginnen

En bekijk de informatie over het hulpprogramma via de terminal:

Als alles correct is gedaan en de installatie van Asterisk op Ubuntu 16.04 succesvol is geweest, zal alles werken.

Asterisk instellen op Ubuntu 16.04

Het programma draait als superuser. Maar we hebben het nodig om als asterisk-gebruiker te kunnen werken, dus we moeten nog een paar instellingen doen. Op deze manier wordt uw systeem veiliger. Eerst moet u de actieve service stoppen:

groepvoeg sterretje toe
$ useradd -d /var/lib/asterisk -g sterretje sterretje

Vervolgens moeten we het initialisatiescript wijzigen zodat het programma als de gewenste gebruiker wordt gestart. We kunnen het bestand /etc/default/asterisk handmatig bewerken, maar het is gemakkelijker om de volgende opdrachten te gebruiken:

sed -i "s/#AST_USER="asterisk"/AST_USER="asterisk"/g" /etc/default/asterisk
$ sed -i "s/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/g" /etc/default/asterisk

Om alles correct te laten werken, moet de asterisk-gebruiker toegang krijgen tot alle programmamappen:

chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/(lib,log,spool)/asterisk /usr/lib/asterisk

Wij zullen dit ook aangeven juiste instellingen user voor de velden runuser en rungroup in het bestand asterisk.conf:

sed -i "s/;runuser = asterisk/runuser = asterisk/g" /etc/asterisk/asterisk.conf

$ sed -i "s/;rungroup = asterisk/rungroup = asterisk/g" /etc/asterisk/asterisk.conf

Wanneer alles klaar is, start u de eerder gestopte service of start u opnieuw op als u deze nog niet hebt gestopt:

sudo service asterisk start

Vervolgens controleren wij:

Als de gebruiker en de groep een asterisk zijn, hebben we alles goed gedaan.

Conclusies

Dat is het. De installatie van Asterisk 13 op Ubuntu 16.04 is voltooid. Nu kunt u doorgaan met het verder instellen van het netwerk, zodat u rechtstreeks via internet kunt bellen tussen uw abonnees. Als clientsoftware kunt u elk programma gebruiken dat dit ondersteunt noodzakelijke protocollen, zoals Jitsi of Linphone.

Over de auteur

Oprichter en sitebeheerder, gepassioneerd door open source software en besturingssystemen Linux-systeem. Ik gebruik momenteel Ubuntu als mijn belangrijkste besturingssysteem. Naast Linux ben ik geïnteresseerd in alles wat hiermee te maken heeft informatietechnologie en moderne wetenschap.

Dit artikel is een opmerking voor het geval ik moet onthouden hoe ik Asterisk moet configureren om oproepen te ontvangen en te verzenden. Deze opmerking zou voldoende moeten zijn om een ​​kantoorstation op IP te configureren pbx sterretje. Tot nu toe had ik geen goed idee of ervaring met hoe ik Asterisk moest configureren om te werken zonder FreePbx te gebruiken, dat wil zeggen met alleen configuratiebestanden en de console. En nu leer ik dit pas. Op internet komen alle instellingen neer op het oplossen van een of ander probleem, maar ik heb geen artikel gezien dat op zijn minst een basis kon bieden voor een minimale configuratie van een IP-station. Misschien heb ik niet goed gezocht.

Dus heb ik asterisk gecompileerd en geïnstalleerd in de map /etc/asterisk met veel configuratiebestanden. Wat is het volgende?

1. De mogelijkheid voor interne deelnemers om met elkaar te bellen

2. Externe lijnen instellen zodat het station toegang krijgt tot stads- en interlokale nummers en inkomende oproepen kan ontvangen

3. Het opzetten van de mogelijkheid om te bellen naar abonnees naar stads- en interlokale nummers. En neem oproepen aan vanuit de stad.

Hier zijn drie hoofdtaken die natuurlijk moeten worden opgelost; het schema kan anders zijn. Dat wil zeggen dat abonnees in groepen kunnen worden verenigd, er kunnen meerdere externe telecomoperatoren zijn, een inkomende oproep kan naar een antwoordapparaat, een wachtrij of misschien beide worden gestuurd. Het dienstenstelsel kan variëren en complexer worden, maar aan de eerste drie voorwaarden zal in ieder geval worden voldaan.

Daarom is het eerste dat we doen interne abonnees (peers) aanmaken in het bestand sip.conf

Abonnee A heeft de volgende instellingen:

Niet toestaan=alles
toestaan=ulaw
toestaan ​​= alaw
type=vriend
gebruikersnaam=101
geheim=wachtwoord
in aanmerking komen = ja
context=101
callerid = 101
gastheer=dynamisch
bellimiet=1
kan opnieuw uitnodigen = ja
accountcode=101
amaflags=facturering
ontkennen=0.0.0.0/0
vergunning=192.168.0.66

Waar:
disallow=all , verbied het gebruik van alle codecs behalve G.711
toestaan=ulaw
toestaan ​​= alaw

type=friend, deze parameter kan drie waarden aannemen:

- gelijke, dit type wordt gebruikt voor inkomende en uitgaande oproepen. Bij inkomende oproepen worden nooit de gebruikersnaam en het wachtwoord gecontroleerd, maar alleen het IP-adres en poortnummer van de oproepbron.

- gebruiker een vermelding die alleen inkomende oproepen kan plaatsen

- vriend een item dat zowel peer als gebruiker is
gebruikersnaam=101
geheim=wachtwoord
Login en wachtwoord respectievelijk

Stuur periodiek een SIP-bericht van het type Opties om de monitoring van de beschikbaarheid van apparaten voor registratie te controleren, handig bij het werken via NAT om waarden op te slaan in de vertaaltabel

Contextnaam, met routeringsregels

Beller-ID van ons nummer

gastheer=dynamisch
host-ip van waaruit de registratie zal plaatsvinden

bellimiet=1
(oproepenteller)
Beperk gelijktijdige oproepen, hier kunt u het aantal kanalen instellen

kan opnieuw uitnodigen = ja
(directe media)

Deze parameter is verantwoordelijk voor de RE-Invite-procedure. Zo nee, dan gaan alle oproepen via Asterisk. Zo ja, dan wordt de RTP-stream verzonden tussen twee apparaten, waarbij Asterisk wordt omzeild

accountcode=101
amaflags=facturering

Het CDR-record voor het accountcodeveld heeft de waarde 101
De waarde van het AMA-vlagveld voor uitgaande oproepen van deze SIP-gebruiker

ontkennen=0.0.0.0/0
vergunning=192.168.0.66
ACL ip, wie we registratie zullen toestaan

Hetzelfde geldt voor abonnee B:

Niet toestaan=alles
toestaan=ulaw
toestaan ​​= alaw
type=vriend
gebruikersnaam=102
geheim=wachtwoord
in aanmerking komen = ja
context=102
callerid = 102
gastheer=dynamisch
bellimiet=1
kan opnieuw uitnodigen = ja
accountcode=102
amaflags=facturering
ontkennen=0.0.0.0/0
vergunning=192.168.0.67

Nog enkele opties in het feest die nuttig kunnen zijn:

transport=tcp,udp
Ik kan niet alleen werken met udp, het vereist in het algemeen de instelling tcpenable=yes
rtptime-out=180
rtpholdtimeout=420

Handig voor SIP-clients die niet ophangen wanneer ze gesloten zijn of de verbinding verbroken is. In dit geval kan de RTP-sessie zichzelf resetten door middel van een time-out, rtpholdtimeout - als het gesprek in de wacht staat

nat=force_rport,comedia

Als het apparaat achter NAT staat, repareren we het werk via rport, sturen we RTP-pakketten terug naar het IP-adres en de poort waarvandaan ze zijn ontvangen, waarbij we informatie van SDP negeren

standaardvervaldatum=60
Vervaltijd van registratie in seconden voor inkomende en uitgaande registraties

dtmfmode=rfc2833

Hoe we gaan werken met DTMF-signalen

1. Dus taak één, het instellen van routering tussen sip-clients 101 en 102, kan in de eenvoudigste versie worden opgelost met één regel in het sip.conf-bestand en het opnemen van configuraties


exten => _XXX,1,Kies(SIP/$(EXTEN),20,T)

Het is handig om sip.conf als volgt te gebruiken:

Inclusief => in_out_peer_local

Nu kan abonnee 101 communiceren met abonnee 102 en omgekeerd kan 102 101 bellen

2. Om de omstandigheden te creëren waaronder interne abonnees toegang kunnen krijgen tot externe lijnen, zullen we het station met dezelfde sip verbinden met de telecomoperator

Dat wil zeggen, we zullen een kofferbak maken
type=peer
gastheer=XX.XXX.XXX.XX
poort=5060
fromdomain=ip van ons station
nat=nee
niet toestaan=alles
toestaan=ulaw
toestaan ​​= alaw
toestaan=gsm
kan opnieuw uitnodigen = nee
;toestaan=g722
trustpid=ja
sendrpid=ja
dtmfmode=rfc2833
in aanmerking komen = ja
onveilig=uitnodigen,poort
ontkennen=0.0.0.0/0.0.0.0
vergunning=XX.XXX.XXX.XX/255.255.255.255
context=verstrekken

De trunkinstellingen lijken erg op de peer-instellingen, in principe is dit een peer, belangrijke opties
fromdomain – stel fromdomain in het sip-pakket in, zodat u begrijpt waar u sip-pakketten naar ons station moet retourneren
trustpid=ja
sendrpid=ja

Het wel of niet vertrouwen van de ontvangen Remote-Party-ID

onveilig=uitnodigen,poort

We vereisen geen authenticatie van inkomende INVITE-berichten, we controleren het poortnummer niet alleen op naleving van het IP-adres

3. Het is slechts een kwestie van kleine dingen: zodra de trunk is geactiveerd, moet u de uitgaande routering registreren om te kunnen bellen naar abonnees A en B
De de facto standaard lijkt te zeggen dat je altijd eerst de uitgaande communicatie moet opzetten

Een context creëren voor het voeren van uitgaande gesprekken

Voor uitgaande gesprekken naar de stad


exten => _XXXXXX,1,Dial(SIP/ provider /$(EXTEN))
exten => _XXXXXX,n,Ophangen

Voor uitgaande gesprekken naar verre bestemmingen


exten => _8.,1,Dial(SIP/ provider /$(EXTEN))
exten => _8.,n,Ophangen

Nadat de uitgaande verbinding werkt, zetten we de inkomende verbinding op

In een eenvoudig geval zonder autoinformer, groepen en wachtrijen zal het er zo uitzien


exten => 2466754,1,Dial(SIP/$(EXTEN))
exten => 2466754,n,Ophangen

Elk station kan op dezelfde manier worden geconfigureerd volgens de hierboven besproken principes.