Asterisk:calendar.conf

Конфигурационный файл модуля res_calendar.
API службы календаря Asterisk, это интерфейс для интеграции с внешними серверами календарей. Позволяет читать и записывать события сервера и выполнять на основании полученной информации запланированные действия через диалплан Asterisk.

Поддерживаются следующие сервера календарей:

Calendar Server Support Module Name
iCalenda res_calendar_icalendar.so
CalDAV res_calender_caldav.so
Microsoft Exchange Server res_calendar_exchange.so
Microsoft Exchange Web Services res_calendar_ews.so

Приступая к работе убедитесь, что нужный модуль скомпилирован в Asterisk:

*CLI> module show like calendar
Module                         Description                              Use Count  Status      Support Level
res_calendar.so                Asterisk Calendar integration            0          Not Running          core
res_calendar_ews.so            Asterisk MS Exchange Web Service Calenda 0          Not Running          core

В приведенном примере, мы видим, что только один из 4-х доступных модулей загружен. В этом случае придется скомпилировать недостающие модули, а также установить их зависимости, если требуется:

./configure
make menuselect
              XXX res_calendar_caldav
              [*] res_calendar_ews
              XXX res_calendar_exchange
              XXX res_calendar_icalendar

         Asterisk CalDAV Calendar Integration
        Depends on: neon(E), ical(E), libxml2(E)

В данном примере, под Centos 7 для компиляции модуля res_calendar_caldav не хватало пакета libical (libical-devel).

s*CLI> module show like calendar
Module                         Description                              Use Count  Status      Support Level
res_calendar.so                Asterisk Calendar integration            0          Running          core
res_calendar_caldav.so         Asterisk CalDAV Calendar Integration     0          Running          core
res_calendar_ews.so            Asterisk MS Exchange Web Service Calenda 0          Running          core
res_calendar_icalendar.so      Asterisk iCalendar .ics file integration 0          Running          core
4 modules loaded

Далее можно приступать к конфигурации службы в файле /etc/asterisk/calendar.conf.
Рассмотрим конфигурацию на примере календаря google.

[calendar_google]
type = caldav            ;  тип календаря, поддерживаются: ical, caldav, exchange, or ews
url = https://www.google.com/calendar/dav/username@gmail.com/events/  ; GMail календарь (слэш в конце обязателен)
user = jdoe@gmail.com    ; имя пользователя
secret = mysecret        ; пароль
refresh = 15             ; обновление каждые 15 минут
timeframe = 60           ; за какой период календаря учитывать обновление (в минутах)
                         ; should always be >= refresh


autoreminder = 10        ; Повторить оповещение через заданный период (в минутах), если было занято.

channel = PJSIP/1234     ; Вызываемый канал (номер)
context = default        ; Контекст для ответа 
extension = s            ; расширение в контексте для ответа

; или вызвать приложение, когда адресат оповещения ответил на вызов.

app = Playback          ; Приложение выполняемое по ответу (вместо context/extension)
appdata = tt-weasels    ; данные (аргумент) приложения

waittime = 30            ; Время ожидания ответа
;[calendar1]
;type = ical              ;  type of calendar--currently supported: ical, caldav, exchange, or ews
;url = https://example.com/home/jdoe/Calendar/   ; URL to shared calendar (Zimbra example)
;user = jdoe              ; web username
;secret = supersecret     ; web password
;refresh = 15             ; refresh calendar every n minutes
;timeframe = 60           ; number of minutes of calendar data to pull for each refresh period
;                         ; should always be >= refresh
;
; You can set up res_calendar to execute a call upon an upcoming busy status
; The following fields are available from the ${CALENDAR_EVENT(<field>)} dialplan function:
;
; summary     : The VEVENT Summary property or Exchange subject
; description : The text description of the vent
; organizer   : The organizer of the event
; location    : The location field of the event
; calendar    : The name of the calendar tied to the event
; uid         : The unique ID for this event
; start       : Start time of the event
; end         : The end time of the event
; busystate   : 0=FREE, 1=TENTATIVE, 2=BUSY
;
;autoreminder = 10        ; Override event-defined reminder before each busy status (in mins)
;
;channel = SIP/60001      ; Channel to dial
;context = default        ; Context to connect to on answer
;extension = 123          ; Extension to connect to on answer
;
; or
;
;app = Playback          ; Application to execute on answer (instead of context/extension)
;appdata = tt-weasels    ; Data part of application to execute on answer
;
;waittime = 30            ; How long to wait for an answer, defaults to 30 seconds
;
; Channel variables can be set on the notification channel. The format is
; setvar=name=value. Variable subsitution is done on the value to allow the use of dialplan
; functions like CALENDAR_EVENT. The variables are set in order, so one can use the value
; of earlier variables in the definition of later ones.
;
;setvar = CALLERID(name)=${CALENDAR_EVENT(summary)}

;[calendar2]
; Note: Support for Exchange Server 2003 
;
;type = exchange          ;  type of calendar--currently supported: ical, caldav, exchange, or ews
;url = https://example.com/exchange/jdoe   ; URL to MS Exchange OWA for user (usually includes exchange/user)
;user = jdoe              ; Exchange username
;secret = mysecret        ; Exchange password
;refresh = 15             ; refresh calendar every n minutes
;timeframe = 60           ; number of minutes of calendar data to pull for each refresh period
;                         ; should always be >= refresh
;
; You can set up res_calendar to execute a call upon an upcoming busy status
;autoreminder = 10        ; Override event-defined reminder before each busy status (in mins)
;
;channel = SIP/1234       ; Channel to dial
;context = default        ; Context to connect to on answer
;extension = 1234         ; Extension to connect to on answer
;
; or
;
;[calendar3]
; Note: Support for Exchange Server 2007+
;
;type = ews               ; type of calendar--currently supported: ical, caldav, exchange, or ews
;url = https://example.com/ews/Exchange.asmx ; URL to MS Exchange EWS
;user = jdoe              ; Exchange username
;secret = mysecret        ; Exchange password
;refresh = 15             ; refresh calendar every n minutes
;timeframe = 60           ; number of minutes of calendar data to pull for each refresh period
;                         ; should always be >= refresh
;
; You can set up res_calendar to execute a call upon an upcoming busy status
;autoreminder = 10        ; Override event-defined reminder before each busy status (in mins)
;
;channel = SIP/1234       ; Channel to dial
;context = default        ; Context to connect to on answer
;extension = 1234         ; Extension to connect to on answer
;
; or
;
;app = Playback          ; Application to execute on answer (instead of context/extension)
;appdata = tt-weasels    ; Data part of application to execute on answer
;
;waittime = 30            ; How long to wait for an answer, defaults to 30 seconds

;[calendar4]
;type = caldav            ;  type of calendar--currently supported: ical, caldav, exchange, or ews
;url = https://www.google.com/calendar/dav/username@gmail.com/events/  ; Main GMail calendar (the trailing slash is significant!)
;user = jdoe@gmail.com    ; username
;secret = mysecret        ; password
;refresh = 15             ; refresh calendar every n minutes
;timeframe = 60           ; number of minutes of calendar data to pull for each refresh period
;                         ; should always be >= refresh
;
; You can set up res_calendar to execute a call upon an upcoming busy status
;autoreminder = 10        ; Override event-defined reminder before each busy status (in mins)
;
;channel = SIP/1234       ; Channel to dial
;context = default        ; Context to connect to on answer
;extension = 1234         ; Extension to connect to on answer
;
; or
;
;app = Playback          ; Application to execute on answer (instead of context/extension)
;appdata = tt-weasels    ; Data part of application to execute on answer
;
;waittime = 30            ; How long to wait for an answer, defaults to 30 seconds

Файлы конфигурации Asterisk

  • asterisk/cf/calendar.conf.txt
  • Последние изменения: 2018/03/12