FreeSWITCH 发起呼叫和学习使用命令行帮助

324 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情

可以在 FreeSWITCH 中使用 originate 命令发起一次呼叫,如果用户 1000 已经注册,那么:

originate user/alice &echo

上述命令在呼叫 1000 这个用户后,便执行 echo 这个程序。echo 是一个回音程序,即它会把任何它“听到”的声音(或视频)再返回(说)给对方。因此,如果这时候用户 1000 接了电话,无论说什么都能听到自己的声音。

呼叫字符串

上面的例子中,user/alice 称为呼叫字符串,或呼叫 URL。user 是一种特殊的呼叫字符串。我们先来复习一下。FreeSWITCH UA 的地址为 192.168.4.4:5050,alice UA 的地址为 192.168.4.4:5090,bob UA 的地址为 192.168.4.4:26000。若 alice 已向 FreeSWITCH 注册,在 FreeSWITCH 中就可以看到她的注册信息:

freeswitch@du-sevens-mac-pro.local> sofia status profile internal reg


Registrations:
=============================================================================================
Call-ID:        ZTRkYjdjYzY0OWFhNDRhOGFkNDUxMTdhMWJhNjRmNmE.
User:           alice@192.168.4.4
Contact:        "Alice" <sip:alice@192.168.4.4:5090;rinstance=a86a656037ccfaba;transport=UDP>
Agent:          Zoiper rev.5415
Status:         Registered(UDP)(unknown) EXP(2010-05-02 18:10:53)
Host:           du-sevens-mac-pro.local
IP:             192.168.4.4
Port:           5090
Auth-User:      alice
Auth-Realm:     192.168.4.4
MWI-Account:    alice@192.168.4.4

=============================================================================================

FreeSWITCH 根据 Contact 字段知道 alice 的 SIP 地址 sip:alice@192.168.4.4:5090。当使用 originate 呼叫 user/alice 这个地址时,FreeSWITCH 便查找本地数据库,向 alice 的地址 sip:alice@192.168.4.4:5090 发送 INVITE 请求(实际的呼叫字符串是由用户目录中的 dial-string 参数决定的)。

命令行帮助

我们来学习一个如何使用 FreeSWITCH 的命令行帮助。

使用 help 命令可以列出所有命令的帮助信息。某些命令,也有自己的帮助信息,如 sofia:

freeswitch@du-sevens-mac-pro.local> sofia help

USAGE:
--------------------------------------------------------------------------------
sofia help
sofia profile <profile_name> [[start|stop|restart|rescan] 
    [reloadxml]|flush_inbound_reg [<call_id>] [reboot]|[register|unregister]
....

其中,用尖括号(< >)括起来的表示要输入的参数,而用方括号([ ])括起来的则表示可选项,该参数可以有也可以没有。用竖线(|)分开的参数列表表示“或”的关系,即只能选其一。

FreeSWITCH 的命令参数没有统一的解析函数,而都是由命令本身的函数负责解析的,因而不是很规范,不同的命令可能有不同的风格。所以使用时,除使用帮助信息外,最好还是查阅一下 Wiki 上的帮助,那里大部分命令都有相关的例子。