среда, 30 марта 2011 г.

Использование Microsoft UCCAPI вместе с asterisk

Появилась задачка написать SIP телефон используя .Net, который бы мог работать с астериском (asterisk). Встал вопрос что использовать. Погуглив на предмет опенсорсных инструментов, нашел различные стеки SIP'а на C#, но без реализации RTP стека. Есть полностью готовые к использованию стеки с возможностью потокового аудио/видео, но чаще всего они платные. Ну нет совершенно желания платить денежку :-)



Наткнулся на Microsoft UCCAPI. Появился он (оно?) как средство для создания альтернативного клиента Microsoft Communicator, для общения с Microsoft Office Communications Server 2007, ну и соответственно между Communicator'ами.

Хороший пример использования Microsoft UCCAPI можно найти в SDK. Называется он IMVoIPSample.

Особенность реализации стека SIP от Microsoft, то что он подключается (общается) к серверу только через TCP

Итогом изучения Microsoft UCCAPI явилась небольшая программка, которая может позвонить на любой SIP телефон, звонит на АТСку, которая привязана к asterisk, принимает входящие звонки, настраивает аудио каналы для общения.

Проблемы, с которыми я столкнулся:

  • при входящем звонке на мой созданный  SIP телефон, Microsoft UCCAPI не возвращает OK. Проявляется это отсутствием гудков дозвона при звонке с АТС. Решается явным указанием звонка в плане asterisk.

    exten => _6.,1,Ringing
    exten => _6.,n,Dial(SIP/${EXTEN:0})
  • настройка аудио кодеков. Необходимо явно ограничить используемые кодеки в астериск
  • авторизация клиента на астериске



Комментариев нет:

Отправить комментарий