- if (argv[5][0] == 'p')
- msg.u.call.present = 1;
- }
- msg.u.call.bc_capa = 0x00; /*INFO_BC_SPEECH*/
- msg.u.call.bc_mode = 0x00; /*INFO_BMODE_CIRCUIT*/
- msg.u.call.bc_info1 = 0;
- msg.u.call.hlc = 0;
- msg.u.call.exthlc = 0;
- if (argc > 6)
- msg.u.call.bc_capa = strtol(argv[6],NULL,0);
- else
- msg.u.call.bc_info1 = 3 | 0x80; /* alaw, if no capability is given at all */
- if (argc > 7) {
- msg.u.call.bc_mode = strtol(argv[7],NULL,0);
- if (msg.u.call.bc_mode) msg.u.call.bc_mode = 2;
- }
- if (argc > 8) {
- msg.u.call.bc_info1 = strtol(argv[8],NULL,0);
- if (msg.u.call.bc_info1 < 0)
- msg.u.call.bc_info1 = 0;
- else
- msg.u.call.bc_info1 |= 0x80;
- }
- if (argc > 9) {
- msg.u.call.hlc = strtol(argv[9],NULL,0);
- if (msg.u.call.hlc < 0)
- msg.u.call.hlc = 0;
- else
- msg.u.call.hlc |= 0x80;
- }
-// printf("hlc=%d\n", msg.u.call.hlc);
- if (argc > 10) {
- msg.u.call.exthlc = strtol(argv[10],NULL,0);
- if (msg.u.call.exthlc < 0)
- msg.u.call.exthlc = 0;
- else
- msg.u.call.exthlc |= 0x80;
+ if (!strcasecmp(argv[i], "brief"))
+ msg.u.trace_req.detail = 1;
+ else if (!strcasecmp(argv[i], "short"))
+ msg.u.trace_req.detail = 2;
+ else if (!strncasecmp(argv[i], "category=", 9))
+ SCPY(msg.u.trace_req.category, argv[i]+9);
+ else if (!strncasecmp(argv[i], "port=", 5))
+ msg.u.trace_req.port = atoi(argv[i]+5);
+ else if (!strncasecmp(argv[i], "interface=", 10))
+ SCPY(msg.u.trace_req.interface, argv[i]+10);
+ else if (!strncasecmp(argv[i], "caller=", 7))
+ SCPY(msg.u.trace_req.caller, argv[i]+7);
+ else if (!strncasecmp(argv[i], "dialing=", 8))
+ SCPY(msg.u.trace_req.dialing, argv[i]+8);
+ else return("Invalid trace option, try 'trace help'.");
+
+ i++;