📄 fsm_uas4req.c
字号:
((osip_t *)transaction->config)->cb_sndoptions1xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"REGISTER")) { if (((osip_t *)transaction->config)->cb_sndregister1xx != NULL) ((osip_t *)transaction->config)->cb_sndregister1xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"PRACK")) { if (((osip_t *)transaction->config)->cb_sndprack1xx != NULL) ((osip_t *)transaction->config)->cb_sndprack1xx(sipevent,transaction); } else { if (((osip_t *)transaction->config)->cb_sndunkrequest1xx != NULL) ((osip_t *)transaction->config)->cb_sndunkrequest1xx(sipevent,transaction); }#endif if (transaction->lastresponse!=NULL) { msg_free(transaction->lastresponse); sfree(transaction->lastresponse); } transaction->lastresponse = sipevent->sip;}intuas_send23456XX(sipevent_t *sipevent,transaction_t *transaction){ int i; i = udp_send_response(sipevent->sip); if (i==-1) { TRACE(trace(__FILE__,__LINE__,TRACE_LEVEL1,NULL,"response not sent.\n")); if (((osip_t *)transaction->config)->cb_network_error != NULL) ((osip_t *)transaction->config)->cb_network_error(transaction); msg_free(sipevent->sip); sfree(sipevent->sip); return -1; } if (transaction->lastresponse!=NULL) { msg_free(transaction->lastresponse); sfree(transaction->lastresponse); } transaction->lastresponse = sipevent->sip; /* AMD/ bug: fixed 26/09/2001 */ if (MSG_IS_INVITE(transaction->lastrequest)) transaction->state = ANSWERED; else /* for other requests type, it's all done! */ { transaction->state = COMPLETED; transaction->completed_time = time(NULL); } /* invoke the right callback! */ if (MSG_IS_STATUS_2XX(sipevent->sip)) {#ifndef EXTENDED_CALLBACKS if (((osip_t *)transaction->config)->cb_snd2xx != NULL) ((osip_t *)transaction->config)->cb_snd2xx(sipevent,transaction);#else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INVITE")) { if (((osip_t *)transaction->config)->cb_sndinvite2xx != NULL) ((osip_t *)transaction->config)->cb_sndinvite2xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"BYE")) { if (((osip_t *)transaction->config)->cb_sndbye2xx != NULL) ((osip_t *)transaction->config)->cb_sndbye2xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"CANCEL")) { if (((osip_t *)transaction->config)->cb_sndcancel2xx != NULL) ((osip_t *)transaction->config)->cb_sndcancel2xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INFO")) { if (((osip_t *)transaction->config)->cb_sndinfo2xx != NULL) ((osip_t *)transaction->config)->cb_sndinfo2xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"OPTIONS")) { if (((osip_t *)transaction->config)->cb_sndoptions2xx != NULL) ((osip_t *)transaction->config)->cb_sndoptions2xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"REGISTER")) { if (((osip_t *)transaction->config)->cb_sndregister2xx != NULL) ((osip_t *)transaction->config)->cb_sndregister2xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"PRACK")) { if (((osip_t *)transaction->config)->cb_sndprack2xx != NULL) ((osip_t *)transaction->config)->cb_sndprack2xx(sipevent,transaction); } else { if (((osip_t *)transaction->config)->cb_sndunkrequest2xx != NULL) ((osip_t *)transaction->config)->cb_sndunkrequest2xx(sipevent,transaction); }#endif } else if (MSG_IS_STATUS_3XX(sipevent->sip)) {#ifndef EXTENDED_CALLBACKS if (((osip_t *)transaction->config)->cb_snd3xx != NULL) ((osip_t *)transaction->config)->cb_snd3xx(sipevent,transaction);#else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INVITE")) { if (((osip_t *)transaction->config)->cb_sndinvite3xx != NULL) ((osip_t *)transaction->config)->cb_sndinvite3xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"BYE")) { if (((osip_t *)transaction->config)->cb_sndbye3xx != NULL) ((osip_t *)transaction->config)->cb_sndbye3xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"CANCEL")) { if (((osip_t *)transaction->config)->cb_sndcancel3xx != NULL) ((osip_t *)transaction->config)->cb_sndcancel3xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INFO")) { if (((osip_t *)transaction->config)->cb_sndinfo3xx != NULL) ((osip_t *)transaction->config)->cb_sndinfo3xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"OPTIONS")) { if (((osip_t *)transaction->config)->cb_sndoptions3xx != NULL) ((osip_t *)transaction->config)->cb_sndoptions3xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"REGISTER")) { if (((osip_t *)transaction->config)->cb_sndregister3xx != NULL) ((osip_t *)transaction->config)->cb_sndregister3xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"PRACK")) { if (((osip_t *)transaction->config)->cb_sndprack3xx != NULL) ((osip_t *)transaction->config)->cb_sndprack3xx(sipevent,transaction); } else { if (((osip_t *)transaction->config)->cb_sndunkrequest3xx != NULL) ((osip_t *)transaction->config)->cb_sndunkrequest3xx(sipevent,transaction); }#endif } else if (MSG_IS_STATUS_4XX(sipevent->sip)) {#ifndef EXTENDED_CALLBACKS if (((osip_t *)transaction->config)->cb_snd4xx != NULL) ((osip_t *)transaction->config)->cb_snd4xx(sipevent,transaction);#else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INVITE")) { if (((osip_t *)transaction->config)->cb_sndinvite4xx != NULL) ((osip_t *)transaction->config)->cb_sndinvite4xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"BYE")) { if (((osip_t *)transaction->config)->cb_sndbye4xx != NULL) ((osip_t *)transaction->config)->cb_sndbye4xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"CANCEL")) { if (((osip_t *)transaction->config)->cb_sndcancel4xx != NULL) ((osip_t *)transaction->config)->cb_sndcancel4xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INFO")) { if (((osip_t *)transaction->config)->cb_sndinfo4xx != NULL) ((osip_t *)transaction->config)->cb_sndinfo4xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"OPTIONS")) { if (((osip_t *)transaction->config)->cb_sndoptions4xx != NULL) ((osip_t *)transaction->config)->cb_sndoptions4xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"REGISTER")) { if (((osip_t *)transaction->config)->cb_sndregister4xx != NULL) ((osip_t *)transaction->config)->cb_sndregister4xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"PRACK")) { if (((osip_t *)transaction->config)->cb_sndprack4xx != NULL) ((osip_t *)transaction->config)->cb_sndprack4xx(sipevent,transaction); } else { if (((osip_t *)transaction->config)->cb_sndunkrequest4xx != NULL) ((osip_t *)transaction->config)->cb_sndunkrequest4xx(sipevent,transaction); }#endif } else if (MSG_IS_STATUS_5XX(sipevent->sip)) {#ifndef EXTENDED_CALLBACKS if (((osip_t *)transaction->config)->cb_snd5xx != NULL) ((osip_t *)transaction->config)->cb_snd5xx(sipevent,transaction);#else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INVITE")) { if (((osip_t *)transaction->config)->cb_sndinvite5xx != NULL) ((osip_t *)transaction->config)->cb_sndinvite5xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"BYE")) { if (((osip_t *)transaction->config)->cb_sndbye5xx != NULL) ((osip_t *)transaction->config)->cb_sndbye5xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"CANCEL")) { if (((osip_t *)transaction->config)->cb_sndcancel5xx != NULL) ((osip_t *)transaction->config)->cb_sndcancel5xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INFO")) { if (((osip_t *)transaction->config)->cb_sndinfo5xx != NULL) ((osip_t *)transaction->config)->cb_sndinfo5xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"OPTIONS")) { if (((osip_t *)transaction->config)->cb_sndoptions5xx != NULL) ((osip_t *)transaction->config)->cb_sndoptions5xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"REGISTER")) { if (((osip_t *)transaction->config)->cb_sndregister5xx != NULL) ((osip_t *)transaction->config)->cb_sndregister5xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"PRACK")) { if (((osip_t *)transaction->config)->cb_sndprack5xx != NULL) ((osip_t *)transaction->config)->cb_sndprack5xx(sipevent,transaction); } else { if (((osip_t *)transaction->config)->cb_sndunkrequest5xx != NULL) ((osip_t *)transaction->config)->cb_sndunkrequest5xx(sipevent,transaction); }#endif } else if (MSG_IS_STATUS_6XX(sipevent->sip)) {#ifndef EXTENDED_CALLBACKS if (((osip_t *)transaction->config)->cb_snd6xx != NULL) ((osip_t *)transaction->config)->cb_snd6xx(sipevent,transaction);#else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INVITE")) { if (((osip_t *)transaction->config)->cb_sndinvite6xx != NULL) ((osip_t *)transaction->config)->cb_sndinvite6xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"BYE")) { if (((osip_t *)transaction->config)->cb_sndbye6xx != NULL) ((osip_t *)transaction->config)->cb_sndbye6xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"CANCEL")) { if (((osip_t *)transaction->config)->cb_sndcancel6xx != NULL) ((osip_t *)transaction->config)->cb_sndcancel6xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"INFO")) { if (((osip_t *)transaction->config)->cb_sndinfo6xx != NULL) ((osip_t *)transaction->config)->cb_sndinfo6xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"OPTIONS")) { if (((osip_t *)transaction->config)->cb_sndoptions6xx != NULL) ((osip_t *)transaction->config)->cb_sndoptions6xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"REGISTER")) { if (((osip_t *)transaction->config)->cb_sndregister6xx != NULL) ((osip_t *)transaction->config)->cb_sndregister6xx(sipevent,transaction); } else if (MSG_IS_RESPONSEFOR(sipevent->sip,"PRACK")) { if (((osip_t *)transaction->config)->cb_sndprack6xx != NULL) ((osip_t *)transaction->config)->cb_sndprack6xx(sipevent,transaction); } else { if (((osip_t *)transaction->config)->cb_sndunkrequest6xx != NULL) ((osip_t *)transaction->config)->cb_sndunkrequest6xx(sipevent,transaction); }#endif } else { TRACE(trace(__FILE__,__LINE__,TRACE_LEVEL1,NULL,"Unknown response code?\n"));} return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -