天天看點

Lync 的呼叫轉移

Lync裡面的一個非常重要的功能就是呼叫轉移了,具體的設定方法就是如下。使用者設定一個号碼,然後其它人呼叫該使用者的Lync号碼的時候,無論該使用者的Lync是線上還是離線,呼叫永遠都是轉移到使用者設定在這裡的号碼。即便Lync用戶端離線了,呼叫也可以轉移出去,這樣就一個呼叫都不會漏了。

Lync 的呼叫轉移
到這裡覺得都沒有問題,結果在測試的時候,你會發現這樣的轉移是不成功的。為什麼?我們首先來看看呼叫的流程
Lync 的呼叫轉移
手機使用者呼叫021-88881002,經過網關轉變成為标準的E.164格式進入Lync,然後Lync使用者設定了把呼叫轉移到自己的手機18687654321,我們先看看網關上收到的資料包。

INVITE sip:[email protected];user=phone SIP/2.0

FROM: <sip:18912345678;[email protected];user=phone>;epid=6F3B6CC71C;tag=4d1a2de

TO: <sip:[email protected];user=phone>

CSEQ: 4 INVITE

CALL-ID: 348720d8-329b-45fb-a91c-605866583850

MAX-FORWARDS: 70

VIA: SIP/2.0/TCP 192.168.1.62:50044;branch=z9hG4bKeffed08c

CONTACT: <sip:Lync2010.ucdemo.net:5068;transport=Tcp;maddr=192.168.1.62;ms-opaque=55308d269ad5bea4>

CONTENT-LENGTH: 338

SUPPORTED: 100rel

USER-AGENT: RTCC/4.0.0.0 MediationServer

CONTENT-TYPE: application/sdp

ALLOW: ACK

Allow: CANCEL,BYE,INVITE,PRACK,UPDATE

v=0

o=- 5 1 IN IP4 192.168.1.62

s=session

c=IN IP4 192.168.1.62

b=CT:1000

t=0 0

m=audio 49226 RTP/AVP 97 101 13 0 8

a=rtcp:49227

a=label:Audio

a=sendrecv

a=rtpmap:97 RED/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-16

a=rtpmap:13 CN/8000

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=ptime:20

發現一個問題沒有?裡面沒有任何的關于021-88881002的資訊,我們可以這麼了解,呼叫達到了Lync之後,Lync重新發起了一路對18687654321的呼叫,而呼叫的主叫則不是Lync使用者,而是原本呼入的手機号碼18912345678。這樣的邏輯卻是也對,因為18687654321上面應該顯示出主叫是18912345678。但是很遺憾的是,我們國内很多地方的E1線路有一個非常嚴格的規定,要通過這條E1中繼線路發出呼叫,主叫方的号碼必須是你所擁有的DID号碼段内的号碼。是以這樣的呼叫是無法通過E1呼出去的。

解決問題的思路就是,針對Lync發起的這路呼叫,我們需要把主叫号碼修改為Lync使用者的号碼,這樣的呼叫才能順利地進入營運商的網絡。而在這樣的情況下,18687654321上面顯示的主叫号碼則是自己的座機号碼,有點怪,是不是?不過習慣就好。

要解決這個問題需要網關和Lync雙方共同完成。

第一步:首先需要Lync送出來的SIP invite帶着原始的Lync使用者資訊,

第二步:網關根據這個資訊進行相關資訊的修改,然後再進行落地。

第一步的做法:

在中介伺服器上修改:\Program Files\Microsoft Lync Server 2010\Mediation Server\MediationServerSvc.exe.config檔案,填入如下的内容,其中192.168.1.198是網關的IP位址。

<?xml version=”1.0″ encoding=”utf-8″?>

<configuration>

<appSettings>

<add key=”192.168.1.198.ReferredBySupported” value=”true”/>

</appSettings>

<runtime>

<generatePublisherEvidence enabled=”false”/>

</runtime>

</configuration>

Lync 的呼叫轉移

然後重新啟動中介服務。

我們在抓一個包看看,

繼續閱讀