Code:
awk 'BEGIN {
print "IMSIS,M,NA,OBA,BO,PLMN,MAPVER,NRRG,CBA,CBAZ,CAMEL,INOPER,OWNMS,NATMS,ERIS,STALL"
v1=v2=v3=v4=v5=v6=v7=v8=v9=v10=v11=v12=v13=v14=v15=v16=""; }
/IMSIS=/ { split($0,arr,"="); v1=arr[2]; gsub(";","",v1); }
NF==4 && !/IMSIS/ { v2=$2; v3=$3; split($4,arr,"-"); v4=arr[2]; }
NF==1 && /BO/ { if($0 ~ /-/) { split($0,arr,"-"); v5=arr[2]; } else v5=1; }
NF==1 && /PLMN/ { if($0 ~ /-/) { split($0,arr,"-"); v6=arr[2]; } else v6=1; }
NF==1 && /MAPVER/ { if($0 ~ /-/) { split($0,arr,"-"); v7=arr[2]; } else v7=1; }
NF==1 && /NRRG/ { if($0 ~ /-/) { split($0,arr,"-"); v8=arr[2]; } else v8=1; }
NF==1 && /CBA/ { if($0 ~ /-/) { split($0,arr,"-"); v9=arr[2]; } else v9=1; }
NF==1 && /CBAZ/ { if($0 ~ /-/) { split($0,arr,"-"); v10=arr[2]; } else v10=1; }
NF==1 && /CAMEL/ { if($0 ~ /-/) { split($0,arr,"-"); v11=arr[2]; } else v11=1; }
NF==1 && /INOPER/ { if($0 ~ /-/) { split($0,arr,"-"); v12=arr[2]; } else v12=1; }
NF==1 && /OWNMS/ { if($0 ~ /-/) { split($0,arr,"-"); v13=arr[2]; } else v13=1; }
NF==1 && /NATMS/ { if($0 ~ /-/) { split($0,arr,"-"); v14=arr[2]; } else v14=1; }
NF==1 && /ERIS/ { if($0 ~ /-/) { split($0,arr,"-"); v15=arr[2]; } else v15=1; }
NF==1 && /STALL/ { if($0 ~ /-/) { split($0,arr,"-"); v16=arr[2]; } else v16=1; }
/END/ {
if(v2=="")
printf ("%s,%s\n",v1,"UNIDENTIFIED");
else printf ("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16);
v1=v2=v3=v4=v5=v6=v7=v8=v9=v10=v11=v12=v13=v14=v15=v16="";
}' filename