代码分析 Asterisk1.8 DAHDI

来源:互联网 发布:腾讯视频网络电影合作 编辑:程序博客网 时间:2024/06/05 03:36

 

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)

 

 

0 0
原创粉丝点击