📄 h323.cpp
字号:
/************************************************************************
*
* Version %I%
*
* Copyright (C) 2002 By BEP Corporation.
* This Document Contains Proprietary Information Of BEP Corporation.
* No Distribution Is Granted Except With Written Permission From
* BEP Corporation.
*************************************************************************/
/*
**
** MODULE: h323.c
**
** PURPOSE:
**
** LIMITATIONS:
**
** DATE CREATED: 09-27-2004
**
** AUTHOR(S): aoto created
**
** MODIFICATIONS:
** userId Date Description
**
** QA Status:
** status Date Owner
**
*/
#include "stdafx.h"
#include "myphone.h"
#include "myphoneDlg.h"
#include "h323.h"
s_state_machine* get_h323()
{
s_state_machine* pSM = (s_state_machine* )malloc(sizeof(s_state_machine));
pSM->iSize = 10;
pSM->iState = ST_H323_ON_HOOK_STATE;
pSM->pState = (s_state* )malloc(sizeof(s_state)*pSM->iSize);
pSM->pState[ST_H323_ON_HOOK_STATE].iSize = 11;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck = (s_event_ack*)malloc(sizeof(s_event_ack)*
11);
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 0].iEvent =
local_off_hook_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 0].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 0].funcAck =
&h323_on_hook_state_local_off_hook_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 1].iEvent =
receive_query_availability_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 1].iState =
ST_H323_RINGING_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 1].funcAck =
&h323_on_hook_state_receive_query_availability_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 2].iEvent = to_ringing_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 2].iState =
ST_H323_RINGING_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 2].funcAck =
&h323_on_hook_state_to_ringing_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 3].iEvent = callout_key_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 3].iState =
ST_H323_ON_HOOK_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 3].funcAck =
&h323_on_hook_state_callout_key_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 4].iEvent = long_digit_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 4].iState =
ST_H323_ON_HOOK_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 4].funcAck =
&h323_on_hook_state_long_digit_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 5].iEvent =
local_on_hook_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 5].iState =
ST_H323_ON_HOOK_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 5].funcAck =
&h323_on_hook_state_local_on_hook_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 6].iEvent =
receive_terminate_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 6].iState =
ST_H323_ON_HOOK_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 6].funcAck =
&h323_on_hook_state_receive_terminate_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 7].iEvent = timeout_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 7].iState =
ST_H323_ON_HOOK_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 7].funcAck =
&h323_on_hook_state_timeout_event;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 8].iEvent =
to_wait_for_connect_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 8].iState =
ST_H323_WAIT_FOR_CONNECT_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 8].funcAck =
&h323_on_hook_state_to_wait_for_connect_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 9].iEvent =
to_query_availability_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 9].iState =
ST_H323_QUERY_AVAILABILITY_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 9].funcAck =
&h323_on_hook_state_to_query_availability_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 10].iEvent =
to_dead_end_state;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 10].iState =
ST_H323_DEAD_END_STATE;
pSM->pState[ST_H323_ON_HOOK_STATE].pEventAck[ 10].funcAck =
&h323_on_hook_state_to_dead_end_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].iSize = 13;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck = (s_event_ack* )malloc(sizeof(
s_event_ack)* 13);
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 0].iEvent =
receive_query_availability_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 0].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 0].funcAck =
&h323_wait_first_digit_state_receive_query_availability_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 1].iEvent =
receive_terminate_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 1].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 1].funcAck =
&h323_wait_first_digit_state_receive_terminate_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 2].iEvent =
digit_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 2].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 2].funcAck =
&h323_wait_first_digit_state_digit_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 3].iEvent =
timeout_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 3].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 3].funcAck =
&h323_wait_first_digit_state_timeout_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 4].iEvent =
callout_key_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 4].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 4].funcAck =
&h323_wait_first_digit_state_callout_key_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 5].iEvent =
cancel_key_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 5].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 5].funcAck =
&h323_wait_first_digit_state_cancel_key_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 6].iEvent =
speed_dial_key_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 6].iState =
ST_H323_WAIT_FIRST_DIGIT_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 6].funcAck =
&h323_wait_first_digit_state_speed_dial_key_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 7].iEvent =
local_on_hook_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 7].iState =
ST_H323_ON_HOOK_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 7].funcAck =
&h323_wait_first_digit_state_local_on_hook_event;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 8].iEvent =
to_dead_end_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 8].iState =
ST_H323_DEAD_END_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 8].funcAck =
&h323_wait_first_digit_state_to_dead_end_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 9].iEvent =
to_collect_digits_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 9].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 9].funcAck =
&h323_wait_first_digit_state_to_collect_digits_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 10].iEvent =
to_collect_transfer_digits_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 10].iState =
ST_H323_COLLECT_TRANSFER_DIGITS_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 10].funcAck =
&h323_wait_first_digit_state_to_collect_transfer_digits_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 11].iEvent =
to_bidir_voice_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 11].iState =
ST_H323_BIDIR_VOICE_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 11].funcAck =
&h323_wait_first_digit_state_to_bidir_voice_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 12].iEvent =
to_query_availability_state;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 12].iState =
ST_H323_QUERY_AVAILABILITY_STATE;
pSM->pState[ST_H323_WAIT_FIRST_DIGIT_STATE].pEventAck[ 12].funcAck =
&h323_wait_first_digit_state_to_query_availability_state;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].iSize = 13;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck = (s_event_ack*)malloc(sizeof(
s_event_ack)* 13);
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 0].iEvent =
digit_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 0].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 0].funcAck =
&h323_collect_digits_state_digit_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 1].iEvent =
receive_query_availability_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 1].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 1].funcAck =
&h323_collect_digits_state_receive_query_availability_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 2].iEvent =
receive_terminate_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 2].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 2].funcAck =
&h323_collect_digits_state_receive_terminate_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 3].iEvent =
cancel_key_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 3].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 3].funcAck =
&h323_collect_digits_state_cancel_key_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 4].iEvent =
long_digit_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 4].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 4].funcAck =
&h323_collect_digits_state_long_digit_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 5].iEvent =
timeout_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 5].iState =
ST_H323_COLLECT_DIGITS_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 5].funcAck =
&h323_collect_digits_state_timeout_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 6].iEvent =
callout_key_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 6].iState =
ST_H323_QUERY_AVAILABILITY_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 6].funcAck =
&h323_collect_digits_state_callout_key_event;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 7].iEvent =
to_query_availability_state;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 7].iState =
ST_H323_QUERY_AVAILABILITY_STATE;
pSM->pState[ST_H323_COLLECT_DIGITS_STATE].pEventAck[ 7].funcAck =
&h323_collect_digits_state_to_query_availability_state;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -