Asterisk Modules
# 模块类型
ls /usr/lib/asterisk/modules | egrep -o '^[a-z]+' | sort | uniq -c | sort -nr
ls /usr/lib/asterisk/modules | xargs -n 1 basename | sed 's/.so$//' | sort | grep func_
# 模块支持状态
grep -rP '^\t<support_level>' $(find . -name '*.c') | sed -re 's#</?support_level>##g' | sort
asterisk -x 'module show'
内置模块
不可以动态 load、unload - 部分可以配置不启用
| module | conf | desc |
|---|---|---|
| acl | acl.conf | 统一 ACL 控制 |
| ccss | ccss.conf | Call Completion Supplementary Services |
| cdr | cdr.conf | Call Detail Record |
| cel | cel.conf | Call Event Log |
| dnsmgr | dnsmgr.conf | 内置 DNS 管理器 |
| dsp | dsp.conf | |
| enum | enum.conf | 通过 DNS 解析电话号码 |
| extconfig | extconfig.conf | 静态和实时外部配置引擎 |
| features | features.conf | |
| http | http.conf | 内置 HTTP 服务 |
| indications | indications.conf | |
| logger | logger.conf | |
| manager | manager.conf | AMI |
| plc | Packet Loss Concealment - 音频丢包补偿 | |
| sounds | 声音文件索引 | |
| udptl | udptl.conf | UDP Transport Layer - 端口配置 |
- dsp - 信号处理
- CCSS - Call Completion Supplementary Services - 通话完成补偿服务
- 由 CCBS 和 CCNR 组成
- CCBS - Call Completion on Busy Subscriber
- CCNR - Call Completion on No Response
- 例如 A 呼叫 B,但 B 在和 C 通话,开启 CCSS/CCBS 后,可以在 B 和 C 通话完成后通知 A
- 由 CCBS 和 CCNR 组成
动态模块
- 可动态加载
- 可能不同模块提供相同功能 - 模块互斥
| type | desc |
|---|---|
| app | Dialplan 应用 |
| bridge | 三方通话、会议 |
| cdr | CDR+后端配置 |
| cel | CEL+后端配置 |
| chan | 通道技术 |
| codec | 语音编码 |
| format | 语音文件格式 |
| func | Dialplan 函数 |
| pbx | 路由 |
| res | 资源 |
chan
| chan | conf | desc |
|---|---|---|
| chan_audiosocket | 简单的 Audio over TCP 协议 - 用于实现外部音频处理 | |
| chan_alsa | alsa.conf | Linux 接口 |
| chan_bridge_media | ||
| chan_console | console.conf | Linux 接口 |
| chan_dahdi | chan_dahdi.conf | DAHDi 板卡接口 |
| chan_dongle | dongle.conf | GSM 接口 |
| chan_iax2 | iax.conf | Inter Asterisk eXchange (Ver 2) |
| chan_mgcp | mgcp.conf | Media Gateway Control Protocol |
| chan_oss | oss.conf | Linux 接口 |
| chan_pjsip | pjsip.conf | 基于 pjproject 的 sip 实现,推荐使用 |
| chan_rtp | rtp.conf | RTP Media Channel |
| chan_sip | sip.conf | 最早的 sip 实现,⚠️ 不再维护 |
| chan_skinny | skinny.conf | Skinny Client Control Protocol |
| chan_unistim | unistim.conf | Unified Networks IP Stimulus |
| chan_mobile | chan_mobile.conf | 蓝牙 |
| modules | dependencies |
|---|---|
| chan_rtp | res_rtp_multicast |
- Linux 音频接口
- 默认 oss
- alsa - Advanced Linux Sound Architecture
- 作为替代 OSS 存在
- console - portaudio - audio i/o devices as telephony devices
- portaudio 实现依赖 alsa
- portaudio 支持 TCP
- 有好的用户交互工具
- 支持复杂的 mix 逻辑
- oss - Open Sound System
- 最早
- skinny - SCCP - Skinny Client Control Protocol
- chan-sccp/chan-sccp
- 替代 chan_skinny
- 支持更多功能
- chan-sccp/chan-sccp
- mgcp - Media Gateway Control Protocol
- unistim - UNIStim - Unified Networks IP Stimulus
- 废弃协议
# PJSIP
# ==========
# lookup AOR, dial first Contact
exten => _6XXX,1,Dial(PJSIP/${EXTEN})
# dial all conacts - 会拼接所有 contacts
exten => _6XXX,1,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})})
# dial SIP - trunk 线路
# 不使用 AOR 和 Contact
exten => _9NXXNXXXXXX,1,Dial(PJSIP/mytrunk/sip:${EXTEN:1}@203.0.113.1:5060)
# dial 预先配置 trunk 上的 AOR 信息
exten => _9NXXNXXXXXX,1,Dial(PJSIP/${EXTEN:1}@mytrunk)
# Local
# ==========
exten => 201,1,Verbose(2,Call desk phone and cellphone but with delay)
exten => 201,n,Dial(Local/deskphone-201@extensions&Local/cellphone-201@extensions,30)
# AudioSocket
# ==========
# Dialplan
exten = 100,1,Verbose("Call to AudioSocket via Dialplan Application")
same = n,Answer()
same = n,AudioSocket(40325ec2-5efd-4bd3-805f-53576e581d13,server.example.com:9092)
same = n,Hangup()
# Chan
exten = 101,1,Verbose("Call to AudioSocket via Channel interface")
same = n,Answer()
same = n,Dial(AudioSocket/server.example.com:9092/40325ec2-5efd-4bd3-805f-53576e581d13)
same = n,Hangup()
pbx
| module | conf | desc |
|---|---|---|
| pbx_ael | extensions.ael | |
| pbx_config | extensions.conf | 最常用 |
| pbx_dundi | ||
| pbx_loopback | ||
| pbx_lua | extensions.lua | |
| pbx_realtime | db/extension | |
| pbx_spool | 将 callfile 放到目录下自动发起拨号 |
- pbx_realtime
- 相当于把 extensions.conf 一行一行存到了数据库, 实际上不太好管理
- pbx_lua
- 使用 Lua 来写 dialplain
codec
| codec | desc |
|---|---|
| codec_a_mu | |
| codec_adpcm | |
| codec_alaw | |
| codec_dahdi | /dev/dahdi/transcode - DAHDi 硬件转码 |
| codec_g722 | |
| codec_g726 | |
| codec_gsm | |
| codec_ilbc | |
| codec_lpc10 | |
| codec_resample | 从新采样 |
| codec_ulaw |
format
| format | desc |
|---|---|
| format_g719 | |
| format_g723 | |
| format_g726 | |
| format_g729 | |
| format_gsm | |
| format_h263 | |
| format_h264 | |
| format_ilbc | |
| format_pcm | |
| format_siren14 | |
| format_siren7 | |
| format_sln | |
| format_vox | |
| format_wav | |
| format_wav_gsm |
cdr
| module | conf | desc |
|---|---|---|
| cdr_csv | ||
| cdr_custom | ||
| cdr_manager | AMI 接收 CDR | |
| cdr_mysql | ||
| cdr_pgsql | ||
| cdr_sqlite3_custom | ||
| cdr_syslog | ||
| cdr_tds | MS SQL Server |
cel
| module | conf | desc |
|---|---|---|
| cel_custom | ||
| cel_manager | AMI 接收 CEL | |
| cel_pgsql | ||
| cel_sqlite3_custom | ||
| cel_tds | MS SQL Server |
bridge
| module | desc |
|---|---|
| bridge_builtin_features | |
| bridge_builtin_interval_features | |
| bridge_holding | store channels in bridge for holding, parking, queues |
| bridge_native_rtp | Native RTP bridging |
| bridge_simple | |
| bridge_softmix | 多方,软 mix |
func
| func | desc |
|---|---|
| func_aes | |
| func_base64 | |
| func_blacklist | |
| func_callcompletion | |
| func_callerid | |
| func_cdr | |
| func_channel | |
| func_config | |
| func_curl | |
| func_cut | |
| func_db | |
| func_devstate | |
| func_dialgroup | |
| func_dialplan | |
| func_enum | |
| func_env | |
| func_extstate | |
| func_frame_trace | |
| func_global | |
| func_groupcount | |
| func_hangupcause | |
| func_holdintercept | |
| func_iconv | |
| func_jitterbuffer | |
| func_lock | |
| func_logic | |
| func_math | |
| func_md5 | |
| func_module | |
| func_periodic_hook | |
| func_pitchshift | |
| func_pjsip_aor | |
| func_pjsip_contact | |
| func_pjsip_endpoint | |
| func_presencestate | |
| func_rand | |
| func_realtime | |
| func_sha1 | |
| func_shell | |
| func_sorcery | |
| func_sprintf | |
| func_srv | |
| func_strings | |
| func_sysinfo | |
| func_talkdetect | |
| func_timeout | |
| func_uri | |
| func_version | |
| func_vmcount | |
| func_volume |
app
| app | desc |
|---|---|
| app_adsiprog | |
| app_agent_pool | |
| app_alarmreceiver | |
| app_amd | |
| app_attended_transfer | |
| app_audiosocket | |
| app_authenticate | |
| app_blind_transfer | |
| app_bridgeaddchan | |
| app_bridgewait | |
| app_cdr | |
| app_celgenuserevent | |
| app_chanisavail | |
| app_channelredirect | |
| app_chanspy | |
| app_confbridge | confbridge.conf |
| app_controlplayback | |
| app_dahdiras | |
| app_db | |
| app_dial | |
| app_dictate | |
| app_directed_pickup | |
| app_directory | |
| app_disa | Direct Inward System Access |
| app_dumpchan | |
| app_echo | 测试应用, 感受延时, 确认是否有声音 |
| app_exec | |
| app_externalivr | |
| app_festival | |
| app_flash | |
| app_followme | |
| app_forkcdr | |
| app_getcpeid | |
| app_ices | |
| app_image | |
| app_meetme | MeetMe conference bridge |
| app_milliwatt | |
| app_minivm | |
| app_mixmonitor | Mixed Audio Monitoring |
| app_morsecode | |
| app_mp3 | |
| app_nbscat | |
| app_originate | |
| app_page | |
| app_playback | |
| app_playtones | |
| app_privacy | |
| app_queue | |
| app_read | |
| app_readexten | |
| app_record | |
| app_sayunixtime | |
| app_senddtmf | |
| app_sendtext | |
| app_sms | SMS/PSTN |
| app_softhangup | |
| app_speech_utils | |
| app_stack | Dialplan subroutines - Gosub, Return |
| app_stasis | |
| app_stream_echo | |
| app_system | |
| app_talkdetect | |
| app_test | Interface Test Application |
| app_transfer | |
| app_url | |
| app_userevent | |
| app_verbose | VERBOSE |
| app_voicemail | |
| app_waitforring | |
| app_waitforsilence | |
| app_waituntil | |
| app_while | |
| app_zapateller |
res
| res module | desc |
|---|---|
| res_adsi | |
| res_ael_share | |
| res_agi | |
| res_audiosocket | |
| res_calendar | |
| res_clialiases | |
| res_clioriginate | |
| res_config_curl | |
| res_config_pgsql | |
| res_config_sqlite3 | |
| res_convert | |
| res_crypto | |
| res_curl | |
| res_format_attr_celt | |
| res_format_attr_g729 | |
| res_format_attr_h263 | |
| res_format_attr_h264 | |
| res_format_attr_ilbc | |
| res_format_attr_opus | |
| res_format_attr_silk | |
| res_format_attr_siren14 | |
| res_format_attr_siren7 | |
| res_format_attr_vp8 | |
| res_hep | |
| res_hep_pjsip | |
| res_hep_rtcp | |
| res_http_media_cache | |
| res_http_websocket | |
| res_limit | |
| res_manager_devicestate | |
| res_manager_presencestate | |
| res_monitor | Monitor 功能, 现在更多推荐使用 app_mixmonitor |
| res_musiconhold | |
| res_mutestream | |
| res_mwi_devstate | |
| res_parking | |
| res_phoneprov | |
| res_prometheus | prometheus 监控 |
| res_realtime | |
| res_resolver_unbound | |
| res_rtp_asterisk | RTP,RTCP with Symmetric RTP support for NAT |
| res_rtp_multicast | |
| res_security_log | |
| res_smdi | |
| res_snmp | SNMP 集成 |
| res_speech | |
| res_srtp | |
| res_statsd | stattsd 监控 |
| res_stir_shaken | STIR/SHAKEN |
| res_stun_monitor | |
| res_timing_dahdi | |
| res_timing_pthread | |
| res_timing_timerfd |
| module | dependencies |
|---|---|
| res_agi | res_speech |
| res_rtp_asterisk | res_pjproject |
| res_snmp | net-snmp-dev |
- STIR/SHAKEN
- STIR - Secure Telephone Identity Revisited
- SHAKEN - Signature-based Handling of Asserted Information Using toKENs
- 避免 PTNS CallID 欺骗
res_stasis
- stasis 应用模块
- 基于 WebSocket 实时控制
| res_stasis | desc |
|---|---|
| res_stasis | |
| res_stasis_answer | |
| res_stasis_device_state | |
| res_stasis_playback | |
| res_stasis_recording | |
| res_stasis_snoop |
res_sorcery
- asterisk 统一的配置访问接口 - CRUD
| res_sorcery | desc |
|---|---|
| res_sorcery_astdb | 从 astdb 获取配置 |
| res_sorcery_config | 操作配置文件 |
| res_sorcery_memory | 内存配置 |
| res_sorcery_memory_cache | 缓存远程配置 |
| res_sorcery_realtime | 从实时后端获取配置 |
res_ari
- Asterisk RESTful Interface
- REST 管理 Asterisk 资源
- 不同模块提供不同资源接口
| ari module | desc |
|---|---|
| res_ari | |
| res_ari_applications | |
| res_ari_asterisk | |
| res_ari_bridges | |
| res_ari_channels | |
| res_ari_device_states | |
| res_ari_endpoints | |
| res_ari_events | |
| res_ari_model | |
| res_ari_playbacks | |
| res_ari_recordings | |
| res_ari_sounds |
res_pjsip
| pjsip module | desc |
|---|---|
| res_pjproject | PJPROJECT Log & Utility |
| res_pjsip | 基础 SIP 资源 |
| res_pjsip_acl | PJSIP ACL |
| res_pjsip_authenticator_digest | Digest 认证 |
| res_pjsip_caller_id | 支持 CallerID |
| res_pjsip_config_wizard | pjsip_wizard.conf |
| res_pjsip_dialog_info_body_generator | Extension State Dialog Info+XML |
| res_pjsip_diversion | Diversion Header |
| res_pjsip_dlg_options | SIP OPTIONS in dialog |
| res_pjsip_dtmf_info | 支持 DTMF INFO |
| res_pjsip_empty_info | 支持 Empty INFO |
| res_pjsip_endpoint_identifier_anonymous | 匿名终端标识 |
| res_pjsip_endpoint_identifier_ip | IP 终端标识 |
| res_pjsip_endpoint_identifier_user | 用户名终端标识 |
| res_pjsip_exten_state | Extension State Notifications |
| res_pjsip_header_funcs | Header Functions |
| res_pjsip_history | 历史 |
| res_pjsip_logger | 包日志 |
| res_pjsip_messaging | 支持消息 |
| res_pjsip_mwi | MWI 资源 |
| res_pjsip_mwi_body_generator | |
| res_pjsip_nat | NAT 支持 |
| res_pjsip_notify | 支持 CLI/AMI PJSIP NOTIFY |
| res_pjsip_one_touch_record_info | INFO One Touch Recording |
| res_pjsip_outbound_authenticator_digest | outbound digest 认证 |
| res_pjsip_outbound_publish | |
| res_pjsip_outbound_registration | outbound 注册 |
| res_pjsip_path | Path 头 |
| res_pjsip_phoneprov_provider | |
| res_pjsip_pidf_body_generator | Extension State PIDF Provider |
| res_pjsip_pidf_digium_body_supplement | PIDF Sangoma presence supplement |
| res_pjsip_pidf_eyebeam_body_supplement | PJSIP PIDF Eyebeam supplement |
| res_pjsip_publish_asterisk | Asterisk Event PUBLISH |
| res_pjsip_pubsub | event |
| res_pjsip_refer | Blind and Attended Transfer |
| res_pjsip_registrar | Registrar |
| res_pjsip_rfc3326 | Reason 头 |
| res_pjsip_sdp_rtp | SDP RTP/AVP stream handler |
| res_pjsip_send_to_voicemail | REFER Send to Voicemail |
| res_pjsip_session | |
| res_pjsip_sips_contact | UAC SIPS Contact |
| res_pjsip_stir_shaken | |
| res_pjsip_t38 | PJSIP T.38 UDPTL |
| res_pjsip_transport_websocket | WebSocket |
| res_pjsip_xpidf_body_generator | Extension State PIDF Provider |
- PIDF - Presence Information Data Format
- T.38 - FoIP Fax over IP - UDP 协议
- rfc3326 - SIP Reason 头
- Presence Subscriptions
- res_pjsip_pubsub
- res_pjsip_exten_state
- res_pjsip_pidf_body_generator
- res_pjsip_xpidf_body_generator
- res_pjsip_dialog_info_body_generator
- 特殊驱动支持
- res_pjsip_pidf_digium_body_supplement
- res_pjsip_pidf_eyebeam_body_supplement
sip common
load => res_adsi.so
load => res_timing_pthread.so
;load => res_timing_dahdi.so
load => res_agi.so
load => res_crypto.so
load => res_pktccops.so
load => res_smdi.so
load => res_stun_monitor.so
load => res_rtp_asterisk.so
load => res_rtp_msp.so
load => res_curl.so
load => res_clioriginate.so
load => pbx_config.so
load => bridge_multiplexed.so
load => app_dial.so
load => app_exec.so
load => app_system.so
load => app_macro.so
load => app_cdr.so
load => app_chanisavail.so
load => app_grppolicy.so
load => app_mixmonitor.so
load => app_sayunixtime.so
load => app_originate.so
load => app_playback.so
load => app_disa.so
load => app_authenticate.so
load => format_wav.so
load => format_gsm.so
load => func_math.so
load => func_cdr.so
load => func_strings.so
load => func_channel.so
load => func_callerid.so
load => func_timeout.so
load => func_shell.so
load => func_rand.so
load => func_realtime.so
load => func_dialplan.so
load => func_curl.so
load => func_uri.so
load => func_blacklist.so
load => func_db.so
load => func_cut.so
load => cdr_manager.so
load => cdr_syslog.so
load => codec_alaw.so
load => codec_ulaw.so
load => codec_adpcm.so
load => codec_a_mu.so
load => codec_g722.so
load => codec_g723.so
load => codec_g726.so
load => codec_g729.so
load => codec_gsm.so
load => codec_lpc10.so
;load => codec_c1k.so
load => chan_extra.so
load => res_srtp.so
load => chan_sip.so
load => chan_iax2.so
load => res_musiconhold.so
load => func_env.so
res_statsd
statsd.conf
[general]
# 是否启用 statsd 指标
enabled = yes
# statsd 服务端地址
# server[:port] - 默认端口 8125
server = 127.0.0.1
# 指标前缀 - 如果有多个实例则建议添加
prefix = ast-1
# 添加换行
# 方便使用 nc -lu 8125 测试时
;add_newline = no
ast-1.PJSIP.contacts.1876;@47519c5004a0a52468bd2e1570095db4.rtt:19|ms
ast-1.PJSIP.contacts.states.Created:+1|g
ast-1.PJSIP.contacts.states.Created:-1|g
ast-1.PJSIP.contacts.states.Reachable:+1|g
statsd_exporter 映射规则
mappings:
- match: '([^.]+)[.]PJSIP[.]contacts[.]([^;]+)(;[^.]*)?[.]rtt'
match_type: regex
name: 'pjsip_contacts_rtt'
labels:
asterisk: '$1'
conact: '$2'
res_prometheus
res_snmp
# 编译需要额外依赖
# ================
apk install net-snmp-dev
net-snmp-config --agent-libs
# ./configure --with-netsnmp
配置
/etc/asterisk/res_snmp.conf
[general]
; 运行为子系统 - 需要 snmpd 启动 agentx
; 非子系统需要 root - 绑定 161 端口
subagent = no
; 启动
enabled = yes
asterisk -x 'module show like snmp'
/etc/snmp/snmpd.conf
# Asterisk user
createUser asteriskUser MD5 "<your password>" DES
rwuser asteriskUser priv
master agentx
agentXSocket /var/agentx/master
agentXPerms 0660 0550 nobody asterisk
# snmp v2
snmpwalk -v2c -c public 127.0.0.1 1.3.6.1.4.1.22736.1
# snmp v3
snmpwalk -v 3 -u asteriskUser -l authPriv -a MD5 -A password DES -X password ASTERISK-MIB::astVersionString < your > -x < your > 127.0.0.1
常用配置
; debgging
load => app_verbose
load => app_dumpchan
load => res_rtp_multicast
load => chan_rtp
; rtp engine
load => res_rtp_asterisk
load => res_pjproject
load => pbx_config
; channel originate
load => res_clioriginate
load => res_curl
load => res_agi
; bridge
load => chan_bridge_media
load => app_bridgeaddchan
load => app_bridgewait
load => app_confbridge
load => bridge_builtin_features
load => bridge_builtin_interval_features
load => bridge_holding
load => bridge_native_rtp
load => bridge_simple
load => bridge_softmix
; load all codec
load => codec_a_mu
load => codec_adpcm
load => codec_alaw
; load => codec_dahdi ; need dahdi hardware
load => codec_g722
load => codec_g726
load => codec_gsm
load => codec_ilbc
load => codec_lpc10
load => codec_resample
load => codec_ulaw
; load all format
load => format_g719
load => format_g723
load => format_g726
load => format_g729
load => format_gsm
load => format_h263
load => format_h264
load => format_ilbc
load => format_pcm
load => format_siren14
load => format_siren7
load => format_sln
load => format_vox
load => format_wav
load => format_wav_gsm
\n## Reference List\n
Asterisk Modules
Tips
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "Asterisk RESTful Interface", .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .reload = reload_module, .optional_modules = "res_http_websocket", .requires = "http,res_stasis", .load_pri = AST_MODPRI_APP_DEPEND, );
res_phoneprov https://wiki.asterisk.org/wiki/display/AST/Phone+Provisioning+in+Asterisk https://wiki.asterisk.org/wiki/display/AST/Configuration+of+phoneprov.conf
/asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
app_adsiprog.so app_agent_pool.so app_alarmreceiver.so app_amd.so Answering Machine Detection Application app_authenticate.so app_bridgeaddchan.so app_bridgewait.so app_cdr.so CDR app_celgenuserevent.so Cel Generate User Event app_chanisavail.so
app_channelredirect.so Channel Redirect app_chanspy.so Channel Spy app_confbridge.so ConfBridge app_controlplayback.so Controll Playback app_dahdiras.so DAHDi RAS app_db.so DB app_dial.so Dial app_dictate.so dicate app_directed_pickup.so app_directory.so app_disa.so app_dumpchan.so app_echo.so app_exec.so app_externalivr.so app_festival.so app_flash.so app_followme.so app_forkcdr.so app_getcpeid.so app_ices.so Encode and Stream via icecast and ices
app_image.so app_macro.so app_meetme.so app_milliwatt.so app_minivm.so app_mixmonitor.so app_morsecode.so app_mp3.so app_nbscat.so app_originate.so app_page.so app_playback.so app_playtones.so app_privacy.so app_queue.so app_read.so app_readexten.so app_record.so app_sayunixtime.so app_senddtmf.so app_sendtext.so app_sms.so app_softhangup.so app_speech_utils.so app_stack.so app_stasis.so app_system.so app_talkdetect.so app_test.so app_transfer.so app_url.so app_userevent.so app_verbose.so app_voicemail.so app_waitforring.so app_waitforsilence.so app_waituntil.so app_while.so app_zapateller.so
bridge_builtin_features.so bridge_builtin_interval_features.so bridge_holding.so bridge_native_rtp.so bridge_simple.so bridge_softmix.so
cdr_adaptive_odbc.so cdr_csv.so cdr_custom.so cdr_manager.so cdr_mysql.so cdr_odbc.so cdr_pgsql.so cdr_sqlite3_custom.so cdr_syslog.so Syslog 集成 cdr_tds.so MS SQL Server 存储
cel_custom.so 自定义 cel_manager.so 管理 cel_odbc.so ODBC 存储 cel_pgsql.so PostgreSQL 存储 cel_sqlite3_custom.so SQLite 自定义存储 cel_tds.so MS SQL Server 存储
chan_alsa.so chan_bridge_media.so chan_console.so chan_dahdi.so chan_dongle.so chan_iax2.so chan_mgcp.so chan_mobile.so chan_oss.so chan_phone.so chan_pjsip.so chan_rtp.so chan_sip.so chan_skinny.so https://en.wikipedia.org/wiki/Skinny_Call_Control_Protocol
chan_unistim.so codec_a_mu.so codec_adpcm.so codec_alaw.so codec_dahdi.so codec_g722.so codec_g726.so codec_gsm.so codec_ilbc.so codec_lpc10.so codec_resample.so codec_speex.so codec_ulaw.so
format_g719.so format_g723.so format_g726.so format_g729.so format_gsm.so format_h263.so format_h264.so format_ilbc.so format_jpeg.so format_ogg_speex.so format_pcm.so format_siren14.so format_siren7.so format_sln.so format_vox.so format_wav.so format_wav_gsm.so
func_aes.so func_audiohookinherit.so func_base64.so func_blacklist.so func_callcompletion.so func_callerid.so func_cdr.so func_channel.so func_config.so func_curl.so func_cut.so func_db.so func_devstate.so func_dialgroup.so func_dialplan.so func_enum.so func_env.so func_extstate.so func_frame_trace.so func_global.so func_groupcount.so func_hangupcause.so func_holdintercept.so func_iconv.so func_jitterbuffer.so func_lock.so func_logic.so func_math.so func_md5.so func_module.so func_odbc.so func_periodic_hook.so func_pitchshift.so func_pjsip_aor.so func_pjsip_contact.so func_pjsip_endpoint.so func_presencestate.so func_rand.so func_realtime.so func_sha1.so func_shell.so func_sorcery.so func_speex.so func_sprintf.so func_srv.so func_strings.so func_sysinfo.so func_talkdetect.so func_timeout.so func_uri.so func_version.so func_vmcount.so func_volume.so
pbx
https://github.com/asterisk/asterisk/blob/master/pbx
- pbx_ael.so
- pbx_config.so
- extensions.conf 配置文件
- pbx_dundi.so
- dundi.conf
- 依赖 zlib 和 crypto
- pbx_loopback.so
- pbx_lua.so
- 使用 Lua 来写 dialplain
- pbx_realtime.so
- 相当于把 extensions.conf 一行一行存到了数据库, 实际上不太好管理
- pbx_spool.so
- 监听 spool 来发起通话
res_adsi.so res_ael_share.so res_agi.so
res_calendar.so res_clialiases.so res_clioriginate.so
res_config_curl.so res_config_odbc.so res_config_pgsql.so res_config_sqlite3.so
res_convert.so res_crypto.so res_curl.so
res_fax.so res_fax_spandsp.so
res_format_attr_celt.so res_format_attr_g729.so res_format_attr_h263.so res_format_attr_h264.so res_format_attr_ilbc.so res_format_attr_opus.so res_format_attr_silk.so res_format_attr_siren14.so res_format_attr_siren7.so res_format_attr_vp8.so
res_hep.so res_hep_pjsip.so res_hep_rtcp.so hep.conf
https://github.com/sipcapture/homer/wiki/Examples%3A-Asterisk
[general]
enabled = yes
capture_address = 10.0.0.1:9060
capture_password = foo
capture_id = 1234
res_http_media_cache.so res_http_websocket.so
res_limit.so res_manager_devicestate.so res_manager_presencestate.so res_monitor.so res_musiconhold.so res_mutestream.so res_odbc.so res_odbc_transaction.so res_parking.so res_phoneprov.so
res_realtime.so res_rtp_asterisk.so res_rtp_multicast.so res_security_log.so res_smdi.so
res_sorcery_astdb.so res_sorcery_config.so res_sorcery_memory.so res_sorcery_memory_cache.so res_sorcery_realtime.so
res_speech.so res_srtp.so
res_statsd.so res_stun_monitor.so res_timing_dahdi.so res_timing_pthread.so res_timing_timerfd.so