?? svinapdisp.cpp
字號:
//“擴展”
if((*recbuf&0x3f)==0x2f) ProcExpand(0x3b);
//觸發類型(枚舉)
if((*recbuf&0x3f)==16) procsbasicpara(0x48);
//高層一致性
if((*recbuf&0x3f)==23) procsbasicpara(0x4b);
//業務相互作用表示語
if((*recbuf&0x3f)==24) procsbasicpara(0x4e);
//附加主叫用戶號碼
if((*recbuf&0x3f)==25) procINAPADDR(0x51);
//前向呼叫指示
if((*recbuf&0x3f)==26) procsbasicpara(0x55);
//“承載能力”選擇“承載能力1”“傳輸媒介要求”
if((*recbuf&0x3f)==0x3b)//承載能力:27
{indeffmt2=procsequencetag(0x58);//承載能力 sequence
if((*recbuf&0x1f)==0) procsbasicpara(0x5a); //承載能力1
else if((*recbuf&0x1f)==1) procsbasicpara(0x5d); //傳輸媒介要求
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//承載能力
//BCSM事件類型(枚舉)
if((*recbuf&0x3f)==28) procsbasicpara(0x60);
//改向用戶ID
if((*recbuf&0x3f)==29) procINAPADDR(0x63);
//改向信息
if((*recbuf&0x3f)==30) procsbasicpara(0x67);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 32: //啟動試呼:32
indeffmt=procsequencetag(0x01); //sequence
//目的地路由地址
indeffmt2=procsequencetag(0x03); //目的地路由地址 sequence
while((*recbuf&0x3f)==0x04) procINAPADDR(0x05); //被叫用戶號碼
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//振鈴模式
if((*recbuf&0x3f)==1) procsbasicpara(0x09);
//與ISDN接入相關的信息
if((*recbuf&0x3f)==2) procsbasicpara(0x0c);
//跨越標志
if((*recbuf&0x3f)==3) procsbasicpara(0x0f);
//“擴展”
if((*recbuf&0x3f)==0x24) ProcExpand(0x13);
//業務相互作用表示語
if((*recbuf&0x3f)==29) procsbasicpara(0x20);
//主叫用戶號碼
if((*recbuf&0x3f)==30) procINAPADDR(0x23);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 47: //播送通知:47
indeffmt=procsequencetag(0x01); //sequence
//要發送的信息
if((*recbuf&0x3f)==0x20) ProcSendingInfo(0x03,0x4b); //要發送的信息
//禁止由IP啟動拆線(BOOL)
if((*recbuf&0x3f)==0x01) procsbasicpara(0x38);
//請求通知完成(BOOL)
if((*recbuf&0x3f)==0x02) procsbasicpara(0x3b);
//“擴展”
if((*recbuf&0x3f)==0x23) ProcExpand(0x3e);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 48: //提示并收集用戶信息:48
if(compt==1)//operate
{indeffmt=procsequencetag(0x01); //sequence
//收集的信息選擇“收集的數字”“IA5信息”
indeffmt2=procsequencetag(0x03); //收集的信息 sequence
if((*recbuf&0x3f)==0x20)//收集的數字
{indeffmt3=procsequencetag(0x05); //收集的數字 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x07); //最小數字個數
if((*recbuf&0x3f)==1) procsbasicpara(0x0a); //最大數字個數
if((*recbuf&0x3f)==2) procsbasicpara(0x0d); //應答結束數字
if((*recbuf&0x3f)==3) procsbasicpara(0x10); //取消數字
if((*recbuf&0x3f)==4) procsbasicpara(0x13); //開始數字
if((*recbuf&0x3f)==5) procsbasicpara(0x16); //首位超時
if((*recbuf&0x3f)==6) procsbasicpara(0x19); //位間超時
if((*recbuf&0x3f)==7) procsbasicpara(0x1c); //差錯處理(枚舉)
if((*recbuf&0x3f)==8) procsbasicpara(0x1f); //中斷通知表示語(BOOL)
if((*recbuf&0x3f)==9) procsbasicpara(0x22); //語音信息(BOOL)
if((*recbuf&0x3f)==10) procsbasicpara(0x25); //語音反饋(BOOL)
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//收集的數字
else if((*recbuf&0x3f)==1) procsbasicpara(0x28); //IA5信息(BOOL)
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//禁止由IP啟動拆線(BOOL)
procsbasicpara(0x2b);
//要發送的信息
if((*recbuf&0x3f)==0x22) ProcSendingInfo(0x2e,0x76);
//“擴展”
if((*recbuf&0x3f)==0x23) ProcExpand(0x63);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
}//operate
else//result
{if((*recbuf&0x3f)==0) procsbasicpara(0x70); //數字響應
else if((*recbuf&0x3f)==1) procsbasicpara(0x73); //IA5響應
}//result
break;
case 22: //釋放呼叫:22
procCase(0x01);
break;
case 37: //請求報告當前狀態:37
if(compt==1)//operate
{if((*recbuf&0x3f)==0) procsbasicpara(0x01); //選擇"用戶線ID"
else if((*recbuf&0x3f)==0x21) procResourceID(0x04); //選擇"資源ID"
}//operate
else//result
{indeffmt=procsequencetag(0x1a); //sequence
//資源狀態
if((*recbuf&0x3f)==0) procsbasicpara(0x1c);
//資源ID
if((*recbuf&0x3f)==0x21) procResourceID(0x04);//"資源ID"
//“擴展”
if((*recbuf&0x3f)==0x22) ProcExpand(0x1f);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
}//result
break;
case 38: //請求報告每一狀態變化:38
indeffmt=procsequencetag(0x1a); //sequence
//資源ID
procResourceID(0x03);
//資源狀態
if((*recbuf&0x3f)==1) procsbasicpara(0x17);
//相關ID
if((*recbuf&0x3f)==2) procsbasicpara(0x1a);
//監視持續時間
if((*recbuf&0x3f)==3) procsbasicpara(0x1d);
//“擴展”
if((*recbuf&0x3f)==0x24) ProcExpand(0x20);
//“承載能力”選擇“承載能力1”“傳輸媒介要求”
if((*recbuf&0x3f)==0x25)//承載能力
{indeffmt2=procsequencetag(0x2d);
if((*recbuf&0x3f)==0) procsbasicpara(0x2f); //承載能力1
else if((*recbuf&0x3f)==1) procsbasicpara(0x32); //傳輸媒介要求
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//承載能力
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 25: //請求通知計費事件:25
indeffmt=procsequencetag(0x01); //sequence
while(*recbuf==0x30) //計費事件,P57
{len = UDTlen;
indeffmt2=procsequencetag(0x03); //計費事件 sequence
//計費事件類型
procsbasicpara(0x05);
//監視方式(枚舉)
procsbasicpara(0x08);
//LEGID
if((*recbuf&0x3f)==0x22) procLegID(0x0b);
if(len <= UDTlen)
{
procmoredatadisp(UDTlen); //add by 2000.06.14
UDTlen = 0;
return;
}
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//計費事件
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 23: //請求報告BCSM事件:23
indeffmt=procsequencetag(0x01); //sequence
//BCSM事件組
indeffmt2=procsequencetag(0x03); //BCSM事件組 sequence
while(*recbuf==0x30)//BCSM事件
{len = UDTlen;
indeffmt3=procsequencetag(0x05); //BCSM事件 sequence
procsbasicpara(0x07); //BCSM事件類型(枚舉)
procsbasicpara(0x0a); //監視方式(枚舉)
if((*recbuf&0x3f)==0x22) procLegID(0x0d); //LEGID
if((*recbuf&0x3f)==0x3e)//DP規定準則:30
{indeffmt4=procsequencetag(0x15);//DP規定準則 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x17); //數字個數
else if((*recbuf&0x3f)==1) procsbasicpara(0x1a); //應用定時器
if(indeffmt4!=0) {recbuf+=2;UDTlen-=2;}
}//DP規定準則
if(len <= UDTlen)
{
procmoredatadisp(UDTlen); //add by 2000.06.14
UDTlen = 0;
return;
}
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//BCSM事件
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//BCSM事件相關ID
if((*recbuf&0x3f)==1) procsbasicpara(0x1d);
//“擴展”
if((*recbuf&0x3f)==0x22) ProcExpand(0x20);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 33: //重設定時器:33
indeffmt=procsequencetag(0x01); //sequence
//定時器ID(枚舉)
if((*recbuf&0x3f)==0) procsbasicpara(0x03);
//定時器值
if((*recbuf&0x3f)==1) procsbasicpara(0x06);
//“擴展”
if((*recbuf&0x3f)==0x22) ProcExpand(0x09);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 30: //選擇設備:30
indeffmt=procsequencetag(0x01); //sequence
//振鈴模式
if((*recbuf&0x3f)==0) procsbasicpara(0x03);
//目的地路由地址,P59
if((*recbuf&0x3f)==0x21)//目的地路由地址
{indeffmt2=procsequencetag(0x06);//目的地路由地址 sequence
while((*recbuf&0x3f)==0x04) procINAPADDR(0x08); //被叫用戶號碼
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//目的地路由地址
//與ISDN接入相關的信息
if((*recbuf&0x3f)==2) procsbasicpara(0x0c);
//被叫設備群
if((*recbuf&0x3f)==0x23)//被叫設備群
{indeffmt2=procsequencetag(0x0f);//被叫設備群 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x11); //中繼群ID
else if((*recbuf&0x3f)==1) procsbasicpara(0x14);//單個設備ID
else if((*recbuf&0x3f)==2) procsbasicpara(0x17);//搜索群
else if((*recbuf&0x3f)==3) procsbasicpara(0x1a);//路由索引
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//被叫設備群
//被叫設備群成員
if((*recbuf&0x3f)==4) procsbasicpara(0x1d);
//原被叫用戶ID
if((*recbuf&0x3f)==5) procINAPADDR(0x20);
//“擴展”
if((*recbuf&0x3f)==0x26) ProcExpand(0x24);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 46: //發送計費信息:46,具體信息待定
procSourcePARAdisp(0x01); //sequence
break;
case 43: //業務過濾響應:43
indeffmt=procsequencetag(0x01); //sequence
//計數器值
indeffmt2=procsequencetag(0x03); //計數器值 sequence
while(*recbuf==0x30)//計數器和值
{len=UDTlen;
indeffmt3=procsequencetag(0x05); //計數器和值 sequence
procsbasicpara(0x07);//計數器ID
procsbasicpara(0x0a);//計數器值
if(len <= UDTlen)
{
procmoredatadisp(UDTlen); //add by 2000.06.14
UDTlen = 0;
return;
}
if(indeffmt3!=0) {recbuf+=2;UDTlen-=2;}
}//計數器和值
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“過濾標準”選擇“所撥數字”“主叫用戶線ID”“業務鍵”“地址和業務”,P59
indeffmt2=procsequencetag(0x0d); //計數器值 sequence
if((*recbuf&0x3f)==0) procsbasicpara(0x0f); //所撥數字
else if((*recbuf&0x3f)==1) procsbasicpara(0x12); //主叫用戶線ID
else if((*recbuf&0x3f)==2) procsbasicpara(0x15); //業務鍵
else if((*recbuf&0x3f)==0x23)//地址和業務
{indeffmt3=procsequencetag(0x18); //地址和業務 sequence
procINAPADDR(0x1a); //被叫地址值
procsbasicpara(0x15); //業務鍵
if((*recbuf&0x3f)==2) procINAPADDR(0x1e); //主叫地址值
if((*recbuf&0x3f)==3) procINAPADDR(0x22); //位置號碼
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
}//地址和業務
if(indeffmt2!=0) {recbuf+=2;UDTlen-=2;}
//“擴展”
if((*recbuf&0x3f)==0x22) ProcExpand(0x26);
//響應條件(枚舉)
if((*recbuf&0x3f)==3) procsbasicpara(0x33);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 49: //專用資源報告:49
procNULL(0x01);
break;
case 40: //狀態報告:40
indeffmt=procsequencetag(0x01); //sequence
//資源狀態(枚舉)
if((*recbuf&0x3f)==0) procsbasicpara(0x03);
//相關ID
if((*recbuf&0x3f)==1) procsbasicpara(0x06);
//資源ID
if((*recbuf&0x3f)==0x22) procResourceID(0x09);
//“擴展”
if((*recbuf&0x3f)==0x23) ProcExpand(0x20);
//報告條件(枚舉)
if((*recbuf&0x3f)==4) procsbasicpara(0x2d);
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
default:
procmoredatadisp(UDTlen); //add by 2000.06.14
UDTlen = 0;
break;
}//switch
}
void procINAPERRdisp(unsigned char ec)
{ unsigned char indeffmt;
switch(ec)
{
case 1://取消失敗:1
indeffmt=procsequencetag(0x01); //sequence
procsbasicpara(0x03); //問題(枚舉)
procsbasicpara(0x06); //操作
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
break;
case 10://所請求的信息差錯:10
case 12://任務被拒絕:12
procsbasicpara(0x01); //枚舉
break;
case 11://系統故障:11
procsbasicpara(0x01); //不知道網絡資源(枚舉)
break;
default:break;
}//switch
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -