入口函数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相关推荐

  1. 淘宝模板开发系列之SDK DEV REF

    SDK开发环境配置 JDK的下载/安装/环境配置 下载:通过谷歌搜索或者是直接到oracle的官网去下载 安装:默认安装就可以 环境配置配置: JAVA_HOME是:jdk的安装目录(例如我的电脑上的 ...

  2. Asterisk学习进阶-3

    配置就先说那么一些,其他也都是类似的配置,只是熟练程度问题了,原理相通,接下来就不在赘述功能配置,我们得花些精力来分析功能模块以及他们之间的相互配合问题,因为自己这些东西看的时间也不久,同时纯粹靠蒙, ...

  3. Asterisk 可加载模块

    app_adsiprog.so => (Asterisk ADSI Programming Application) --用于支持模拟显示服务接口的终端设备,在终端屏幕上操作菜单等. app_a ...

  4. Asterisk PBX 快速安装向导

    Asterisk PBX 可以简单的安装到大多数 Linux发行版本上,如 Debian, RedHat等,也可以定制到专用Linux版本运行,如Astlinux就是一个定制系统的例子.Asteris ...

  5. Skype For Asterisk 的安装及使用

    只要4步,就完成skype for asterisk的安装.相信下面的英文都能看个70-80% Skype For Asterisk (SFA) is the first and only nativ ...

  6. asterisk概述和代码分析

    2019独角兽企业重金招聘Python工程师标准>>> 引自:http://blog.csdn.net/ren911/article/details/6652395 1 Asteri ...

  7. Asterisk模块编写指南

    1开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实 ...

  8. golang 中 channel 的详细使用、使用注意事项及死锁分析

    什么是 channel 管道 它是一个数据管道,可以往里面写数据,从里面读数据. channel 是 goroutine 之间数据通信桥梁,而且是线程安全的. channel 遵循先进先出原则. 写入 ...

  9. linux通过platform_match()匹配platform总线上的device和driver

    \kernel\msm-4.9\drivers\base\platform.c定义了platform_match()的实现,先来看定义 /*** platform_match - bind platf ...

最新文章

  1. 设计模式之访问者模式、例子分析
  2. java解析url字符串,将字符串解析为URL
  3. socket 编程入门教程(一)TCP server 端:6、创建“通讯 ”嵌套字
  4. WCF技术剖析之十七:消息(Message)详解(上篇)
  5. html css 表头,css固定表格表头(各浏览器通用)
  6. Android 去除标题栏和状态栏的方法
  7. CentosX64使用yum快速搭建xen虚拟化环境
  8. 关闭防火墙linux 16.04,如何在Ubuntu 16.04上配置和设置防火墙
  9. Java mongo入门
  10. leetcode 14 最长公共前缀(python)
  11. BZOJ3997 TJOI2015组合数学(动态规划)
  12. 安卓system镜像分区_安卓9.0 VIVO X23手机解锁方案
  13. 毕业设计-基于stm32的校园旧物回收系统
  14. C++fseek函数
  15. 宝塔实测-电商ERP进销存系统源码
  16. pads图标logo库制作方法
  17. ValueError: Cannot feed value of shape (100, 160) for Tensor 'Placeholder:0', which has shape '(?,
  18. 一名优秀的测试工程师需要具备哪些技能?
  19. View的foreground属性
  20. 2017.11-上海商泰汽车有限公司面试

热门文章

  1. Zookeeper常用命令操作,javaAPI操作之Curator框架 API
  2. kotlin学习笔记——操作符
  3. MYSQLl数据库 表的操作
  4. python模块中的__all__属性
  5. 正则表达式 非捕获性分组
  6. 辗转相除求最大公约数
  7. Leetcode题解(22)
  8. imageNamed和imageWithContextOfFile的区别?哪个性能高
  9. 《高性能MySQL(第3版)》摘要——索引篇
  10. python-global全局变量