上一篇學習了如何安裝freeswitch,接下來我們利用2個voip軟件來體驗如何互打電話(注:仍然是mac環境,windows用戶可參考mac上的做法,原理相通)
一、安裝yateclient及zoiper
voip軟件有很多種,這里選用yate及zoiper這二種免費而且跨平台的客戶端。
yate下載地址: https://yate.en.softonic.com/mac
zoiper下載地址:https://zoiper.en.softonic.com/mac
這二款軟件大致長這樣:
二、啟動freeswitch
cd /usr/local/freeswitch/bin
./freeswitch
注:啟用freeswitch前,要先保證zoiper及yateclient這類軟件完全退出,否則可能會占用默認端口5060,最終導致voip client賬號登錄失敗。
啟用成功后,可以用lsof -i:5060之類的工具,查看下端口是否正常。
重要提示:freeswitch默認會啟用ipv6,參見上圖中的TYPE,有2條記錄是Ipv6,另外二條是Ipv4,目前ipv6的支持還不完善,可能導致一些client連接不上freeswitch,建議關閉ipv6功能。
方法如下:
(如果本機的fw尚在運行中)先在freeswitch終端輸入shutdown關閉fw。然后
/usr/local/freeswitch/conf/sip_profiles 會看到二個文件:
external-ipv6.xml
internal-ipv6.xml
將這2個文件改名為:
external-ipv6.xml.deactive
internal-ipv6.xml.deactive
然后重新啟動freeswitch,成功后仍然可以用lsof -i:5060之類的驗證下:
順利的話,會發現IPV6的那二行不見了。
三、client配置賬號
YateClient:
Settings->Accounts
freeswitch默認內置了20個賬號,用戶名從1000,1001...依次遞增,密碼均為1234,參考上圖,這里配置了2個賬號1002,1004,順利的話,status這里會顯示成online.
同時在freeswitch的console控制終端上,輸入:
sofia status profile internal reg (即:查看internal這個profile的用戶注冊情況)
可以看到1002/1004這2個賬號,已經注冊成功。
類似的在zoiper 中,再配置另外2個賬號:1000、1010
zoiper主界面上,可以切換這2個賬號:
freeswitch的console終端上,建議也確認下是否注冊成功:
四、撥打電話
先來熱熱身,在freeswitch的console里輸入 originate user/1000 &echo
即:呼叫zoiper上的1000用戶,稍等一會兒,zoiper會彈出提醒來電,參考下圖
點擊accept就接通了,注意:在命令最后部分,使用了&echo,這是一個回音測試功能,類似於你在山谷里大叫“你好”,然后山谷給你傳來回音“你好”一樣。所以最終的效果是接通后,如果你對着mac麥克風說話,揚聲器里放你自己的聲音(即:你說啥,fs回應啥。)-友情提醒:在本機測試時,由於回音環繞,可能會有嚴重的囂叫聲。
也可以用yateclient來呼叫zoiper, 如下圖:yateclient上選擇用戶1002,然后撥打1000,zoiper上會彈出來電提醒,接通后,就能相互通話了。
除了echo,還有幾個常用的功能,大家可以嘗試把&echo,換成:
&park 這個相當於接通后,fs把通話給hold住,啥反應都不給。有點類似對方拿起聽筒,但是一句話也不說,也不掛斷。park的用途后面的文章會介紹。
&playback(/tmp/music.wav) 這個相當於接通后,給用戶放一遍音樂,音樂文件的地址是/tmp/music.wav,當然這個路徑也可以是遠程路徑,比如http://www.xxx.com/music.wav
&endless_playback(/tmp/music.wav) 與&playback的區別是,playback只放一遍,而endless_playback會一直不停的反復放,特別適合400電話場景,客服很忙時,先放段音樂讓用戶等待。
更多時候,對於開發人員來講,更希望通過代碼方式來與freeswitch交互,下一篇學習esl的使用
參考:
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+echo
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+park
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+playback
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+endless_playback