Интеграция Lync Server 2010 и Asterisk 1.8

2010-11-23, 03:45 / Argon

К релизу Lync Server 2010 в интернете появилось много отличных обзоров и руководств по настройке этого продукта.

Не смотря на всю их подробность и наполненность картинками, при настройке интеграции Lync Server 2010 и Asterisk 1.8 я столкнулся с русскими реалиями…

Вроде бы все настроено как надо по мануалу, логично и понятно. В точно такой же конфигурации Asterisk-a OCS 2007 R2 через него на внешнюю линию может звонить полноценно, а Lync только звонит на внутренние номера Asterisk-a и принимает вызовы от него, в том числе с внешней линии.

При попытке позвонить с Lync-а через Asterisk на внешнюю линию, слышим долгое молчание и сообщение об отмене вызова.

При этом на сервере Lync пишет в логи

The Mediation Server service has received a call that does not support comfort noise. This event is throttled after 5 calls from a single Gateway peer.

А на стороне Asterisk-а можно увидеть

-- Executing [+7909719xxxx@default:1] Dial("SIP/lync-000000b9", "SIP/+7909719xxxx@ertelecom-out") in new stack

[...]

[Nov 23 01:47:07] WARNING[12510]: chan_sip.c:3383 retrans_pkt: Retransmission timeout reached on transmission 1ac213351ad0411964a9bb7e239c8c3e@92.255.238.150:5060 for seqno 102 (Critical Request) -- See doc/sip-retransmit.txt.
Packet timed out after 31997ms with no response
[Nov 23 01:47:07] WARNING[12510]: chan_sip.c:3412 retrans_pkt: Hanging up call 1ac213351ad0411964a9bb7e239c8c3e@92.255.238.150:5060 - no reply to our critical packet (see doc/sip-retransmit.txt).

После долгих упражнений с бубном, я догадался включить вывод всех сообщений SIP на Asterisk-е командой sip set debug on. Затем сравнил сообщения для успешных случаев подключения OCS 2007 R2 и безуспешных попыток соединения Lync Server 2010.

И тут я увидел разницу

для успешных случаев:

From: "+180" <sip:211688@92.255.238.150>;tag=as7929284e

для неудачных:

From: "%D0%98%D0%B3%D0%BE%D1%80%D1%8C %D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" <sip:211688@92.255.238.150>;tag=as6a1114eb

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

Для исправления этой ошибки, я вручную указал более простое имя вызывающего абонента командой Set в extensions.conf, например, так:

exten => _+7XXXX.,1,Set(CALLERID(name)=211688)
exten => _+7XXXX.,n,Dial(SIP/${EXTEN}@ertelecom-out)

Полезные ссылки



4 комментария

Дмитрий
# Комментарий от 2011-09-01, 16:08

не работает Lync по этому руководству. звонки только в одну сторону на Lync абонентов, обратно же, ничего не происходит. бьюсь уже неделю,понять не могу где косяк.
.Lync 2010 , asterisk 1.8.5

Argon
# Комментарий от 2011-09-04, 17:17

Дмитрий, я бы в первую очередь смотрел журналы SIP на стороне Lync и Asterisk. Недавно один из коллег, с которым я на форумах общался, запостил еще одни волкграунд. Возможно, пригодиться.

Серёга
# Комментарий от 2012-06-01, 10:49

Достаточно в опциях транка Lync в опции CID поставить парамтр Remove CNAM который удаляет имя и пересылает лиж CID провайдеру.

Argon
# Комментарий от 2012-06-01, 14:41

Спасибо, не знал!

Добавить комментарий