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)