天天看點

OSIP注冊流程(帶權限驗證)

此部分隻是一個流程的分解,一般按照這個流程編寫自己的代碼就可以通過驗證,隻是一般情況而已。

A)      第一次注冊

1、  初始化SIP消息osip_message_init

2、  設定SIP屬性值

osip_message_set_method,

osip_message_set_version,

osip_message_set_to,

osip_message_set_user_agent,

osip_message_set_from,

osip_call_id_init,

osip_cseq_init,

osip_message_set_max_forwards,

osip_message_set_via,

osip_message_set_contact

3、  關聯SIP消息和Transaction

osip_transaction_init,

osip_new_outgoing_sipmessage,

osip_message_force_update,

osip_transaction_add_event

4、  觸發回調

osip_ict_execute,

osip_ist_execute,

osip_nict_execute,

osip_nist_execute,

osip_retransmissions_execute,

osip_timers_nict_execute,

osip_timers_ict_execute,

osip_timers_nist_execute,

osip_timers_ist_execute

5、  處理回調,包括發送回調,逾時回調,錯誤回調

6、如果伺服器沒有注冊認證,則應該可以收到2XX

7、如果伺服器需要注冊認證,則應該收到401或407

8、處理4XX回調

MSG_IS_RESPONSE_FOR(_pMsg,"REGISTER")

9、修改發送消息中VIA的branch

10、增加CSep的Number

11、增加認證資訊,參考eXosip的__eXosip_create_authorization_header

12、重複3-11

13、處理2XX回調

14、釋放已經Terminate的Transaction

繼續閱讀