script for asterisk confbridge, use python(agi/ami) or shell(dial plan)
关于asterisk confbridge的一些脚本,大体分为python(agi/ami)实现跟shell(dial plan)实现,可供后台调用
- 请查看asterisk_etc/extensions.conf文件
- 将其内容选择性更改并添加到asterisk的extensions.conf文件中
- python部分是属于通用性的(也可以自行更改成非通用性的)
- shell部分应由后台根据会议室的名称、参数自行修改相关内容,并自动添加到asterisk的extensions.conf文件中
- 2001只是本人调试时使用的号码,请自行替换
- 请查看asterisk_etc/confbridge.conf文件
- [volume_ctrl_menu] 属于python版(测试用),对应python/confbridgeConf_1001.json中的Basic=>Menu字段
- 其他部分属于shell版本,作为格式参考应由后台生成并自动添加
- 请将2001改为会议室号码
- 请查看asterisk_etc/manager.conf文件
- 由于回忆控制采用AMI技术,所以请将该文件上的内容追加到asterisk的manager.conf中,或者更改action.py/action.sh中的账号密码
- 由于action.sh使用的是ami over http,所以请将asterisk的http服务开启。(http.conf)
- 监听端口均采用默认端口,若使用其他端口请自行更改
- ami的权限暂未测试
- python使用python3版本,且需要安装pyst2、asterisk-ami模块
$ pip install pyst2
$ pip install asterisk-ami
- 位于python/目录底下供python版使用,其作为XXXX(会议室电话号码)的配置文件,若在会议邀请的时候没有该文件,则会自动生成
python与shell实现的功能跟效果是一样的,只是在设计和使用上有细微的差别
- 语法 :./invite.py conf_num participant_num[,participant_num2,···]
- conf_num :会议室号码
- participant_num :与会者号码
$ cd python
$ ./invite.py 1001 10001
- 语法 :./invite.sh conf_name conf_num participant_num[,participant_num2,···]
- conf_name :会议室名称
- conf_num :会议室号码
- participant_num :与会者号码
$ cd shell
$ ./invite.sh OpenVox 2001 10001,10002,10003
- 语法 :./invite.py conf_num participant_num[,participant_num2,···] hh:mm[:ss] [yyyy-mm-dd]
- conf_num :会议室号码
- participant_num :与会者号码
- hh:mm[:ss] :时间,其中秒可以省略
- [yyyy-mm-dd] :日期,可选,其中年份可以省略
$ cd python
$ ./invite.py 1001 10001 12:00 10-6
- 语法 :./invite.sh conf_name conf_num participant_num[,participant_num2,···] hh:mm[:ss] [yyyy-mm-dd]
- conf_name :会议室名称
- conf_num :会议室号码
- participant_num :与会者号码
- hh:mm[:ss] :时间,其中秒可以省略
- [yyyy-mm-dd] :日期,可选,其中年份可以省略
$ cd shell
$ ./invite.sh OpenVox 2001 10001 12:00 2020-6-6
- 语法 :./cronJob.sh hh:mm dayOfWeek dayOfMonth "arg1 arg2···"
- hh:mm :时间,无法指定秒级
- dayOfWeek :每周几,零为不启用
- dayOfMonth :每月几,零为不启用
- "arg1 arg2···" :具体参数,即调用invite.py/invite.sh时使用的参数(会根据个数调整为python版或shell版),用双引号包围,内部用空格符间隔
$./cronJob.sh 10:30 4 0 "1001 10001" #调用Python,每周四10:30执行一次
$./cronJob.sh 11:30 0 1 "'OpenVox' 2001 10001,10002" #调用Shell,每月1号11:30执行一次
- 语法 :./action.py conf_num command [participant_num[,participant_num2]]
- conf_num :会议室号码
- command :可选mute、unmute、kick、lock、unlock、startRecord、stopRecord,分别对应静音、取消静音、踢出会议室、封锁会议室、解锁会议室、开始录音、结束录音
- participant_num :与会者号码
- 注意 :针对与会者的操作(静音、踢出等)必须提供与会者的号码(participant_num)
$ cd python
$ ./action.py 1001 mute 10001,10002
$ ./action.py 1001 kick 10003
$ ./action.py 1001 lock
- 语法 :./action.sh conf_name command [participant_num[,participant_num2]]
- conf_name :会议室名称
- command :可选mute、unmute、kick、lock、unlock、startRecord、stopRecord,分别对应静音、取消静音、踢出会议室、封锁会议室、解锁会议室、开始录音、结束录音
- participant_num :与会者号码
- 注意 :针对与会者的操作(静音、踢出等)必须提供与会者的号码(participant_num)
$ cd shell
$ ./action.sh "OpenVox" mute 10001,10002
$ ./action.sh "OpenVox" kick 10003
$ ./action.sh "OpenVox" lock
- 直接拨打会议号码即可加入
- 采用menu的方式,按0键听从指示即可。详情请参考manager.conf和confbridge.conf