Стороннее управление вызовами через SIP

Я пытаюсь использовать SIP для стороннего управления вызовами. Я не уверен, что это возможно, поэтому, надеюсь, кто-то может просветить меня.

У меня следующий сценарий. Во внутренней сети есть несколько добавочных телефонов. У Алисы есть физический SIP-телефон, как и у всех остальных людей в офисе.

Что я хочу сделать (для начала), так это разрешить следующее: кто-то звонит Алисе. Вместо того, чтобы взять физический SIP-телефон, она нажимает какую-то кнопку (скажем, помеченную Answer) на экране своего компьютера. Это заставляет физический телефон снять трубку (например, теперь он включен в динамике), и она разговаривает с тем, кто ей звонил.

Можно ли это сделать? Приветствуются любые проекты кода, особенно на С#.

Я делал подобные вещи с TAPI, и это сработало очень хорошо, но TAPI — умирающая технология (нет 64-битного эквивалента), поэтому я ищу замену.


person AngryHacker    schedule 05.10.2010    source источник


Ответы (2)


Механизм SIP, информирующий вас о том, что телефон Алисы поднят, представляет собой уведомление о событии, которое задокументировано в RFC 3265 Session Initiation. Уведомление о событии, специфичном для протокола (SIP), и специальный пакет событий для уведомлений, связанных с INVITE, — RFC 4235 An INVITE-Initiated Dialog Event Package для протокола инициации сеанса (SIP).

Короче говоря, события SIP работают по принципу подписки/уведомления, когда один пользовательский агент SIP может подписаться на сервер уведомлений для получения уведомлений о событиях, происходящих в другом пользовательском агенте. К сожалению, поддержка событий SIP не так широко распространена, и даже когда она поддерживается, она может быть немного нестабильной, например Asterisk. используется для генерации очень странных запросов NOTIFY.

person sipsorcery    schedule 05.10.2010

(Рекомендации) для 3pcc для SIP описаны в RFC 3725.

Другая возможность (которая не использует 3pcc) заключается в том, что программный телефон Алисы должен РЕГИСТРИРОВАТЬСЯ с более высоким приоритетом, чем ее физический SIP-телефон. Звонки на зарегистрированный адрес Алисы будут поступать на ее софтфон, который может СООТВЕТСТВОВАТЬ звонку (т. е. переадресации/слепой передаче) на SIP-телефон.

person Frank Shearar    schedule 05.10.2010
comment
Используя ваш метод, после того, как я переадресовал/вслепую перевел вызов с программного телефона на физический телефон, мне все равно придется ждать, пока Алиса поднимет физический телефон. Это действие не приведет к тому, что телефон отключится (например, звонок будет включен в динамик), верно? - person AngryHacker; 05.10.2010
comment
Именно так обстоит дело с REFER. Сложность заключается в том, чтобы заставить ваш физический телефон что-то делать: например, он должен ответить на звонок. Вам может понадобиться отдельный, не SIP, ответ для этой части: автоответчик, переключение на громкую связь. - person Frank Shearar; 05.10.2010