可以在 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 上的帮助,那里大部分命令都有相关的例子。