asterisk
Ansteuerung einer Asterisk Telefonanlage
Anforderungen
…
Notwendige Software
Für den Betrieb wird vorausgesetzt das eine Version von Asterisk installiert ist und der entsprechende Daemon läuft.
Es ist ebenfalls notwendig, das das Asterisk Manager Interface (AMI) installiert und funktionell ist.
In der manager.config
muss mindestens
read = system,call,user,cdr
und write = system,call,orginate
eingerichtet sein.
Unterstützte Geräte
<Hier werden unterstützte Geräte beschrieben. Falls keine keine speziell zu beschreibenden Geräte unterstützt werden, kann dieser Abschnitt entfallen.>
Konfiguration
Die Plugin Parameter und die Informationen zur Item-spezifischen Konfiguration des Plugins sind unter Plugin ‚asterisk‘ Konfiguration beschrieben.
plugin.yaml
Zu den Informationen, welche Parameter in der ../etc/plugin.yaml konfiguriert werden können bzw. müssen, bitte bitte die Dokumentation Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde (siehe oben).
<Hier können bei Bedarf ausführliche Beschreibungen zu den Parametern dokumentiert werden.>
items.yaml
Zu den Informationen, welche Attribute in der Item Konfiguration verwendet werden können bzw. müssen, bitte bitte die Dokumentation Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde (siehe oben).
buero:
telefon:
type: bool
ast_dev: 2222
ast_db: active/buero
box:
type: num
ast_box: 22
Bei einem Anruf bei 2222
von einem SIP client oder
bei Anruf von dem entsprechenden Gerät wird das Item buero.telefon
auf True
gesetzt.
Wird der Anruf beendet, so wird das Item buero.telefon
auf False
gesetzt.
ast_dev
Dieses keyword kann bei einem Item mit Typ Bool verwendet werden.
Der Parameter für dieses keyword ist ein String, der identisch zu einer Gerätebenennung in der sip.conf ist.
Im unteren Beispiel also device22
:
[device22]
secret=very
context=internal
ast_db
Gibt den Databank Eintrag an der bei einer Item Änderung aktualisiert wird
ast_box
Hier wird die Mailbox Nummer des Telefones eingegeben. Die Anzahl der neuen Nachrichten wird dann an dieses Item übermittelt logic.yaml ———-
Zu den Informationen, welche Konfigurationsmöglichkeiten für Logiken bestehen, bitte bitte die Dokumentation Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde (siehe oben).
Beispiel für eine Logik:
..code:: yaml
- logic1:
ast_userevent: Call
- logic2:
ast_userevent: Action
Für jede Logik kann in der logic.yaml
das keyword ast_userevent
angegeben werden.
In der Asterisk extensions.conf
muss dann angegeben werden
exten => _X.,n,UserEvent(Call,Source: ${CALLERID(num)},Value: ${CALLERID(name)})
Damit würde die logic1
jedesmal getriggert, wenn das UserEvent geschickt wird.
A specified destination for the logic will be triggered e.g.
exten => _X.,n,UserEvent(Call,Source: ${CALLERID(num)},Destination: Office,Value: ${CALLERID(name)})
Funktionen
Zu den Informationen, welche Funktionen das Plugin bereitstellt (z.B. zur Nutzung in Logiken), bitte bitte die Dokumentation Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde (siehe oben).
call(source, dest, context, callerid=None)
sh.ast.call('SIP/200', '240', 'door')
würde einen Anruf von der SIP extension 200
zur extention 240
starten mit dem door
context.
Optional kann eine callerid mit angegeben werden
db_write(key, value)
sh.ast.db_write('dnd/office', 1)
würde den Asterisk Datenbank Eintrag dnd/office
auf 1
setzen
db_read(key)
dnd = sh.ast.db_read('dnd/office')
würde dnd
auf den Wert des Asterisk Datenbank Eintrages dnd/office
setzen.
mailbox_count(mailbox, context=‘default‘)
mbc = sh.ast.mailbox_count('2222')
würde mbc
auf ein Wertetupel (old_messages, new_messages)
setzen.
hangup(device)
sh.ast.hangup('30')
would close all connections from or to the device 30
.