首先,我不得不說(shuō),這個(gè)教程可能對(duì)你有些幫助,但是也有可能無(wú)法根本解決某些問(wèn)題。因?yàn)檫@一塊的東西太少了。網(wǎng)上幾乎沒(méi)有參考。
對(duì)于Skype的集成,早在幾年前好像就是支持的。在Freeswitch的官網(wǎng)上也有對(duì)應(yīng)的說(shuō)明。
早起主要有三種方式:
·Skype Connect
·mod_skypopen (deprecated)
·SipTheeSkppe(deprecated)
ok,那就很明朗了。我們只有一條路可以走。
準(zhǔn)備
首先你要有一個(gè)skype賬戶,沒(méi)有就去官網(wǎng)上申請(qǐng)一個(gè)。(現(xiàn)在skpye已經(jīng)被微軟收購(gòu)了,如果你有微軟賬號(hào)也可以登錄)
其次你要有個(gè)Freeswitch。當(dāng)然,這個(gè)是肯定有的。
Freeswitch配置
這些都可以參考Freeswitch官網(wǎng)上的,我也是按照上面來(lái)的。不過(guò)稍微有一點(diǎn)點(diǎn)不同。(可能文檔沒(méi)有及時(shí)更新)
SIP Profile
位置在 conf/sip_profiles/external/skype.xml(該文件需要你新建)
<include>
<gateway name="skype">
<param name="realm" value="sip.skype.com"/>
<param name="proxy" value="sip.skype.com"/> <!-- is this necessary? it's the same as realm -->
<param name="from-domain" value="sip.skype.com"/>
<param name="username" value="YOUR_SKYPE_sip_USERNAME"/>
<param name="from-user" value="YOUR_SKYPE_sip_USERNAME"/>
<param name="password" value="YOUR_SKYPE_SIP_PASSWORD"/>
<param name="contact-params" value="YOUR_SKYPE_sip_USERNAME@sip.skype.com"/>
<param name="extension" value="YOUR_SKYPE_sip_USERNAME"/>
<param name="extension-in-contact" value="true"/>
<param name="retry-seconds" value="30"/>
<param name="caller-id-in-from" value="false"/>
</gateway>
</include>
這個(gè)配置是網(wǎng)關(guān)上的參考,需要說(shuō)明幾點(diǎn)。
首先,看你一下你的server是否可以ping通sip.skype.com。避免物理上的不可訪問(wèn)。
其次,YOUR_SKYPE_sip_USERNAME并不是你的skype的賬戶名。(可能文檔寫(xiě)作的時(shí)候是可以的,但是現(xiàn)在肯定不行)。這個(gè)username是skype connect里的profile的username。(后面介紹)
同理,這里的YOUR_SKYPE_SIP_PASSWORD也不是你的skype的密碼,是skype connect里的profile的password。
另外,建議retry-seconds設(shè)置時(shí)間小一點(diǎn)。
理論上來(lái)說(shuō),配置了Sip Profile,已經(jīng)完成了一半,你可以實(shí)現(xiàn)freeswitch通過(guò)skype外呼的能力了。 如果要實(shí)現(xiàn)skype呼入freeswitch,需要再完成如下配置。
Dialpan
Inbound: conf/dialplan/public/01_skype.xml(該文件需要你新建)
<include>
<extension name="skype_inbound">
<condition field="destination_number" expression="YOUR_SKYPE_SIP_USERNAME">
<action application="transfer" data="YOU_LOCAL_NUMBER_WHERE_YOU_Want_TRANSFER_SKYPE_CALL XML default"/>
</condition>
</extension>
</include>
Outbound: conf/dialplan/default/01_skype.xml(該文件需要你新建)
<include>
<extension name="skype_outbound">
<condition field="destination_number" expression="^(YOURPREFIX\d+)$">
<action application="bridge" data="sofia/gateway/skype/$1"/>
</condition>
</extension>
</include>
注意:這段官網(wǎng)上標(biāo)注是沒(méi)有測(cè)試過(guò)的,因?yàn)楣P者不需要,我就沒(méi)有配置了。僅供參考。
Sip Connect配置
Skype被收購(gòu)后,官網(wǎng)上也是繞來(lái)繞去的。筆者弄了半天才弄清楚Sip Connect的概念。
流程
言歸正傳,理一下這個(gè)圖里的關(guān)系。
Skype賬號(hào)和微軟賬號(hào)都可以登錄skype,但是兩者不互通(之前踩過(guò)坑)
需要登錄skype manager(使用對(duì)應(yīng)的賬戶),然后在特性里開(kāi)通Skype Connect。
這一步不可使用百度,可以使用google搜skype manager,然后找到入口。
進(jìn)入后要先創(chuàng)建一個(gè)組。我創(chuàng)建了一個(gè)名為MyFamily的組。
skype manager頁(yè)面
點(diǎn)擊Features,點(diǎn)擊Skype Connect,創(chuàng)建Profile
Features
創(chuàng)建后Profile后就可以查看用戶名和密碼
查看用戶名和密碼
還記得上面Freeswitch配置的用戶名和密碼嗎? 這里就是需要配置的值。
配置完成后,這個(gè)網(wǎng)關(guān)就可以注冊(cè)上了。但是不可以外呼。因?yàn)闆](méi)有激活。激活要交費(fèi),只是線路的費(fèi)用,一個(gè)線路一個(gè)月將近5歐。
這里充了錢(qián)只能充值到我個(gè)人賬戶,這里的組賬戶還是沒(méi)有錢(qián)。不理解為什么。
問(wèn)了Skype客戶,答復(fù)告訴我是國(guó)內(nèi)不支持Skype Connect功能,那我充值異常怎么說(shuō)啊? 客服答,請(qǐng)直接退款。