Обнаружение перенаправленного на sip-адрес в скрипте MSPL по входящему номеру ddi
В Lync 2013, если вы устанавливаете DDI для контакта Lync и вызываете его с внешнего номера, SIP-запрос, который видит сценарий MSPL, заключается в том, что он отправляется в отформатированный DDI E164, например
Кому:
Я пытаюсь выяснить, на какой клиент Lync он отправляется.
Лучшее, что я понял, - это использование метода QueryCategory для извлечения адреса электронной почты с карточкой контакта и предположения, что, поместив "sip:" на лицевой стороне, я получу адрес sip. Я знаю, что это не очень хорошее предположение, так как адрес sip может отличаться от адреса электронной почты.
например
toContactCardInfo = QueryCategory(toUserUri, 0, "contactCard", 0);
Что дает мне:
<contactCard xmlns=""http://schemas.microsoft.com/2006/09/sip/contactcard"" >
<identity >
<name >
<displayName >
Lync User</displayName>
</name>
<email >
lync.user@xxx.com</email>
</identity>
</contactCard>
Есть ли другой способ получить sip-адрес от "to" uri?
Я думаю, что QueryCategory может работать для меня, но я нахожу документацию MSDN трудно понять, что это даст мне SIP-адрес из параметров ContainerNumber и Instance для любого из разрешенных имен категорий ("userProperties", "workingHours "," dndState "," маршрутизация "или"contactCard").
1 ответ
Для тех, кто находится в той же лодке, я окончательно остановился на использовании заголовка SIP " P-Asserted-Identity", чтобы определить, кому телефонный звонок направляется в / из. Единственная проблема заключается в том, что он не отображается в начальных приглашениях (как это было бы для стороны "в любом случае"), а в ответном звонке 180.