📄 svmapdisp.cpp
字号:
return;
}
if((*recbuf&0x3f)==0x0d&&tempmap>0)
{
procNULL(0x36);//Ccbs呼叫
if(tempmap>=2)
tempmap-=2;
else
return;
}
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap!=0)
return;
// UDTlen-=indeffmt*2;
}//operate
else//result
{
if(*recbuf==0x30) //zxf 2001-8-14 for map2+
{
indeffmt=procsequencetag(0x01);
tempmap=iDataLength-indeffmt*2;
procsISDNADDR(0x1f); //漫游号码
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
if(*recbuf==0x30&&tempmap>0)
{
procExtension(0x23);
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
}
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap!=0)
return;
}
else
procsISDNADDR(0x1f); //漫游号码 for map2
}
break;
case 6://resumeCallHandling MAP2+ zxf
if (compt==1)
{
indeffmt=procsequencetag(0x01);//resumeCallHandling tag]
tempmap=iDataLength-indeffmt*2;
//tag=0 CallReferenceNumber
procsbasicparamap2plus(0x03);//CallRefenceNo 0
tempmap-=iAllLength;
//tag=1 Ext_BasicServiceCode
indeffmt1=procsequencetag(0x06);// 1 basicServiceGroup
tempmap1=iDataLength-indeffmt1*2;
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
if((*recbuf&0x1f)==2&&tempmap1>0)
{
procsbasicparamap2plus(0x08);
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
else if((*recbuf&0x1f)==3&&tempmap1>0)
{
procsbasicparamap2plus(0x0b);
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if(indeffmt1!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap1!=0)
return;
//tag=2 forwardingData
indeffmt1=procsequencetag(0x0e);//forwardingData
tempmap1=iDataLength-indeffmt1*2;
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
if((*recbuf&0x1f)==5&&tempmap1>0)
{
procsISDNADDR(0x10);//forwardedToNumber
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if((*recbuf&0x1f)==4&&tempmap1>0)
{
procsISDNADDR(0x14);//forwardedToSubaddress
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if((*recbuf&0x1f)==6&&tempmap1>0)
{
procsbasicparamap2plus(0x18);//forwardingOptions
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if((*recbuf&0x1f)==7&&tempmap1>0)
{
procExtension(0x1b);//extensionContainer
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if(indeffmt1!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap1!=0)
return;
//tag=3 imsi
procIMSI(0x1e);//imsi
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
//tag=4 CUG-CheckInfo
if((*recbuf&0x1f)==4&&tempmap>0)
{
indeffmt1=procsequencetag(0x21);
tempmap1=iDataLength-indeffmt1*2;
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
procsbasicparamap2plus(0x23);//CUG-Interlock
tempmap1-=iAllLength;
if(*recbuf==0x05&&tempmap1>0)
{
procNULL(0x26);//cug-OutgoingAccess
if(tempmap1>=2)
tempmap1-=2;
else
return;
}
if(*recbuf==0x30&&tempmap1>0)
{
procExtension(0x1b);//extensionContainer
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if(indeffmt1!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap1!=0)
return;
}
//tag=5 0_Csi
if((*recbuf&0x1f)==5&&tempmap>0)
{
indeffmt1=procsequencetag(0x28); //o-CSI sequence
tempmap1=iDataLength-indeffmt1*2;
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
icounter=0;
indeffmt2=procsequencetag(0x2a);//o-BcsmCamelTDP数据清单
tempmap2=iDataLength-indeffmt2*2;
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
while((*recbuf==0x30)&&(icounter<=10)&&tempmap2>0)
{
indeffmt6=procsequencetag(0x2c);//-o-BcsmCamelTDP数据
tempmap3=iDataLength-indeffmt6*2;
if(tempmap2>=iAllLength)
tempmap2-=iAllLength;
else
return;
procsbasicparamap2plus(0x2e);//o-BCSMTDP
if(tempmap3>=iAllLength)
tempmap3-=iAllLength;
else
return;
procsbasicparamap2plus(0x31);//业务键(ServiceKey)
if(tempmap3>=iAllLength)
tempmap3-=iAllLength;
else
return;
procsISDNADDR(0x34);//gsmSCF地址 tag=xxx00000
if(tempmap3>=iAllLength)
tempmap3-=iAllLength;
else
return;
procsbasicparamap2plus(0x38);//默认呼叫处理 tag=xxx00001
if(tempmap3>=iAllLength)
tempmap3-=iAllLength;
else
return;
if((*recbuf&0x1f)==2&&tempmap3>0)
{
procExtension(0x1b);//扩展sequence
if(tempmap3>=iAllLength)
tempmap3-=iAllLength;
else
return;
}
if((*recbuf&0x1f)==3&&tempmap3>0) //o-BcsmCamelTDP标准
{
indeffmt3=procsequencetag(0x3b);//o-BcsmCamelTDP标准
tempmap4=iDataLength-indeffmt3*2;
if(tempmap3>=iAllLength)
tempmap3-=iAllLength;
else
return;
if((*recbuf&0x1f)==0&&tempmap4>0) //目的号码标准
{
indeffmt4=procsequencetag(0x3d);//目的号码标准
tempmap5=iDataLength-indeffmt4*2;
if(tempmap4>=iAllLength)
tempmap4-=iAllLength;
else
return;
procsbasicparamap2plus(0x3f);//匹配类型(matchType)
tempmap5-=iAllLength;
icounter1=0;
if((*recbuf&0x1f)==1&&tempmap5>0)//destinationNumberList
{
indeffmt5=procsequencetag(0x42);//目的号码清单
if(tempmap5>=iAllLength)
tempmap5-=iAllLength;
else
return;
tempmap6=iDataLength-indeffmt5*2;
while(((*recbuf&0x1f)==1)&&(icounter1<10)&&tempmap6>0)//目的号码清单
{
procsISDNADDR(0x44);//目的号码(DestNumber)
tempmap6-=iAllLength;
icounter1++;
}
if(UDTlen>=indeffmt5*2){recbuf+=indeffmt5*2;UDTlen-=indeffmt5*2;}
if(tempmap6!=0)
return;
}
if((*recbuf&0x1f)==2&&tempmap5>0)//DestinationNumberLengthList
{
icounter1=0;
indeffmt5=procsequencetag(0x48);//目的号码长度清单
tempmap6=iDataLength-indeffmt5*2;
if(tempmap5>=iAllLength)
tempmap5-=iAllLength;
else
return;
while(((*recbuf&0x1f)==2)&&(icounter1<3)&&tempmap6>0)//目的号码长度清单
{
procsbasicparamap2plus(0x4a);//目的号码长度(DestNoLen)
tempmap6-=iAllLength;
icounter1++;
}
if(UDTlen>=indeffmt5*2){recbuf+=indeffmt5*2;UDTlen-=indeffmt5*2;}
if(tempmap6!=0)
return;
}
if(UDTlen>=indeffmt4*2){recbuf+=indeffmt4*2;UDTlen-=indeffmt4*2;}
if(tempmap5!=0)
return;
}
if((*recbuf&0x1f)==1&&tempmap4>0)//基本业务标准
{
indeffmt5=procsequencetag(0x4d);//基本业务标准
tempmap5=iDataLength-indeffmt5*2;
if(tempmap4>=iAllLength)
tempmap4-=iAllLength;
else
return;
if((*recbuf&0x1f)==2&&tempmap5>0)
{
procsbasicparamap2plus(0x4f);//承载业务码
if(tempmap5>=iAllLength)
tempmap5-=iAllLength;
else
return;
}
else if((*recbuf&0x1f)==3&&tempmap5>0)
{
procsbasicparamap2plus(0x52);//电信业务码
if(tempmap5>=iAllLength)
tempmap5-=iAllLength;
else
return;
}
if(UDTlen>=indeffmt5*2){recbuf+=indeffmt5*2;UDTlen-=indeffmt5*2;}
if(tempmap5!=0)
return;
}
if((*recbuf&0x1f)==2&&tempmap4>0)
{
procsbasicparamap2plus(0x55);//呼叫类型标准
if(tempmap4>=iAllLength)
tempmap4-=iAllLength;
else
return;
}
if(UDTlen>=indeffmt3*2)
{
recbuf+=indeffmt3*2;
UDTlen-=indeffmt3*2;
}
if(tempmap4!=0)
return;
}
if(UDTlen>=indeffmt6*2)
{
recbuf+=indeffmt6*2;
UDTlen-=indeffmt6*2;
}
icounter++;
if(tempmap3!=0)
return;
}
if(UDTlen>=indeffmt2*2)
{
recbuf+=indeffmt2*2;
UDTlen-=indeffmt2*2;
}
if(tempmap2!=0)
return;
if(*recbuf==0x30&&tempmap1>0)
{
procExtension(0x1b);//扩展(extension)
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if((*recbuf&0x1f)==0&&tempmap1>0)
{
procsbasicparamap2plus(0x58);//Camel能力处理
if(tempmap1>=iAllLength)
tempmap1-=iAllLength;
else
return;
}
if(UDTlen>=indeffmt1*2)
{
recbuf+=indeffmt1*2;
UDTlen-=indeffmt1*2;
}
if(tempmap1!=0)
return;
}
//tag=7 扩展(extension)
if((*recbuf&0x1f)==7&&tempmap>0)
{
procsbasicparamap2plus(0x1b);//扩展(extension)
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
}
//tag=8 ccbsPossible
if((*recbuf&0x1f)==8&&tempmap>0)
{
procNULL(0x5b);
if(tempmap>=2)
tempmap-=2;
else
return;
}
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap!=0)
return;
}
else
{
indeffmt=procsequencetag(0x01);
tempmap=iDataLength-indeffmt*2;
if(*recbuf==0x30&&tempmap>0)
{
procsbasicparamap2plus(0x1b);//扩展(extension)
if(tempmap>=iAllLength)
tempmap-=iAllLength;
else
return;
}
if(indeffmt!=0) {recbuf+=2;UDTlen-=2;}
if(tempmap!=0)
return;
}
break;
case 7: //insert subscriber data
if(compt==1)
{
indeffmt=procsequencetag(0x01);
if(iDataLength<=UDTlen)
tempmap=iDataLength-indeffmt*2;
else
tempmap=UDTlen-indeffmt*2;
if((*recbuf&0x3f)==0) //存在IMSI(任选项)
{
procIMSI(0x03);
tempmap-=iAllLength;
}
//用户数据
buf=&USERDATAfld[0];
*buf++=0x06; //ms isdn(任选项)
*buf++=0x0a; //类别(任选项)1
*buf++=0x0d; //用户状态(任选项)2
*buf++=0x10; //承载业务清单3
*buf++=0x12; //承载业务4
*buf++=0x15; //电信业务清单5
*buf++=0x17; //电信业务
*buf++=0x1a; //SS信息清单7
//SS信息选择"前转信息"
*buf++=0x1c; //前转信息
*buf++=0x1e; //SS码
*buf++=0x21; //前转特性清单 sequence
*buf++=0x23; //前转特性 sequence
//基本业务:"承载业务"和"电信业务"选择其一
*buf++=0x12; //承载业务
*buf++=0x17; //电信业务
*buf++=0x25; //SS状态
*buf++=0x28; //前转至的号码
*buf++=0x3a; //前转至子地址,V2
*buf++=0x2c; //前转选择
*buf++=0x2f; //无应答条件时间
//SS信息选择"限制呼叫信息"
*buf++=0x32; //限制呼叫信息 sequence
*buf++=0x1e; //SS码
*buf++=0x34; //限制呼叫特性清单 sequence
*buf++=0x36; //限制呼叫特性 sequence
//基本业务:"承载业务"和"电信业务"选择其一
*buf++=0x12; //承载业务
*buf++=0x17; //电信业务
*buf++=0x25; //SS状态
//SS信息选择"SS数据"
*buf++=0x38; //SS数据 sequence
*buf++=0x1e; //SS码
*buf++=0x25; //SS状态//change 0x23 into 0x25 zxf 2001-8-20
*buf++=0x3e; //呼叫线识别限制选择
*buf++=0x41; //超跃种类
*buf++=0x44; //基本业务组清单
*buf++=0x12; //承载业务
*buf++=0x17; //电信业务
USERDATAfld[129]=0x57; //ODB一般数据
USERDATAfld[130]=0x5a; //ODB-HPLMN数据
USERDATAfld[131]=0x5d; //由于不支持的特性漫游限制(NULL)
USERDATAfld[132]=0x5f; //区域签约数据
USERDATAfld[133]=0x61; //签约码
USERDATAfld[160]=0x46; //CUG信息 sequence
USERDATAfld[161]=0x48; //CUG签约清单
USERDATAfld[162]=0x4a; //CUG签约 sequence
USERDATAfld[163]=0x4c; //CUG索引
USERDATAfld[164]=0x4f; //CUG连锁
USERDATAfld[165]=0x52; //内部CUG选择
USERDATAfld[166]=0x44; //基本业务组清单
USERDATAfld[167]=0x12; //承载业务码
USERDATAfld[168]=0x17; //电信业务码
//zxf add down
USERDATAfld[169]=0x64; //CUG特性清单
USERDATAfld[170]=0x6c; //CUG特性
USERDATAfld[171]=0x12; //承载业务码
USERDATAfld[172]=0x17; //电信业务码
USERDATAfld[173]=0x66; //优先CUG指示
USERDATAfld[174]=0x69; //CUG内限制
USERDATAfld[175]=0x73;//vbs签约数据(vbsSubscriptData)
USERDATAfld[176]=0x75;//--话音广播数据(VBD)
USERDATAfld[177]=0x77;//--组标识(GroupId)
USERDATAfld[178]=0x7a;//--广播初始名称
USERDATAfld[179]=0x7f;//vgcs签约数据
USERDATAfld[180]=0x81;//--话音组呼叫数据(VoiceGroupCallData)
USERDATAfld[181]=0x83;//-vlrCamel签约信息
USERDATAfld[182]=0x85;//--o-CSI sequence
USERDATAfld[183]=0x87;//--o-BcsmCamelTDP数据清单
USERDATAfld[184]=0xe5;//--o-BcsmCamelTDP数据
USERDATAfld[185]=0x89;//-o-BCSMTDP
USERDATAfld[186]=0x8c;//-业务键(ServiceKey)
USERDATAfld[187]=0x8f;//-gsmSCF地址
USERDATAfld[188]=0x93;//-默认呼叫处理
USERDATAfld[189]=0x96;//-o-BcsmCamelTDP标准
USERDATAfld[190]=0x98;//-目的号码标准
USERDATAfld[191]=0x9a;//-匹配类型(matchType)
USERDATAfld[0xc0]=0x7c;//扩展(extension) zxf add 192
USERDATAfld[0xc1]=0x99;//emlpp信息(emlpp Info)
USERDATAfld[0xc2]=0x9b;//MaxEntitledPri
USERDATAfld[0xc3]=0x9e;//默认优先级(DefaultPri)
USERDATAfld[0xc4]=0x9d;//-目的号码清单(DestNoList)
USERDATAfld[0xc5]=0x9f;//-目的号码
USE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -