OpenSIPs核心事务模块数据结构解析

    OpenSIPs与kamalio主要实现SIP信令的代理、路由等VoIP相关业务 ,其中OpenSIPs核心事务模块TM数据结构采用Hash实现事务实体的快速增、删、改、查等操作,其中entrys为Hash表的入口数组结构实现,根据_hash键值实现数据结构的访问,通过双向链表方式实现冲突处理。
    struct s_table
  {
        struct entry   entrys[ TM_TABLE_ENTRIES ];
     };
       处理新的呼叫时,在内联函数new_t函数完成cell的创建之后,调用insert_into_hash_table_unsafe( struct cell * p_cell, unsigned int _hash )处理函数中实现了cell的h链表尾部插入操作。
       插入完成之后调用init_new_t实现对新建cell相关属性的记录,例如根据sip_msg完成对关键字段from、To,callleg等字段的初始化。



相关内容推荐