sofia module of freeswitch

Module loading process

Start the event processing thread pool:

SWITCH_MODULE_LOAD_FUNCTION(mod_sofia_load)
    => sofia_msg_thread_start(0);
        => sofia_msg_thread_run
            => sofia_process_dispatch_event
                => our_sofia_event_callback : 处理消息

Start server monitoring:

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 : 监听客户端发来的数据 

Call flow:

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
					=>

Guess you like

Origin blog.csdn.net/weixin_44991625/article/details/107714908