代码分析 Asterisk1.8 DAHDI

 

DAHDI

 

dahdi_unlocked_ioctl->dahdi_chan_ioctl

 

 

 

chan_dahdi

 

主要结构体

dahdi_tech

dahdi_analog_callbacks

 

 

load_module->setup_dahdi->setup_dahdi_int->解析配置文件

                                                                                     ->restart_monitor->创建线程do_monitor//做的事情类似sip 的do_monitor

 

模拟话机摘机后创建线程并放拨号音:

do_monitor->dahdi_get_even

->analog_handle_init_event->analog_new_ast_channel

->创建线程运行__analog_ss_thread->ast_pbx_run//执行dialplan

 

 

ast_request->dahdi_request->analog_request->analog_new_ast_channel(这里startpbx为0)->new_ast_channel(my_new_analog_ast_channel)->dahdi_new (for callee)-> ast_channel_set_fd

->ast_pbx_start

 

ast_call-> dahdi_call-> analog_call->analog_start-> start( my_start)

 

 

                                                                 //进行pool,会设置AST_FLAG_EXCEPTION

wait_for_answer->ast_waitfor_n->ast_waitfor_nandfds

                                                                                    //当设置AST_FLAG_EXCEPTION时,会走到这里。

->ast_read->__ast_read->exception(dahdi_exception)->analog_exception->__analog_handle_event->analog_get_event->get_event (my_get_event)-> dahdi_get_event

->read(dahdi_read)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值