# wget ftp://www.communigate.com/pub/CommuniGatePro/6.1/CGatePro-Linux-Intel-616.tgz
# tar -xvf CGatePro-Linux-Intel.tgz
=== Запуск из командной строки ===
* [[Сервис NTP#Локализация временной зоны]]
# CGateProSoftware/CommuniGate/CGServer-static --Base /var/CommuniGate --LogAll
=== Автоматический запуск ===
* [[Управление сервисами в Linux#Пример файла конфигурации для запуска/остановки сервиса]]
# service communigate start
# cat /var/CommuniGate/ProcessID
=== Первоначальная настройка ===
* [[http://mail.corpX.un:8010]]
Postmaster Password: xxxxxx
Main Domain Name: corpX.un
Time Zone: Europa/Moscow
Interface: Expert
# cat /var/CommuniGate/Settings/Main.settings
Users->Account Defaults->Mail Settings->Mailbox Storage->New Mailbox Format: Sliced
# cat /var/CommuniGate/Settings/DomainDefault.settings
Settings->Network->Blacklisted IPs->UnBlacklistable (White Hole) IP Addresses:
172.16.1.0/24
# cat /var/CommuniGate/Settings/WhiteHoles.data
Settings->Network->Client IPs:
!172.16.1.254
172.16.1.0/24
=== Создание учетных записей ===
Users->Domains->corpX.un->Objects->
Create Account: user1
Real Name: Иванов Иван Иванович
CommuniGate Password: cpassword1
Create Account: user2
Real Name: Петров Петр Петрович
CommuniGate Password: cpassword2
# cat /var/CommuniGate/Accounts/user1.macnt/account.settings
=== Настройка web интерфейсов пользователей ===
Users->Domains->corpX.un->Domain Settings->Domain Aliases: mail.corpX.un
Settings->Services->HTTPU->Listener
Port 80 Init SSL/TLS Off
Port 443 Init SSL/TLS On
# cat /var/CommuniGate/Settings/HTTPU.settings
Users->Account Defaults->Preferences
Language: Russian
Layout: Basic
Пользователи->Домены->corpX.un->Объекты->postmaster->Настройки->Язык: ...(English)
=== Общие почтовые ящики ===
* user1:
Папки->Создать->Почтовый Ящик->public1
Папки->pubic1->Управление Папкой
Идентификатор->user2->Все галочки (задание для слушателей - найти описание прав в справке)
* user2:
Папки->Управление->Псевдонимы Папок
Имя Псевдонима: public1
Имя Папки: ~user1/public1
=== Доступ администратора к ящикам пользователей ===
Folders->Management->Folder Aliases
Open Folder: ~user1/Sent Items
==== 1.2 Роутинг почты ====
=== Настройка DNS ===
mail.corpX.un. A 172.16.1.100+X
corpX.un. MX 10 mail.corpX.un.
compX.un. MX 10 mail.corpX.un.
=== Расширение формата почтовых адресов ===
gate.isp.un% mail public1#user1@corpX.un
=== Использование утилиты mail ===
mail.corpX.un# file /usr/bin/mail
/usr/bin/mail: symbolic link to /opt/CommuniGate/mail
mail.corpX.un# echo Hello | mail -s Hello public1#user1@corpX.un
=== Преобразование адресов правилами маршрутизации ===
Направление публичной почты в соответствующий ящик
Settings->Router
...
= public1#user1@corpX.un
...
Замена домена компании
Settings->Router
...
<*@compX.un> = *@corpX.un
...
==== 1.3 Различные методы борьбы со спамом, подкручиваем сервер ====
* [[https://ru.wikipedia.org/wiki/Электронная_почта|Электронная почта]]
* [[https://ru.wikipedia.org/wiki/Спам|Спам]]
* [[https://ru.wikipedia.org/wiki/Sender_Policy_Framework|Sender Policy Framework]]
=== Настройка параметров приемника SMTP ===
Settings->Mail->SMTP->Receiving
Verify
Return-Path for: ...
Check SPF records: ...
Non-Client Sender
Delay Prompt for: 10
=== Тестирование параметров приемника SMTP ===
gate.isp.un% mail user1@corpX.un
gate.isp.un% tail -f /var/log/maillog
=== Использование технологии Honeypot ===
Settings->Router
...
= spamtrap
...
gate.isp.un% mail user1@corpX.un director@corpX.un
==== 1.4 Сертификаты безопасности, обслуживание нескольких доменов одновременно ====
=== Создание сертификата TLS для домена corpX.un ===
Устанавливаем в базу данных доверенных сертификатов серверов
Users->Domains->corpX.un->Security->SSL/TLS
PKI Services: Enable
Private Key
Key Size: 1024
Generate Key
Certificate Generator
Common Name: *.corpX.un
Country: RU
State/Province: Moscow region
City: Mosсow
Organization: cko
Unit: noc
Contact: postmaster@corpX.un
Generate Self Signed
=== Использование S/MIME ===
Пользователь postmaster создает у себя в интерфейсе сертификат для подписи и шифрования и отправляет подписанное письмо по адресу user1@corpX.un
Подделать текст письма можно:
# vim /var/CommuniGate/Accounts/user1.macnt/INBOX.mbox
или
# vim /var/CommuniGate/Accounts/user1.macnt/INBOX.mslc/data1
=== Настройка DNS и маршрутизации почты ===
mail.compX.un. A 172.16.1.200+X
compX.un. MX 10 mail.compX
Settings->Router
; <*@comp8.un> = *@corp8.un
=== Настройка дополнительного ip адреса (ip alias) в ОС ===
* [[Настройка сети в Linux#Статическая настройка параметров]]
=== Создаем второй домен compX.un ===
Users->Domains->CreateDomain->compX.un
Users->Domains->compX.un->Domain Settings->Domain Aliases: mail.compX.un
=== Для поддержки SSL/TLS привязываем домены к разным адресам сервера ===
Users->Domains->compX.un->Domain Settings->Assigned IP Addresses->[172.16.1.200+X]
Users->Domains->corpX.un->Domain Settings->Assigned IP Addresses->[172.16.1.100+X], [127.0.0.1]
=== Создаем пользователя в новом домене и назначаем ему права администратора ===
Users->Domains->compX.un->Objects->Create Account: user3
Real Name: Сидоров Сидор Сидорович
CommuniGate Password: cpassword3
Users->Domains->compX.un->Objects->user3->Settings->
Access Rights->Can Modify This Domain and its Accounts Settings
!!!И Все галочки TABом и пробелом!!!
# less /var/CommuniGate/Domains/compX.un/Settings/access.settings
=== Логинемся как user3 из домена compX.un и управляем доменом ===
http://mail.compX.un:8010/
Безопасность->SSL/TLS->Генератор Сертификатов->Имя-Идентификатор: *.comp20.un
===== Модуль 2. Управление пользователями, внешняя аутентификация, внешние фильтры =====
===== Теория =====
* Протоколы идентификации пользователей ([[https://ru.wikipedia.org/wiki/Аутентификация|Аутентификация]], [[https://ru.wikipedia.org/wiki/Авторизация|Авторизация]])
* Решения для борьбы со [[https://ru.wikipedia.org/wiki/Спам|спамом]]
===== Лабораторные работы =====
==== 2.1 Регистрация учетных записей пользователей ====
=== Создаем шаблон нового пользователя ===
Users->Account Defaults
Users->Domains->compX.un->Objects->Template
=== Использование CLI ===
* [[http://www.stalker.com/CommuniGatePro/russian/CLI.html|Интерфейс Командной Строки / API]]
shell> telnet mail.corpX.un 106
или
shell> nc mail.corpX.un 106
USER postmaster
PASS Pa$$w0rd
NOTIMEOUT
LISTACCOUNTS corpX.un
GETACCOUNTSETTINGS user1
GETACCOUNTDEFAULTS corpX.un
GETACCOUNTEFFECTIVESETTINGS user1
GETACCOUNTINFO user1
GETACCOUNTINFO user3@compX.un
CREATEACCOUNT user4 {Password = "cpassword4";RealName = "Кошкин Василий Муркович";}
QUIT
=== Создаем пользователя через CLI ===
* Perl [[Язык программирования Perl#Пример 5]]
=== Создаем пользователя через файл со списком ===
Примечание: использовать кодировку utf-8 и табуляцию между столбцами
Name RealName Password
user3 'Сидоров Сидор Сидорович' cpassword3
==== 2.2 Внешняя аутентификация, скрипт для AD ====
=== Аутентификация с созданием пользователя ===
* [[Развертывание Active Directory]] (ip: 172.16.1.X)
* Добавляем в домен пользователей user3/Pa$$w0rd3 (Sidor S. Sidorov)
* Добавляем в AD DNS хост mail.corpX.un
* Устанавливаем хелпер и необходимые компоненты
# ldapsearch -x -D "cn=Administrator,cn=Users,dc=corpX,dc=un" -W -h server -b "dc=corpX,dc=un" "sAMAccountName=user3"
# wget http://www.stalker.com/CGPerl/CLI.pm
# mv CLI.pm /etc/perl/
# apt-get install libauthen-simple-ldap-perl
# wget http://www.communigate.com/CGAUTH/authLDAPNewAD.pl
* Настраиваем хелпер
# cat authLDAPNewAD.pl
...
my %domains=( # e-mail domains
'corpX.un' => {
address=>'172.16.1.X', #the address or IP of LDAP server
port=>389, # LDAP port, 389 by default
timeout=>5, # timeout in seconds, 20 by default
adminDN=>'CN=Administrator,CN=Users,DC=corpX,DC=un', # the DN for admin bind
adminPassword=>'Pa$$w0rd',
searchBase=>'CN=Users,DC=corpX,DC=un',
searchFilter=>'(&(sAMAccountName=)(objectclass=*))',
updatePasswords=>1, #if need to update CommuniGate internal password
},
);
my $CGServerAddress = '127.0.0.1'; # You should redefine these values
my $CLILogin = 'postmaster';
my $CLIPassword = 'Pa$$w0rd';
...
# chmod +x authLDAPNewAD.pl
* Подключаем хелпер к CGP
Settings->General->Helpers->External Authentication
Program Path: /root/authLDAPNewAD.pl
или
Program Path: C:\Perl\bin\perl C:\var\CommuniGate\authLDAPNewAD.pl
Users->Domains->corpX.ru->Domain Settings
Consult External for Unknown: Yes
Consult External on Provision: Yes
Users->Domains->corpX.un->Account Defaults->Settings
External Password: Enabled
=== SSO AD аутентификация ===
* [[https://www.communigate.com/communigatepro/Security.html]]
* Включение в домен Windows client1 ([[Развертывание Active Directory#Включение в домен Windows клиентов]]) !!! указать DNS 172.16.1.X
* Создание принципала для протокола IMAP
C:\>ktpass -princ imap/mail.corpX.un@CORPX.UN -mapuser cgatepro -pass Pa$$w0rd -out keytab.data -crypto RC4-HMAC-NT -ptype KRB5_NT_SRV_HST
* Перенос ключа принципала в CGP (Users->Domains->corpX.un->Security->Kerberos)
* Входим в домен как user3 с рабочей станции client1
* [[Thunderbird#Авто конфигурация клиента]] Thunderbird (IMAP GSSAPI)
==== 2.3 Использование Communigate в качестве информационной системы ====
=== LDAP ===
**Задача: использование адресной книги imap/pop3 клиентами**
* Включаем синхронизацию объектов домена с каталогом
Users->Directory Integration->Domain Subtree->Create It
Directory->Browser
* Чтение данных с аутентификацией
FreeBSD:
# setenv LDAPTLS_REQCERT never
или
# pkg install ca_root_nss
# setenv LDAPTLS_CACERT /usr/local/etc/ssl/cert.pem
Linux:
# export LDAPTLS_REQCERT=never
Linux/FreeBSD:
# ldapsearch -x -D "user1@corpX.un" -W -b"cn=corpX.un" -H ldaps://mail.corpX.un:636
* Разрешаем читать публичные данные без аутентификации
Directory->Access Rights
Name: ReadAll
Bind DN: anyone
* Добавление атрибутов
Directory->Units->Main->Schema
Users->Directory Integration
Public Info: telephoneNumber
=== RADIUS ===
**Задача: Аутентификация доступа пользователей в Internet**
* Включаем и настраиваем сервис в CGP
Settings->Services->RADIUS
Password: testing123
Channels: 3
Listener
Port: 1812
* Тестирование
# radtest user1 'cpassword1' mail.corpX.un 0 testing123
* Использование в SQUID [[Аутентификация доступа к SQUID|RADIUS basic аутентификация]]
==== 2.4 Фильтрация писем, почтовые правила ====
Задача: сохранять всю исходящую почту в особой папке у системного администратора или у сотрудника, отвечающего за безопасность.
* [[http://www.communigate.com/CommuniGatePro/russian/HowTo.html#StoreAll]]
Задача: организовать коллективный почтовый ящик без использования маршрутизации
* На уровне сервера создаем алиас для user1:
Settings->Router
...
; = public1#user1@corpX.un
...
Users->Domains-corpX.un->Objects->user1->Settings
Aliases: public1
* На уровне user1 создаем правила:
Управление Почтой
Добавить Правило: Move to public1
Изменить
Любой Кому/Копия: равно *public1*
Записать в: public1
Выбросить
Задача: организовать список рассылки с фиксированным списком чиcлом участников
Создаем группу public2 с пользователями user1 и user2
Set Reply-To to Group: no
GETSERVERMAILRULES
200 data follow
(
(
6,
mark_to_noc,
((Subject, "is not", "*[public2]*"), ("Any To or Cc", is, "*public2@corpX*")),
(("Tag Subject", "[public2] ")),
"Помечаем тему всех писем, идущих в группу"
),
(
4,
replace_from_noc,
((Subject, is, "*[public2]*"), (To, "is not", "*public2@corpX*")),
(("Add Header", "Reply-To: public2@corpX.un")),
"Устанавливаем Reply-To в группу для всех ответов из группы"
)
)
==== 2.5 Внешние фильтры для писем, устанавливаем антиспам ====
* [[http://program.farit.ru/doc/cgpav-rus.html|Clamav, SpamAssassin внешний фильтр для CommuniGate Pro]]
=== Установка антивируса ===
* [[Сервис Clamav]]
=== Подготовка clamd для использования с CGP ===
# aa-disable usr.sbin.clamd
# /etc/init.d/apparmor restart
# usermod clamav -G root
# service clamav-daemon restart
# clamdscan /var/CommuniGate/virus.zip
=== Компиляция, настройка и тестирование хелпера ===
* Управление ПО в Linux, [[Управление ПО в Linux#Работа с исходными текстами]]
# wget http://program.farit.ru/antivir/cgpav-1.4.tar.gz
# tar -xvf cgpav-1.4.tar.gz
# cd cgpav-1.4/
# ./configure --with-antivirus=clamav --with-spamassassin=no --with-cgpro_dir=/var/CommuniGate
# make && make install
# cat /var/CommuniGate/Settings/cgpav.conf
...
clamd_socket = /var/run/clamav/clamd.ctl
...
# /var/CommuniGate/cgpav
1 FILE virus.zip
1 DISCARD
=== Подключение хелпера к CGP ===
Settings->General->Helpers->Content Filtering
Enabled: Clamav
Program Path: /var/CommuniGate/cgpav
=== Включение хелпера с помощью глобальных правил обработки почты ===
Settings->Mail->Rules
Name: Clamav
Action: ExternalFilter
Parameter: Clamav
==== 2.6 Использование CGP в качестве пограничного сервера ====
Для домена compX пользователи которого заведены на сервере преподавателя
Settings->Router
...
<*@comp1.un> = *%comp1.un@isp.un.25.via
...
===== Модуль 3. SIP, PBX, встроенные приложения, номерной план, пример своего приложения =====
===== Теория =====
* Общие принципы организации звонков (SIP + Media);
* Сигналы в Communigate Pro;
* PBX приложения и PBX среда;
===== Лабораторные работы =====
==== 3.1 Локализация PBX ====
Users->Domains->corpX.un->PBX->Create Custom Enviroment
Languages->Create: Russian
select russian
Download ftp://ftp.stalker.com/pub/stuff/noarch/pbx_russian_files_51.zip
!!! Upload tar файлов из архива !!!
# ls CGateProSoftware/CommuniGate/PBXApps/
# ls /var/CommuniGate/Accounts/PBXApps
==== 3.2 Таблица маршрутизации применительно к SIP, номерной план ====
=== Через таблицу маршрутизации ===
S:<6363@*> = gatewayincoming{pbx,media}#pbx
=== Организация внутреннего плана нумерации ===
Users->Domains->corpX.un->Objects->user2->Settings
Aliases: 402
=== Информация о регистрации SIP пользовательского оборудования ===
Users->Domains->corpX.un->Objects->user1->Status
или
GETACCOUNTINFO user1 KEY SIPContacts
200 data follow
(
{
"" = "sip:user1@195.19.35.219:5060";
@regdata = {
Allow = (ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER);
CSeq = #68190;
Call-ID = 3498b62-d4014eab@195.19.35.219;
Supported = (x-sipura);
User-Agent = "Linksys/SPA3102-3.3.6(GW)";
};
Expires = #T14-10-2014_05:30:41;
}
)
=== CDR ===
Settings->Real-Time->Signals
Record Call CDRs: yes
# ls /var/CommuniGate/SystemLogs/CDRs/
==== 3.3 Правила для голоса ====
Settings->Router
...
Signal: = echotest#pbx@localhost ; testing address
...
pbx - пользователь
Users->Domains->corpX.un->Objects->pbx->Settings->Access Rights
Can Modify This Domain and its Accounts Settings
Can Access All Files
Can Impersonate
Can Administer Other Domains
==== 3.4 Встроенные приложения ====
=== IVR ===
Users->Domains->corpX.un->Object->pbx->Real-Time->Advanced
Department Menu: Custom: techsupport conference
Directory Prefix: 4 - с какой цифры внутренний план нумерации
Directory Digits: 3 - длина номера внутреннего плана нумерации
пункт techsupport - можно заменить на свое название, например abcd
для озвучивания пункта необходимо загрузить файл forabcd.wav через
Users->Domains->corpX.un->PBX
Для пере направления вызова сотрудникам необходимо включить их в одноименную с пунктом меню группу.
Users->Domains->corpX.un->Objects->Create Group: techsupport
Members: user1
Members: user2
=== Голосовая почта ===
Пользователю необходимо позвонить на свой номер и записать приветствие,
далее из своего веб интерфейса выполнить:
Управление Звонками->Голосовая Почта->После: 10 сек
=== Голосовые конференции ===
**Вариант1**: Позвонить на номер 200, создать конференцию, получить по почте номер конференции, разослать этот номер всем участникам, через номер 200 подключиться вместе со всеми.
GETACCOUNTINFO pbx KEY Meetings
...
**Вариант2**: Создать событие, у которого место проведения (Location) установлено в phone или conference, а в качестве участников перечислены аккаунты.
GETACCOUNTINFO user1 KEY Meetings
...
==== 3.5 Пишем свое небольшое приложение ====
* [[http://www.communigate.com/CommuniGatePro/russian/CGPL.html|Язык Программирования CommuniGate Pro (CG/PL)]]
=== Hello World по номеру 301 ===
Users->Domains-corpX.un->PBX->russian
Upload File: sayhello.sppr
или
# cat /var/CommuniGate/Accounts/PBXApps/russian/sayhello.sppr
entry main is
var errCode = AcceptCall();
if isString(errCode) then
syslog("Failed to accept the call: " + errCode);
else
PlayFile("blank", 500); // 0.5 sec of silence
PlayFile("Welcome");
end if;
end entry;
Users->Domains-corpX.un
Create Forwarder: 301
Forward To: sayhello#pbx
pbx - имя аккаунта от которой запускается приложение sayhello
=== Тоже Hello World, но с CallBack ===
# cat /var/CommuniGate/Accounts/PBXApps/russian/sayhello_cb.sppr
entry main is
var data = Vars().startParameter[0];
syslog("Will call to " + ObjectToString(data));
var errCode = StartCall(EmailToSIPURI(data));
if isString(errCode) then
syslog("Call failed: " + errCode);
stop;
end if;
loop
data = ReadInput(10);
exitif isCallCompletedEvent(data);
end loop;
if isConnected() then
PlayFile("blank", 500);
PlayFile("welcome");
PlayFile("blank", 500);
PlayFile("goodbye");
end if;
end entry;
STARTPBXTASK pbx PROGRAM sayhello_cb PARAM ("401")
===== Модуль 4. Работа с внешними SIP шлюзами, объединение двух IP АТС =====
===== Теория =====
* [[http://mx.demos.su/lists/cgp-russian/2013_06/17732.html|Односторонняя слышимость при переводе звонка]]
===== Лабораторные работы =====
==== 4.1 Роутинг SIP-звонков с аутентификацией на стороннем сервере — обычно это SIP провайдеры ====
=== Организация исходящих вызовов в PSTN ===
Settings->Router
...
<8916(7d)@*> = 8916*@telnum
<8495(7d)@*> = 8495*@telnum
<8499(7d)@*> = 8499*@telnum
;<+(7-20d)@*> = +*@telnum ; +nnnnn calls -> to telnum
;...
...
Signal:telnum = pstn ; unknown telnum -> PSTN
Signal:<*@pstn> = gatewaycaller{*}#pbx ; start 'gatewaycaller' app
...
Users->Account Defaults->PSTN
или
Users->Domains->corpX.un->Account Defaults->PSTN
или
Users->Domains->corpX.un->Objects->user1->Real-Time->PSTN
Gateway Domain: voip1.un
Name for Gateway: 00000X
Password for Gateway: spasswordX
=== Организация входящих вызовов из PSTN ===
Users->Domains->corpX.un->Objects->pbx->Real-Time->RSIP
Name: voip1
Register Every: 5 min
Account: 00000X
at Host: voip1.un
Authentication Name: 00000X
Password: spasswordX
Target:
GETACCOUNTRSIPS pbx
200 data follow
{
sipnet = {
authName = 00000X;
domain = voip1.un;
fromName = 00000X;
password = spasswordX;
period = 5m;
};
}
Users->Domains->corpX.un->Objects->pbx->Real-Time->Incoming Call Rules->Edit
Redirect To is #pbx
Комментарии службы поддержки по поводу реальной строки регистрации:
gatewayincoming--pbx--val.bmstu.ru%23pbx@195.19.32.125 CommuniGatePro-callLeg/6.0.9
Я: gatewayincoming - видимо приложение?
СП: Да, аналогично приёму звонка через gatewayincoming{pbx@val.bmstu.ru,media}#pbx@195.19.32.125, то есть:
доставить INVITE в аккаунт pbx домена, которому принадлежит (в настройках CGPro, не в DNS!) IP 195.19.32.125 и от его имени выполнить скрипт, передав ему pbx@val.bmstu.ru в качестве параметра. Скрипт реализует B2BUA: терминирует входной звонок, создёт задачу, которая инициирует исходящий звонок на URI из параметра, потом устанавливает между задачами мост (стандартная библиотечная функция в PBX среде для этого лежит в callerleg.sppi). B2BUA нужен для изоляции SIP диалогов (например, REFER от одной из сторон дальше принявшего плеча не уйдёт, переключение будет сделано внутри B2BUA) и специальной обработки медиа параметров: прксировать медиа или использовать миксер для полной терминации во избежание re-INVITE в сигнальном плече.
==== 4.2 Роутинг SIP-звонков без аутентификации (2-ая лабораторная) — обычно это сервера под нашим контролем или очень примитивные шлюзы ====
===== Модуль 5. IM =====
===== Теория =====
* [[https://ru.wikipedia.org/wiki/XMPP]]
* [[https://ru.wikipedia.org/wiki/SMPP]]
===== Лабораторные работы =====
==== Клиентские программы ====
Pidgin 2.7.1. Так же хорошо работает Psi, Thunderbird (проблема только убедить его поверить самоподписанному клиенту), на Маке - Adium, на мобильных - BeeJive.
==== CGP и шлюз в ICQ ====
Нужен внешний шлюз, который регистрируется в CGPro
На уровне сервера:
Users->Skins
На уровне домена:
Users->Domains->corpX.un->Skins->Create Custom Unnamed Skin
Upload File: logo.gif
# ls /var/CommuniGate/WebSkins/logo.gif
# ls /var/CommuniGate/Accounts/WebSkins/logo.gif
==== 6.2 Заменяем строку на английском и на русском ====
# cat /var/CommuniGate/Accounts/WebSkins/strings.data
...
LoginTag1 = "...";
LoginTag2 = "...";
...
# ls /var/CommuniGate/Accounts/WebSkins/russian.data
...
LoginTag1 = "...";
LoginTag2 = "...";
...
==== 6.3 Создаем свой skin и добавляем какую-нибудь совершенно новую ссылку в интерфейс ====
Users->Domains->corpX.un->Skins->Named Skins->Create: mySkin
# cat /var/CommuniGate/Accounts/WebSkins/mySkin/navigation.wssi
...
%%HTML:SETTINGS("InboxDisplay")%%
Sent Items
...
==== 6.4 Создание персональных страниц пользователей ====
"Request Size Limit:" в Settings->Services->HTTPU, поставьте его в unlimited
Доступ: http://corpX.un/~user1
Местоположение и файл по умолчанию
# cat /var/CommuniGate/Accounts/user1.macnt/account.web/default.html
Доступ по имени http://user1.corpX.un ([[http://www.communigate.com/CommuniGatePro/russian/HowTo.html#WebURL]])
Settings->Router
...
mail.corpX.un = corpX.un
*.corpX.un = *@fict
= *
==== 6.5 CGP CGI на CG/PL ====
Приложение Web Callback
STARTPBXTASK pbx PROGRAM rendezvous PARAM ("401","8916XXXXXXX")
Users->Skins->Upload File: webcallback.wcgp
или
# cat /var/CommuniGate/WebSkins/webcallback.wcgp
entry sysEntry is
SetHTTPResponseType("text","html");
SetHTTPResponseCode(200);
var phone = GetHTTPParameter("phone");
var operatorphone = "401";
var data = "";
var cmd = "";
if not isString(phone)
then
data = "Enter phone number
";
else
cmd = "STARTPBXTASK pbx PROGRAM rendezvous PARAM(\"" + phone + "\",\"" + operatorphone + "\")";
data = "Waiting call on phone " + phone + "
";
var errCode = ExecuteCLI(cmd);
end if;
SetHTTPResponseData(data);
end entry;
http://mail.corpX.un/sys/webcallback.wcgp
===== Модуль 7. Мониторинг =====
==== Управление подключениями ====
Monitors->Access->Sessions
KILLACCOUNTSESSIONS user1
==== Анализ журналов ====
Monitors->Logs
# tail -f /var/CommuniGate/SystemLogs/`date '+%Y-%m-%d'`.log
==== Использование триггеров ====
=== HTTP SMS шлюзы ===
Settings->General->Triggers
Events
httpAdminAuthFailed: ...
failedAUTHs: ...
Handlers
Send URL: https://rest.nexmo.com/sms/json?api_key=e5610a90&api_secret=1d98ff2a&from=NEXMO&to=79164115716&text=mail.corpX.un+par+^0+val+=+^2
Параметр ^1 возвращает строку с пробелом, которая некорректно передается от CGP к NEXMO
=== Отправка SMS по SMPP ===
Надо прописать его в Settings -> Real-Time -> SMPP
server smpp0.nexmo.com:8000, SystemID и Password - из аккаунта на nexmo (api_key и api_secret).
GETMODULE SMPP
==== Использование custom счетчиков ====
my $error = $cli->SendCommand('SetStatElement 1.3.6.1.4.1.5678.2.1.1000.1 SET '.$value);
==== Использование snmp ====
==== Использование в качестве syslog сервера ====
===== Cluster =====
* [[http://www.communigate.com/ru/main/solutions/cluster.html]]