0402.Sofia 命令

由 jafucong 发布

命令

呼叫远程 SIP 服务器上的分机

基本形式:

sofia/<profile>/<extension>@<remoteserver>

示例 1:

sofia/$${profile}/$1@example.org

示例 2:

sofia/foo/0@sipphone.com

其中<profile>sofia.conf.xml 中定义的配置文件之一的名称。默认情况下,有一个配置文件定义为 name="$${domain}",其中 $${domain} 变量在 freeswitch.xml 中定义,默认为 mydomain.com

因此,如果您没有更改这些配置文件并且正在拨打远程服务器上的分机,那么配置将是

sofia/ mydomain.com / <extension> @ <remoteserver>  

要列出所有定义的配置文件,请在 CLI 上键入sofia status

呼叫本地注册的端点

基本形式:

sofia/<profile>/<extension>%<localserver>

示例 1:

sofia/$${profile}/$1%$${domain}

示例 2:

sofia/foo/101%192.168.1.1

其中 foo 是 SIP 配置文件,101 是注册端点的用户 ID,192.168.1.1 是 FreeSWITCH 的 IP 地址。

如果您的 SIP 配置文件名称设置为您的域,或者在配置文件中设置了域属性(例如,<profile name="internal" domain="$${domain}">),您可以使用以下内容:

sofia/<profile>/<extension>

并在拨打本地分机时放弃域。

刷新和重新启动注册的端点

您可以通过从控制台发出 flush_inbound_reg 命令来刷新注册或重新启动特定的注册端点。

sofia profile <profile_name> flush_inbound_reg [<call_id>|<user@host>] [reboot]

如果您省略 <call_id> 和/或 <user@host>,您将刷新/重新启动配置文件上的每个注册端点。
您还可以使用 check_sync 命令:

sofia profile <profile_name> check_sync <call_id> | <user@domain>
创建新配置

如果您创建了一个新配置文件,您需要从控制台启动它:

sofia profile <new_profile_name> start
重新加载配置文件和网关

您可以通过从控制台发出 killgw 命令来删除特定网关。如果使用 _all_ 作为网关名称,所有网关都将被杀死

sofia profile <profile_name> killgw <gateway_name>
重启网关

您可以通过从控制台发出 killgw 命令,然后重新扫描配置文件来强制重启网关(适用于强制重新注册或类似操作)。在具有活动呼叫的配置文件上执行此操作是安全的。

sofia profile <profile_name> killgw <gateway_name>
sofia profile <profile_name> rescan
添加/更改现有网关

假设您在 /usr/local/freeswitch/conf/sip_profiles/external 目录中拥有所有网关,并且您刚刚创建了一个新条目。您可以通过从控制台发出 rescan reloadxml 命令来将新网关添加到 FreeSWITCH,如下例所示。这将加载新创建的网关,并且不会影响当前启动的任何呼叫。

sofia profile external rescan reloadxml

您现在意识到您搞砸了新网关中的 IP 地址,需要更改它。因此,您编辑网关文件并进行所需的任何更改。然后,您需要发出以下命令来销毁网关,然后让 FreeSWITCH 重新加载更改,同时影响当前启动的任何现有调用。

sofia profile external killgw <gateway_name>
sofia profile external rescan reloadxml
查看 SIP 注册

您可以通过从控制台运行以下命令来查看所有已注册的设备。

sofia status profile <profile name> reg
sofia status profile default reg
sofia status profile outbound reg

您还可以使用 xmlstatus 来以 XML 格式检索状态。如果您使用 mod_xml_rpc,这将特别有用。

sofia xmlstatus profile <profile name> reg
sofia xmlstatus profile default reg
sofia xmlstatus profile outbound reg
列出网关的状态

对于服务中的网关:

sofia profile <profile> gwlist up

对于停止服务的网关:

sofia profile <profile> gwlist down
查看网关中的变量

要检索入站变量的值:

sofia_gateway_data <网关名称> ivar <名称>

要检索出站变量的值:

sofia_gateway_data <网关名称> ovar <名称>

要检索任一用途的值:

sofia_gateway_data <网关名称> var <名称>

这首先检查入站变量,然后在没有匹配的入站时检查出站变量。

查看用户状态数据

显示来自已注册设备的状态数据,如服务器所见

sofia_presence_data [list|status|rpid|user_agent] [profile/]<user>@domain

例:

sofia_presence_data list */2005
status|rpid|user_agent|network_ip|network_port
Away|away|Bria 3 release 3.5.1 stamp 69738|192.168.20.150|21368
+OK 

您可以在拨号方案中使用此值,例如

<extension name="12005">
 <condition field="destination_number" expression="^(12005)$" require-nested="false">
    <condition field="${sofia_presence_data status */2005@${domain}}" expression="^(Busy)$">
            <action application="playback" data="ivr/8000/ivr-user_busy.wav"/>
            <action application="hangup"/>
    </condition>
    <action application="bridge" data="user/2005@${domain_name}"/>
 </condition>
</extension>

暂无评论

发表评论