当调用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将事件添加到队列中