Lines Matching refs:p
48 static unsigned char new_invoke_id(struct PStack *p) in new_invoke_id() argument
55 retval = p->prot.dss1.last_invoke_id + 1; /* try new id */ in new_invoke_id()
56 while ((i) && (p->prot.dss1.invoke_used[retval >> 3] == 0xFF)) { in new_invoke_id()
57 p->prot.dss1.last_invoke_id = (retval & 0xF8) + 8; in new_invoke_id()
61 while (p->prot.dss1.invoke_used[retval >> 3] & (1 << (retval & 7))) in new_invoke_id()
65 p->prot.dss1.last_invoke_id = retval; in new_invoke_id()
66 p->prot.dss1.invoke_used[retval >> 3] |= (1 << (retval & 7)); in new_invoke_id()
73 static void free_invoke_id(struct PStack *p, unsigned char id) in free_invoke_id() argument
78 p->prot.dss1.invoke_used[id >> 3] &= ~(1 << (id & 7)); in free_invoke_id()
103 dss1_release_l3_process(struct l3_process *p) in dss1_release_l3_process() argument
105 free_invoke_id(p->st, p->prot.dss1.invoke_id); in dss1_release_l3_process()
106 release_l3_process(p); in dss1_release_l3_process()
131 l3dss1_dummy_return_result(struct PStack *st, int id, u_char *p, u_char nlen) in l3dss1_dummy_return_result() argument
148 ic.parm.dss1_io.data = p; in l3dss1_dummy_return_result()
198 int ident, u_char *p, u_char nlen) in l3dss1_dummy_invoke() argument
215 ic.parm.dss1_io.data = p; in l3dss1_dummy_invoke()
222 int cr, u_char *p) in l3dss1_parse_facility() argument
234 p++; in l3dss1_parse_facility()
235 qd_len = *p++; in l3dss1_parse_facility()
240 if ((*p & 0x1F) != 0x11) { /* Service discriminator, supplementary service */ in l3dss1_parse_facility()
244 while (qd_len > 0 && !(*p & 0x80)) { /* extension ? */ in l3dss1_parse_facility()
245 p++; in l3dss1_parse_facility()
252 p++; in l3dss1_parse_facility()
254 if ((*p & 0xE0) != 0xA0) { /* class and form */ in l3dss1_parse_facility()
259 cp_tag = *p & 0x1F; /* remember tag value */ in l3dss1_parse_facility()
261 p++; in l3dss1_parse_facility()
267 if (*p & 0x80) in l3dss1_parse_facility()
269 nlen = *p++ & 0x7F; /* number of len bytes or indefinite */ in l3dss1_parse_facility()
276 { nlen = *p++; /* complete length */ in l3dss1_parse_facility()
281 if ((*(p + qd_len)) || (*(p + qd_len + 1))) in l3dss1_parse_facility()
289 { nlen = *p++; in l3dss1_parse_facility()
302 if (*p != 0x02) in l3dss1_parse_facility()
307 p++; in l3dss1_parse_facility()
309 if (*p & 0x80) in l3dss1_parse_facility()
314 ilen = *p++; in l3dss1_parse_facility()
323 { id = (id << 8) | (*p++ & 0xFF); /* invoke identifier */ in l3dss1_parse_facility()
333 if (*p != 0x02) { /* operation value */ in l3dss1_parse_facility()
337 p++; in l3dss1_parse_facility()
339 ilen = *p++; in l3dss1_parse_facility()
348 ident = (ident << 8) | (*p++ & 0xFF); in l3dss1_parse_facility()
353 { l3dss1_dummy_invoke(st, cr, id, ident, p, nlen); in l3dss1_parse_facility()
361 int ilen = p[1]; \ in l3dss1_parse_facility()
367 if ((*p & 0xFF) == (a)) { \ in l3dss1_parse_facility()
369 p += 2; \ in l3dss1_parse_facility()
372 p += ilen + 2; \ in l3dss1_parse_facility()
382 ident = (ident << 8) | *p++; in l3dss1_parse_facility()
390 if (*(p + 2) == 0) { in l3dss1_parse_facility()
405 ident = (ident << 8) | *p++; in l3dss1_parse_facility()
433 l3dss1_dummy_return_result(st, id, p, nlen); in l3dss1_parse_facility()
452 if (*p != 0x02) in l3dss1_parse_facility()
457 p++; in l3dss1_parse_facility()
459 if (*p > 4) in l3dss1_parse_facility()
464 ilen = *p++; in l3dss1_parse_facility()
472 { err_ret = (err_ret << 8) | (*p++ & 0xFF); /* error value */ in l3dss1_parse_facility()
502 u_char *p; in l3dss1_message() local
506 p = skb_put(skb, 4); in l3dss1_message()
507 MsgHead(p, pc->callref, mt); in l3dss1_message()
516 u_char *p = tmp; in l3dss1_message_cause() local
519 MsgHead(p, pc->callref, mt); in l3dss1_message_cause()
520 *p++ = IE_CAUSE; in l3dss1_message_cause()
521 *p++ = 0x2; in l3dss1_message_cause()
522 *p++ = 0x80; in l3dss1_message_cause()
523 *p++ = cause | 0x80; in l3dss1_message_cause()
525 l = p - tmp; in l3dss1_message_cause()
536 u_char *p = tmp; in l3dss1_status_send() local
540 MsgHead(p, pc->callref, MT_STATUS); in l3dss1_status_send()
542 *p++ = IE_CAUSE; in l3dss1_status_send()
543 *p++ = 0x2; in l3dss1_status_send()
544 *p++ = 0x80; in l3dss1_status_send()
545 *p++ = pc->para.cause | 0x80; in l3dss1_status_send()
547 *p++ = IE_CALL_STATE; in l3dss1_status_send()
548 *p++ = 0x1; in l3dss1_status_send()
549 *p++ = pc->state & 0x3f; in l3dss1_status_send()
551 l = p - tmp; in l3dss1_status_send()
566 u_char *p = tmp; in l3dss1_msg_without_setup() local
576 MsgHead(p, pc->callref, MT_RELEASE_COMPLETE); in l3dss1_msg_without_setup()
577 *p++ = IE_CAUSE; in l3dss1_msg_without_setup()
578 *p++ = 0x2; in l3dss1_msg_without_setup()
579 *p++ = 0x80; in l3dss1_msg_without_setup()
580 *p++ = pc->para.cause | 0x80; in l3dss1_msg_without_setup()
587 l = p - tmp; in l3dss1_msg_without_setup()
717 u_char *p, ie; in check_infoelements() local
724 p = skb->data; in check_infoelements()
726 p++; in check_infoelements()
727 l = (*p++) & 0xf; in check_infoelements()
728 p += l; in check_infoelements()
729 mt = *p++; in check_infoelements()
731 while ((p - skb->data) < skb->len) { in check_infoelements()
732 if ((*p & 0xf0) == 0x90) { /* shift codeset */ in check_infoelements()
734 codeset = *p & 7; in check_infoelements()
735 if (*p & 0x08) in check_infoelements()
742 p++; in check_infoelements()
746 if ((newpos = ie_in_set(pc, *p, cl))) { in check_infoelements()
754 if (ie_in_set(pc, *p, comp_required)) in check_infoelements()
760 ie = *p++; in check_infoelements()
764 l = *p++; in check_infoelements()
765 p += l; in check_infoelements()
865 u_char *p; in l3dss1_get_channel_id() local
867 p = skb->data; in l3dss1_get_channel_id()
868 if ((p = findie(p, skb->len, IE_CHANNEL_ID, 0))) { in l3dss1_get_channel_id()
869 p++; in l3dss1_get_channel_id()
870 if (*p != 1) { /* len for BRI = 1 */ in l3dss1_get_channel_id()
872 l3_debug(pc->st, "wrong chid len %d", *p); in l3dss1_get_channel_id()
875 p++; in l3dss1_get_channel_id()
876 if (*p & 0x60) { /* only base rate interface */ in l3dss1_get_channel_id()
878 l3_debug(pc->st, "wrong chid %x", *p); in l3dss1_get_channel_id()
881 return (*p & 0x3); in l3dss1_get_channel_id()
889 u_char *p; in l3dss1_get_cause() local
891 p = skb->data; in l3dss1_get_cause()
894 if ((p = findie(p, skb->len, IE_CAUSE, 0))) { in l3dss1_get_cause()
895 p++; in l3dss1_get_cause()
896 l = *p++; in l3dss1_get_cause()
900 pc->para.loc = *p++; in l3dss1_get_cause()
907 p++; /* skip recommendation */ in l3dss1_get_cause()
910 pc->para.cause = *p++; in l3dss1_get_cause()
917 pc->para.diag[i++] = *p++; in l3dss1_get_cause()
930 u_char *p = tmp; in l3dss1_msg_with_uus() local
933 MsgHead(p, pc->callref, cmd); in l3dss1_msg_with_uus()
936 { *p++ = IE_USER_USER; /* UUS info element */ in l3dss1_msg_with_uus()
937 *p++ = strlen(pc->prot.dss1.uus1_data) + 1; in l3dss1_msg_with_uus()
938 *p++ = 0x04; /* IA5 chars */ in l3dss1_msg_with_uus()
939 strcpy(p, pc->prot.dss1.uus1_data); in l3dss1_msg_with_uus()
940 p += strlen(pc->prot.dss1.uus1_data); in l3dss1_msg_with_uus()
944 l = p - tmp; in l3dss1_msg_with_uus()
983 EncodeASyncParams(u_char *p, u_char si2) in EncodeASyncParams() argument
986 p[0] = 0; in EncodeASyncParams()
987 p[1] = 0x40; // Intermediate rate: 16 kbit/s jj 2000.02.19 in EncodeASyncParams()
988 p[2] = 0x80; in EncodeASyncParams()
991 p[2] += 16; in EncodeASyncParams()
994 p[2] += 24; in EncodeASyncParams()
998 p[2] += 96; in EncodeASyncParams()
1001 p[2] += 32; in EncodeASyncParams()
1005 p[2] += 2; in EncodeASyncParams()
1008 p[2] += 3; in EncodeASyncParams()
1012 p[0] = 66; // 1200 bit/s in EncodeASyncParams()
1016 p[0] = 88; // 1200/75 bit/s in EncodeASyncParams()
1020 p[0] = 87; // 75/1200 bit/s in EncodeASyncParams()
1024 p[0] = 67; // 2400 bit/s in EncodeASyncParams()
1028 p[0] = 69; // 4800 bit/s in EncodeASyncParams()
1032 p[0] = 72; // 9600 bit/s in EncodeASyncParams()
1036 p[0] = 73; // 14400 bit/s in EncodeASyncParams()
1040 p[0] = 75; // 19200 bit/s in EncodeASyncParams()
1044 return p + 3; in EncodeASyncParams()
1093 DecodeASyncParams(u_char si2, u_char *p) in DecodeASyncParams() argument
1097 switch (p[5]) { in DecodeASyncParams()
1132 info = p[7] & 0x7f; in DecodeASyncParams()
1193 u_char *p; //, *pend=skb->data + skb->len; in DecodeSI2() local
1195 if ((p = findie(skb->data, skb->len, 0x7c, 0))) { in DecodeSI2()
1196 switch (p[4] & 0x0f) { in DecodeSI2()
1198 if (p[1] == 0x04) // sync. Bitratenadaption in DecodeSI2()
1200 return DecodeSyncParams(160, p[5]); // V.110/X.30 in DecodeSI2()
1202 else if (p[1] == 0x06) // async. Bitratenadaption in DecodeSI2()
1204 return DecodeASyncParams(192, p); // V.110/X.30 in DecodeSI2()
1208 if (p[1] > 3) in DecodeSI2()
1209 return DecodeSyncParams(176, p[5]); // V.120 in DecodeSI2()
1225 u_char *p = tmp; in l3dss1_setup_req() local
1236 MsgHead(p, pc->callref, MT_SETUP); in l3dss1_setup_req()
1246 *p++ = 0xa1; /* complete indicator */ in l3dss1_setup_req()
1253 *p++ = IE_BEARER; in l3dss1_setup_req()
1254 *p++ = 0x3; /* Length */ in l3dss1_setup_req()
1255 *p++ = 0x90; /* Coding Std. CCITT, 3.1 kHz audio */ in l3dss1_setup_req()
1256 *p++ = 0x90; /* Circuit-Mode 64kbps */ in l3dss1_setup_req()
1257 *p++ = 0xa3; /* A-Law Audio */ in l3dss1_setup_req()
1262 *p++ = IE_BEARER; in l3dss1_setup_req()
1263 *p++ = 0x2; /* Length */ in l3dss1_setup_req()
1264 *p++ = 0x88; /* Coding Std. CCITT, unrestr. dig. Inform. */ in l3dss1_setup_req()
1265 *p++ = 0x90; /* Circuit-Mode 64kbps */ in l3dss1_setup_req()
1270 *p++ = IE_KEYPAD; in l3dss1_setup_req()
1271 *p++ = strlen(teln); in l3dss1_setup_req()
1273 *p++ = (*teln++) & 0x7F; in l3dss1_setup_req()
1309 *p++ = IE_CHANNEL_ID; in l3dss1_setup_req()
1310 *p++ = 1; in l3dss1_setup_req()
1311 *p++ = channel; in l3dss1_setup_req()
1324 *p++ = IE_CALLING_PN; in l3dss1_setup_req()
1325 *p++ = strlen(msn) + (screen ? 2 : 1); in l3dss1_setup_req()
1328 *p++ = 0x01; /* Ext = '0'B, Type = '000'B, Plan = '0001'B. */ in l3dss1_setup_req()
1329 *p++ = screen; in l3dss1_setup_req()
1331 *p++ = 0x81; /* Ext = '1'B, Type = '000'B, Plan = '0001'B. */ in l3dss1_setup_req()
1333 *p++ = *msn++ & 0x7f; in l3dss1_setup_req()
1337 *p++ = IE_CALLING_SUB; in l3dss1_setup_req()
1338 *p++ = strlen(sub) + 2; in l3dss1_setup_req()
1339 *p++ = 0x80; /* NSAP coded */ in l3dss1_setup_req()
1340 *p++ = 0x50; /* local IDI format */ in l3dss1_setup_req()
1342 *p++ = *sub++ & 0x7f; in l3dss1_setup_req()
1355 *p++ = IE_CALLED_PN; in l3dss1_setup_req()
1356 *p++ = strlen(teln) + 1; in l3dss1_setup_req()
1358 *p++ = 0x81; /* Ext = '1'B, Type = '000'B, Plan = '0001'B. */ in l3dss1_setup_req()
1360 *p++ = *teln++ & 0x7f; in l3dss1_setup_req()
1364 *p++ = IE_CALLED_SUB; in l3dss1_setup_req()
1365 *p++ = strlen(sub) + 2; in l3dss1_setup_req()
1366 *p++ = 0x80; /* NSAP coded */ in l3dss1_setup_req()
1367 *p++ = 0x50; /* local IDI format */ in l3dss1_setup_req()
1369 *p++ = *sub++ & 0x7f; in l3dss1_setup_req()
1375 *p++ = IE_LLC; in l3dss1_setup_req()
1376 *p++ = 0x04; in l3dss1_setup_req()
1377 *p++ = 0x88; in l3dss1_setup_req()
1378 *p++ = 0x90; in l3dss1_setup_req()
1379 *p++ = 0x21; in l3dss1_setup_req()
1380 *p++ = EncodeSyncParams(pc->para.setup.si2 - 160, 0x80); in l3dss1_setup_req()
1383 *p++ = IE_LLC; in l3dss1_setup_req()
1384 *p++ = 0x05; in l3dss1_setup_req()
1385 *p++ = 0x88; in l3dss1_setup_req()
1386 *p++ = 0x90; in l3dss1_setup_req()
1387 *p++ = 0x28; in l3dss1_setup_req()
1388 *p++ = EncodeSyncParams(pc->para.setup.si2 - 176, 0); in l3dss1_setup_req()
1389 *p++ = 0x82; in l3dss1_setup_req()
1392 *p++ = IE_LLC; in l3dss1_setup_req()
1393 *p++ = 0x06; in l3dss1_setup_req()
1394 *p++ = 0x88; in l3dss1_setup_req()
1395 *p++ = 0x90; in l3dss1_setup_req()
1396 *p++ = 0x21; in l3dss1_setup_req()
1397 p = EncodeASyncParams(p, pc->para.setup.si2 - 192); in l3dss1_setup_req()
1402 *p++ = IE_LLC; in l3dss1_setup_req()
1403 *p++ = 0x3; /* Length */ in l3dss1_setup_req()
1404 *p++ = 0x90; /* Coding Std. CCITT, 3.1 kHz audio */ in l3dss1_setup_req()
1405 *p++ = 0x90; /* Circuit-Mode 64kbps */ in l3dss1_setup_req()
1406 *p++ = 0xa3; /* A-Law Audio */ in l3dss1_setup_req()
1411 *p++ = IE_LLC; in l3dss1_setup_req()
1412 *p++ = 0x2; /* Length */ in l3dss1_setup_req()
1413 *p++ = 0x88; /* Coding Std. CCITT, unrestr. dig. Inform. */ in l3dss1_setup_req()
1414 *p++ = 0x90; /* Circuit-Mode 64kbps */ in l3dss1_setup_req()
1420 l = p - tmp; in l3dss1_setup_req()
1512 u_char *p; in l3dss1_disconnect() local
1525 if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) in l3dss1_disconnect()
1526 l3dss1_parse_facility(pc->st, pc, pc->callref, p); in l3dss1_disconnect()
1587 u_char *p; in l3dss1_setup() local
1597 p = skb->data; in l3dss1_setup()
1599 if ((p = findie(p, skb->len, 0x04, 0))) { in l3dss1_setup()
1600 if ((p[1] < 2) || (p[1] > 11)) in l3dss1_setup()
1604 switch (p[2] & 0x7f) { in l3dss1_setup()
1632 switch (p[3] & 0x7f) { in l3dss1_setup()
1641 pc->para.moderate = p[3] & 0x7f; in l3dss1_setup()
1654 p[1], p[2], p[3]); in l3dss1_setup()
1703 p = skb->data; in l3dss1_setup()
1704 if ((p = findie(p, skb->len, 0x70, 0))) in l3dss1_setup()
1705 iecpy(pc->para.setup.eazmsn, p, 1); in l3dss1_setup()
1709 p = skb->data; in l3dss1_setup()
1710 if ((p = findie(p, skb->len, 0x71, 0))) { in l3dss1_setup()
1712 if ((p[1] >= 2) && (p[2] == 0x80) && (p[3] == 0x50)) { in l3dss1_setup()
1714 iecpy(&tmp[1], p, 2); in l3dss1_setup()
1719 p = skb->data; in l3dss1_setup()
1720 if ((p = findie(p, skb->len, 0x6c, 0))) { in l3dss1_setup()
1721 pc->para.setup.plan = p[2]; in l3dss1_setup()
1722 if (p[2] & 0x80) { in l3dss1_setup()
1723 iecpy(pc->para.setup.phone, p, 1); in l3dss1_setup()
1726 iecpy(pc->para.setup.phone, p, 2); in l3dss1_setup()
1727 pc->para.setup.screen = p[3]; in l3dss1_setup()
1734 p = skb->data; in l3dss1_setup()
1735 if ((p = findie(p, skb->len, 0x6d, 0))) { in l3dss1_setup()
1737 if ((p[1] >= 2) && (p[2] == 0x80) && (p[3] == 0x50)) { in l3dss1_setup()
1739 iecpy(&tmp[1], p, 2); in l3dss1_setup()
1761 u_char *p = tmp; in l3dss1_disconnect_req() local
1770 MsgHead(p, pc->callref, MT_DISCONNECT); in l3dss1_disconnect_req()
1772 *p++ = IE_CAUSE; in l3dss1_disconnect_req()
1773 *p++ = 0x2; in l3dss1_disconnect_req()
1774 *p++ = 0x80; in l3dss1_disconnect_req()
1775 *p++ = cause | 0x80; in l3dss1_disconnect_req()
1778 { *p++ = IE_USER_USER; /* UUS info element */ in l3dss1_disconnect_req()
1779 *p++ = strlen(pc->prot.dss1.uus1_data) + 1; in l3dss1_disconnect_req()
1780 *p++ = 0x04; /* IA5 chars */ in l3dss1_disconnect_req()
1781 strcpy(p, pc->prot.dss1.uus1_data); in l3dss1_disconnect_req()
1782 p += strlen(pc->prot.dss1.uus1_data); in l3dss1_disconnect_req()
1786 l = p - tmp; in l3dss1_disconnect_req()
1834 u_char *p = tmp; in l3dss1_reject_req() local
1841 MsgHead(p, pc->callref, MT_RELEASE_COMPLETE); in l3dss1_reject_req()
1843 *p++ = IE_CAUSE; in l3dss1_reject_req()
1844 *p++ = 0x2; in l3dss1_reject_req()
1845 *p++ = 0x80; in l3dss1_reject_req()
1846 *p++ = cause | 0x80; in l3dss1_reject_req()
1848 l = p - tmp; in l3dss1_reject_req()
1862 u_char *p; in l3dss1_release() local
1871 if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) { in l3dss1_release()
1872 l3dss1_parse_facility(pc->st, pc, pc->callref, p); in l3dss1_release()
1930 char *p; in l3dss1_deliver_display() local
1936 p = ic.parm.display; in l3dss1_deliver_display()
1938 *p++ = *infp++; in l3dss1_deliver_display()
1939 *p = '\0'; in l3dss1_deliver_display()
1953 u_char *p; in l3dss1_progress() local
1955 if ((p = findie(skb->data, skb->len, IE_PROGRESS, 0))) { in l3dss1_progress()
1956 if (p[1] != 2) { in l3dss1_progress()
1959 } else if (!(p[2] & 0x70)) { in l3dss1_progress()
1960 switch (p[2]) { in l3dss1_progress()
1968 switch (p[3]) { in l3dss1_progress()
2010 u_char *p; in l3dss1_notify() local
2012 if ((p = findie(skb->data, skb->len, IE_NOTIFY, 0))) { in l3dss1_notify()
2013 if (p[1] != 1) { in l3dss1_notify()
2017 switch (p[2]) { in l3dss1_notify()
2063 u_char *p; in l3dss1_information() local
2071 p = skb->data; in l3dss1_information()
2072 if ((p = findie(p, skb->len, 0x70, 0))) { in l3dss1_information()
2073 iecpy(tmp, p, 1); in l3dss1_information()
2088 u_char *p = tmp; in l3dss1_redir_req() local
2108 MsgHead(p, pc->callref, MT_FACILITY); in l3dss1_redir_req()
2113 *p++ = 0x1c; /* Facility info element */ in l3dss1_redir_req()
2114 *p++ = len_phone + len_sub + 2 + 2 + 8 + 3 + 3; /* length of element */ in l3dss1_redir_req()
2115 *p++ = 0x91; /* remote operations protocol */ in l3dss1_redir_req()
2116 *p++ = 0xa1; /* invoke component */ in l3dss1_redir_req()
2118 *p++ = len_phone + len_sub + 2 + 2 + 8 + 3; /* length of data */ in l3dss1_redir_req()
2119 *p++ = 0x02; /* invoke id tag, integer */ in l3dss1_redir_req()
2120 *p++ = 0x01; /* length */ in l3dss1_redir_req()
2121 *p++ = pc->prot.dss1.invoke_id; /* invoke id */ in l3dss1_redir_req()
2122 *p++ = 0x02; /* operation value tag, integer */ in l3dss1_redir_req()
2123 *p++ = 0x01; /* length */ in l3dss1_redir_req()
2124 *p++ = 0x0D; /* Call Deflect */ in l3dss1_redir_req()
2126 *p++ = 0x30; /* sequence phone number */ in l3dss1_redir_req()
2127 *p++ = len_phone + 2 + 2 + 3 + len_sub; /* length */ in l3dss1_redir_req()
2129 *p++ = 0x30; /* Deflected to UserNumber */ in l3dss1_redir_req()
2130 *p++ = len_phone + 2 + len_sub; /* length */ in l3dss1_redir_req()
2131 *p++ = 0x80; /* NumberDigits */ in l3dss1_redir_req()
2132 *p++ = len_phone; /* length */ in l3dss1_redir_req()
2134 *p++ = pc->chan->setup.phone[l]; in l3dss1_redir_req()
2137 { *p++ = 0x04; /* called party subaddress */ in l3dss1_redir_req()
2138 *p++ = len_sub - 2; in l3dss1_redir_req()
2139 while (*subp) *p++ = *subp++; in l3dss1_redir_req()
2142 *p++ = 0x01; /* screening identifier */ in l3dss1_redir_req()
2143 *p++ = 0x01; in l3dss1_redir_req()
2144 *p++ = pc->chan->setup.screen; in l3dss1_redir_req()
2146 l = p - tmp; in l3dss1_redir_req()
2170 u_char *p = temp; in l3dss1_cmd_global() local
2189 MsgHead(p, i, MT_FACILITY); /* build message head */ in l3dss1_cmd_global()
2190 *p++ = 0x1C; /* Facility IE */ in l3dss1_cmd_global()
2191 *p++ = l; /* length of ie */ in l3dss1_cmd_global()
2192 *p++ = 0x91; /* remote operations */ in l3dss1_cmd_global()
2193 *p++ = 0xA1; /* invoke */ in l3dss1_cmd_global()
2194 *p++ = l - 3; /* length of invoke */ in l3dss1_cmd_global()
2195 *p++ = 0x02; /* invoke id tag */ in l3dss1_cmd_global()
2196 *p++ = 0x01; /* length is 1 */ in l3dss1_cmd_global()
2197 *p++ = id; /* invoke id */ in l3dss1_cmd_global()
2198 *p++ = 0x02; /* operation */ in l3dss1_cmd_global()
2199 *p++ = proc_len; /* length of operation */ in l3dss1_cmd_global()
2202 *p++ = (ic->parm.dss1_io.proc >> (i - 1)) & 0xFF; in l3dss1_cmd_global()
2203 memcpy(p, ic->parm.dss1_io.data, ic->parm.dss1_io.datalen); /* copy data */ in l3dss1_cmd_global()
2204 l = (p - temp) + ic->parm.dss1_io.datalen; /* total length */ in l3dss1_cmd_global()
2276 u_char *p; in l3dss1_release_ind() local
2279 p = skb->data; in l3dss1_release_ind()
2281 if ((p = findie(p, skb->len, IE_CALL_STATE, 0))) { in l3dss1_release_ind()
2282 p++; in l3dss1_release_ind()
2283 if (1 == *p++) in l3dss1_release_ind()
2284 callState = *p; in l3dss1_release_ind()
2343 u_char *p = tmp; in l3dss1_t305() local
2352 MsgHead(p, pc->callref, MT_RELEASE); in l3dss1_t305()
2354 *p++ = IE_CAUSE; in l3dss1_t305()
2355 *p++ = 0x2; in l3dss1_t305()
2356 *p++ = 0x80; in l3dss1_t305()
2357 *p++ = cause | 0x80; in l3dss1_t305()
2359 l = p - tmp; in l3dss1_t305()
2438 u_char *p; in l3dss1_status() local
2451 if ((p = findie(skb->data, skb->len, IE_CALL_STATE, 0))) { in l3dss1_status()
2452 p++; in l3dss1_status()
2453 if (1 == *p++) { in l3dss1_status()
2454 callState = *p; in l3dss1_status()
2455 if (!ie_in_set(pc, *p, l3_valid_states)) in l3dss1_status()
2502 u_char *p; in l3dss1_facility() local
2503 if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) in l3dss1_facility()
2504 l3dss1_parse_facility(pc->st, pc, pc->callref, p); in l3dss1_facility()
2513 u_char *p = tmp; in l3dss1_suspend_req() local
2517 MsgHead(p, pc->callref, MT_SUSPEND); in l3dss1_suspend_req()
2520 *p++ = IE_CALL_ID; in l3dss1_suspend_req()
2521 *p++ = l; in l3dss1_suspend_req()
2523 *p++ = *msg++; in l3dss1_suspend_req()
2528 l = p - tmp; in l3dss1_suspend_req()
2587 u_char *p = tmp; in l3dss1_resume_req() local
2591 MsgHead(p, pc->callref, MT_RESUME); in l3dss1_resume_req()
2595 *p++ = IE_CALL_ID; in l3dss1_resume_req()
2596 *p++ = l; in l3dss1_resume_req()
2598 *p++ = *msg++; in l3dss1_resume_req()
2603 l = p - tmp; in l3dss1_resume_req()
2679 u_char *p; in l3dss1_global_restart() local
2687 p = skb->data; in l3dss1_global_restart()
2688 if ((p = findie(p, skb->len, IE_RESTART_IND, 0))) { in l3dss1_global_restart()
2689 ri = p[2]; in l3dss1_global_restart()
2695 p = skb->data; in l3dss1_global_restart()
2696 if ((p = findie(p, skb->len, IE_CHANNEL_ID, 0))) { in l3dss1_global_restart()
2697 chan = p[2] & 3; in l3dss1_global_restart()
2698 ch = p[2]; in l3dss1_global_restart()
2711 p = tmp; in l3dss1_global_restart()
2712 MsgHead(p, pc->callref, MT_RESTART_ACKNOWLEDGE); in l3dss1_global_restart()
2714 *p++ = IE_CHANNEL_ID; in l3dss1_global_restart()
2715 *p++ = 1; in l3dss1_global_restart()
2716 *p++ = ch | 0x80; in l3dss1_global_restart()
2718 *p++ = 0x79; /* RESTART Ind */ in l3dss1_global_restart()
2719 *p++ = 1; in l3dss1_global_restart()
2720 *p++ = ri; in l3dss1_global_restart()
2721 l = p - tmp; in l3dss1_global_restart()
2906 u_char *p = tmp; in global_handler() local
2921 MsgHead(p, proc->callref, MT_STATUS); in global_handler()
2922 *p++ = IE_CAUSE; in global_handler()
2923 *p++ = 0x2; in global_handler()
2924 *p++ = 0x80; in global_handler()
2925 *p++ = 81 | 0x80; /* invalid cr */ in global_handler()
2926 *p++ = 0x14; /* CallState */ in global_handler()
2927 *p++ = 0x1; in global_handler()
2928 *p++ = proc->state & 0x3f; in global_handler()
2929 l = p - tmp; in global_handler()
2948 u_char *p; in dss1up() local
2998 if ((p = findie(skb->data, skb->len, IE_FACILITY, 0))) { in dss1up()
3000 (pr == (DL_DATA | INDICATION)) ? -1 : -2, p); in dss1up()
3087 if ((p = findie(skb->data, skb->len, IE_DISPLAY, 0)) != NULL) in dss1up()
3088 l3dss1_deliver_display(proc, pr, p); /* Display IE included */ in dss1up()