Инструкция по интеграции с АТС
Назначение документа
В документе описана настройка интеграции VK Teams версии 24.11 и выше с АТС.
Документ предназначен для использования системные администраторами.
Шаг 1. Настройте сервис Kamailio
Перейдите в конфигурационный файл сервиса Kamailio /usr/local/etc/k8s/helmwave/projects/sipservices/values/sipservices/kamailio.yml и выполните следующие изменения:
-
Удалите строку #!define REMOTE_REGISTRATION
-
Укажите IP-адрес или имя хоста и порт SIP-транка в параметре TRUNK_ADDRESS:
Все исходящие SIP-вызовы из VK Teams будут отправлены на заданный адрес.
-
В случае кластерной инсталляции, если нода сервиса Kamailio находится за NAT дополнительно:
3.1. Добавьте новый параметр с указанием белого IP-адреса:
3.2. Для внешнего IP-адреса укажите 0.0.0.0:
3.3. Проставьте белый IP-адрес как advertise-адрес для внешнего адреса:
3.4. Удалите проверку внешнего и внутреннего IP-адресов при определении направления трафика:
sed -i 's/$Ri == $def(\(EXTERNAL_IP\|INTERNAL_IP\)) && //' /usr/local/etc/k8s/helmwave/projects/sipservices/values/sipservices/kamailio.yml
3.5. Замените внешний IP-адрес на белый IP-адрес в выставлении SIP Contact-заголовка:
Шаг 2. Настройте сервис Sipgate
-
Скорректируйте конфигурацию для медиатранспорта:
-
Перейдите в конфигурационный файл сервиса Sipgate /usr/local/etc/k8s/helmwave/projects/sipservices/values/sipservices/sipgate.yml и укажите для ice- и media-соединений IP-адрес 0.0.0.0:
-
Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/projects/sipservices/values/sipservices/kanalya-sip-list.yml и укажите порты для внутреннего взаимодействия SIP-сервисов:
Шаг 3. Настройте сервис Numbers
Перейдите в конфигурационный файл сервиса Numbers /usr/local/etc/numbers-1.yaml и выполните следующие изменения:
-
Поменяйте путь к скрипту для провиженинга:
-
Добавьте секцию integration_profile:
-
Укажите номер телефона конференции. Все входящие звонки на заданный номер будут направлены для подключения к конференциям:
-
Сохраните скрипт trunk.py в директорию /usr/local/etc и выдайте пользователю права на его исполнение. Скрипт trunk.py:
#!/usr/bin/python3 import argparse import json import sys parser = argparse.ArgumentParser() parser.add_argument('--user-sn', type=str, required=True, default='') parser.add_argument('--phone-number', type=str, required=True, default='') parser.add_argument('--domain-name', type=str, required=True, default='') def request_provisioning(args): if len(args.phone_number) == 0: print("{\"error\":\"phone number is empty\"}") sys.exit(2) data = { "userSN": args.user_sn, "phoneNumber": args.phone_number, "domainName": args.domain_name, "userID": args.phone_number, "domain": "-", "proxy": "-", "authUsername": args.domain_name, "authPassword": "-" } print(json.dumps(data)) if __name__ == '__main__': if len(sys.argv) < 7: print("{\"error\":\"not enough arguments\"}") sys.exit(1) args = parser.parse_args() request_provisioning(args)
-
Примените настройки командой:
-
Перезапустите сервис Numbers: