📄 inet_line_msg.c
字号:
else
{
dtmf_len = struct_src_msg->dtmf_num[0];
if(dtmf_len > 0x0){
memcpy(struct_tgt_msg->dtmf_num, struct_src_msg->dtmf_num, dtmf_len+1);
sptr->len += dtmf_len;
}
}
/* dump current message */
inet_syslog(LOG_INFO,"\n\r[INET] line(%d) DTMF req sent.", line_id);
inet_msg_dump((INT8U*) (* shdl));
/* send message to tel/sip module */
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_hs_offhook_ind_to_csc
Description: HS_offhook_ind, or inet_hs_offhook_ind, only change the src taskid and target taskid.
Input: lineid.
Output: None
Return: None
Others: None
Histrory: 2006-08-14,yuste,Created
*************************************************************************/
int inet_send_hs_offhook_ind_to_csc(INT8U lineid)
{
UBYTE** shdl;
struct INET_MSG* rptr;
INT8U *poffhook;
shdl = GetMem(INET_MSG_HEAD_LEN+1);
rptr = (struct INET_MSG*)*shdl;
poffhook = *shdl;
rptr->stsk = INET_INET_TASK_ID;
rptr->rtsk = INET_CSC_TASK_ID;
rptr->msgid = TEL_OFF_HOOK;
rptr->len = 1;
poffhook[INET_MSG_HEAD_LEN] = lineid;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(rptr->rtsk, shdl);
return(0);
}
/************************************************************************
Function: inet_send_line_release_req_to_telsip
Description: send csc_line_release to sip or tel, csc_line_release may not bring the allocated lineid.
according to lineid, get target module(SIP or TEL).
Input: lineid, msg
Output: None
Return: None
Others: None
Histrory: 2006-08-14,yuste,Created
*************************************************************************/
int inet_send_line_release_req_to_telsip(INT8U lineid)
{
UBYTE** shdl;
struct INET_MSG* rptr;
struct INET_TOTEL_LINE_RELEASE_t *t_msg;
shdl = GetMem( INET_MSG_HEAD_LEN+ sizeof(struct INET_TOTEL_LINE_RELEASE_t));
rptr = (struct INET_MSG*)*shdl;
t_msg = (struct INET_TOTEL_LINE_RELEASE_t*)(*shdl+INET_MSG_HEAD_LEN); /* CSC_LINE_REQ */
rptr->stsk = INET_CSC_TASK_ID;
if( (lineid & 0x10) == 0x10 ){ /* to sip */
rptr->stsk = INET_INET_TASK_ID;
rptr->rtsk = INET_SIP_TASK_ID;
}
else
rptr->rtsk = INET_TEL_TASK_ID;
rptr->msgid = CSC_LINE_REL_REQ;
rptr->len = 0x02; /* need not airext */
t_msg->lineid = lineid; /* sip or tel or hs */
t_msg->cause = 0x0;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(rptr->rtsk, shdl);
return(0);
}
/************************************************************************
Function: inet_send_hs_mode_rsp
Description:
Input: lineid, msg
Output: None
Return: None
Others: None
Histrory: 2006-09-04,yuste,Created
*************************************************************************/
int inet_send_hs_work_mode_rsp_to_tel(struct INET_HS_WORK_MODE_RSP_t *hs_mode_rsp_msg)
{
UBYTE** shdl;
struct INET_MSG* sptr;
struct INET_HS_WORK_MODE_RSP_t *struct_tgt_msg;
shdl = GetMem(sizeof(struct INET_HS_WORK_MODE_RSP_t) + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
struct_tgt_msg = (struct INET_HS_WORK_MODE_RSP_t*) (*shdl + INET_MSG_HEAD_LEN);
sptr->stsk = INET_CSC_TASK_ID;
sptr->rtsk = INET_TEL_TASK_ID;
sptr->msgid = CSC_HS_MODE_RSP;
sptr->len = 0x02;
struct_tgt_msg->mode = hs_mode_rsp_msg->mode;
struct_tgt_msg->result = hs_mode_rsp_msg->result;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_user_mode_rsp_to_tel
Description:
Input: lineid, msg
Output: None
Return: None
Others: None
Histrory: 2006-09-04,yuste,Created
*************************************************************************/
int inet_send_user_mode_rsp_to_tel(struct INET_HS_USER_MODE_RSP_t *user_mode_rsp_msg)
{
UBYTE** shdl;
struct INET_MSG* sptr;
struct INET_HS_USER_MODE_RSP_t *struct_tgt_msg;
shdl = GetMem(sizeof(struct INET_HS_USER_MODE_RSP_t) + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
struct_tgt_msg = (struct INET_HS_USER_MODE_RSP_t*) (*shdl + INET_MSG_HEAD_LEN);
sptr->stsk = INET_CSC_TASK_ID;
sptr->rtsk = INET_TEL_TASK_ID;
sptr->msgid = CSC_USER_MODE_RSP;
sptr->len = 0x02;
struct_tgt_msg->mode = user_mode_rsp_msg->mode;
struct_tgt_msg->result = user_mode_rsp_msg->result;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_max_so_num_to_tel
Description:
Input: max_so_num
Output: None
Return: None
Others: None
Histrory: 2006-09-04,yuste,Created
*************************************************************************/
int inet_send_max_so_num_to_tel(UBYTE max_so_num)
{
UBYTE** shdl;
struct INET_MSG* sptr;
INT8U *pmsg;
INT8U index;
shdl = GetMem(1 + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
pmsg = *shdl;
sptr->stsk = INET_CSC_TASK_ID;
sptr->rtsk = INET_TEL_TASK_ID;
sptr->msgid = CSC_INFORM_SO_NUM;
sptr->len = 0x01;
index = INET_MSG_HEAD_LEN;
pmsg[index] = max_so_num;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_net_mode_rsp_to_tel
Description:
Input: lineid, msg
Output: None
Return: None
Others: None
Histrory: 2006-09-04,yuste,Created
*************************************************************************/
int inet_send_net_mode_rsp_to_tel(struct INET_NET_MODE_RSP_t *net_mode_rsp_msg)
{
UBYTE** shdl;
struct INET_MSG* sptr;
struct INET_NET_MODE_RSP_t *struct_tgt_msg;
shdl = GetMem(sizeof(struct INET_NET_MODE_RSP_t) + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
struct_tgt_msg = (struct INET_NET_MODE_RSP_t*) (*shdl + INET_MSG_HEAD_LEN);
sptr->stsk = INET_CSC_TASK_ID;
sptr->rtsk = INET_TEL_TASK_ID;
sptr->msgid = CSC_NET_MODE_RSP;
sptr->len = 0x01;
struct_tgt_msg->result = net_mode_rsp_msg->result;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_access_code_rsp_to_tel
Description:
Input: lineid, msg
Output: None
Return: None
Others: None
Histrory: 2006-09-04,yuste,Created
*************************************************************************/
int inet_send_access_code_rsp_to_tel(struct INET_ACCESS_CODE_RSP_t *access_code_rsp_msg)
{
UBYTE** shdl;
struct INET_MSG* sptr;
struct INET_ACCESS_CODE_RSP_t *struct_tgt_msg;
shdl = GetMem(sizeof(struct INET_ACCESS_CODE_RSP_t) + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
struct_tgt_msg = (struct INET_ACCESS_CODE_RSP_t*) (*shdl + INET_MSG_HEAD_LEN);
sptr->stsk = INET_CSC_TASK_ID;
sptr->rtsk = INET_TEL_TASK_ID;
sptr->msgid = CSC_AREA_COD_ACK;
sptr->len = 0x0a;
struct_tgt_msg->result = access_code_rsp_msg->result;
struct_tgt_msg->oper_flag = access_code_rsp_msg->oper_flag;
memcpy(struct_tgt_msg->access_code, access_code_rsp_msg->access_code, 0x08);
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_link_req_to_mc
Description:
Input:
Output: None
Return: None
Others: None
Histrory: 2006-08-14,yuste,Created
*************************************************************************/
int inet_send_link_req_to_mc(struct INET_MC_LINK_REQ_t *link_req)
{
UBYTE** shdl;
struct INET_MSG* sptr;
INT8U *pmsg;
INT8U index;
shdl = GetMem(sizeof(struct INET_MC_LINK_REQ_t) + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
pmsg = *shdl;
sptr->stsk = INET_INET_TASK_ID;
sptr->rtsk = INET_MC_TASK_ID;
sptr->msgid = INET_MC_LINK_REQ;
sptr->len = 0x17;
index = INET_MSG_HEAD_LEN;
pmsg[index++] = link_req->action;
pmsg[index++] = link_req->lineid;
pmsg[index++] = link_req->tone_type;
pmsg[index++] = link_req->codec_type;
pmsg[index++] = link_req->inband_dtmf_rcv;
pmsg[index++] = link_req->src_type;
memcpy(&pmsg[index], &link_req->src_address, 0x04);
index += 4;
memcpy(&pmsg[index], &link_req->src_udp_port, 0x02);
index += 2;
memcpy(&pmsg[index], &link_req->src_local_udp_port, 0x02);
index += 2;
pmsg[index++] = link_req->tgt_type;
memcpy(&pmsg[index], &link_req->tgt_address, 0x04);
index += 4;
memcpy(&pmsg[index], &link_req->tgt_udp_port, 0x02);
index += 2;
memcpy(&pmsg[index], &link_req->tgt_local_udp_port, 0x02);
index += 2;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_link_req_to_mc
Description:
Input:
Output: None
Return: None
Others: None
Histrory: 2007-03-14,yuste,Created
*************************************************************************/
int inet_send_link_ta_insert_to_mc(struct INET_LINK_TA_INSERT_t *ta_insert)
{
UBYTE** shdl;
struct INET_MSG* sptr;
INT8U *pmsg;
INT8U index;
shdl = GetMem(sizeof(struct INET_LINK_TA_INSERT_t) + INET_MSG_HEAD_LEN);
sptr = (struct INET_MSG*)*shdl;
pmsg = *shdl;
sptr->stsk = INET_INET_TASK_ID;
sptr->rtsk = INET_MC_TASK_ID;
sptr->msgid = INET_MC_TA_INSERT_REQ;
sptr->len = 0x03;
index = INET_MSG_HEAD_LEN;
pmsg[index++] = ta_insert->action;
pmsg[index++] = ta_insert->lineid;
pmsg[index++] = ta_insert->ta_type;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_dtmf_req_to_mc
Description:
Input:
Output: None
Return: None
Others: None
Histrory: 2006-08-14,yuste,Created
*************************************************************************/
int inet_send_dtmf_req_to_mc(struct INET_MC_DTMF_SND_REQ_t *mc_dtmf_snd)
{
UBYTE** shdl;
struct INET_MSG* sptr;
struct INET_MC_DTMF_SND_REQ_t *target_msg;
shdl = GetMem(INET_DTMF_REQUEST_LEN);
sptr = (struct INET_MSG*)*shdl;
target_msg = (struct INET_MC_DTMF_SND_REQ_t*) (*shdl + INET_MSG_HEAD_LEN);
sptr->stsk = INET_INET_TASK_ID;
sptr->rtsk = INET_MC_TASK_ID;
sptr->msgid = INET_MC_DTMF_SND_REQ;
sptr->len = 0x02;
target_msg->lineid = mc_dtmf_snd->lineid;
target_msg->dtmf_len = mc_dtmf_snd->dtmf_len;
memcpy(target_msg->dtmf, mc_dtmf_snd->dtmf, target_msg->dtmf_len);
sptr->len += target_msg->dtmf_len;
inet_msg_dump((INT8U*) (* shdl));
SndMsg(sptr->rtsk,shdl);
return OK;
}
/************************************************************************
Function: inet_send_line_disc_to_csc
Description: .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -