模块加载过程
启动事件处理线程池:
SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load)
=> sofia_msg_thread_start(0);
=> sofia_msg_thread_run
=> sofia_process_dispatch_event
=> our_sofia_event_callback : 处理消息
启动服务器监听:
SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load)
=> config_sofia(0, NULL)
=> launch_sofia_profile_thread
=> sofia_profile_thread_run
=> nua_create
=> su_home_new
=> nua_stack_init
=> nta_agent_create
=> nta_agent_add_tport
=> tport_tbind
=> tport_bind_server
=> tport_listen : 监听客户端发来的数据
呼叫流程:
1.收到nua_r_invite,返回407的流程:
our_sofia_event_callback
=>(nua_r_invite)sofia_handle_sip_r_invite
=>sofia_reg_handle_register
=>sofia_reg_handle_register_token
=>sofia_reg_auth_challenge
=>nua_respond(nh, SIP_407_PROXY_AUTH_REQUIRED
2.收到nua_r_invite,返回108的流程:
our_sofia_event_callback
=>(nua_r_invite)sofia_handle_sip_r_invite
=>sofia_reg_handle_register
=>sofia_reg_handle_register_token
=>sofia_reg_parse_auth
=>