=任务= 每一个任务都需要具备以下的属性: * 任务显示名称: 用于显示任务在选折时候的text * 任务优先级名称: 优先级时候的text * 终端发起方显示名称: 如果这个终端是发起方,终端里面看到的这个任务的text * 终端接收方显示名称: 如果这个终端是接收方,终端里面看到这个任务的text,注意,这个是单一的接受方时候的定义。 * 终端多方接受时显示名称: 如果这个终端不是唯一的接收方,终端里面看到这个任务的text. * 主机执行任务列表里显示名称: 在server段的活跃会话里面看到的任务显示的名称。 * 任务的描述: 用于描述任务的特点,属于类似于help的东西。 注意:这里面的“终端发起方显示名称”,“终端接收方显示名称”,“终端多方接受时显示名称”,“主机执行任务列表里显示名称”都可以是prefix + action_text。 ==任务优先级的相关配置信息== 对于优先级来说,我们定义了如下的处理方式: # 正常处理: 按照任务的正常逻辑进行执行 # 呼叫策略:按照被叫终端的呼叫策略配置系数进行逻辑判断/执行 # 混音:指硬件上声音的混合(数字和ana) # 级别高不能操作:就是操作界面屏蔽操作。如果出现误操作或者系统错误发出操作,将终止 # 跳过&恢复:就是跳过这一段等待时间音频,然后进行恢复。 # 暂停&恢复:保持在暂停时的进度,然后进行恢复 # 提醒&发起失败:提醒发起方,他发起任务失败 # 终止:暂停这个任务。 # 提醒&跳过&恢复:不需要提醒的跳过&恢复 # 提醒所有:针对所有任务的终端进行提醒,任务被高优先级的打断。 # 提醒发起方:只提醒发起方,任务被高优先级的打断。 # 保持:保持目前的任务或者连接 # 后优先,前终止:后面进来的任务终止前面的任务。 # 不处理:不需要做任何特别的处理,忽略 这些处理,针对如下情况作为选择: # 发起新任务时候,处理方式选折有: #* 发起新任务处于低优先级,操作是 #* 发起新任务处于同等优先级,操作是 #* 发起新任务处于高优先级,操作是 # 正在执行的任务中,在新的任务呼入时的情况有: #* 执行中的任务处于低优先级,操作是: #* 执行中的任务处于同等优先级,操作是: #* 执行中的任务处于高优先级,操作是: 针对上面的每一种情况都可以配置两个提示音: # 一个是提示给发起方 # 一个是提示给接收方 ==任务和硬件相关配置== 针对不同的硬件配置,我们可以控制一个终端的部分功能,下面就定义了基本的属性: * 对讲属性:控制了下面的几个任务可否执行 *# 发起对讲/接收对讲/参与对讲 *# 一键对讲 *# 一键求助 * 发起广播 *# 发起广播 *# 一键发起广播 * 被录音,被监听 * 下载是否支持 =actions= 属性有: * action显示名称: * action在任务时候,替换名称 * action的类别属性: 主要是指我们目前的类别,如:broadcast/channel/unicast/conference/record/airplay/local_play/media/spy/schedule/real_time_media 下面是每一个action需要的基本属性值 ==broadcast== 指的是广播。他的类别是: * conv_type: broadcast. ===client端发起参数=== 需要知道的参数有: * name of this broadcast: should be generated(uuid). * target of terminals: *# dial no:在主机端会被translate成所有的终端 *# a list of targets: 和sip url一起过来的terminals,目前最多支持2048个字符串,好像。 ===server端发起参数=== 需要知道的参数有 * name of this broadcast: should be generated(uuid). * target of terminals: same as client side. * 发起方的选折: *# 选折一个发起终端 *# 选折使用web browser:使用flash control。 ==channel== 主要是频道.他的类别是: * conv_type: channel. ===client端发起参数=== * 名称:这个指的是 频道的名称定义。 * 或者是号码:号码必须被转移到名称。 ===server端发起参数=== * 需要知道所有的频道名称 * 需要知道让他们终端接听这个频道。 ==unicast== 主要指的2人双工对讲。类别是: * conv_type: unicast. ===client端发起参数=== * 对方的呼叫号码 ===server端发起参数=== * 对方的呼叫号码 * 发起方的呼叫号码 ==conference== 主要指的是会议。类别是: * conv_type: conference ===client端发起参数=== * 所有需要参与的会议人员号码,长度目前是2048. ===server端发起参数=== * 发起人 *# 发起人的号码 *# 从网页上面拨打(使用flash控件) * 参与人员的号码 ==record== 录音。类别是: * conv_type: record ===client端发起参数=== * 无,只需要呼叫record的号码:就是以*#RECORD#_+[any string]开始的字符串。any string可以使用uuid. ===server端发起参数=== * 需要知道让哪台终端开始录音。 ==airplay== 就是苹果音乐功能。类别是: * conv_type: airplay. ===client端发起参数=== * 苹果音乐的拨号号码。 ===server端发起参数=== * 无。 ==local_play== 本地音乐播放或者是下载的播放,此处只考虑下载播放。类别是: * conv_type: local_play. ===client端发起参数=== * 拨号的dialno. * 本地播放的文件列表。 ===server端发起参数=== * 哪些终端需要进行下载播放 * 下载播放的文件列表。 ==media== 媒体库点播。类别是: × conv_type: 媒体库文件点播 ===client端发起参数=== * 需要知道的点播文件有哪些。(目前只支持单一文件,考虑支持多文件)。 ===server端发起参数=== * 需要点播的终端有哪些 * 需要点播的文件选折。 ==spy== 监听哪台终端。类型: * conv_type: spy ===client端发起参数=== * 被监听的终端号码 ===server端发起参数=== * 被监听的终端号码 * 发起监听的终端 *# 选折一个终端号码 *# 使用web browser(flash) ==schedule== 调度,目前系统里面 好像基本没有什么,不知道femto怎么处理的。 ===client端发起参数=== ===server端发起参数=== ==SMS== 发送短信,目前无。 ===client端发起参数=== ===server端发起参数=== ==mail== 发送邮件。类别: * conv_type: mail ===client端发起参数=== * 收件人 * 邮件内容 * 发送人 ===server端发起参数=== * 收件人 * 邮件内容 * 发送人 ==GPIO== GPIO输出。类型: *conv_type:gpio ===client端发起参数=== * 选折gpio pin * 选折gpio的name * 选折gpio输出的方式: *# 恒定输出: *#* 高 *#* 低 *# 固定频率闪烁: *#* 周期时间 *# 任意方式闪烁: *#* 周期时间 *#* 在这个周期内,闪烁的次数 *#* 在这个周期内,闪烁时高电平的时间。 *#* 在这个周期内,闪烁时的低电平时间。 ===server端发起参数=== * 选折激发gpio的终端 * 选折gpio pin * 选折gpio的name * 选折gpio输出的方式: *# 恒定输出: *#* 高 *#* 低 *# 固定频率闪烁: *#* 周期时间 *# 任意方式闪烁: *#* 周期时间 *#* 在这个周期内,闪烁的次数 *#* 在这个周期内,闪烁时高电平的时间。 *#* 在这个周期内,闪烁时的低电平时间。 ==dial_call== 就是对讲,自动切换unicast/conference.类别: * conv_type: dial_call ===client端发起参数=== * 接受端的号码 *# 如果是单一号码,就是unicast *# 如果是多个号码,就是conference. ===server端发起参数=== * 发送方的信息 *# 终端号码 *# web browser(flash). * 接受端的号码 *# 如果是单一号码,就是unicast *# 如果是多个号码,就是conference. ==real_time_media== 就是临时文件播放。类别: * conv_type: real_time_media ===client端发起参数=== 无 ===server端发起参数=== * 被接受方的终端 * 上传并且播放的文件是哪些。 =Some commands hint from freeswitch= * play multiple music files from media:
originate {sip_rh_X-play_list=1:1:1:2,sip_auto_answer=true}user/0001 *#CHANNEL#_#MEDIA#_10_?#*#ch_n=10