私は大規模な機関の IS 部門で働いています。私たちの電話を処理する Lync サーバーは別の部門によって処理されており、それらの協力を必要とするソリューションは実行できません。これにより、Lync サーバー、SEFAUtil などから実行される追加の特権を必要とするソリューションが除外されます。
私の個人用の Lync 2013 クライアントには、卓上電話を別の番号に転送できる、忌まわしい GUI メニューがあります。そのため、理論的には可能であることを私は知っています。
自分の個人的な資格情報でログインする (大量の SDK がインストールされた) powershell コードがあります。私が入手したブログでは、スクリプトが任意の IM メッセージを送信することができました (私にはあまり役に立ちませんでした)。次のようになります。
if (-not (Get-Module -Name Microsoft.Lync.Model)) {
try {
Import-Module -Name (Join-Path -Path ${env:ProgramFiles} -ChildPath "Microsoft Office\Office15\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.dll")
-ErrorAction Stop
}
catch {
Write-Warning "Microsoft.Lync.Model not available, download and install the Lync 2013 SDK http://www.microsoft.com/en-us/download/details.aspx?id=36824" break
}
}
$client = [Microsoft.Lync.Model.LyncClient]::GetClient()
if ($client.State -ne [Microsoft.Lync.Model.ClientState]::SignedIn) {
$client.EndSignIn(
$client.BeginSignIn("x@x.com", "domain\johno", "youllNeverGuess", $null, $null))
}
if ($Client.State -eq "SignedIn") {
Write-Host "DEBUG: We managed to sign in!" }
}
間違ったパスワードを入力すると、barfs するという点で、これは機能しているようです。
SDK 内から、callfowarding を特定の番号に設定することは可能ですか? Microsoft の恐ろしいドキュメントは、スクリプトがイベント ハンドラーを介してキャッチした着信を転送する方法を示しています。つまり、スクリプトはポーリング ループで実行する必要があり、転送するアカウントのリストを反復処理することはできませんでした。GUI クライアントから、電話を番号に転送するように設定すると、マシンの電源を切っても転送が継続するため、半永久的に何かがサーバーに送信されます。Lync SDK は同じことを実現できますか?
Lync 2010 は非推奨ですが、それに基づくソリューションがあれば幸いです。Powershell が推奨されますが、VB または C# のコードがある場合は、それも問題ありません。銀の大皿にすべてを盛り付ける必要はありません。作業するための手がかりがいくつかあるだけです。