?? svinapdisp.cpp
字號:
switch(oc) //operate code
{
case 42: //激活業務過濾
indeffmt=procsequencetag(0x01);
//過濾掉的呼叫處理
indeffmt2=procsequencetag(0x03);
////SF帳單計費特性
indeffmt3=procsequencetag(0x05);
//////“SF帳單計費特性”選擇“無IN計費”“IN計費”“發送計費信息”
if((*recbuf&0x3f)==0) procNULL(0x07); //選擇“無IN計費”
else if((*recbuf&0x3f)==0x21) //選擇“IN計費”
{indeffmt4=procsequencetag(0x09); //IN計費 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x0b); //計費模式
if((*recbuf&0x3f)==2) procINAPADDR(0x0e); //目標地址號碼
if((*recbuf&0x3f)==3) procsbasicpara(0x12); //計費用戶標識指示
if((*recbuf&0x3f)==4) procINAPCHGADDR(0x15); //規定的計費號碼
if((*recbuf&0x3f)==0x25) ProcAdditionalCharg(0x19); //附加費
if((*recbuf&0x3f)==6) procsbasicpara(0x21); //計費類型
if((*recbuf&0x3f)==0x27) ProcAdjustRate(0x24); //計費調整率
if((*recbuf&0x3f)==8) procsbasicpara(0x2c); //開始計費方式(枚舉)
if((*recbuf&0x3f)==9) procsbasicpara(0x2f); //詳細帳單記錄類型
if((*recbuf&0x3f)==10) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==11) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==12) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==13) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==14) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==15) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==16) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==17) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==18) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==19) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==20) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==21) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==22) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==23) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==24) procsbasicpara(0x32); //透明參數
if((*recbuf&0x3f)==25) procsbasicpara(0x32); //透明參數
if(indeffmt4!=0) {recbuf+=2;UDTlen-=2;}
}//選擇“IN計費”
else if((*recbuf&0x3f)==0x22) //選擇“發送計費信息”
{
}//選擇“發送計費信息”
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
////“要發送的信息”
if((*recbuf&0x3f)==0x21) ProcSendingInfo(0x35,0xa7);
////“最大計數器個數”
if((*recbuf&0x3f)==2) procsbasicpara(0x6a);
////“釋放原因”
if((*recbuf&0x3f)==3) procCase(0x6d);
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“過濾特性”選擇“間隙間隔”“呼叫次數”
indeffmt2=procsequencetag(0x70); //過濾特性 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x72); //間隙間隔
else if((*recbuf&0x3f)==1) procsbasicpara(0x75); //呼叫次數
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“過濾迂限”選擇“持續時間”“結束時間”
indeffmt2=procsequencetag(0x78); //過濾迂限 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x64); //持續時間
else if((*recbuf&0x3f)==1) procsbasicpara(0x7a); //結束時間
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“過濾標準”選擇“所撥數字”“主叫用戶線”“業務鍵”“地址和業務”
indeffmt2=procsequencetag(0x7d); //過濾標準 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x7f); //所撥數字
else if((*recbuf&0x3f)==1) procINAPADDR(0x82); //主叫用戶線
else if((*recbuf&0x3f)==2) procsbasicpara(0x86); //業務鍵
else if((*recbuf&0x3f)==0x3e)//地址和業務
{indeffmt3=procsequencetag(0x89); //地址和業務 sequence
procINAPADDR(0x8b); //被叫地址值
procsbasicpara(0x86); //業務鍵
if((*recbuf&0x3f)==2) procINAPADDR(0x8f); //主叫地址值
if((*recbuf&0x3f)==3) procINAPADDR(0x93); //位置號碼
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//地址和業務
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//開始時間
if((*recbuf&0x3f)==4) procsbasicpara(0x97); //所撥數字
//擴展
if((*recbuf&0x3f)==0x25) ProcExpand(0x9a);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 35: //申請計費:35
indeffmt=procsequencetag(0x01);
//ACH帳單計費特性
indeffmt2=procsequencetag(0x03); //ACH帳單計費特性 sequence
////計費模式
if((*recbuf&0x3f)==0) procsbasicpara(0x05);
////計費記錄標識
if((*recbuf&0x3f)==1) procsbasicpara(0x08);
////計費動作(枚舉)
if((*recbuf&0x3f)==2) procsbasicpara(0x0b);
////計費部分(枚舉)
if((*recbuf&0x3f)==4) procsbasicpara(0x0e);
////計費記錄處理
if((*recbuf&0x3f)==5) procsbasicpara(0x11);
////主叫用戶號碼
if((*recbuf&0x3f)==6) procINAPADDR(0x14);
////被叫用戶號碼
if((*recbuf&0x3f)==7) procINAPADDR(0x18);
////目標地址號碼
if((*recbuf&0x3f)==8) procINAPADDR(0x1c);
////位置號碼
if((*recbuf&0x3f)==9) procINAPADDR(0x20);
////計費記錄標識指示
if((*recbuf&0x3f)==10) procsbasicpara(0x24);
////規定的計費號碼
if((*recbuf&0x3f)==11) procINAPCHGADDR(0x27);
////附加費
if((*recbuf&0x3f)==0x2c) ProcAdditionalCharg(0x2b); //附加費
////計費類別
if((*recbuf&0x3f)==13) procsbasicpara(0x33);
////計費調整率
if((*recbuf&0x3f)==0x2e) ProcAdjustRate(0x36); //計費調整率
////開始計費方式(枚舉)
if((*recbuf&0x3f)==15) procsbasicpara(0x3e);
////停止計費方式(枚舉)
if((*recbuf&0x3f)==16) procsbasicpara(0x41);
////詳細帳單計費記錄類型
if((*recbuf&0x3f)==17) procsbasicpara(0x44);
////是否發送計費信息(枚舉)
if((*recbuf&0x3f)==18) procsbasicpara(0x47);
////透明參數
if((*recbuf&0x3f)==19) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==20) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==21) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==22) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==23) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==24) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==25) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==26) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==27) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==28) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==29) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==30) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==31) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==32) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==33) procsbasicpara(0x4a); //透明參數
if((*recbuf&0x3f)==34) procsbasicpara(0x4a); //透明參數
////呼叫監視
if((*recbuf&0x3f)==35)//呼叫監視
{indeffmt3=procsequencetag(0x4d); //呼叫監視 sequence
if((*recbuf&0x3f)==0x21)//監視方式
{indeffmt4=procsequencetag(0x4f);//監視方式 sequence
if((*recbuf&0x3f)==1) procsbasicpara(0x51); //選擇費用
else if((*recbuf&0x3f)==2) procsbasicpara(0x54); //選擇時間
if(indeffmt4!=0) {recbuf+=2;UDTlen-=2;}
}//監視方式
if((*recbuf&0x3f)==0x22)//到達前告警
{indeffmt4=procsequencetag(0x57);//到達前告警 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x59); //提前告警時間
if((*recbuf&0x3f)==0x21) ProcSendingInfo(0x5c,0xad); //告警指示:“要發送的信息”
if(indeffmt4!=0) {recbuf+=2;UDTlen-=2;}
}//到達前告警
if((*recbuf&0x3f)==3) procCase(0x8f); //強制釋放原因
if((*recbuf&0x3f)==4) procsbasicpara(0x92); //報告時間間隔
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//呼叫監視
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“發送結果給SCP”(BOOL)
if((*recbuf&0x3f)==1) procsbasicpara(0x95);
//計費方式”選擇“發方”“收方”
if((*recbuf&0x3f)==2)
{indeffmt2=procsequencetag(0x98);
if((*recbuf&0x3f)==0) procsbasicpara(0x9a); //選擇“發方”
else if((*recbuf&0x3f)==1) procsbasicpara(0x9d); //選擇“收方”
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}
//“擴展”
if((*recbuf&0x3f)==0x23) ProcExpand(0xa0);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 36: //申請計費報告:36
indeffmt=procsequencetag(0x01);
//業務鍵
if((*recbuf&0x3f)==0) procsbasicpara(0x03);
//計費模式
if((*recbuf&0x3f)==1) procsbasicpara(0x06);
//計費記錄標識
if((*recbuf&0x3f)==5) procsbasicpara(0x09);
//計費用戶標識指示
if((*recbuf&0x3f)==7) procsbasicpara(0x0c);
//規定的計費號碼
if((*recbuf&0x3f)==8) procINAPCHGADDR(0x0F);
//主叫用戶號碼
if((*recbuf&0x3f)==9) procINAPADDR(0x13);
//被叫用戶號碼
if((*recbuf&0x3f)==10) procINAPADDR(0x17);
//目標地址號碼
if((*recbuf&0x3f)==11) procINAPADDR(0x1b);
//位置號碼
if((*recbuf&0x3f)==12) procINAPADDR(0x1f);
//開始日期和時間
if((*recbuf&0x3f)==13) procsbasicpara(0x23);
//結束日期和時間
if((*recbuf&0x3f)==14) procsbasicpara(0x26);
//持續時間
if((*recbuf&0x3f)==15) procsbasicpara(0x29);
//呼叫費用
if((*recbuf&0x3f)==16) procsbasicpara(0x2c);
//“承載能力”選擇“承載能力1”“傳輸媒介要求”
if((*recbuf&0x3f)==0x31)//承載能力
{indeffmt2=procsequencetag(0x2f);
if((*recbuf&0x3f)==0) procsbasicpara(0x31); //承載能力1
else if((*recbuf&0x3f)==1) procsbasicpara(0x34); //傳輸媒介要求
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//承載能力
//計費類別
if((*recbuf&0x3f)==18) procsbasicpara(0x37);
//報告原因(枚舉)
if((*recbuf&0x3f)==19) procsbasicpara(0x3a);
//時間標記
if((*recbuf&0x3f)==20) procsbasicpara(0x3d);
//監視結果
if((*recbuf&0x3f)==0x35)//監視結果
{indeffmt2=procsequencetag(0x40); //監視結果 sequence
////“監視方式”選擇“所用費用”“所用時間”
if((*recbuf&0x3f)==0) procsbasicpara(0x44); //所用費用
else if((*recbuf&0x3f)==1) procsbasicpara(0x47); //所用時間
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//監視結果
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 16: //輔助請求指令:16
indeffmt=procsequencetag(0x01);
//相關ID
procsbasicpara(0x03);
//IP可用性
if((*recbuf&0x3f)==1) procsbasicpara(0x06);
//IPSSP能力
if((*recbuf&0x3f)==2) procsbasicpara(0x09);
//“擴展”
if((*recbuf&0x3f)==0x23) ProcExpand(0x0c);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 41: //呼叫間隙:41
indeffmt=procsequencetag(0x01);
//“間隙標準”選擇“被叫地址值”“根據業務間隙”“被叫地址和業務”“主叫地址和業務”
indeffmt2=procsequencetag(0x03);
if((*recbuf&0x3f)==0) procINAPADDR(0x05); //選擇“被叫地址值”
else if((*recbuf&0x3f)==0x22) //“根據業務間隙”
{indeffmt3=procsequencetag(0x09); //根據業務間隙 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x0b); //業務鍵
if((*recbuf&0x3f)==1) procsbasicpara(0x0e); //DP標準(枚舉)
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//“根據業務間隙”
else if((*recbuf&0x3f)==0x3d)//“被叫地址和業務”:29
{indeffmt3=procsequencetag(0x11); //被叫地址和業務 sequence
if((*recbuf&0x3f)==0) procINAPADDR(0x05); //選擇“被叫地址值”
if((*recbuf&0x3f)==1) procsbasicpara(0x0b); //業務鍵
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//“被叫地址和業務”
else if((*recbuf&0x3f)==0x3e)//“主叫地址和業務”:30
{indeffmt3=procsequencetag(0x11); //主叫地址和業務 sequence
if((*recbuf&0x3f)==0) procINAPADDR(0x15); //主叫地址值
if((*recbuf&0x3f)==1) procsbasicpara(0x0b); //業務鍵
if((*recbuf&0x3f)==2) procINAPADDR(0x19); //位置號碼
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//“主叫地址和業務”
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“間隙指示”
if((*recbuf&0x3f)==0x21)
{indeffmt2=procsequencetag(0x1d); //間隙指示 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x1f); //持續時間
if((*recbuf&0x3f)==1) procsbasicpara(0x22); //間隙間隔
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}
//“控制類型(枚舉)”
if((*recbuf&0x3f)==2) procsbasicpara(0x25); //控制類型(枚舉)
//“間隙處理”選擇“要發送的信息”“釋放愿因”“都要”
if((*recbuf&0x3f)==0x23)//間隙處理
{indeffmt2=procsequencetag(0x1d); //間隙處理 sequence
if((*recbuf&0x3f)==0x20) ProcSendingInfo(0x2a,0x71); //要發送的信息
else if((*recbuf&0x3f)==1) procsbasicpara(0x5f);//釋放愿因
else if((*recbuf&0x3f)==0x22)//“要發送的信息”“釋放愿因”都要
{indeffmt3=procsequencetag(0x62);
if((*recbuf&0x3f)==0x20) ProcSendingInfo(0x2a,0x71); //要發送的信息
if((*recbuf&0x3f)==1) procsbasicpara(0x5f); //釋放愿因
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//“要發送的信息”“釋放愿因”都要
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//間隙處理
//“擴展”
if((*recbuf&0x3f)==0x24) ProcExpand(0x64);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 44: //呼叫信息報告:44
indeffmt=procsequencetag(0x01);
//所請求的信息清單
indeffmt2=procsequencetag(0x03); //所請求的信息清單 sequence
////所請求的信息
while(*recbuf==0x30)//所請求的信息
{indeffmt3=procsequencetag(0x05); //所請求的信息 sequence
procsbasicpara(0x07); //所請求的信息類型(枚舉)
//“所請求的信息值”:以下5項選擇其一
indeffmt3+=procsequencetag(0x0a); //所請求的信息值 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x0c); //呼叫歷時時間值
else if((*recbuf&0x3f)==1) procsbasicpara(0x0f); //呼叫停止時間
else if((*recbuf&0x3f)==2) procsbasicpara(0x12); //呼叫連接歷時時間
else if((*recbuf&0x3f)==3) procINAPADDR(0x15); //被叫地址值
else if((*recbuf&0x3f)==4) procsbasicpara(0x09); //釋放愿因值
else
{
procmoredatadisp(UDTlen); //add by 2000.06.14
UDTlen = 0;
return;
}
if(indeffmt3!=0) {recbuf+=2*indeffmt3;UDTlen-=2*indeffmt3;}
}//所請求的信息
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“相關ID”
if((*recbuf&0x3f)==1) procsbasicpara(0x1c); //相關ID
//“擴展”
if((*recbuf&0x3f)==0x24) ProcExpand(0x1f);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 45: //呼叫信息請求:45
indeffmt=procsequencetag(0x01);
//所請求的信息類型清單
indeffmt2=procsequencetag(0x03); //所請求的信息類型清單 sequence
////所請求的信息類型
while(*recbuf==0x30)//所請求的信息類型
procsbasicpara(0x05); //所請求的信息類型(枚舉)
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“相關ID”
if((*recbuf&0x3f)==1) procsbasicpara(0x08); //相關ID
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -