Сеанс Open Office Communicator из C#

Я работаю над приложением WPF и хочу открыть ссылки sip:Username@company.com. Я могу открыть ссылки mailto, используя следующий код:

private void btnSendEmail_Click(object sender, RoutedEventArgs e)
{
    try
    {
        string mailURL = String.Format("mailto:{0}", UserDetails.EmailAddress);
        Process.Start(mailURL);
        Close();
    }
    catch
    {
        // Handle exception
    }
}

Хотя я не могу открыть ссылки sip: аналогичным образом. То, чего я пытаюсь добиться, - это открыть новый сеанс чата с пользователем, как я могу сделать, переходя по ссылкам sip: из Outlook.

Есть идеи?

Изменить: я в конечном итоге с помощью CommunicatorAPI. Messenger.InstantMessage(), кажется, работает для меня. Более подробная информация здесь: http://msdn.microsoft.com/en-us/library/bb787232.aspx

5 ответов

Решение

Я закончил тем, что использовал CommunicatorAPI. Messenger.InstantMessage(), кажется, работает для меня. Более подробная информация здесь: http://msdn.microsoft.com/en-us/library/bb787232.aspx

С помощью Process.Start отлично работает в моей системе (с Microsoft Lync 2010, более новой версией Communicator):

void Main()
{
    Process.Start("sip:username@company.com");
}

Запуск приведенного выше кода приводит к открытию нового окна чата. Единственное исключение - когда я ввожу свое собственное имя пользователя, при котором оно начинает составлять для меня новое сообщение электронной почты Outlook. Что происходит, когда вы используете это (возможно, также попробуйте пропустить следующий вызов Close).

Если у вас установлен Lync или Office Communicator, они должны соответствующим образом реагировать на схему sip: uri. Также, tel:, callto: и т. Д. Для справки, полный список здесь.

Это не работает для вас из приложения WPF? Это работает для вас с базовой HTML-страницы?

Вам, вероятно, нужно связать программу со схемой uri "sip". Попробуйте это: как мне создать свой собственный протокол URL? (например, так://...)

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

Process.Start("sip:username@company.com");
Другие вопросы по тегам