📄 isup.cpp.bak
字号:
//通知表示语
void CIsup::create_notifyID_Table()
{ int i;
for(i=0; i<128; i++)
{ strcpy(m_notifyID_Table[i], "备用"); }
strcpy(m_notifyID_Table[0x00], "用户暂停");
strcpy(m_notifyID_Table[0x01], "用户恢复");
strcpy(m_notifyID_Table[0x02], "承载业务改变");
strcpy(m_notifyID_Table[0x03], "扩充到ASN.1编码的识别符");
strcpy(m_notifyID_Table[0x04], "呼叫完成延时");
strcpy(m_notifyID_Table[0x42], "会议建立");
strcpy(m_notifyID_Table[0x43], "会议断开");
strcpy(m_notifyID_Table[0x44], "增加他方");
strcpy(m_notifyID_Table[0x45], "隔离");
strcpy(m_notifyID_Table[0x46], "重新连接");
strcpy(m_notifyID_Table[0x48], "他方隔离");
strcpy(m_notifyID_Table[0x49], "他方分离");
strcpy(m_notifyID_Table[0x4a], "他方断开");
strcpy(m_notifyID_Table[0x4b], "会议浮动");
strcpy(m_notifyID_Table[0x60], "呼叫是一个等待呼叫");
strcpy(m_notifyID_Table[0x68], "变更已激活,(在DSS1中使用)");
strcpy(m_notifyID_Table[0x69], "呼叫变换,提示");
strcpy(m_notifyID_Table[0x6a], "呼叫变换,执行");
strcpy(m_notifyID_Table[0x79], "远端保持");
strcpy(m_notifyID_Table[0x7a], "远端恢复");
strcpy(m_notifyID_Table[0x7b], "呼叫正在变更");
}
void CIsup::create_preLevel_Table()
{ int i;
strcpy(m_preLevel_Table[0x00], "最优先");
strcpy(m_preLevel_Table[0x01], "特急");
strcpy(m_preLevel_Table[0x02], "立即");
strcpy(m_preLevel_Table[0x03], "优先");
strcpy(m_preLevel_Table[0x04], "常规");
for(i=0x05; i<=0x0F; i++)
{ strcpy(m_preLevel_Table[i], "备用"); }
}
void CIsup::create_LFB_Table()
{ strcpy(m_LFB_Table[0x00], "LFB允许");
strcpy(m_LFB_Table[0x01], "通道保留");
strcpy(m_LFB_Table[0x02], "LFB不允许");
strcpy(m_LFB_Table[0x03], "备用");
}
//计费表示语
void CIsup::create_backwardCallID_BA_Table()
{ strcpy(m_backwardCallID_BA_Table[0x00], "无指示");
strcpy(m_backwardCallID_BA_Table[0x01], "不计费");
strcpy(m_backwardCallID_BA_Table[0x02], "计费");
strcpy(m_backwardCallID_BA_Table[0x03], "备用");
}
//被叫用户状态表示语
void CIsup::create_backwardCallID_DC_Table()
{ strcpy(m_backwardCallID_DC_Table[0x00], "无指示");
strcpy(m_backwardCallID_DC_Table[0x01], "用户空");
strcpy(m_backwardCallID_DC_Table[0x02], "空时连接");
strcpy(m_backwardCallID_DC_Table[0x03], "备用");
}
//被叫用户类别表示语
void CIsup::create_backwardCallID_FE_Table()
{ strcpy(m_backwardCallID_FE_Table[0x00], "无指示");
strcpy(m_backwardCallID_FE_Table[0x01], "普通用户");
strcpy(m_backwardCallID_FE_Table[0x02], "付费电话");
strcpy(m_backwardCallID_FE_Table[0x03], "备用");
}
//位置
void CIsup::create_locationID_Table()
{ int i;
for(i=0; i<16; i++)
{ strcpy(m_locationID_Table[i], "备用"); }
strcpy(m_locationID_Table[0x00], "用户");
strcpy(m_locationID_Table[0x01], "为本地用户服务的专用网");
strcpy(m_locationID_Table[0x02], "为本地用户服务的公用网");
strcpy(m_locationID_Table[0x03], "转接网");
strcpy(m_locationID_Table[0x04], "为远端用户服务的公用网");
strcpy(m_locationID_Table[0x05], "为远端用户服务的专用网");
strcpy(m_locationID_Table[0x06], "国际网");
strcpy(m_locationID_Table[0x07], "超出互通点的范围");
}
//编码标准2
void CIsup::create_codeStd2ID_Table()
{
strcpy(m_codeStd2ID_Table[0x00], "CCITT标准编码");
strcpy(m_codeStd2ID_Table[0x01], "ISO/IEC标准");
strcpy(m_codeStd2ID_Table[0x02], "国内标准");
strcpy(m_codeStd2ID_Table[0x03], "专用于所识别的位置的标准");
}
//原因值
void CIsup::create_causeVal_Table()
{ int i;
for(i=0; i<128; i++)
{ strcpy(m_causeVal_Table[i], "未指定"); }
//000, 001 :一般事件类
strcpy(m_causeVal_Table[0x01], "未分配的号码");
strcpy(m_causeVal_Table[0x02], "无路由到指定的转接网");
strcpy(m_causeVal_Table[0x03], "无路由到目的地");
strcpy(m_causeVal_Table[0x04], "发送专用信息音");
strcpy(m_causeVal_Table[0x05], "误拨长途字冠");
strcpy(m_causeVal_Table[0x08], "预占");
strcpy(m_causeVal_Table[0x09], "强占--电路留作再用");
strcpy(m_causeVal_Table[0x10], "正常的呼叫拆线");
strcpy(m_causeVal_Table[0x11], "用户忙");
strcpy(m_causeVal_Table[0x12], "用户未响应");
strcpy(m_causeVal_Table[0x13], "用户未应答");
strcpy(m_causeVal_Table[0x14], "用户缺席");
strcpy(m_causeVal_Table[0x15], "呼叫拒收");
strcpy(m_causeVal_Table[0x16], "号码改变");
strcpy(m_causeVal_Table[0x1b], "目的地不可达");
strcpy(m_causeVal_Table[0x1c], "无效的号码格式(地址不全)");
strcpy(m_causeVal_Table[0x1d], "性能拒绝");
strcpy(m_causeVal_Table[0x1f], "正常--未指定");
//010 :资源不可用类
strcpy(m_causeVal_Table[0x22], "无电路/通路可用");
strcpy(m_causeVal_Table[0x26], "网络未正常工作");
strcpy(m_causeVal_Table[0x29], "临时故障");
strcpy(m_causeVal_Table[0x2a], "交换设备拥塞");
strcpy(m_causeVal_Table[0x2b], "接入信息舍弃");
strcpy(m_causeVal_Table[0x2c], "所请求的电路/通路不可用");
strcpy(m_causeVal_Table[0x2e], "优先呼叫闭塞");
strcpy(m_causeVal_Table[0x2f], "资源不可用--未指定");
//011 : 业务或任选不可用类
strcpy(m_causeVal_Table[0x33], "所请求的性能未预订");
strcpy(m_causeVal_Table[0x34], "CUG中限制去呼叫");
strcpy(m_causeVal_Table[0x37], "CUG中限制来呼叫");
strcpy(m_causeVal_Table[0x39], "承载能力无权");
strcpy(m_causeVal_Table[0x3a], "承载能力目前不可用");
strcpy(m_causeVal_Table[0x3e], "指定的出接入信息和用户类别不一致");
strcpy(m_causeVal_Table[0x3f], "业务/任选不可用--未指定");
//100 : 业务或任选未实现类
strcpy(m_causeVal_Table[0x41], "承载能力未实现类");
strcpy(m_causeVal_Table[0x45], "所请求的性能未实现");
strcpy(m_causeVal_Table[0x46], "只有受限的数字信息承载能力可用");
strcpy(m_causeVal_Table[0x4F], "业务或任选未实现--未指定");
//101 : 无效的消息类(例如参数超出范围)
strcpy(m_causeVal_Table[0x57], "被叫用户不是CUG的成员");
strcpy(m_causeVal_Table[0x58], "不兼容的目的地");
strcpy(m_causeVal_Table[0x5a], "不存在的CUG");
strcpy(m_causeVal_Table[0x5b], "无效的转接网选择");
strcpy(m_causeVal_Table[0x5f], "无效的消息,未指定");
//110 : 协议错误类(例如未知的消息)
strcpy(m_causeVal_Table[0x61], "消息类型不存在或未实现");
strcpy(m_causeVal_Table[0x63], "参数不存在或未实现");
strcpy(m_causeVal_Table[0x65], "定时器终了时恢复");
strcpy(m_causeVal_Table[0x66], "参数不存在或未实现--传递");
strcpy(m_causeVal_Table[0x6e], "消息带有未被识别的参数--舍弃");
strcpy(m_causeVal_Table[0x6f], "协议错误,未指定");
//111 : 互通类
strcpy(m_causeVal_Table[0x7f], "互通,未指定");
}
//去话半回声控制装置响应表示语
void CIsup::create_echoCtrInfID_BA_Table()
{ strcpy(m_echoCtrInfID_BA_Table[0x00], "无信息");
strcpy(m_echoCtrInfID_BA_Table[0x01], "未包括去话半回声控制装置");
strcpy(m_echoCtrInfID_BA_Table[0x02], "包括去话半回声控制装置");
strcpy(m_echoCtrInfID_BA_Table[0x03], "备用");
}
//来话半回声控制装置响应表示语
void CIsup::create_echoCtrInfID_DC_Table()
{ strcpy(m_echoCtrInfID_DC_Table[0x00], "无信息");
strcpy(m_echoCtrInfID_DC_Table[0x01], "未包括来话半回声控制装置");
strcpy(m_echoCtrInfID_DC_Table[0x02], "包括来话半回声控制装置");
strcpy(m_echoCtrInfID_DC_Table[0x03], "备用");
}
//去话半回声控制装置请求表示语
void CIsup::create_echoCtrInfID_FE_Table()
{ strcpy(m_echoCtrInfID_FE_Table[0x00], "无信息");
strcpy(m_echoCtrInfID_FE_Table[0x01], "去话半回声控制装置激活请求");
strcpy(m_echoCtrInfID_FE_Table[0x02], "去话半回声控制装置去活请求");
strcpy(m_echoCtrInfID_FE_Table[0x03], "备用");
}
//来话半回声控制装置请求表示语
void CIsup::create_echoCtrInfID_HG_Table()
{ strcpy(m_echoCtrInfID_HG_Table[0x00], "无信息");
strcpy(m_echoCtrInfID_HG_Table[0x01], "来话半回声控制装置激活请求");
strcpy(m_echoCtrInfID_HG_Table[0x02], "来话半回声控制装置去活请求");
strcpy(m_echoCtrInfID_HG_Table[0x03], "备用");
}
//通知预定任选
void CIsup::create_notifySubOpt_Table()
{
int i;
for(i=0; i<8; i++)
{ strcpy(m_notifySubOpt_Table[i], "备用"); }
strcpy(m_notifySubOpt_Table[0x00], "不知道");
strcpy(m_notifySubOpt_Table[0x01], "提供不允许");
strcpy(m_notifySubOpt_Table[0x02], "提供允许,带有改发号码");
strcpy(m_notifySubOpt_Table[0x03], "提供允许,不带有改发号码");
}
//改发原因
void CIsup::create_redirReason_Table()
{ int i;
for(i=0; i<16; i++)
{ strcpy(m_redirReason_Table[i], "备用"); }
strcpy(m_redirReason_Table[0x00], "不知道");
strcpy(m_redirReason_Table[0x01], "用户忙");
strcpy(m_redirReason_Table[0x02], "无应答");
strcpy(m_redirReason_Table[0x03], "无条件");
strcpy(m_redirReason_Table[0x04], "在提示期间转向");
strcpy(m_redirReason_Table[0x05], "转向立即响应");
strcpy(m_redirReason_Table[0x06], "移动用户不可达");
}
//提供限制表示语
void CIsup::create_presentRestrict_Table()
{
strcpy(m_presentRestrict_Table[0x00], "提供允许");
strcpy(m_presentRestrict_Table[0x01], "提供限制");
strcpy(m_presentRestrict_Table[0x02], "备用");
strcpy(m_presentRestrict_Table[0x03], "备用");
}
//事件表示语
void CIsup::create_eventID_Table()
{ int i;
for(i=0; i<128; i++)
{ strcpy(m_eventID_Table[i], "备用"); }
strcpy(m_eventID_Table[0x01], "提示");
strcpy(m_eventID_Table[0x02], "进展");
strcpy(m_eventID_Table[0x03], "带内信息或适当的码型现在可用");
strcpy(m_eventID_Table[0x04], "遇忙呼叫前向转移");
strcpy(m_eventID_Table[0x05], "无应答呼叫前向转移");
strcpy(m_eventID_Table[0x06], "无条件呼叫前向转移");
}
//自动拥塞级
void CIsup::create_autoCongestLevel_Table()
{ int i;
for(i=0; i<256; i++)
{ strcpy(m_autoCongestLevel_Table[i], "备用"); }
strcpy(m_autoCongestLevel_Table[0x01], "超过拥塞级1");
strcpy(m_autoCongestLevel_Table[0x02], "超过拥塞级2");
}
//主叫用户地址响应表示语
void CIsup::create_informID_BA_Table()
{ strcpy(m_informID_BA_Table[0x00], "未包括主叫用户地址");
strcpy(m_informID_BA_Table[0x01], "主叫用户地址不可用");
strcpy(m_informID_BA_Table[0x02], "备用");
strcpy(m_informID_BA_Table[0x03], "包括主叫用户地址");
}
//////////////////////////////////////////////////////////
char *CIsup::getH1h0FromTable(BYTE u_index, char *v_pH1h0)
{
if(u_index >= 0x80)
{
sprintf(v_pH1h0, "Reserved for future extension");
}
else if(u_index >= 0x40)
{
sprintf(v_pH1h0, "Loop prevention");
}
else
{
sprintf(v_pH1h0, "%s", m_h1h0Table[u_index]);
}
return v_pH1h0;
}
BOOL CIsup::GetH1H0(BYTE *u_pMsg, DWORD u_msgLength, char *v_pH1H0)
{
sprintf(v_pH1H0, "%02X", u_pMsg[SS7_ISUP_H1H0_OFFSET]);
return TRUE;
}
BOOL CIsup::GetSls(BYTE *u_pMsg, DWORD u_msgLength, char *v_pSls)
{
sprintf(v_pSls, "%X", u_pMsg[SS7_ISUP_SLS_OFFSET] & SS7_ISUP_SLS_MASK);
return TRUE;
}
BOOL CIsup::GetCic(BYTE *u_pMsg, DWORD u_msgLength, char *v_pCic)
{
sprintf(v_pCic, "%X%02X", u_pMsg[SS7_ISUP_CIC_OFFSET + 1] & 0x0F, \
u_pMsg[SS7_ISUP_CIC_OFFSET]);
return TRUE;
}
BOOL CIsup::GetData(BYTE *u_pMsg, DWORD u_msgLength, char *v_pData)
{
extern CDecodeApp theApp;
int dataLength;
int i, temp;
temp = SS7_ISUP_DATA_OFFSET + MAX_DATA_BYTE_NUMBER - 1;
if(temp > ((int )u_msgLength))
{
dataLength = u_msgLength - SS7_ISUP_DATA_OFFSET;
}
else
{
dataLength = MAX_DATA_BYTE_NUMBER;
}
temp = 0;
for(i=0; i<dataLength; i++)
{
theApp.ConvertOneByte(u_pMsg[SS7_ISUP_DATA_OFFSET + i], \
&v_pData[temp]);
temp += 3;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -