# Podklyuchenie Sip U Operatora

> «Подключи SIP на корпоративный номер», «подключи МультиФон сотруднику», «проверь SIP на номере, заявка без дубля». В кабинете оператора: подключение или одна заявка.

- Skill: `kir-kopylov/podklyuchenie-sip-u-operatora` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add kir-kopylov/podklyuchenie-sip-u-operatora`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kir-kopylov/podklyuchenie-sip-u-operatora/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kir-kopylov (https://skillmd.com/u/kir-kopylov)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/kir-kopylov/podklyuchenie-sip-u-operatora

---


# Подключение Корпоративного Номера К SIP

## Запуск Навыка

Этот черновой навык запускайте только при явном вызове по имени или прямой команде пользователя. При одном смысловом совпадении не запускайте навык и не спрашивайте о его применении.

При явном вызове перед первым шагом покажите ровно одну короткую контекстную строку (не более 30 слов) и продолжайте работу в том же ответе, не ожидая реакции:

Применяю черновой навык **«Подключение корпоративного номера к SIP»** (обратная связь — @kir-kopylov): <кратко назовите конкретную пользу для текущего запроса>; продолжаю без ожидания.

Не включайте в строку `author_github`, внутреннее имя папки или пересказ всего запроса. Не спрашивайте, применять ли навык.

Если одновременно подходят совместимые навыки, выберите минимальный набор и покажите одну общую строку. Если подходы ведут к несовместимым результатам и запрос не позволяет выбрать, спросите только о желаемом результате, не о разрешении применить навык.

Запуск навыка не расширяет полномочия. Выполните всю безопасную и уже разрешённую часть; запросите подтверждение только непосредственно перед ещё не разрешённым внешним или изменяющим действием. Не запрашивайте повторно уже данное разрешение и не дублируйте системное окно подтверждения.

## Обзор

Снимать с координатора необходимость помнить устройство кабинета оператора.
Пользователь указывает номер или однозначно определяемого сотрудника, а skill
сам проверяет состояние и возвращает один из четырёх результатов:

- `already_active` — SIP уже активен;
- `activated` — бесплатное прямое подключение выполнено и доказано;
- `request_registered` — создана либо найдена единственная заявка с номером и статусом;
- `blocked_human_action` — требуется ровно одно действие человека.

`request_registered` завершает текущую операционную задачу, но не доказывает
подключение услуги. Не заменяйте один статус другим.

## Естественные Входы

- «Подключи SIP на корпоративный номер …»;
- «Подключи МультиФон сотруднику …»;
- «Проверь SIP на номере и создай заявку без дубля»;
- «Узнай, подключена ли IP-телефония к этому корпоративному номеру».

Обязателен точный номер либо имя, которое в кабинете приводит ровно к одному
абоненту. Опциональны страна использования, дата подключения и отличия от
профиля компании.

Перед работой прочитайте:

- `known-exceptions.yaml`;
- `references/operator-contract.md`;
- для МегаФона — `references/domain-playbook.md`.

Работайте только в авторизованном Chrome пользователя. Не читайте cookies,
local storage, сохранённые пароли или хранилище профиля браузера.

## Процесс

1. **Проверить предпосылки.** Подтвердить авторизацию и прямой признак роли,
   позволяющей управлять нужным лицевым счётом. При входе, OTP или CAPTCHA
   вернуть `blocked_human_action` с одной инструкцией.
2. **Разрешить цель.** Найти лицевой счёт и абонента. Если совпадений несколько,
   не выбирать по догадке — запросить одно уточнение.
3. **Загрузить профиль.** Использовать приватный
   `~/.codex/skill-runs/podklyuchenie-sip-u-operatora/company-profile.yaml`.
   Если его нет, создать только неперсональные defaults из
   `references/operator-contract.md`; контакт для уведомлений подтвердить один
   раз перед локальным сохранением. SIP-логины и пароли в профиль не писать.
4. **Проверить текущее состояние.** Найти услугу на точном номере, затем
   проверить все релевантные очереди заказов и обращений. Совпадение определять
   по номеру, услуге, действию и незавершённому статусу.
5. **Прочитать живые условия.** Цена, обязательный срок, дополнительные услуги
   и изменение маршрутизации считаются известными только после чтения текущего
   кабинета. Справка, рекламная страница и поисковый кэш не являются живым
   подтверждением.
6. **Выбрать действие.**
   - если услуга доказанно активна — завершить `already_active`;
   - если доступно прямое подключение без платы, обязательств и изменения
     профиля маршрутизации — выполнить его по исходной команде пользователя;
   - если прямого пути нет — создать одну заявку;
   - при новой плате, сроке или изменении маршрутизации сначала запросить
     подтверждение.
7. **Проверить след.** После мутации найти услугу, заказ либо обращение с
   идентификатором и статусом. Потеря страницы после клика не разрешает
   повторять действие: сначала повторно проверить состояние и дубли.
8. **Вернуть результат.** Использовать формат из operator contract: точная
   цель, итоговый статус, наблюдаемый след, что ещё не доказано и один следующий
   шаг, если он нужен.

## Изменение Интерфейса

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

1. Остановить новые мутации и проверить, не выполнилось ли предыдущее действие.
2. Перечитать текущую страницу семантически: заголовки, подписи, доступные
   действия, URL pattern и состояние точного абонента. Не опираться только на
   координаты или старый CSS selector.
3. Продолжить автономно только при единственном пути, сохраняющем номер,
   действие и risk profile.
4. При неоднозначности вернуть `blocked_human_action`, а не третью гипотезу.
5. После найденного обхода запустить
   `scripts/record_interface_exception.py`. Скрипт сохранит санированную
   карточку и patch proposal вне repo.
6. Не менять `SKILL.md`, `known-exceptions.yaml`, playbook, установленный cache
   или source repo без отдельной команды «одобрить». После одобрения применить
   точечный patch, добавить regression test и запустить `python3 -m pytest`.

## Границы

- Не использовать для настройки SIP-клиента, хранения credentials, тестовых
  звонков, массового обзвона или обхода ограничений оператора.
- Не подключать услугу к приблизительно выбранному номеру.
- Не считать кнопку, переход, заполненную форму или рекламное обещание
  доказательством подключения.
- Не отправлять новую заявку при существующей незавершённой заявке на ту же
  услугу и номер.
- Не принимать платные условия или изменение маршрутизации без подтверждения.
- Не обходить OTP, CAPTCHA, отсутствие роли или системную блокировку.
- Не записывать в repo и patch proposal полные номера, email, имена, account
  IDs, SIP-пароли, raw logs, скриншоты или приватную переписку.
- Не создавать фоновый updater. Проверенные изменения распространяются только
  штатным release/migrator-процессом командного репозитория.

## Definition Of Done

Работа завершена, только если выдан один допустимый status и он подтверждён
наблюдаемым следом. Для `request_registered` обязательны идентификатор и
текущий статус обращения. Для `activated` обязательна проверка услуги или
заказа после подключения. Для `blocked_human_action` укажите одну инструкцию и
условие возобновления.

## Опрос После Использования

Опрос задаётся один раз — после выдачи доказанного status или явного стопа, не
посреди подключения. Если пользователь уже ответил «пропустить» в этой сессии,
не переспрашивайте.

```text
Опрос по skill:
1. Что в этом использовании podklyuchenie-sip-u-operatora было полезно?
2. Что стоит доработать в skill или его формате?
Можно ответить коротко или написать "пропустить".
```

Если пользователь ответил, сохраните санированную карточку в `~/.codex/skill-runs/podklyuchenie-sip-u-operatora/usage-feedback.jsonl` — лучше через bundled script:

```bash
python3 scripts/log_usage_feedback.py --liked "..." --improve "..." --outcome "..."
```

Script перед записью редактирует приватные пути, контакты и token-like строки и сохраняет в JSONL `redaction_applied` и `redaction_types`. Если запись невозможна из-за sandbox, прав или отсутствия tools, не делайте вид, что лог сохранён: скажите об этом и покажите короткую JSONL-карточку для ручного сохранения. Raw-ответы, контакты, пути и секреты не коммитить.

## Логирование Сбоев

Перед выполнением прочитайте локальный `known-exceptions.yaml` как список уже
известных случаев и применяйте подходящее `do_next_time` без нового поиска.

Если пользователь поправил skill, tool/API/browser упал, нарушен режим работы,
пришлось искать workaround или skill сделал ложное предположение, запишите
приватную карточку через `scripts/record_interface_exception.py` в
`~/.codex/skill-runs/podklyuchenie-sip-u-operatora/exception-log.jsonl`.

Пишите факты: что skill хотел сделать, что сделал, где сломался, какая
предпосылка была ложной и что сделать в следующий раз. Если поле неизвестно,
пишите `unknown`. Raw logs не коммитить.

