Документация MACRO
  • 🎓Руководство пользователя
    • MacroCRM
      • Заявки
        • Архитектура процесса продаж
        • Звонки 2.0
        • Логика создания заявок по звонкам
        • Добавление задачи
        • Добавление отчета по встрече
        • Как добавить агентство недвижимости и агентов, работающих в нем?
        • Как отправить клиенту несколько вариантов объектов?
        • Как узнать какие квартиры бронировал клиент?
        • Лента событий
        • Массовая смена менеджера в заявках
        • Может ли другой менеджер забрать у меня заявку без моего ведома?
        • Объединение заявок родственников
        • Отключение создания заявок для определенных ролей контактов
        • Очередь бронирования
        • Слияние контактов и заявок
        • Создание заявки
        • Создание контакта
        • Управление причинами перевода заявок в нерабочие статусы
        • Управление рекламными каналами привлечения заявок
        • Я ухожу в отпуск, что будет с моими заявками?
      • Недвижимость
        • Создание дома. Загрузка шахматки и массовое добавление объектов
        • Шахматка дома
        • Выравнивание объектов в шахматке по стоякам
        • Добавление поэтажных планировок
        • Добавление планировок объектов
        • Добавление тегов в объектах
        • Стартовое ценообразование
        • Как поставить бронь
        • Автоматическое формирование доплат/возвратов по результатам обмеров БТИ
        • Дополнительные площади в шахматке дома
        • Как быстро поставить маркетинговый резерв/сделку
        • Как добавить новые объекты в уже созданный дом
        • Как массово поставить маркетинговый резерв/сделку
        • Как перенести объекты из одного дома в другой
        • Копирование файлов объекта по стоякам
        • Массовая смена продавца объектов в доме
        • Массовое клонирование свойств объектов в доме
        • Массовое продление броней через эксель-шахматку
        • Массовое удаление объектов в доме
        • Объединение объектов
        • Ограничение сроков бронирования объектов
        • Отдельные акты приема-передачи объекта для разных категорий недвижимости
        • Перепродажа объектов
        • Признак эксклюзива для новостроек
        • Разделение шаблонов договоров для сделок с недвижимостью по ЖК/Домам
        • Служебные отметки в объектах
        • Создание группы домов
        • Поддерживающее ценообразование
        • Создание нового объекта недвижимости (вторичка)
      • Сделки
        • Связь ипотечных заявок с заявками на покупку недвижимости и сделками
        • Автоматическое формирование графика платежей по сделке
        • Автоматическое разнесение платежей, поступающих на Эскроу-счета
        • Автоматическая нумерация договоров
        • Автоматические задачи по сделке
        • Атрибуты в карточках контакта и сделки. Портрет покупателя
        • Добавление платежей в график при подписанном договоре
        • Добавление подстатусов в заявках
        • Дополнительные соглашения по сделкам
        • Как добавить ипотечный банк
        • Как перевести бронь в сделку
        • Распознавание документов 2.0
        • Расширенный сценарий работы с платным бронированием
        • Корректировки стоимости по договору
        • Куда загружать документы по сделке/по клиенту
        • Представители покупателей в сделке
        • Предустановленный номер договора
        • Интеграции с сервисами электронной регистрации
        • Работа с платежами по сделкам
        • Работа с уступками
        • Работа с залогами
        • Разделение согласователей и сотрудников договорного отдела по разным объектам
        • Расторжение сделок
        • Роли покупателей в сделке
        • Согласователи и их заместители
        • Создание и редактирование сделок через эксель-шахматку дома
        • Создание персональных дел
        • Срок фиксации цены по договору
        • Учет вклада нескольких менеджеров в сделку
        • Финансовый учет в сделках
        • Формирование возвратов по сделкам
      • Формирование документов
        • Динамическая фильтрация шаблонов документов в сделке
        • Отправка смс-сообщений. Шаблоны.
        • Создание массовых договоров долевого участия в одном шаблоне
        • Формирование пакета документов по набору объектов
        • Шаблоны документов. Создание и работа с шаблонами.
      • Отчеты
        • Воронка продаж
        • Динамика реализации недвижимости
        • Контроль сделок
        • Маркетинговые показатели
        • Нерабочие заявки
        • Отчет для минстроя по заключенным ДДУ
        • Отчет о встречах
        • Отчет о поступлениях за период
        • Отчет о скорости обработки заявок
        • Отчет о скорости проведения сделок
        • Отчёт о сроках ответа на пропущенный звонок
        • Отчет по броням
        • Отчет по заключённым договорам
        • Отчет по звонкам
        • Отчет по источникам заявок
        • Отчет по клиентам, купившим недвижимость
        • Отчет по просроченным платежам
        • Отчет по работе менеджеров с заявками
        • Первичный, вторичный интерес к ЖК
        • План продаж
        • План продаж (новый)
        • Портрет покупателя
        • Объекты, доступные для продажи агентам
      • Настройки
        • Максимальные сроки бронирования и продление броней
        • Презентации объектов
        • График работы сотрудников и его учет при постановке задач
        • Увольнение сотрудников
      • Передача ключей
      • Ипотека
      • Акции
        • Метка для вывода Акций в кастомные презентации
        • Вывод в шахматку разных вариантов цен на объекты недвижимости
    • MacroERP
      • Начало работы в MacroERP
        • Где находится MacroERP
        • Как зарегистрироваться в MacroERP
        • Как вывести значок системы на рабочий стол компьютера
        • Настройка профиля
        • Как сменить электронную почту
        • Как сменить пароль
        • Забыл пароль. Как восстановить?
        • Забыл выйти из учетной записи. Что делать?
        • Как подключить Telegram-бот
        • Как вывести значок системы на экран смартфона
        • Как работать с телефона?
        • Где узнавать об обновлениях системы?
        • Как создать Telegram-бот
      • Проекты
        • Модуль Проекты
        • Структура проектов.(Редактор. Создание проекта)
        • График производства работ. Общий вид.
        • Способы наполнения перечня работ ГПР
          • Создание ГПР "с нуля". Работа в редакторе графика
            • Формирование чек-листов в ГПР
            • Формирование перечня исполнительной документации
            • Алгоритм расчета связей ГПР
            • Редактор связей ГПР
            • Внесение веса работ
          • Клонирование проекта
          • Выгрузка проекта из MS Project
          • Выгрузка проекта из Excel
          • Создание ГПР на основании сметы
          • Создание ГПР из предмета договора
        • Редактор графика
        • Версии ГПР
        • Перенос сроков
        • Создание объекта
        • План работ
        • Экономика
        • План снабжения
        • Календарь расходов
        • План поставок
        • Чек-лист (В работе)
        • Удаление проекта
        • Завершение проекта/Возобновление проекта
        • Настройка параметров проекта
        • Процент выполнения работ по актам (КС)
        • Согласователи переноса сроков работ
        • Запуск графика в работу и возврат на доработку
        • Параметры проекта
        • Цветовая индикация сроков выполнения работ
        • Цветовая индикация групп работ
        • Запрос переноса срока начала/окончания работы
        • Добавить исполнительную документацию
        • Прикрепление файлов и ссылок в ГПР
        • Заказать ТМЦ из ГПР
        • Вызвать стройнадзор
        • Примечание к номенклатуре в плане снабжения
        • Создание задач и отслеживание их выполнения через ГПР
      • Снабжение
        • Настройка сценариев согласования заказа
        • Создание заказа в модуле "Снабжение"
        • Загрузка заказа ТМЦ из шаблона
        • Редактирование заказа
        • Работа с заказом
        • Разделение заказа
        • Как прикрепить документ к заказу
        • Фиксация поставщика и договора поставки в карточке заказа
        • Приемка ТМЦ
        • Передача ТМЦ подрядчику из карточки заказа
        • Возврат остатков от подрядчика
        • Формирование и скачивание товарной накладной (продажа)
        • Перемещение приемки ТМЦ между заказами
        • Логирование изменений Плана снабжения
        • Отчет о покупке ТМЦ
        • Сводная таблица
        • Создание склада
        • Журнал УПД
        • Списание ТМЦ на КС
        • Статусы заказа
        • Функция ограничение недопоставок
        • Сценарии работы модуля Снабжения
        • Справка по снабжению
        • Работа с заказами ТМЦ для роли «Прораб»
        • Работа с заказами ТМЦ для роли «Снабженец»
        • Работа с заказами ТМЦ для роли «Материалист»
      • Финансы
        • Модуль Финансы
        • Ограничение создания фин. операций для незакрытых работ ГПР
        • Признаки типов финансовых затрат
        • Прикрепление фин.операций к актам
        • Разнесение ФО по Статьям ДДС
        • Распределение финансовых операций
        • Создание расчетного счета
        • Статьи ДДС
        • Соотношение статей ДДС с ГПР
        • Автоматическое разнесение финансовой операции по статьям движения денежных средств
        • Реестр платежей
      • Документы
        • Модуль Документы
        • Фильтры в листинге документов
        • Листинг Документов
        • Настройки типов документов
        • Дополнительные статусы документов
        • Требования к договору
        • Обязательные документы для заключения договора
        • Создание договора в модуле Документы
        • Создание контрагента из карточки договора
        • Опции для автоматического подсчета количества, стоимости за единицу и суммы в предмете договора
        • График платежей
        • Разнесение оплат и авансов в графике платежей
        • Учет авансовых платежей
        • Гарантийные удержания
        • Опция "Начислять ГУ в % только с работ"
        • Добавление документов в договор
        • Загрузка предмета договора из шаблона
        • Заполнение предмета договора вручную
        • Заполнение предмета договора из сметы
        • Заполнение шаблона для загрузки в предмет договора
        • Изменение предмета договора без сброса согласования
        • Автоматическая расстановка цен у повторяющихся позиций
        • Схемы учета материалов в предмете договора
        • Изменение списка согласователей в договоре
        • Акт выполненных работ (АВР/КС-2) в документе
        • КС-3
        • Лист согласования актов выполненных работ
        • Настройка согласователей актов выполненных работ
        • Настройка шаблона листа согласования акта выполненных работ
        • Операторы актов выполненных работ (КС-2)
        • Параметры договора, Вложения, Итоговые документы.
        • Прочие удержания
        • Реестр КС (актов выполненных работ)
        • Отчет по списанию материалов на акт
        • Согласование/отмена согласования договора
        • Создание дополнительного соглашения
        • Типы дополнительных соглашений
        • ЭЦП и передача через Диадок
        • Доходные договора
        • План выполнения работ
        • Реестр планов выполнения работ
        • Шаблон документа
        • Ведомость о расходе основных материалов в строительстве (М-29)
      • Словарь строительных терминов
        • Глоссарий
      • Контакты
        • Модуль контакты
        • Добавление новых контактов
        • Карточка контакта
        • Как слить контакты (убрать дубли)
        • Роли контакта в системе
        • Ограничение доступа к контактам физ.лиц
      • Сметы
        • Заполнение шаблона сметы для ручного заполнения в Excel
        • Копирование смет
        • Создание сметы (Загрузка из ГрандСметы и WinРик)
        • Создание сметы вручную
        • Работа с шаблоном сметы MACRO
        • Привязка Сметы к ГПР
      • Стройконтроль
        • Функции стройконтроля
        • Приёмка работ
        • Подтверждение качества работ
        • Предписания и дефектовки
        • Вызов стройконтроля
        • Отображение предписаний и дефектовок в ГПР
        • Отчеты "Предписания" и "Дефектовки"
      • Часто задаваемые вопросы
        • Как добавить заказчика в договор?
        • Как добавить фактического отправителя в договор?
        • Как просмотреть дочерние заказы
        • Какие акты выполненных работ (КС) мне нужно согласовать?
        • Какие договоры мне нужно согласовать?
        • Какие фин.операции мне нужно акцептовать?
        • Какие фин.операции мне нужно согласовать?
        • Как посмотреть финансовые операции разнесенные по набору статей?
        • Как посмотреть финансовые операции не разнесенные по наборам статей затрат?
      • Административные настройки
        • Как восстановить уволенного сотрудника
        • Как уволить сотрудника
        • Настройки компании
          • Финансы
          • Строительство
          • Документы
          • Снабжение
          • Компания
        • Создание и редактирование тега
        • Формирование отделов
        • Настройка отделов
        • Функция "Отпуск"
        • Настройка Бота Telegram
      • Отчеты ERP
        • Оборотная ведомость по оплатам и выполненным работам
        • Отчет по статьям ДДС
        • Отчет по закрытым объемам работ
      • Подготовка к внедрению
        • Описание модулей ERP
        • Ориентировочный список сотрудников для регистрации в системе
        • Список запрашиваемых документов
    • MacroBank
      • Начало работы
        • Интерфейс системы
        • Справочники
        • Проекты
        • Контрагенты
      • Основные возможности
        • Раздел "Договоры"
        • Сметы
        • Раздел "Закрывающие документы"
        • Раздел "Финансовые операции"
      • Отчеты
        • Банковский учет
        • Управленческая отчетность
        • Бюджетирование
      • Интеграции
        • Фабрика
        • Подгрузка выписок из клиент-банков
    • MacroPlan
      • Задачи и поручения
      • Создание задачи
      • Работа с задачей
      • Работа с задачами. Листинг. Фильтры
      • Категории задач
      • Задача с типом Группа задач (Проект)
      • Постановка задач в Telegram-боте
      • Действия с задачами в Telegram-бот
      • Повторяемые задачи
      • Интеграция с календарем Google
      • Интеграция с Outlook
    • MacroCatalog
      • Установка на сайт
        • Сайт застройщика
        • Лэндинг на Tilda
        • Кнопка запуска
      • Контент каталога
        • Общие параметры каталога
        • Номер телефона отдела продаж
        • Уровень открытия каталога
        • Главное изображение дома
        • Разметка фасадов
        • Поэтажные планировки
        • Галерея изображений объекта
        • Виртуальный тур объекта
        • Теги в каталоге
        • Стороны света в каталоге
        • Описание дома и объектов в Macrocatalog
        • Срок сдачи дома в эксплуатацию
        • Фильтр по отделке
        • Онлайн-камера
        • Бейджи акций
        • Онлайн-калькулятор ипотеки
        • Подмена статусов объектов, скрытие стоимостей
      • Список событий, используемых для аналитики
    • Кабинет агента
      • Установка на сайт
      • Настройка работы KA
      • Распределение агентских заявок по ответственным менеджерам
      • Система поиска дублей заявок
      • Документация для показа в КА
      • Объявления и информация о комиссиях для всех агентов
      • Сервис подтверждения участия агента в сделке
      • Комиссионное вознаграждение посредников
      • Постановка броней из кабинета агента
      • Отчёт по объектам, доступным агентам
      • Статистика агентств недвижимости
    • Кабинет клиента
      • Установка на сайт
        • Установка кабинета клиента без MacroCatalog
        • Установка совместно с каталогом
      • Объявления и новости
    • MacroPrice
      • Робот-анализатор
        • Настройка условий
        • Логика расчета выбытий
      • Планировщик цен
        • Изменение цены по спецпредложению
    • MacroTender
      • Тендерная площадка
        • 1. Регистрация на площадке
        • 2. Подача заявки на аккредитацию
        • 3. Подачи заявки на участие в тендере
      • Тендеры в MacroERP
        • Аккредитация контрагентов
        • Возврат предложения на доработку
        • Категории тендеров
        • Неценовые критерии тендера
        • Проведение тендера в несколько этапов
        • Проверка службой безопасности при аккредитации
        • Просмотр предложений и выбор победителя
        • Редактирование тендера
        • Согласование тендера
        • Создание тендера из заказа на поставку ТМЦ
        • Список тендеров компании
        • Статусы тендера
        • Создание договора с победителем тендера
      • Настройки
        • Настройки тендерной площадки
        • Тип работы площадки
        • Установка площадки
    • Интеграции
      • Сайт компании
        • API Передача ключей
        • Интеграция с сайтом
        • Получение сделок контакта
        • Прием заявок с Creatium.io
        • Прием заявок с Tilda
      • Телефония
        • Интеграция с ВАТС (DSI) Деловая сеть — Иркутск. Телефония
        • Интеграция с ВАТС МТС Exolve
        • Интеграция с ВАТС Мегафон
        • Интеграция с ВАТС Callibri
        • Интеграция с ВАТС Sipuni
        • Интеграция с ВАТС Мои Звонки
        • Интеграция с ВАТС Авантел
        • Интеграция с ВАТС UIS
        • Интеграция с ВАТС OnlinePBX
        • Интеграция с ВАТС Дом.ру
        • Интеграция с АТС Aterisk (описание API)
        • Интеграция с АТС Aterisk (пример реализации)
        • Интеграция с ВАТС Манго office
        • Интеграция с ВАТС Ростелеком
        • Интеграция с ВАТС Телфин
        • Получение списка звонков
      • Отправка СМС
        • Интеграции c SMS-сервисом OCTOTELECOM
        • Интеграция с sms-prosto.ru
        • Интеграция с sms.ru
      • Мессенджеры
        • Интеграция с Wаzzup и WhatsApp
        • Интеграция с Wаzzup и Telegram
        • Подключение уведомлений в Telegram
        • Постановка задач через Telegram-бота
      • Маркетинг и аналитика
        • Интеграция с Callibri
        • Интеграция с Calltouch
        • Интеграция с CoMagic
        • Интеграция с Facebook и Instagram
        • Интеграция с Google Data Studio
        • Интеграция с Roistat
        • Интеграция с Webjack
        • Интеграция с CarrotQuest
      • Другие интеграции
        • Ai Chat
        • Инграфикон
        • JivoSite
        • API Вебхуков
        • Нмаркет.ПРО
      • Выгрузка на классифайды
        • Автоматическая выгрузка новостроек на ДомКлик
        • Конструктор фидов
      • 1С
        • Интеграция MACRO и 1С
        • Сделки
        • Форсированная синхронизация сущностей с 1С
      • Сбер
        • ЭСКРОУ
          • Инструкция по онлайн открытию эскроу счета в MacroCRM
          • Как выгрузить сертификат в pfx-контейнер
        • Ипотека Домклик
      • API 2.0
        • Приложения
      • Page
    • MacroData
      • MacroData - корпоративная аналитика для застройщиков
      • Инструкция по подключению PowerBI к MacroData
    • Ира - ЧатБот с ИИ
      • Как составить идеальный запрос для Иры: 6 ключевых составляющих
    • MacroBI
    • MacroMetrics
    • MacroSales
      • Заявки
        • Создание контакта
        • Агентства недвижимости и агенты
        • Процесс продаж
        • Создание заявки
        • Отправка клиенту подобранных вариантов
        • Добавление задачи
        • Добавление отчёта о встрече
        • Звонки
        • Лента событий
        • Очередь бронирования
      • Недвижимость
        • Создание группы домов
        • Создание дома
        • Редактирование дома
        • Шахматка дома
        • Бронирование объекта
        • Искусственное ограничение предложения объектов
        • Признак эксклюзива у объектов недвижимости
        • Служебные отметки в объектах
      • Отчёты
        • Воронка продаж
    • Глобальный поиск
  • 📨Техническая поддержка
  • 🆕Обновления и новости
    • 2025
      • Январь
      • Февраль
      • Март
      • Апрель
    • 2024
      • Декабрь
      • Ноябрь
      • Октябрь
      • Сентябрь
      • Август
      • Июль
      • Июнь
      • Май
      • Апрель
      • Март
      • Февраль
      • Январь
    • 2023
      • Октябрь
      • Ноябрь
      • Декабрь
Powered by GitBook
On this page
  • Пример настройки диалплана
  • Пример настройки при использовании freePBX
  1. Руководство пользователя
  2. Интеграции
  3. Телефония

Интеграция с АТС Aterisk (пример реализации)

Интеграция заключается во внесении изменений в текущий диалплан, таким образом чтобы во время его выполнения отправлялись http-запросы к MacroCRM

URL для отправки запросов можно посмотреть в настройках (Компания - Телефония)

Ожидаемые параметры:

cmd ['event', 'contact']

event - событие (действие по умолчанию если cmd не указано)

contact - определение номера ответственного менеджера

type ['OUTGOING', 'INCOMING', 'COMPLETED', 'CANCELLED']

OUTGOING - Исходящий отвеченный вызов

INCOMING - Входящий отвеченный вызов

COMPLETED - Завершенный вызов

CANCELLED - Пропущенный вызов (значение по умолчанию если type не указан)

direction ['in', 'out'] - явное указание направления вызова (необязательный параметр)

callid - уникальный идентификатор звонка

phone - номер телефона звонящего

diversion - номер на который был звонок

user - id пользователя для сопоставления в crm, рекомендуется использовать внутренний номер (extension)

сопоставление пользователей указывается в настройках (Компания - Интеграции - Asterisk - Сопоставление менеджеров)

recording_id - полный путь к файлу записи звонка

Пример настройки диалплана

1. Добавляем макрос "macro-crm"

[macro-crm]

;1-CMD,2-TYPE,3-CALLID,4-CALLERID(num),5-TOEXT

exten => s,1,Set(ARRAY(CMD,TYPE,CALLID)=${ARG1},${ARG2},${ARG3})

exten => s,n,Set(TYPE=${IF($[${EXISTS(${DIALSTATUS})}]?${IF($["${DIALSTATUS}" = "ANSWER"]?COMPLETED:CANCELLED)}:${TYPE})})

exten => s,n,Set(CRMPATH=https://api.macrocrm.ru/call/asterisk/num/token/)

exten => s,n,Set(URL=${CRMPATH}?cmd=${CMD}&type=${TYPE}&callid=${CALLID}&phone=${ARG4}&user=${ARG5})

exten => s,n,Goto(s-${CMD},1)

exten => s-contact,1,Set(TOEXT=${SHELL(/usr/bin/curl '${URL}')})

exten => s-event,1,System(/usr/bin/curl '${URL}'); или wget -O - --quiet если нет curl

;логирование если нужно exten => _s-.,n,System(/bin/echo -e "${STRFTIME(${EPOCH},,%d-%m-%Y %H:%M:%S)} ${ARG1} ${ARG2} ${ARG3} ${ARG4} ${ARG5}" >> /tmp/aster-crm.log)

2. Устанавливаем уникальный идентификатор звонка.

exten => _XXX,n,Set(__CRMCALLID=${SIPCALLID})

3. Можно определить внутренний номер ответственного менеджера

exten => _XXXX,n,Macro(crm,contact,"INCOMING",${CALLID},${CALLERID(num)})

Если такой не найден то устанавливаем значение по умолчанию

exten => _XXXX,n,Set(TOEXT=${IF(${EXISTS(${TOEXT})}?${TOEXT}:${EXTEN})})

Пример:

Есть клиент Воробьева, ее менеджер - Овсянников

При звонке с номера +7 (965) 482-3264 нужно получить его sip-id 7735 чтобы перевести звонок на него

Для тестирования можно перейти по ссылке:

https://api.macrocrm.ru/call/asterisk/num/token/?cmd=contact&type=INCOMING&callid=1234567&phone=79654823264

в ответе будет {"contact_name":"Воробьева Нина Константиновна","responsible_ext":"101","responsible_phone":"+7.9001234567"}

https://api.macrocrm.ru/call/asterisk/num/token/?cmd=responsible_ext&type=INCOMING&callid=1234567&phone=79654823264

вернет только 101

4. Отправляем событие принятого входящего звонка в CRM

exten => _XXXX,n,Dial(SIP/${TOEXT},20,g||M(crm^event^INCOMING^${CALLID}^${CALLERID(num)}^${TOEXT}))

Для тестирования:

https://api.macrocrm.ru/call/asterisk/num/token/?cmd=event&type=INCOMING&callid=1234567&phone=79654823264&user=7735

5. Отправляем событие принятого исходящего звонка в CRM

exten => _[78]9XXXXXXXXX,1,Macro(crm,event,"OUTGOING",${SIPCALLID},${EXTEN},${CALLERID(num)})

Для тестирования:

https://api.macrocrm.ru/call/asterisk/num/token/?cmd=event&type=OUTGOING&callid=12345678&phone=79654823264&user=7735

6. Отправляем результат звонка в CRM

exten => h,1,Macro(crm,event,${DIALSTATUS},${CALLID},${EXTEN},${CALLERID(num)},${TOEXT})

Для тестирования:

https://api.macrocrm.ru/call/asterisk/num/token/?cmd=event&type=COMPLETED&callid=1234567&phone=79654823264&user=7735

Пример настройки при использовании freePBX

globals_custom.conf

CRMPATH = https://api.macrocrm.ru/call/asterisk/num/token/

extensions_custom.conf

[sub-crm]

exten => s,1,Noop(MacroCRM Export Start)

exten => s,n,Set(CMD=${ARG1})

exten => s,n,Set(TYPE=${ARG2})

exten => s,n,Set(STATUS=${ARG3})

exten => s,n,Goto(s-${CMD},1)

exten => s-event,1,Goto(s-event-${TYPE},1)

exten => s-event-incoming,1,Set(URL=${CRMPATH}?cmd=${CMD}&type=INCOMING&callid=${CRMCALLID}&phone=${CRMCALLERID}&user=${MASTER_CHANNEL(CONNECTEDLINE(num))})

exten => s-event-incoming,n,Noop(MacroCRM URL=${URL})

exten => s-event-incoming,n,ExecIf($["${CRMCONTEXT}"="ext-group"]?System(/usr/bin/curl '${URL}'))

exten => s-event-incoming,n,Goto(crm,1)

exten => s-event-outgoing,1,Noop(MacroCRM s-event-outgoing)

exten => s-event-outgoing,n,Goto(crm,1)

exten => s-event-hangup,1,Noop(MacroCRM s-event-hangup)

exten => s-event-hangup,n,Set(TYPE=${IF($[${EXISTS(${DIALSTATUS})}]?${IF($["${DIALSTATUS}" = "ANSWER"]?COMPLETED:CANCELLED)}:${TYPE})})

exten => s-event-hangup,n,Set(URL=${CRMPATH}?cmd=${CMD}&type=${TYPE}&callid=${CRMCALLID}&phone=${CRMCALLERID}&user=${MASTER_CHANNEL(CONNECTEDLINE(num))}&recording_id=${CDR(recordingfile)})

exten => s-event-hangup,n,ExecIf($["${CRMCONTEXT}"="ext-group"]?System(/usr/bin/curl '${URL}'))

exten => s-event-hangup,n,Goto(crm,1)

exten => crm,1,Noop(MacroCRM event=${ARG1} type=${ARG2} status=${ARG3})

exten => crm,n,Noop(MacroCRM CRMPATH=${CRMPATH})

exten => crm,n,Noop(MacroCRM CRMCALLID=${CRMCALLID} CRMCONTEXT=${CRMCONTEXT} CRMCALLERID=${CRMCALLERID})

exten => crm,n,Noop(MacroCRM DIALSTATUS=${DIALSTATUS} HANGUPCAUSE=${HANGUPCAUSE})

exten => crm,n,Noop(MacroCRM CALLERID(name)=${CALLERID(name)} CALLERID(num)=${CALLERID(num)})

exten => crm,n,Noop(MacroCRM BLKVM_CHANNEL=${BLKVM_CHANNEL} CHANNEL=${CHANNEL})

exten => crm,n,Noop(MacroCRM DIAL_TRUNK=${DIAL_TRUNK} DIAL_NUMBER=${DIAL_NUMBER} OUTNUM=${OUTNUM})

exten => crm,n,Noop(MacroCRM MASTER_CONNECTEDLINE(num)=${MASTER_CHANNEL(CONNECTEDLINE(num))} DIALEDPEERNUMBER=${DIALEDPEERNUMBER})

exten => crm,n,Noop(MacroCRM CONNECTEDLINE(num)=${CONNECTEDLINE(num)} EXTTOCALL=${EXTTOCALL})

exten => crm,n,Return()

extensions_override_freepbx.conf

[macro-auto-blkvm]

include => macro-auto-blkvm-custom

exten => s,1,Set(__MACRO_RESULT=)

exten => s,n,Set(CFIGNORE=)

exten => s,n,Set(MASTER_CHANNEL(CFIGNORE)=)

exten => s,n,Set(FORWARD_CONTEXT=from-internal)

exten => s,n,Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal)

exten => s,n,Macro(blkvm-clr,)

exten => s,n,ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER}))

exten => s,n,ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)}))

exten => s,n,Gosub(sub-crm,s,1(event,incoming,answered))

;--== end of [macro-auto-blkvm] ==--;

[macro-hangupcall]

include => macro-hangupcall-custom

exten => s,1(start),GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?theend)

exten => s,n(delrgi),Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})})

exten => s,n(theend),ExecIf($["${ONETOUCH_RECFILE}"!="" & "${CDR(recordingfile)}"=""]?Set(CDR(recordingfile)=${ONETOUCH_RECFILE}))

exten => s,n,Gosub(sub-crm,s,1(event,hangup,hangup))

exten => s,n,Hangup

exten => s,n,MacroExit()

;--== end of [macro-hangupcall] ==--;

[macro-user-callerid]

include => macro-user-callerid-custom

exten => s,1,Set(TOUCH_MONITOR=${UNIQUEID})

exten => s,n,Set(__CRMCALLID=${UNIQUEID})

exten => s,n,Set(__CRMCONTEXT=${MACRO_CONTEXT})

exten => s,n,Set(__CRMCALLERID=${CALLERID(num)})

exten => s,n,Set(AMPUSER=${IF($["${AMPUSER}" = ""]?${CALLERID(number)}:${AMPUSER})})

exten => s,n,GotoIf($["${CUT(CHANNEL,@,2):5:5}"="queue" | ${LEN(${AMPUSERCIDNAME})}]?report)

exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)}))

exten => s,n,Set(AMPUSER=${DB(DEVICE/${REALCALLERIDNUM}/user)})

exten => s,n,GotoIf($["${AMPUSER}" = "none"]?limit)

exten => s,n,Set(AMPUSERCIDNAME=${DB(AMPUSER/${AMPUSER}/cidname)})

exten => s,n,GotoIf($["${AMPUSERCIDNAME:1:2}" = ""]?report)

exten => s,n,Set(AMPUSERCID=${IF($["${ARG2}" != "EXTERNAL" & "${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)}" = "1"]?${DB_RESULT}:${AMPUSER})})

exten => s,n,Set(__DIAL_OPTIONS=${IF($["${DB_EXISTS(AMPUSER/${AMPUSER}/dialopts)}" = "1"]?${DB_RESULT}:${DIAL_OPTIONS})})

exten => s,n,Set(CALLERID(all)="${AMPUSERCIDNAME}" <${AMPUSERCID}>)

exten => s,n,GotoIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})} & "${DB(AMPUSER/${AMPUSER}/concurrency_limit)}">"0" & "${GROUP_COUNT(${AMPUSER}@concurrency_limit)}">="${DB(AMPUSER/${AMPUSER}/concurrency_limit)}"]?limit)

exten => s,n,ExecIf($["${ARG1}"="LIMIT" & ${LEN(${AMPUSER})}]?Set(GROUP(concurrency_limit)=${AMPUSER}))

exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/language)}" != ""]?Set(CHANNEL(language)=${DB(AMPUSER/${AMPUSER}/language)}))

exten => s,n,GosubIf($[${LEN(${DB(AMPUSER/${AMPUSER}/ccss/cc_agent_policy)})} & "${DB(AMPUSER/${AMPUSER}/ccss/cc_agent_policy)}" != "never"]?sub-ccss,s,1(${MACRO_CONTEXT},${CALLERID(dnid)}))

exten => s,n(report),GotoIf($[ "${ARG1}" = "SKIPTTL" | "${ARG1}" = "LIMIT" ]?continue)

exten => s,n(report2),Set(__TTL=${IF($["foo${TTL}" = "foo"]?64:$[ ${TTL} - 1 ])})

exten => s,n,GotoIf($[ ${TTL} > 0 ]?continue)

exten => s,n,Wait(${RINGTIMER})

exten => s,n,Answer

exten => s,n,Wait(1)

exten => s,n,Playback(im-sorry&an-error-has-occured&with&call-forwarding)

exten => s,n,Macro(hangupcall,)

exten => s,n(limit),Answer

exten => s,n,Wait(1)

exten => s,n,Playback(beep&im-sorry&your&simul-call-limit-reached&goodbye)

exten => s,n,Macro(hangupcall,)

exten => s,n,Congestion(20)

exten => s,n(continue),Set(CALLERID(number)=${CALLERID(number):0:40})

exten => s,n,Set(CALLERID(name)=${CALLERID(name):0:40})

exten => s,n,Set(CDR(cnum)=${CALLERID(num)})

exten => s,n,Set(CDR(cnam)=${CALLERID(name)})

exten => s,n,Set(CHANNEL(language)=${MASTER_CHANNEL(CHANNEL(language))})

exten => h,1,Macro(hangupcall,)

;--== end of [macro-user-callerid] ==--;

Last updated 1 year ago

🎓