Freeswitch配置SIP網關撥打外部


Freeswitch配置SIP網關撥打外部電話

為了實現freeswitch能夠往外面(也就是打到你的手機號上)打電話,我們需要再freeswitch服務器上配置一些參數,當然前提是需要有一個SIP網關(硬件),一般是向網關服務商(華為,奧科等)購買,也可以直接向電信運營商購買。

1. 添加網關

添加網關只需要在freeswitch服務器目錄下的conf/sip_profiles/external/中創建一個XML文件,名字可以隨便取,如gwl.xml,然后在這個文件里面輸入如下代碼:
(注:1.4版本也可能是在conf/sbc/sbc_profiles/external/或者conf/insideout/sip_profiles/external
里面)

	<gateway name="gwl">
		<param name="realm" value="SIP服務器地址,可以是IP或者IP:端口"/>
		<param name="username" value="SIP用戶名"/>
		<param name="password" value="密碼"/>
		<param name="proxy" value="112.3.18.9:5060"/>
 8     <param name="register" value="true" />
	</gateway>

如果你的網關還需要其他參數,可以參閱同目錄下的"example.xml",但一般來說上述參數就夠了。你可以重啟freeswitch,或者執行以下命令使之生效:

freeswitch> sofia profile external rescan

顯示一下網關的注冊狀態:

freeswitch> sofia status

如果顯示gateway gwl的狀態時REGED,則表明以正確注冊到網關了,可以用命令試一下網關是否正常工作:

freeswitch> originate sofia/gateway/gwl/xxxxxxx &echo

以上命令回通過網關gwl呼叫號碼xxxxxx(手機號),被叫號碼接聽電話后,Freeswitch會執行echo程序,你就能聽到自己的回聲了。

2. 常用命令

  1. 啟動:freeswitch
  2. 啟動並后台運行:freeswitch -nc
  3. 進入客戶端:fs_cli -H 127.0.0.1 -P 8021 -p password
  4. 退出客戶端:/exit, /bye, /quit Ctrl+D
  5. 停止:freeswitch -stop
  6. 查詢網關狀態: sofia status profile local
  7. 重啟網關: sofia profile local restart
  8. 查看freeswitch的端口情況:netstat -anp|grep freeswitch
  9. 使用fs_cli進行呼叫:originate user/1003 &echo 其中&echo會把聽到的聲音返回給發出者
  10. 音頻編碼部分設備不支持可以使用這個bgapi originate {absolute_codec_string=PCMU}user/1009 018162330576 xml default
  11. reloadxml 重新加載xml文件
  12. 查看當前注冊的用戶數量:sofia status profile internal
  13. 查找文件夾:find / -name external -type d
  14. 復制文件到多個文件夾:echo a b c | xargs -n 1 cp -v ./gwl.xml
  15. 重新注冊網關:sofia profile external register gw
  16. ps -ef | grep freeswitch netstat -apn | grep 8021
  17. 開啟sip消息顯示 sofia global siptrace on
  18. 關閉sip消息顯示 sofia global siptrace off

3. 默認端口作用

8021: fs_cli客戶端連接freeswitch的時候用的端口
5060: SIP軟電話連接的端口

官方freeswitch.docker的端口說明
Alt text

4. 錯誤解決

  1. 報錯內容:
    [ERROR] fs_cli.c:1659 main() Error Connecting [Socket Connection Error]
    這個報錯說明Freeswitch服務沒有開啟,或者mod_event_socket沒有正確加載
    可以在/usr/local/freeswitch/conf/autoload_config/event_socket.conf.xml 文件修改監聽ip地址為0.0.0.0或者127.0.0.1
<configuration name="event_socket.conf" description="Socket Client">
  <settings>
    <param name="nat-map" value="false"/>
    <param name="listen-ip" value="0.0.0.0"/>
    <param name="listen-port" value="8021"/>
    <param name="password" value="ClueCon"/>
    <!--<param name="apply-inbound-acl" value="loopback.auto"/>-->
    <!--<param name="stop-on-bind-error" value="true"/>-->
  </settings>
</configuration>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM