Назначение:Выполнить команду операционной системы (Unix shell команду)
Описание:System(command)
Выполняет команду операционной системы, используя системный вызов system().
Команда System() передает строку аргументов в неизменном виде для системного вызова system(3). Почитайте "man 3 system", где вы найдете, что можно делать, используя system(3):
system() выполняет команду ОС, заданную в качестве аргумента, вызывая шелл
/bin/sh -c command, и происходит вызов из system, когда вызываемая
программа закончит работу.
Следовательно, может использоваться вызов: System(command arg1 arg2 ит.д.) для передачи, вызываемой команде, аргументов.
Коды возвратаВозвращает -1 в случае неудачного выполнения заданной команды. Если во время выполнения команды возникла ошибка и существует команда с приоритетом n + 101, где 'n' приоритет текущей команды, тогда выполнение команд будет продолжено с этого приоритета. В остальных случаях возвращает 0.
Пример 1
Код |
---|
exten => s,1,system(echo "${DATETIME} - ${CALLERID} - ${CHANNEL}" >> /var/log/asterisk/calls) |
Пример 2 ;
dial 700 = перезагрузка Asterisk
Код |
---|
exten => 700,1,Playback(posix-restarting) ; "Restarting asterisk"
exten => 700,2,Wait(1)
exten => 700,3,System(/usr/sbin/asterisk -rx reload)
exten => 700,4,Hangup |
Пример 3
Пример анонса о поступившем вызове с использованием WinPopup
Код |
---|
exten => 200,1,NoOp(${CALLERID} ${DATETIME})
exten => 200,2,System(/bin/echo -e "'Incoming Call From: ${CALLERID} \\r Received: ${DATETIME}'"|/usr/bin/smbclient -M target_netbiosname)
exten => 200,3,Dial,sip/sipuser|30|t
exten => 200,4,Congestion
|
Пример 4; Печать информации о вызове на принтер, подключенный к ttyS1
Код |
---|
exten => 200,1,NoOp(${CALLERID} ${DATETIME})
exten => 200,2,System(/bin/echo "'${CALLERID} ${DATETIME}'" > /dev/ttyS1)
exten => 200,3,Dial,sip/sipuser|30|t
exten => 200,4,Congestion |