Click to Dial
Click to Dial,我们称之为点击呼叫或页面点击呼叫。浏览器用户以插件的形式或者页面的形式通过浏览器访问点击界面。用户通过点击页面的一个SIP URL链接,页面点击呼叫消息传递给电脑SIP终端,终端配置了呼叫方的SIP URL地址,通过REFER发送SIP终端,然后SIP终端和被呼叫方创建一个会话连接,实现双方呼叫。
这里的呼叫场景适合于简单的点对点的SIP呼叫场景。如果用户通过媒体服务器实现呼叫的话,处理流程和我们现在讨论的有所不同。具体的呼叫流程如下:
现在,我们配合具体的SIP消息内容和每一个流程来简单说明点击呼叫的处理过程。
首先,Bob的PC端SIP对BobSIP电话发送REFER消息(F1),这里的头域中设置了Refer-Sub:false,这表示PC端要求不生成REFER的dialog,仅支持2XX响应消息。关于Refer-Sub的使用方法和参数设置,读者可以查阅RFC4488。
然后,BobSIP电话终端回复202 接受(F2):
接下来,Bob对Carol发送INVITE请求消息,表示需要对Carol进行呼叫(F3):
接下来,Carol对Bob SIP 电话回复180 振铃(F4):
然后,Alice对Bob SIP电话回复200 OK(F5):
接下来,Bob的SIP 电话回复ACK确认消息(F6),然后实现双方语音流传输。
到此为止,整个点击呼叫的流程结束,双方开始电话互通。
事实上,现在点击呼叫业务功能可以通过很多种方式实现,可以通过浏览器插件的形式实现,也可以通过HTML加脚本语言的形式实现,WebRTC或者邮件终端插件工具来实现。
特别是基于开源软交换的平台,例如Asterisk/FreePBX或者FreeSWITCH都可以通过接口语言来开发更加灵活的点击呼叫功能。例如,通过脚本语言加Asterisk AMI接口实现的页面点击呼叫功能。用户可以下载以下代码来实现点击呼叫功能。以下是一个PHP的页面点击呼叫实例地址,读者可以参考:
https://github.com/spbx/Simple-Click2Call-for-Asterisk-PBX/blob/master/click2dial.php
基于Asterisk的点击呼叫的插件,用户可以参考TBDialOut来实现,开源项目地址: