Thu, 15 Jan 2015 15:59:08 +0100
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 |