首页 > 其他分享 >FreeSWITCH学习笔记:内部命令(API)

FreeSWITCH学习笔记:内部命令(API)

时间:2022-12-14 22:55:27浏览次数:99  
标签:conference CONFERENCE 会议 成员 sofia 指定 笔记 API FreeSWITCH

本文更新于2022-12-14,使用FreeSWITCH 1.10.7。

官方文档见:https://freeswitch.org/confluence/display/FREESWITCH/mod_commands

说明:下文中,部分大写为自定义变量,根据实际情况填写。使用[]引起表示内容可选,|表示使用左侧或右侧内容,...表示重复之前内容。

在freeswitch或fs_cli可执行以下内部命令:

(输入制表符可补全命令,输入空格再输入制表符可补全子命令。只输入命令不输入参数,或输入错误的参数,都会提示用法。)

  • bgapi API [ARG [ ...]]:将API命令放到后台执行。
  • callcenter_config agent add AGENT callback|uuid_standby:向呼叫中心添加坐席。
  • callcenter_config agent list:列出呼叫中心所有坐席。
  • callcenter_config agent set ATTRIBUTE AGENT VALUE:设置呼叫中心坐席的属性。
  • callcenter_config queue list:列出所有呼叫中心所有队列。
  • callcenter_config tire list:列出呼叫中心所有梯队。
  • cdr_csv rotate:令CSV话单文件轮替。
  • conference:查看会议命令的帮助。
  • conference CONFERENCE agc MEMBERID|all|last|non_moderator VALUE:启用自动增益控制(Auto Gain Control)。
  • conference CONFERENCE bgdial CALLURL [CALLERIDNUMBER] [CALLERIDNAME]:从会议呼出,令对方加入会议。其是非阻塞的。
  • conference CONFERENCE chkrecord [FILEPATH]:检查会议录音情况。
  • conference CONFERENCE clear-vid-floor:取消视频会议的floor。
  • conference CONFERENCE deaf MEMBERID|all|last|non_moderator:将会议成员禁听。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE dial CALLURL [CALLERIDNUMBER] [CALLERIDNAME]:从会议呼出,令对方加入会议。其是阻塞的。
  • conference CONFERENCE dtmf MEMBERID|all|last|non_moderator DIGITS:向会议成员发送DTMF。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE energy MEMBERID|all|last|non_moderator VALUE:设置会议成员的能量值(音量超过此值才能混音到会议桥中)。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE enter_sound file FILEPATH:设置会议成员进入时向其它成员播放声音的文件。
  • conference CONFERENCE enter_sound none:设置会议成员进入时向其它成员播放声音为静音。
  • conference CONFERENCE enter_sound off:设置会议成员进入时向其它成员播放声音为禁用。
  • conference CONFERENCE enter_sound on:设置会议成员进入时向其它成员播放声音为启用。
  • conference CONFERENCE exit_sound file FILEPATH:设置会议成员退出时向其它成员播放声音的文件。
  • conference CONFERENCE exit_sound none:设置会议成员退出时向其它成员播放声音为静音。
  • conference CONFERENCE exit_sound off:设置会议成员退出时向其它成员播放声音为禁用。
  • conference CONFERENCE exit_sound on:设置会议成员退出时向其它成员播放声音为启用。
  • conference CONFERENCE file_seek [+|-]VALUE MEMBERID:会议中播放声音文件的快进、快退。
  • conference CONFERENCE floor MEMBERID|last:将会议成员设置为floor。没什么用。
  • conference CONFERENCE get PARAM:获取会议参数的值。参数有max_members、sound_prefix、caller_id_name、caller_id_number、endconference_grace_time。
  • conference CONFERENCE hup MEMBERID|all|last|non_moderator:挂断会议成员。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE kick MEMBERID|all|last|non_moderator:从会议中踢出成员。可指定所有成员、最后加入的成员、非主席成员。
  • conference [CONFERENCE] list:列出会议的成员。
  • conference CONFERENCE lock:锁定会议,别人无法加入。
  • conference CONFERENCE mute MEMBERID|all|last|non_moderator:将会议成员禁言。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE nopin:取消会议的密码。
  • conference CONFERENCE norecord [FILEPATH|all]:停止会议录音。
  • conference CONFERENCE pause [FILEPATH]:暂停会议中声音文件的播放,或暂停会议录音。
  • conference CONFERENCE pin PIN:设置会议的密码。
  • conference CONFERENCE play FILEPATH [MEMBERID]:向会议中播放声音文件,可指定成员。
  • conference CONFERENCE record FILEPATH:对会议录音。
  • conference CONFERENCE recording check|pause|resume|start|stop FILEPATH|all:如在会议的Profile中设置了录音摸板,则可如此检查/暂停/恢复/开始/停止录音。
  • conference CONFERENCE relate MEMBERID1[,...] MEMBERID2[,...] clear:清除会议成员前者和后者之间可否听到的关系。
  • conference CONFERENCE relate MEMBERID1[,...] MEMBERID2[,...] nohear:令会议成员后者听不到前者。
  • conference CONFERENCE relate MEMBERID1[,...] MEMBERID2[,...] nospeak:令会议成员后者说话前者听不到。
  • conference CONFERENCE resume [FILEPATH]:恢复会议录音。
  • conference CONFERENCE say TEXT:在会议中使用TTS播放文本。
  • conference CONFERENCE saymember MEMBERID TEXT:在会议中仅向某个成员使用TTS播放文本。
  • conference CONFERENCE set PARAM VALUE:设置会议参数的值。参数有max_members、sound_prefix、caller_id_name、caller_id_number、endconference_grace_time。
  • conference CONFERENCE stop all|current|last [MEMBERID]:停止会议中声音文件的播放。可指定所有正在播放、当前正在播放、最后播放。
  • conference CONFERENCE tmute MEMBERID|all|last|non_moderator:切换会议成员的禁言/不禁言状态。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE transfer OTHERCONFERENCE MEMBERID[ ...]:将会议成员转到另一个会议。
  • conference CONFERENCE undeaf MEMBERID|all|last|non_moderator:取消对会议成员的禁听。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE unlock:解锁会议,允许加入。
  • conference CONFERENCE unmute MEMBERID|all|last|non_moderator:取消对会议成员的禁言。可指定所有成员、最后加入的成员、非主席成员。
  • conference CONFERENCE vid-floor MEMBERID|last [force]:将视频会议成员设置为持有floor,在视频会议中所有成员都看到持有floor成员的画面。如指定force则固定成员,不再根据声音大小自动切换画面。
  • conference CONFERENCE volume_in MEMBERID VALUE:设置会议成员的输入音量。
  • conference CONFERENCE volume_out MEMBERID VALUE:设置会议成员的输出音量。
  • conference [CONFERENCE] xml_list:列出会议的成员,XML格式。
  • console loglevel console|alert|crit|err|warning|notice|info|debug:设置控制台日志等级。
  • curl URL:与HTTP服务器交互。
  • db delete|insert|select:持久化数据库存储。
  • distributor LIST:从号码连选的列表中选择一个节点名称。
  • echo STR[ ...]:原样输出字符串。
  • esf_page_group [MULTICASTIP MULTICASTPORT CONTROLPORT] :发送组播RTP包。三个参数的默认值依次为:224.168.168.168、34567、6061。
  • expand API [ARG [ ...]]:将${}$${}引起的变量替换为实际值后再执行API命令。
  • expr EXPR[;...]:计算表达式结果。EXPR可为:
    • 数学表达式:如1+1。
    • 函数:
      • ceil(NUMBER):向上取整。
      • random(BEGIN,END,&SEED):获取区间之间的随机数。
      • randomize(&SEED):设置随机数种子。
  • fifo list [LIST]:查看呼叫队列的状态。
  • fifo reparse:重新解析呼叫队列的配置。
  • fifo_member add LIST CALLURL:动态增加呼叫队列坐席。
  • fifo_member del LIST CALLURL:动态删除呼叫队列坐席。
  • fsctl crash:令FreeSWITCH崩溃。
  • fsctl max_sessions [VALUE]:查看或设置呼叫最大并发数。
  • fsctl sps [VALUE]:查看或设置每秒最大呼叫数。
  • global_getvar VAR:查看全局变量的值。
  • hash delete/HASH/KEY:删除内存中哈希表数据结构的键值对。
  • hash insert/HASH/KEY/VALUE:插入内存中哈希表数据结构的键值对。
  • hash select/HASH/KEY:获取内存中哈希表数据结构的键值对的值。
  • help:查看帮助。
  • hupall:挂断所有通话。
  • jsrun JSFILEPATH:执行JavaScript脚本。
  • load MOD:加载模块。
  • lua LUAFILEPATH [ARG [ ...]]:执行Lua脚本。在当前线程执行,会阻塞当前线程。
  • luarun LUAFILEPATH [ARG [ ...]]:执行Lua脚本。在新线程执行,不会阻塞当前线程。
  • nat_map status:查看NAT端口映射状态。
  • originate CALLURL EXTEN|&APP(ARG[ ...]) [DIALPLAN] [CONTEXT] [CALLERIDNAME] [CALLERIDNUMBER] [TIMEOUTSEC]:发起对CALLURL的呼叫,接听后将另一端转入Dialplan路由至EXTEN或执行APP。当使用XML Dialplan时EXTEN为另一个号码;当使用inline Dialplan时EXTEN为[m:C:]APP[:ARG][,...,APPN[:ARGN]],如果ARG有空格则需使用单引号括起,如ARG有逗号则将分隔符替换为字符C。DIALPLAN默认为XML。inline Dialplan会忽略CONTEXT,Lua Dialplan的CONTEXT为Lua文件路径。CALLERIDNAME为来电显示的名字,CALLERIDNUMBERBER为来电显示的号码。TIMEOUTSEC为对方收到INVITE消息后不回复100 Trying的超时秒数。会阻塞并在收到媒体指示后返回(如183或200消息)。
  • pa answer:接听电话。
  • pa call USERNAME:呼叫用户。
  • pa devlist:列出portaudio模块发现的设备。
  • pa hangup:挂机。
  • pa indev #N:使用第N个设备作为输入设备。
  • pa looptest:echo回路测试。
  • pa outdev #N:使用第N个设备作为输出设备。
  • python PYFILEPATH:执行Python脚本。文件路径为相对于Python的查找目录(如/usr/lib/python2.7/dist-packages/)。
  • regex STR | REGEX [| REPLACEMENT]:测试字符串STR是否匹配正则表达式REGEX,如有REPLACEMENT则使用其替换匹配的内容。REPLACEMENT可以使用$N%N的形式引用匹配的分组。
  • reload MOD:重新加载模块。
  • reloadxml:重新加载XML配置文件。
  • rtmp status:查看RTMP状态。
  • rtmp_contact [PROFILE/]USERNAME[@DOMAIN]:返回使用RTMP的已注册用户的联系地址。
  • show channels:查看正在通话的通道。
  • show codec:查看可用的编解码类型及其支持模块。
  • show dialplan:查看可用的Dialplan及其支持模块。
  • show file:查看可用的文件类型及其支持模块。
  • show nat_map:查看NAT端口映射关系。
  • shutdown:停止FreeSWITCH。
  • sofia global capture on|off:开启/关闭所有Profile的Homer方式抓包。
  • sofia global siptrace on|off:开启/关闭所有Profile的SIP消息打印。
  • sofia help:查看帮助。
  • sofia loglevel all|default|tport|iptsec|nea|nta|nth_client|nth_server|nua|soa|sresolv|stun 0|1|2|3|4|5|6|7|8|9:设置Sofia底层协议栈中指定模块的日志级别。越大信息越详细。
  • sofia profile PROFILE capture on|off:开启/关闭指定的Profile的Homer方式抓包。
  • sofia profile PROFILE flush_inbound_reg USERNAME@DOMAIN|CALLID:将指定的Profile中指定的已注册用户清除。
  • sofia profile PROFILE killgw GATEWAY:删除指定的Profile中指定的网关。
  • sofia profile PROFILE rescan:刷新指定的Profile。隐含reloadxml,并不是所有配置参数都能生效。
  • sofia profile PROFILE register GATEWAY:令指定的Profile中指定的网关立即向外注册。
  • sofia profile PROFILE restart:重启指定的Profile。隐含reloadxml。
  • sofia profile PROFILE siptrace on|off:开启/关闭指定的Profile的SIP消息打印。
  • sofia profile PROFILE start:启动指定的Profile。隐含reloadxml。
  • sofia profile PROFILE stop:停止指定的Profile。隐含reloadxml。
  • sofia profile PROFILE unregister GATEWAY:令指定的Profile中指定的网关立即向外注销。
  • sofia recover:从数据库中读出FreeSWITCH崩溃前的通话信息并恢复。
  • sofia status|xmlstatus:查看Sofia状态。
  • sofia status|xmlstatus gateway GATEWAY:查看指定网关的状态。
  • sofia status|xmlstatus profile PROFILE:查看指定的Profile的状态。
  • sofia status|xmlstatus profile PROFILE reg:查看指定的Profile所有已注册用户。
  • sofia status|xmlstatus profile PROFILE reg USERNAME:查看指定的Profile中指定的已注册用户。通过SIP的Contact头过滤。
  • sofia status|xmlstatus profile PROFILE user USERNAME@DOMAIN:查看指定的Profile中指定的已注册用户。
  • sofia tracelevel console|alert|crit|err|warning|notice|info|debug:console只会打印到控制台,不会写入日志文件。
  • sofia_contact [PROFILE/]USERNAME[@DOMAIN]:返回已注册用户的联系地址。
  • sofia_count_reg USERNAME@DOMAIN:查看该用户使用多少个客户端注册。在允许多点注册的情况下会有多个。
  • sofia_dig IP:返回其他服务器的地址和端口。类似DNS的dig。
  • sofia_presence_data list USERNAME@DOMAIN:列出指定用户的Presence信息。
  • sofia_presence_data status USERNAME@DOMAIN:列出指定用户的Presence状态。
  • sofia_presence_data user_agent USERNAME@DOMAIN:列出指定用户的Presence的user agent信息。
  • sofia_username_of USERNAME@DOMAIN:返回已注册用户的用户名。
  • status:查看服务器状态。
  • strepoch:显示当前的Unix时间戳。
  • strftime [FORMAT]:将当前时间格式化显示。
  • stun STUNSERVER:使用STUN服务器检测公网IP和端口。
  • system CLI [ARG [...]]:调用系统命令。
  • uptime:查看服务启动的秒数。
  • uuid_bridge CHANNELUUID1 CHANNELUUID2:使用UUID桥接两个通话Channel。
  • uuid_debug_media CHANNELUUID read|write|both|vread|vwrite|vboth on|off:打开/关闭指定通话Channel的媒体流调试信息。read为收,write为发,both为收发,v开头为可打印视频媒体流。每行输出包括以下信息:R或W表示收或发,呼叫字符串,b=表示RTP包大小(含包头),本地IP和端口,远端IP和端口,pt=表示载荷类型,ts=表示时间戳,m=表示RTP的Marker。
  • uuid_kill CHANNELUUID:释放通话Channel。
  • uuid_record CHANNELUUID start FILENAME:对指定的通话Channel开始录音。如不指定扩展名,则以原生格式录音。
  • uuid_record CHANNELUUID stop FILENAME|all:对指定的通话Channel停止录音。如使用all则停止通话Channel的所有录音。如不指定扩展名,则以原生格式录音。
  • uuid_setvar CHANNELUUID VAR VALUE:对指定的通话Channel设置通道变量。
  • uuid_transfer(CHANNELUUID CALLURL|lua:LUAFILENAME [DIALPLAN [CONTEXT]]):将通话重新转移到ROUTING阶段,重新去Dialplan中进行路由。
  • version:查看服务器版本。
  • xml_curl debug_on:打开mod_xml_curl模块的调试。会将每次请求得到的XML文件存放到系统临时目录中。

有些命令可以使用COMMAND help查看帮助。

示例:

originate user/1000 &echo
originate user/1000 1001
originate user/1000 1001 XML
originate user/1000 echo
originate user/1000 echo inline
originate {origination_caller_id_name=test}{effective_caller_id_name=haha}user/1000 &bridge(user/1001)

标签:conference,CONFERENCE,会议,成员,sofia,指定,笔记,API,FreeSWITCH
From: https://www.cnblogs.com/garvenc/p/freeswitch_learning_api.html

相关文章

  • java学习笔记--类、函数重载、this、static、继承、重写、多态
    <5>类1)类和对象类是把一类事物的静态属性和动态操作组合在一起所得的概念,相当于模型,或者说一个设计图纸。对象是类的一个个体,是根据类这个设计图纸造出来的实物,会产生和......
  • 博客园 Open API All In One
    博客园OpenAPIAllInOne博客园申请APIKEYhttps://api.cnblogs.com/https://api.cnblogs.com/helphttps://github.com/cnblogs/openapidemoshttps://www.cnblog......
  • python学习笔记整理03(函数)
    1语法:1.1基本语法:#1.定义函数#使用def(define)关键字定义函数,且函数命名方法要遵循标识符规则deffunc1():#定义函数内的代码称为函数体print('函......
  • 网络流学习笔记
    网络流初步一个网络\(G=(V,E)\)是一张有向图,图中每条有向边\((x,y)\inE\)都有一个给定的权值\(c(x,y)\),称为边的容量。图中还有两个节点\(S\)和\(T\),源点和汇点。网络......
  • ASP.NET Core 奇淫技巧之动态WebApi
    一.前言接触到动态WebApi(DynamicWebAPI)这个词的已有几年,是从ABP框架里面接触到的,当时便对ABP的这个技术很好奇,后面分析了一波,也尝试过从ABP剥离一个出来作为独立组件来使......
  • 详解物理层-通信基础【王道计算机网络笔记】
    ![![[附件/Pastedimage20221120151810.png|100]]](https://img-blog.csdnimg.cn/6765bf898d2a41588eb9e60989ab40bf.png=x300)物理层接口特性物理层解决如何在连接各种......
  • 用Python调用OpenAI API做有趣的事
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • Python笔记--字符串
    字符串的三种定义单引号定义法:双引号定义法:三引号定义法:结果:其中,三引号定义的话,不用变量接收的话,就相当于多行注释;用变量接收的话,就是对于字符串的定义了。字符串......
  • #yyds干货盘点# react笔记之学习之state注意事项
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • 【《硬件架构的艺术》读书笔记】05 低功耗设计(3)
    5.6在寄存器传输级降低功耗RTL完成时80%的功耗就已经确定,后端不能解决所有功耗问题。综合前RTL阶段就应讲与功耗有关的所有问题解决。5.6.1状态机编码与解码格雷码在......