asterisk channel driver dev ref
入口函数load_module
load_config
ast_channel_register console_tech
ast_cli_register_multiple
console_tech需要提供一系列的毁掉函数,比如
static struct ast_channel_tech console_tech = {
.type = "Console",
.description = "Console Channel Driver",
.requester = console_request,
.send_digit_begin = console_digit_begin,
.send_digit_end = console_digit_end,
.send_text = console_text,
.hangup = console_hangup,
.answer = console_answer,
.read = console_read,
.call = console_call,
.write = console_write,
.indicate = console_indicate,
.fixup = console_fixup,
};
answer一般会启动monitor thread
sample: chan_console.c
http://svn.asterisk.org/svn/asterisk/trunk/channels/chan_oss.c
https://code.google.com/p/asterisk-chan-dongle/
讨论
http://lists.digium.com/pipermail/asterisk-dev/2008-January/031719.html
load_module
ast_calloc gpublic
pdiscovery_init
cache_init
AST_RWLIST_HEAD_INIT
public_state_init
reload_config
discovery_restart
ast_pthread_create_background( do_discovery )
the thread loops all devices
看看要做啥就做啥,比如
打开设备opentty
start_monitor monitor_thread do_monitor_phone
该线程监视data_fd和audio_fd
port_status
tcgetattr
at_wait
at_read
PVT_STAT
at_read_result_iov
at_read_result_classification
at_response
移除设备AST_RWLIST_REMOVE_CURRENT, pvt_free
ast_channel_register(&channel_tech)
cli_register
app_register
manager_register
discovery_stop
devices_destroy
public_state
devices
a list
AST_RWLIST_HEAD_INIT
AST_RWLIST_RDLOCK
AST_RWLIST_TRAVERSE
discovery_lock
a mutex
ast_mutex_init
ast_mutex_lock
ast_mutex_destroy
discovery_thread
a thread
?
asterisk channel driver dev ref相关推荐
- 淘宝模板开发系列之SDK DEV REF
SDK开发环境配置 JDK的下载/安装/环境配置 下载:通过谷歌搜索或者是直接到oracle的官网去下载 安装:默认安装就可以 环境配置配置: JAVA_HOME是:jdk的安装目录(例如我的电脑上的 ...
- Asterisk学习进阶-3
配置就先说那么一些,其他也都是类似的配置,只是熟练程度问题了,原理相通,接下来就不在赘述功能配置,我们得花些精力来分析功能模块以及他们之间的相互配合问题,因为自己这些东西看的时间也不久,同时纯粹靠蒙, ...
- Asterisk 可加载模块
app_adsiprog.so => (Asterisk ADSI Programming Application) --用于支持模拟显示服务接口的终端设备,在终端屏幕上操作菜单等. app_a ...
- Asterisk PBX 快速安装向导
Asterisk PBX 可以简单的安装到大多数 Linux发行版本上,如 Debian, RedHat等,也可以定制到专用Linux版本运行,如Astlinux就是一个定制系统的例子.Asteris ...
- Skype For Asterisk 的安装及使用
只要4步,就完成skype for asterisk的安装.相信下面的英文都能看个70-80% Skype For Asterisk (SFA) is the first and only nativ ...
- asterisk概述和代码分析
2019独角兽企业重金招聘Python工程师标准>>> 引自:http://blog.csdn.net/ren911/article/details/6652395 1 Asteri ...
- Asterisk模块编写指南
1开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实 ...
- golang 中 channel 的详细使用、使用注意事项及死锁分析
什么是 channel 管道 它是一个数据管道,可以往里面写数据,从里面读数据. channel 是 goroutine 之间数据通信桥梁,而且是线程安全的. channel 遵循先进先出原则. 写入 ...
- linux通过platform_match()匹配platform总线上的device和driver
\kernel\msm-4.9\drivers\base\platform.c定义了platform_match()的实现,先来看定义 /*** platform_match - bind platf ...
最新文章
- 设计模式之访问者模式、例子分析
- java解析url字符串,将字符串解析为URL
- socket 编程入门教程(一)TCP server 端:6、创建“通讯 ”嵌套字
- WCF技术剖析之十七:消息(Message)详解(上篇)
- html css 表头,css固定表格表头(各浏览器通用)
- Android 去除标题栏和状态栏的方法
- CentosX64使用yum快速搭建xen虚拟化环境
- 关闭防火墙linux 16.04,如何在Ubuntu 16.04上配置和设置防火墙
- Java mongo入门
- leetcode 14 最长公共前缀(python)
- BZOJ3997 TJOI2015组合数学(动态规划)
- 安卓system镜像分区_安卓9.0 VIVO X23手机解锁方案
- 毕业设计-基于stm32的校园旧物回收系统
- C++fseek函数
- 宝塔实测-电商ERP进销存系统源码
- pads图标logo库制作方法
- ValueError: Cannot feed value of shape (100, 160) for Tensor 'Placeholder:0', which has shape '(?,
- 一名优秀的测试工程师需要具备哪些技能?
- View的foreground属性
- 2017.11-上海商泰汽车有限公司面试