当调用eXosip_listen_addr开始创建线程接收SIP报文,并且里面处理,底层存在一个状态机的机制,接下来调用eXosip_event_wait函数进行事件的处理

eXosip_event_t *

eXosip_event_wait (struct eXosip_t * excontext, int tv_s, int tv_ms)

je = (eXosip_event_t *) osip_fifo_tryget (excontext->j_events);

最终在这里获取到eXosip_event_t

el = osip_list_get (&ff->queue, 0);

注意:刚开始以为是通过osip_fifo_get方法获取,通过单步调试并非如此。


osip_transaction_add_event函数会osip_fifo_add将事件添加到队列中