Wermescher Advisory Logo

Asterisk AMI Interface

Inhaltsverzeichnis

Der Asterisk Manager ist ein Client/Server-Modell über TCP am Port 5038. Mit dem Asterisk Manager Interface (AMI) kannst Du die Asterisk Telefonanlage steuern, Anrufe tätigen, den Mailbox-Status prüfen, Kanäle und Warteschlangen überwachen sowie Asterisk-Befehle ausführen. Alternativ dazu kannst Du AGI verwenden um einem entfernten Prozess die Ausführung von Dialplan-Anwendungen zu ermöglichen oder das Asterisk RESTful Interface (ARI) verwenden um beides via REST zu machen.

Konfiguration

Am Asterisk Server musst Du das /etc/asterisk/manager.conf File entsprechend bearbeiten:

nano /etc/asterisk/manager.conf
[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1
webenabled = no

Durch die bindaddr stellen wir sicher, dass der AMI ausschließlich von lokalen Scripts angesteuert werden kann. Keine Internetapp oder Hacker können von außerhalb auf Deinen Server üer AMI zugreifen!

Weiters musst Du im manager.conf File einen AMI Benutzer anlegen. Hier habe ich folgende Daten verwendet:

  • Benutzername: deleteme
  • Passwort: secretForDemo4711

Den Zugang habe ich nur von dem lokalen Asterisk Server erlaubt (siehe deny und permit)

[deleteme]
secret=secretForDemo4711
deny=0.0.0.0/0.0.0.0        ; deny all IP/netmask
permit=127.0.0.1/255.255.255.0  ; permit only from localhost
read=all     ; Receive all types of events
write=all     ; Allow this user to execute all actions
;read = system,call,log,verbose,command,agent,user,originate
;write = system,call,log,verbose,command,agent,user,originate

Last but not least muss die Asterisk Konfiguration neu geladen werden:

service asterisk reload

Testen

Testen kann man das nun indem man auf dem Asterisk server eine Telnet session auf den AMI Port macht:

telnet 127.0.0.1 5038

Und die Kommandos einfach in das Terminal pasted:

Action: Login
ActionID: 1
Username: deleteme
Secret: secretForDemo4711

Danach drücke 2 x die RETURN Taste.

Nun bist Du in der AMI session.

Um diese zu verlassen gibst Du folgendes ein:

Action: Logoff

Und auch hier drückst Du 2 x die RETURN Taste.

Beispiel – Alle peers anzeigen

Willst Du e.g. ein Kommando absetzen so kannst Du das in einem tun:

telnet 127.0.0.1 5038

und dann pastest DU folgendes ins Terminal:

Action: Login
ActionID: 1
Username: deleteme
Secret: secretForDemo4711

Action: Command
Command: sip show peers

Action: Logoff

Und auch hier drückst Du 2 x die RETURN Taste.

Beispiel – Einen Anruf veranlassen

In folgendem Beispiel wird das SIP-Phone 5100 angerufen. Wenn dies abhebt (leg 1), wird die extension 800 gewählt (leg 2) und beide legs verbunden:

telnet 127.0.0.1 5038

und dann pastest DU folgendes ins Terminal:

Action: Login
ActionID: 1
Username: deleteme
Secret: secretForDemo4711

Action:Originate
Channel:SIP/5100
Context:phones
Exten:800
Priority: 1

Action: Logoff

Beispiel – Aktive Kanäle bzw. aktive Calls

Im folgenden Beispiel sehen wir alle aktiven Kanäle bzw. Anrufe:

telnet 127.0.0.1 5038

und dann pastest DU folgendes ins Terminal:

Action: Login
ActionID: 1
Username: deleteme
Secret: secretForDemo4711

Action: Command
Command: core show channels

Action: Logoff

Teilen:
Weitere Posts
Windows Core Prozesse verstehen

SMSS.EXE Die Aufgabe des SMSS.exe-Prozesses ist es, neue Sitzungen zu erstellen. Zuerst werden Session 0 und Session 1 erstellt, sobald das Betriebssystem startet. Sitzung 0

Release Update auf Contabo

Erzeuge einen Snapshot Einloggen auf: https://my.contabo.com/account/login Klick auf Ihre Dienste und suche nach der korrekten IP Adresse Klick auf Verwalten – Steuerung Erzeuge einen Snapshot

Wie sichere ich meinen SSH-Server unter Linux

Normalerweise wird SSH verwendet, um sicher auf Linux-Server zuzugreifen. Durch Benutzer manuell oder auch durch automatisierte Systeme wie Ansible. Die meisten Benutzer verwenden SSH-Verbindungen mit

Sende uns eine Nachricht