media/webrtc/signaling/src/sipcc/include/xml_parser_defines.h

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 4
michael@0 5 #ifndef XML_PARSER_DEFINES_H
michael@0 6 #define XML_PARSER_DEFINES_H
michael@0 7
michael@0 8 #include "sll_lite.h"
michael@0 9 #include "cc_constants.h"
michael@0 10
michael@0 11
michael@0 12 /**
michael@0 13 * In general, when a parser constructs a xml string,
michael@0 14 * it should translate the enum to cooresponding string
michael@0 15 * value that is defined in the accompanied xsd files.
michael@0 16 */
michael@0 17 /**
michael@0 18 * Define the state values
michael@0 19 */
michael@0 20 typedef enum {
michael@0 21 XML_STATE_PARTIAL = 0, //Encode as "partial"
michael@0 22 XML_STATE_FULL //"full"
michael@0 23 } xml_state_t;
michael@0 24
michael@0 25 /**
michael@0 26 * Define the call orientation
michael@0 27 */
michael@0 28 typedef enum {
michael@0 29 XML_CALL_ORIENTATION_UNSPECIFIED = 0,
michael@0 30 XML_CALL_ORIENTATION_TO,
michael@0 31 XML_CALL_ORIENTATION_FROM
michael@0 32 } xml_call_orientation_t;
michael@0 33
michael@0 34 /**
michael@0 35 * Define the call lock status
michael@0 36 */
michael@0 37 typedef enum {
michael@0 38 XML_CALLLOCK_UNLOCKED = 0,
michael@0 39 XML_CALLLOCK_LOCKED,
michael@0 40 XML_CALLLOCK_REMOTE_LOCKED
michael@0 41 } xml_calllock_t;
michael@0 42
michael@0 43 /**
michael@0 44 * Define the direction values
michael@0 45 */
michael@0 46 typedef enum {
michael@0 47 XML_DIRECTION_INITIATOR = 0,
michael@0 48 XML_DIRECTION_RECIPIENT
michael@0 49 } xml_direction_t;
michael@0 50
michael@0 51 /**
michael@0 52 * Define the event values
michael@0 53 */
michael@0 54 typedef enum {
michael@0 55 XML_EVENT_CANCELLED = 0,
michael@0 56 XML_EVENT_REJECTED,
michael@0 57 XML_EVENT_REPLACED,
michael@0 58 XML_EVENT_LOCAL_BYE,
michael@0 59 XML_EVENT_REMOTE_BYE,
michael@0 60 XML_EVENT_ERROR,
michael@0 61 XML_EVENT_TIMEOUT
michael@0 62 } xml_event_t;
michael@0 63
michael@0 64 /**
michael@0 65 * Define the yes or no values
michael@0 66 */
michael@0 67 typedef enum {
michael@0 68 XML_NO = 0,
michael@0 69 XML_YES,
michael@0 70 XML_NONEAPPLICABLE //"na"
michael@0 71 } xml_yes_no_t;
michael@0 72
michael@0 73 /**
michael@0 74 * Define the on or off value
michael@0 75 */
michael@0 76 typedef enum {
michael@0 77 XML_OFF = 0,
michael@0 78 XML_ON
michael@0 79 } xml_on_off_t;
michael@0 80
michael@0 81 /**
michael@0 82 * Define the true or false values
michael@0 83 */
michael@0 84 typedef enum {
michael@0 85 XML_FALSE = 0,
michael@0 86 XML_TRUE
michael@0 87 } xml_true_false_t;
michael@0 88
michael@0 89 /**
michael@0 90 * Define the line key events
michael@0 91 */
michael@0 92 typedef enum {
michael@0 93 XML_LINE_KEY_EVENT_LINE = 0,
michael@0 94 XML_LINE_KEY_EVENT_SPEEDDIAL
michael@0 95 } xml_line_key_event_t;
michael@0 96
michael@0 97 /**
michael@0 98 * Define the persist types
michael@0 99 */
michael@0 100 typedef enum {
michael@0 101 XML_PERSIST_TYPE_ONE_SHOT = 0,
michael@0 102 XML_PERSIST_TYPE_PERSIST,
michael@0 103 XML_PERSIST_TYPE_SINGLE_NOTIFY
michael@0 104 } xml_persist_type_t;
michael@0 105
michael@0 106 /**
michael@0 107 * Define the soft key invoke type
michael@0 108 */
michael@0 109 typedef enum {
michael@0 110 XML_SKEY_INVOKE_EXPLICIT = 0,
michael@0 111 XML_SKEY_NVOKE_IMPLICIT
michael@0 112 } xml_skey_invoke_t;
michael@0 113
michael@0 114 /**
michael@0 115 * Define the soft key event data
michael@0 116 */
michael@0 117 typedef enum {
michael@0 118 XML_SKEY_EVENT_UNDEFINED = 0,
michael@0 119 XML_SKEY_EVENT_REDIAL,
michael@0 120 XML_SKEY_EVENT_NEWCALL,
michael@0 121 XML_SKEY_EVENT_HOLD,
michael@0 122 XML_SKEY_EVENT_TRANSFER,
michael@0 123 XML_SKEY_EVENT_CFWDALL, //5
michael@0 124 XML_SKEY_EVENT_CFWDBUSY,
michael@0 125 XML_SKEY_EVENT_CFWDNOANSWER,
michael@0 126 XML_SKEY_EVENT_BACKSPACE,
michael@0 127 XML_SKEY_EVENT_ENDCALL,
michael@0 128 XML_SKEY_EVENT_RESUME, //10
michael@0 129 XML_SKEY_EVENT_ANSWER,
michael@0 130 XML_SKEY_EVENT_INFO,
michael@0 131 XML_SKEY_EVENT_CONFERENCE,
michael@0 132 XML_SKEY_EVENT_JION, //15
michael@0 133 XML_SKEY_EVENT_REMVOVE_LAST_CONF_PARTICIPANT,
michael@0 134 XML_SKEY_EVENT_DIRECT_XFER,
michael@0 135 XML_SKEY_EVENT_SELECT, //25
michael@0 136 XML_SKEY_EVENT_TRANSFER_TO_VOICE_MAIL,
michael@0 137 XML_SKEY_EVENT_SAC,
michael@0 138 XML_SKEY_EVENT_UNSELECT, //35
michael@0 139 XML_SKEY_EVENT_CANCEL,
michael@0 140 XML_SKEY_EVENT_COPNFERENCE_DETAILS,//40
michael@0 141 XML_SKEY_EVENT_TRASFMG = 65,
michael@0 142 XML_SKEY_EVENT_INTRCPT,
michael@0 143 XML_SKEY_EVENT_SETWTCH,
michael@0 144 XML_SKEY_EVENT_TRNSFVM,
michael@0 145 XML_SKEY_EVENT_TRNSFAS
michael@0 146 } xml_skey_event_code_t;
michael@0 147
michael@0 148 /**
michael@0 149 * Define the map for station sequence mapping
michael@0 150 */
michael@0 151 typedef enum {
michael@0 152 XML_STATION_SEQ_FIRST = 0,
michael@0 153 XML_STATION_SEQ_MORE,
michael@0 154 XML_STATION_SEQ_LAST
michael@0 155 } xml_stataionseq_t;
michael@0 156
michael@0 157 /**
michael@0 158 * Define the hold reasons
michael@0 159 */
michael@0 160 typedef enum {
michael@0 161 XML_HOLD_REASON_NONE = 0,
michael@0 162 XML_HOLD_REASON_TRANSFER,
michael@0 163 XML_HOLD_REASON_CONFERENCE,
michael@0 164 XML_HOLD_REASON_INTERNAL
michael@0 165 } xml_hold_reason_t;
michael@0 166
michael@0 167 /**
michael@0 168 * Define the lamp status
michael@0 169 */
michael@0 170 typedef enum {
michael@0 171 XML_LAMP_STATE_OFF = 0,
michael@0 172 XML_LAMP_STATE_ON,
michael@0 173 XML_LAMP_STATE_BLINK,
michael@0 174 XML_LAMP_STATE_FLASH
michael@0 175 } xml_lamp_state_t;
michael@0 176
michael@0 177 /**
michael@0 178 * Define the lamp type
michael@0 179 */
michael@0 180 typedef enum {
michael@0 181 XML_LAMP_TYPE_LINE = 1,
michael@0 182 XML_LAMP_TYPE_VOICE_MAIL
michael@0 183 } xml_lamp_type_t;
michael@0 184
michael@0 185 /**
michael@0 186 * Define the image down load method
michael@0 187 */
michael@0 188 typedef enum {
michael@0 189 XML_IMAGE_DOWNLOAD_METHOD_TFTP = 1,
michael@0 190 XML_IMAGE_DOWNLAOD_METHOD_HTTP,
michael@0 191 XML_IMAGE_DOWNLOAD_METHOD_PPID
michael@0 192 } xml_image_dl_method_t;
michael@0 193
michael@0 194 /**
michael@0 195 * Define the image download failure reason
michael@0 196 */
michael@0 197 typedef enum {
michael@0 198 XML_IMAGE_DOWNLOAD_FAILURE_REASON_DISKFULL = 1,
michael@0 199 XML_IMAGE_DOWNLOAD_FAILURE_REASON_IMAGE_NOT_AVAILABLE,
michael@0 200 XML_IMAGE_DOWNLOAD_FAILURE_REASON_ACCESS_VIOLATION
michael@0 201 } xml_image_dl_failure_reason_t;
michael@0 202
michael@0 203 typedef signed long xml_signed32;
michael@0 204 typedef unsigned long xml_unsigned32;
michael@0 205 typedef unsigned short xml_unsigned16;
michael@0 206 typedef unsigned char xml_unsigned8;
michael@0 207
michael@0 208 // start of copy from ccsip_eventbodies.h
michael@0 209 typedef struct State {
michael@0 210 xml_signed32 event;
michael@0 211 xml_signed32 code;
michael@0 212 xml_signed32 state;
michael@0 213 } State;
michael@0 214
michael@0 215 typedef struct Replaces {
michael@0 216 char call_id[128];
michael@0 217 char local_tag[64];
michael@0 218 char remote_tag[64];
michael@0 219 } Replaces;
michael@0 220
michael@0 221 typedef struct RefferedBy {
michael@0 222 char display_name[64];
michael@0 223 char uri[64];
michael@0 224 } RefferedBy;
michael@0 225
michael@0 226 typedef struct RouteSet {
michael@0 227 char hop[5][16];
michael@0 228 } RouteSet;
michael@0 229
michael@0 230 typedef struct Identity {
michael@0 231 char display_name[64];
michael@0 232 char uri[64];
michael@0 233 } Identity;
michael@0 234
michael@0 235 typedef struct Param {
michael@0 236 char pname[32];
michael@0 237 char pval[32];
michael@0 238 } Param;
michael@0 239
michael@0 240 typedef struct Target {
michael@0 241 Param param[4];
michael@0 242 char uri[64];
michael@0 243 } Target;
michael@0 244
michael@0 245 typedef struct SessionDescription {
michael@0 246 char type[32];
michael@0 247 } SessionDescription;
michael@0 248
michael@0 249 typedef struct Participant {
michael@0 250 Identity identity;
michael@0 251 Target target;
michael@0 252 SessionDescription session_description;
michael@0 253 xml_unsigned16 cseq;
michael@0 254 } Participant;
michael@0 255
michael@0 256 typedef struct primCall {
michael@0 257 char call_id[128];
michael@0 258 char local_tag[64];
michael@0 259 char remote_tag[64];
michael@0 260 xml_signed32 h_reason;
michael@0 261 } primCall;
michael@0 262
michael@0 263 typedef struct callFeature {
michael@0 264 char cfwdall_set[128];
michael@0 265 char cfwdall_clear[128];
michael@0 266 } callFeature;
michael@0 267
michael@0 268 typedef struct Stream {
michael@0 269 char reverse[16];
michael@0 270 } Stream;
michael@0 271
michael@0 272 typedef struct Regex {
michael@0 273 char regexData[32];
michael@0 274 char tag[32];
michael@0 275 char pre[32];
michael@0 276 } Regex;
michael@0 277
michael@0 278 typedef struct Pattern {
michael@0 279 xml_signed32 flush;
michael@0 280 Regex regex;
michael@0 281 xml_signed32 persist;
michael@0 282 xml_unsigned32 interdigittimer;
michael@0 283 xml_unsigned32 criticaldigittimer;
michael@0 284 xml_unsigned32 extradigittimer;
michael@0 285 xml_unsigned16 longhold;
michael@0 286 xml_unsigned8 longrepeat;
michael@0 287 xml_unsigned8 nopartial;
michael@0 288 char enterkey[8];
michael@0 289 } Pattern;
michael@0 290
michael@0 291 typedef struct KPMLRequest {
michael@0 292 Stream stream;
michael@0 293 Pattern pattern;
michael@0 294 char version[16];
michael@0 295 } KPMLRequest;
michael@0 296
michael@0 297 typedef struct KPMLResponse {
michael@0 298 char version[16];
michael@0 299 char code[16];
michael@0 300 char text[16];
michael@0 301 xml_unsigned8 suppressed;
michael@0 302 char forced_flush[16];
michael@0 303 char digits[16];
michael@0 304 char tag[16];
michael@0 305 } KPMLResponse;
michael@0 306
michael@0 307 typedef struct dialogID {
michael@0 308 char callid[128];
michael@0 309 char localtag[64];
michael@0 310 char remotetag[64];
michael@0 311 } dialogID;
michael@0 312
michael@0 313 typedef struct consultDialogID {
michael@0 314 char callid[128];
michael@0 315 char localtag[64];
michael@0 316 char remotetag[64];
michael@0 317 } consultDialogID;
michael@0 318
michael@0 319 typedef struct joindialogID {
michael@0 320 char callid[128];
michael@0 321 char localtag[64];
michael@0 322 char remotetag[64];
michael@0 323 } joindialogID;
michael@0 324
michael@0 325 typedef struct reg_contact_t {
michael@0 326 char Register[16];
michael@0 327 char Unregister[16];
michael@0 328 xml_unsigned32 line;
michael@0 329 xml_unsigned32 low;
michael@0 330 xml_unsigned32 high;
michael@0 331 xml_signed32 all;
michael@0 332 } reg_contact_t;
michael@0 333
michael@0 334
michael@0 335 typedef struct remotecc {
michael@0 336 char status[16];
michael@0 337 } remotecc;
michael@0 338
michael@0 339 typedef struct combine {
michael@0 340 xml_unsigned16 max_bodies;
michael@0 341 remotecc remotecc;
michael@0 342 char service_control[16];
michael@0 343 } combine;
michael@0 344
michael@0 345 typedef struct dialog {
michael@0 346 char usage[64];
michael@0 347 char unot[16];
michael@0 348 char sub[16];
michael@0 349 } dialog;
michael@0 350
michael@0 351 typedef struct presence {
michael@0 352 char usage[64];
michael@0 353 char unot[16];
michael@0 354 char sub[16];
michael@0 355 } presence;
michael@0 356
michael@0 357 typedef struct voice_msg_t {
michael@0 358 xml_signed32 newCount;
michael@0 359 xml_signed32 oldCount;
michael@0 360 } voice_msg_t;
michael@0 361
michael@0 362 typedef struct voice_msg_hp_t {
michael@0 363 xml_signed32 newCount;
michael@0 364 xml_signed32 oldCount;
michael@0 365 } voice_msg_hp_t;
michael@0 366
michael@0 367 typedef struct fax_msg_t {
michael@0 368 xml_signed32 newCount;
michael@0 369 xml_signed32 oldCount;
michael@0 370 } fax_msg_t;
michael@0 371
michael@0 372 typedef struct fax_msg_hp_t {
michael@0 373 xml_signed32 newCount;
michael@0 374 xml_signed32 oldCount;
michael@0 375 } fax_msg_hp_t;
michael@0 376
michael@0 377 typedef struct emwi_t {
michael@0 378 voice_msg_t voice_msg;
michael@0 379 voice_msg_hp_t voice_msg_hp;
michael@0 380 fax_msg_t fax_msg;
michael@0 381 fax_msg_hp_t fax_msg_hp;
michael@0 382 } emwi_t;
michael@0 383
michael@0 384 typedef struct cfwdallupdate {
michael@0 385 char fwdAddress[256];
michael@0 386 } cfwdallupdate;
michael@0 387
michael@0 388 typedef struct Contact_t {
michael@0 389 xml_unsigned32 line;
michael@0 390 xml_unsigned32 high;
michael@0 391 xml_unsigned32 low;
michael@0 392 xml_signed32 all;
michael@0 393 xml_signed32 mwi;
michael@0 394 emwi_t emwi;
michael@0 395 cfwdallupdate cfwdallupdate;
michael@0 396 } Contact_t;
michael@0 397
michael@0 398 typedef struct dialog_t {
michael@0 399 char usage[64];
michael@0 400 char unot[12];
michael@0 401 char sub[12];
michael@0 402 } dialog_t;
michael@0 403
michael@0 404 typedef struct presence_t {
michael@0 405 char usage[64];
michael@0 406 char unot[12];
michael@0 407 char sub[12];
michael@0 408 } presence_t;
michael@0 409
michael@0 410 typedef struct options_ans_t {
michael@0 411 combine combine;
michael@0 412 dialog_t dialog;
michael@0 413 presence_t presence;
michael@0 414 } options_ans_t;
michael@0 415
michael@0 416 typedef struct PersonStatusStruct {
michael@0 417 char basic[32];
michael@0 418 } PersonStatusStruct;
michael@0 419
michael@0 420 typedef struct ActivitiesStruct {
michael@0 421 char alerting[12];
michael@0 422 char onThePhone[12];
michael@0 423 char busy[12];
michael@0 424 char away[12];
michael@0 425 char meeting[12];
michael@0 426 } ActivitiesStruct;
michael@0 427
michael@0 428 typedef struct PersonStruct {
michael@0 429 char id[256];
michael@0 430 PersonStatusStruct personStatus;
michael@0 431 ActivitiesStruct activities;
michael@0 432 } PersonStruct;
michael@0 433
michael@0 434 typedef struct StatusStruct {
michael@0 435 char basic[32];
michael@0 436 ActivitiesStruct activities;
michael@0 437 } StatusStruct;
michael@0 438
michael@0 439 typedef struct TupleStruct {
michael@0 440 char id[256];
michael@0 441 StatusStruct status;
michael@0 442 char contact[1][256];
michael@0 443 char note[1][1024];
michael@0 444 } TupleStruct;
michael@0 445
michael@0 446 typedef struct PresenceRPIDStruct {
michael@0 447 char entity[256];
michael@0 448 PersonStruct person;
michael@0 449 TupleStruct tuple[1];
michael@0 450 char note[5][1024];
michael@0 451 } PresenceRPIDStruct;
michael@0 452
michael@0 453 typedef struct sipProfile {
michael@0 454 xml_unsigned16 kpml_val;
michael@0 455 } sipProfile;
michael@0 456
michael@0 457 typedef struct ConfigApp_req_data_t {
michael@0 458 sipProfile sip_profile;
michael@0 459 } ConfigApp_req_data_t;
michael@0 460
michael@0 461 typedef struct to_encoder_t {
michael@0 462 xml_unsigned32 picture_fast_update;
michael@0 463 } to_encoder_t;
michael@0 464
michael@0 465 typedef struct vc_primivite_t {
michael@0 466 to_encoder_t to_encoder;
michael@0 467 char stream_id[128];
michael@0 468 } vc_primivite_t;
michael@0 469
michael@0 470 typedef struct Media_Control_t {
michael@0 471 vc_primivite_t vc_primitive;
michael@0 472 char general_error[128];
michael@0 473 } Media_Control_t;
michael@0 474
michael@0 475 // end of copy from ccsip_eventbodies.h
michael@0 476
michael@0 477 typedef struct Presence_ext_t_ {
michael@0 478 PresenceRPIDStruct presence_body;
michael@0 479 /*
michael@0 480 * Some of the tags' mere presence in the rpid document has a meaning. These tags
michael@0 481 * may not contain any value between starting and ending tag. So we need a way to
michael@0 482 * indicate the presence of a tag. We will use the following boolean memeber fields.
michael@0 483 */
michael@0 484 boolean onThePhone;
michael@0 485 boolean busy;
michael@0 486 boolean away;
michael@0 487 boolean meeting;
michael@0 488 boolean alerting;
michael@0 489 } Presence_ext_t;
michael@0 490
michael@0 491
michael@0 492 typedef enum {
michael@0 493 EVENT_DATA_INVALID = 0,
michael@0 494 EVENT_DATA_KPML_REQUEST,
michael@0 495 EVENT_DATA_KPML_RESPONSE,
michael@0 496 EVENT_DATA_REMOTECC_REQUEST,
michael@0 497 EVENT_DATA_PRESENCE,
michael@0 498 EVENT_DATA_DIALOG,
michael@0 499 EVENT_DATA_RAW,
michael@0 500 EVENT_DATA_CONFIGAPP_REQUEST,
michael@0 501 EVENT_DATA_MEDIA_INFO
michael@0 502 } ccsip_event_data_type_e;
michael@0 503
michael@0 504 typedef struct {
michael@0 505 char *data;
michael@0 506 uint32_t length;
michael@0 507 } raw_data_t;
michael@0 508
michael@0 509 typedef struct {
michael@0 510 Media_Control_t media_control;
michael@0 511 uint32_t picture_fast_update;
michael@0 512 } media_control_ext_t;
michael@0 513
michael@0 514 #define TAG_LENGTH 16
michael@0 515 typedef struct {
michael@0 516 char current_method[TAG_LENGTH];
michael@0 517 char hookstate[TAG_LENGTH];
michael@0 518 char presence[TAG_LENGTH];
michael@0 519 } Options_ind_t;
michael@0 520
michael@0 521
michael@0 522
michael@0 523 typedef struct rcc_response_t {
michael@0 524 xml_unsigned16 code;
michael@0 525 char reason[128];
michael@0 526 xml_unsigned32 applicationid;
michael@0 527 xml_unsigned32 transactionid;
michael@0 528 xml_signed32 stationsequence;
michael@0 529 xml_unsigned16 displaypriority;
michael@0 530 xml_unsigned16 appinstance;
michael@0 531 xml_unsigned16 linenumber;
michael@0 532 xml_unsigned32 routingid;
michael@0 533 xml_unsigned32 confid;
michael@0 534 char callID[128];
michael@0 535 options_ans_t options_ind;
michael@0 536 } rcc_response_t;
michael@0 537
michael@0 538 typedef enum {
michael@0 539 RCC_NULL_REQ = 0,
michael@0 540 RCC_INITCALL_REQ = 1,
michael@0 541 RCC_MONITORCALL_REQ,
michael@0 542 RCC_DIALCALL_REQ,
michael@0 543 RCC_DIALDTMF_REQ,
michael@0 544 RCC_ANSCALL_REQ,
michael@0 545 RCC_DISCCALL_REQ,
michael@0 546 RCC_XFERSETUP_REQ,
michael@0 547 RCC_XFERCOMPLETE_REQ,
michael@0 548 RCC_CONFSETUP_REQ,
michael@0 549 RCC_CONFCOMPLETE_REQ,
michael@0 550 RCC_HOLD_REQ,
michael@0 551 RCC_HOLDRETRIEVE_REQ,
michael@0 552 RCC_DATAPASSTHROUGH_REQ,
michael@0 553 RCC_CFWDALL_REQ,
michael@0 554 RCC_LINEKEY_EVT,
michael@0 555 RCC_STATUS_UPDATE_REQ,
michael@0 556 RCC_SET_IDLE_STATUS_PROMPT_REQ,
michael@0 557 RCC_PLAY_TONE_REQ,
michael@0 558 RCC_STOP_TONE_REQ,
michael@0 559 RCC_CALL_SELECT_REQ,
michael@0 560 RCC_SOFTKEY_EVT,
michael@0 561 RCC_LINE_RINGER_SET_REQ,
michael@0 562 RCC_HOLD_REVERSION_REQ,
michael@0 563 RCC_LAMP_CONTROL_REQ,
michael@0 564 RCC_LINEKEY_UPDATE,
michael@0 565 RCC_BULKREGISTER_REQ,
michael@0 566 RCC_OPTIONS_IND,
michael@0 567 RCC_BULK_UPDATE,
michael@0 568 RCC_CALL_JOIN_REQ,
michael@0 569 RCC_NOTIFY_REQ,
michael@0 570 RCC_MONITOR_UPDATE_REQ,
michael@0 571 RCC_MAX_REQ
michael@0 572 } rcc_request_type_t;
michael@0 573
michael@0 574 typedef struct rcc_softkey_event_msg_t {
michael@0 575 xml_signed32 softkeyevent;
michael@0 576 dialogID dialogid;
michael@0 577 xml_unsigned16 linenumber;
michael@0 578 xml_unsigned16 participantnum;
michael@0 579 dialogID consultdialogid;
michael@0 580 xml_unsigned8 state;
michael@0 581 dialogID joindialogid;
michael@0 582 //eventData eventdata;
michael@0 583 char userdata[32];
michael@0 584 xml_unsigned16 soktkeyid;
michael@0 585 xml_unsigned16 applicationid;
michael@0 586 } rcc_softkey_event_msg_t;
michael@0 587
michael@0 588
michael@0 589 typedef struct RCC_req_data {
michael@0 590 rcc_softkey_event_msg_t rcc_softkey_event_msg;
michael@0 591 } RCC_req_data;
michael@0 592
michael@0 593 typedef struct rcc_int_t_ {
michael@0 594 RCC_req_data rcc_int;
michael@0 595 // User added fields
michael@0 596 xml_unsigned8 iterations;
michael@0 597 cc_lineid_t line;
michael@0 598 cc_callid_t gsm_id;
michael@0 599 cc_callid_t consult_gsm_id;
michael@0 600 cc_callid_t join_gsm_id;
michael@0 601 rcc_request_type_t rcc_request_type;
michael@0 602 } RCC_data;
michael@0 603
michael@0 604
michael@0 605 // Data for event generation
michael@0 606 typedef struct ccsip_event_data_t_ {
michael@0 607 struct ccsip_event_data_t_ *next;
michael@0 608 ccsip_event_data_type_e type;
michael@0 609 union {
michael@0 610 KPMLResponse kpml_response;
michael@0 611 KPMLRequest kpml_request;
michael@0 612 RCC_data remotecc_data;
michael@0 613 rcc_response_t remotecc_data_response;
michael@0 614 Options_ind_t options_ind;
michael@0 615 Presence_ext_t presence_rpid;
michael@0 616 raw_data_t raw_data; // used for cmxml and other body types
michael@0 617 ConfigApp_req_data_t configapp_data;
michael@0 618 media_control_ext_t media_control_data;
michael@0 619 } u;
michael@0 620 } ccsip_event_data_t;
michael@0 621
michael@0 622
michael@0 623 /**
michael@0 624 * Request to allocate memory for external xml parser
michael@0 625 * @param [in] size ofrequested memory
michael@0 626 * @return pointer to memory allocated.
michael@0 627 */
michael@0 628 void *ccAllocXML(cc_size_t size);
michael@0 629
michael@0 630 /**
michael@0 631 * Free xml memory
michael@0 632 * @param [in] mem - memory to free
michael@0 633 * @return void
michael@0 634 */
michael@0 635 void ccFreeXML(void *mem);
michael@0 636 #endif

mercurial