Freeswitch集成Skype
首先,我不得不说,这个教程可能对你有些帮助,但是也有可能无法根本解决某些问题。因为这一块的东西太少了。网上几乎没有参考。
对于Skype的集成,早在几年前好像就是支持的。在Freeswitch的官网上也有对应的说明。链接点此
早起主要有三种方式:
- Skype Connect
- mod_skypopen (deprecated)
- SipTheeSkppe(deprecated)
ok,那就很明朗了。我们只有一条路可以走。
准备
首先你要有一个skype账户,没有就去官网上申请一个。(现在skpye已经被微软收购了,如果你有微软账号也可以登录)
其次你要有个Freeswitch。当然,这个是肯定有的。
Freeswitch配置
这些都可以参考Freeswitch官网上的,我也是按照上面来的。不过稍微有一点点不同。(可能文档没有及时更新)
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>
这个配置是网关上的参考,需要说明几点。
首先,看你一下你的server是否可以ping通sip.skype.com。避免物理上的不可访问。
其次,YOUR_SKYPE_sip_USERNAME并不是你的skype的账户名。(可能文档写作的时候是可以的,但是现在肯定不行)。这个username是skype connect里的profile的username。(后面介绍)
同理,这里的YOUR_SKYPE_SIP_PASSWORD也不是你的skype的密码,是skype connect里的profile的password。
另外,建议retry-seconds设置时间小一点。
理论上来说,配置了Sip Profile,已经完成了一半,你可以实现freeswitch通过skype外呼的能力了。 如果要实现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>
注意:这段官网上标注是没有测试过的,因为笔者不需要,我就没有配置了。仅供参考。
Sip Connect配置
Skype被收购后体验上就很不优好,官网上也是绕来绕去的。笔者弄了半天才弄清楚Sip Connect的概念。
不知道Skype的产品在这一块是怎么设计的,体验真的是超级烂
言归正传,理一下这个图里的关系。
Skype账号和微软账号都可以登录skype,但是两者不互通(之前踩过坑)
需要登录skype manager(使用对应的账户),然后在特性里开通Skype Connect。
这一步不可使用百度,可以使用google搜skype manager,然后找到入口。
进入后要先创建一个组。我创建了一个名为MyFamily的组。
skype manager页面
点击Features,点击Skype Connect,创建Profile
Features创建后Profile后就可以查看用户名和密码
查看用户名和密码还记得上面Freeswitch配置的用户名和密码吗? 这里就是需要配置的值。
配置完成后,这个网关就可以注册上了。但是不可以外呼。因为没有激活。激活要交费,只是线路的费用,一个线路一个月将近5欧。
这里气人的是充了钱居然只能充值到我个人账户,这里的组账户还是没有钱。不理解为什么。
问了Skype客户,答复告诉我是国内不支持Skype Connect功能,那我充值异常怎么说啊? 客服答,请直接退款。
再次吐槽一下Skpye的客服,体验也真的很烂。