Kannel: Open Source WAP and SMS gateway  svn-r5335
wap_events.def
Go to the documentation of this file.
1 /* ====================================================================
2  * The Kannel Software License, Version 1.0
3  *
4  * Copyright (c) 2001-2018 Kannel Group
5  * Copyright (c) 1998-2001 WapIT Ltd.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Kannel Group (http://www.kannel.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Kannel" and "Kannel Group" must not be used to
28  * endorse or promote products derived from this software without
29  * prior written permission. For written permission, please
30  * contact org@kannel.org.
31  *
32  * 5. Products derived from this software may not be called "Kannel",
33  * nor may "Kannel" appear in their name, without prior written
34  * permission of the Kannel Group.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
40  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
41  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
42  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
43  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
44  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
45  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Kannel Group. For more information on
51  * the Kannel Group, please see <http://www.kannel.org/>.
52  *
53  * Portions of this software are based upon software originally written at
54  * WapIT Ltd., Helsinki, Finland for the Kannel project.
55  */
56 
57 /*
58  * wap_events.def - definitions for wapbox events
59  *
60  * This file uses a pre-processor trick to define the structure of
61  * structures. See the documentation.
62  *
63  * Fields of type HTTPHEADER, CAPABILITIES, and OPTIONAL_OCTSTR may
64  * be NULL. All other fields must be filled in, unless they are
65  * otherwise marked.
66  *
67  * Fields described in the appropriate spec are listed first. Fields
68  * specific to Kannel are introduced with an empty line. In some events,
69  * we have combined fields to form an "address tuple" (see wap_addr.h).
70  *
71  * Aarno Syvänen
72  * Lars Wirzenius
73  */
74 
75 
76 
77 /* WTLS material - make sure the addr_tuple comes first! */
78 
79 #ifdef HAVE_WTLS_OPENSSL
80 WAPEVENT(T_Unitdata_Ind, "T-Unitdata.ind",
81  ADDRTUPLE(addr_tuple)
82  WTLSPDUS(pdu_list)
83  )
84 
85 WAPEVENT(SEC_Create_Ind, "SEC-Create.ind",
86  ADDRTUPLE(addr_tuple)
87  )
88 
89 WAPEVENT(SEC_Create_Request_Req, "SEC-Create.req",
90  ADDRTUPLE(addr_tuple)
91  )
92 
93 WAPEVENT(SEC_Terminate_Req, "SEC-Terminate.req",
94  ADDRTUPLE(addr_tuple)
95  INTEGER(alert_level)
96  INTEGER(alert_desc)
97  )
98 
99 WAPEVENT(SEC_Exception_Req, "SEC-Exception.req",
100  ADDRTUPLE(addr_tuple)
101  INTEGER(alert_level)
102  INTEGER(alert_desc)
103  )
104 
105 WAPEVENT(SEC_Create_Res, "SEC-Create.res",
106  ADDRTUPLE(addr_tuple)
107  INTEGER(client_key_id)
108  INTEGER(bulk_cipher_algo)
109  INTEGER(mac_algo)
110  INTEGER(snmode)
111  INTEGER(krefresh)
112  )
113 
114 WAPEVENT(SEC_Exchange_Req, "SEC-Exchange.req",
115  ADDRTUPLE(addr_tuple)
116  )
117 
118 WAPEVENT(SEC_Commit_Req, "SEC-Commit.req",
119  ADDRTUPLE(addr_tuple)
120  )
121 
122 WAPEVENT(SEC_Unitdata_Req, "SEC-Unidata.req",
123  ADDRTUPLE(addr_tuple)
124  OCTSTR(user_data)
125  )
126 #endif /* HAVE_WTLS_OPENSSL */
127 
128 /*
129  * Transport layer (WDP)
130  */
131 
132 WAPEVENT(T_DUnitdata_Req, "T-DUnitdata.req",
133  ADDRTUPLE(addr_tuple)
134  OCTSTR(user_data)
135 
136  INTEGER(address_type)
137  OPTIONAL_OCTSTR(smsc_id)
138  INTEGER(dlr_mask)
139  OPTIONAL_OCTSTR(dlr_url)
140  OPTIONAL_OCTSTR(smsbox_id)
141  OPTIONAL_OCTSTR(service_name)
142  )
143 
144 WAPEVENT(T_DUnitdata_Ind, "T-DUnitdata.ind",
145  ADDRTUPLE(addr_tuple)
146  OCTSTR(user_data)
147  )
148 
149 /*
150  * Transaction layer (WTP)
151  */
152 
153 WAPEVENT(TR_Invoke_Req, "TR-Invoke.req",
154  ADDRTUPLE(addr_tuple)
155  INTEGER(up_flag)
156  OCTSTR(user_data)
157  INTEGER(tcl)
158  INTEGER(handle)
159  )
160 
161 WAPEVENT(TR_Invoke_Ind, "TR-Invoke.ind",
162  INTEGER(ack_type)
163  OCTSTR(user_data)
164  INTEGER(tcl)
165  ADDRTUPLE(addr_tuple)
166  INTEGER(handle)
167  )
168 
169 WAPEVENT(TR_Invoke_Res, "TR-Invoke.res",
170  INTEGER(handle)
171  )
172 
173 WAPEVENT(TR_Invoke_Cnf, "TR-Invoke.cnf",
174  INTEGER(handle)
175 
176  ADDRTUPLE(addr_tuple)
177  )
178 
179 WAPEVENT(TR_Result_Req, "TR-Result.req",
180  OCTSTR(user_data)
181  INTEGER(handle)
182  )
183 
184 WAPEVENT(TR_Result_Cnf, "TR-Result.cnf",
185  INTEGER(handle)
186 
187  ADDRTUPLE(addr_tuple)
188  )
189 
190 WAPEVENT(TR_Abort_Req, "TR-Abort.req",
191  INTEGER(abort_type)
192  INTEGER(abort_reason)
193  INTEGER(handle)
194  )
195 
196 WAPEVENT(TR_Abort_Ind, "TR-Abort.ind",
197  INTEGER(abort_code)
198  INTEGER(handle)
199 
200  ADDRTUPLE(addr_tuple)
201  INTEGER(ir_flag) /* Are we an initiator or a responder */
202  )
203 
204 /*
205  * Session layer (WSP), server side
206  * These events use the session id as a handle.
207  */
208 
209 WAPEVENT(S_Connect_Ind, "S-Connect.ind",
210  ADDRTUPLE(addr_tuple)
211  HTTPHEADER(client_headers)
212  CAPABILITIES(requested_capabilities)
213 
214  INTEGER(session_id)
215  )
216 
217 WAPEVENT(S_Connect_Res, "S-Connect.res",
218  HTTPHEADER(server_headers)
219  CAPABILITIES(negotiated_capabilities)
220 
221  INTEGER(session_id)
222  )
223 
224 WAPEVENT(S_Suspend_Ind, "S-Suspend.ind",
225  INTEGER(reason)
226 
227  INTEGER(session_id)
228  )
229 
230 WAPEVENT(S_Resume_Ind, "S-Resume.ind",
231  ADDRTUPLE(addr_tuple)
232  HTTPHEADER(client_headers)
233 
234  INTEGER(session_id)
235  )
236 
237 WAPEVENT(S_Resume_Res, "S-Resume.res",
238  HTTPHEADER(server_headers)
239 
240  INTEGER(session_id)
241  )
242 
243 /*
244  * Session layer (WSP), client side
245  */
246 
247 WAPEVENT(S_Connect_Req, "S-Connect.req",
248  ADDRTUPLE(addr_tuple)
249  HTTPHEADER(client_headers)
250  CAPABILITIES(requested_capabilities)
251 
252  INTEGER(session_handle)
253  )
254 
255 WAPEVENT(S_Suspend_Req, "S-Suspend.req",
256 
257  INTEGER(session_handle)
258  )
259 
260 WAPEVENT(S_Resume_Req, "S-Resume.req",
261  ADDRTUPLE(addr_tuple)
262  HTTPHEADER(client_headers)
263 
264  INTEGER(session_handle)
265  )
266 
267 WAPEVENT(S_Resume_Cnf, "S-Resume.cnf",
268  HTTPHEADER(server_headers)
269 
270  INTEGER(session_handle)
271  )
272 
273 /*
274  * Session layer (WSP), events shared between server and client side
275  * On the server side, the "handle" field is always the session id.
276  */
277 
278 WAPEVENT(S_Disconnect_Req, "S-Disconnect.req",
279  INTEGER(reason_code)
280  INTEGER(redirect_security) /* Only meaningful if redirecting */
281  INTEGER(redirect_addresses) /* FIXME: Wrong type, not used */
282  OPTIONAL_OCTSTR(error_headers)
283  OPTIONAL_OCTSTR(error_body)
284 
285  INTEGER(session_handle)
286  )
287 
288 WAPEVENT(S_Disconnect_Ind, "S-Disconnect.ind",
289  INTEGER(reason_code)
290  INTEGER(redirect_security) /* Only meaningful if redirecting */
291  INTEGER(redirect_addresses) /* FIXME: Wrong type, not used */
292  OPTIONAL_OCTSTR(error_headers)
293  OPTIONAL_OCTSTR(error_body)
294 
295  INTEGER(session_handle)
296  )
297 
298 /*
299  * Pseudo-events used by session layer
300  */
301 
302 WAPEVENT(Disconnect_Event, "Disconnect",
303 
304  INTEGER(session_handle)
305  )
306 
307 WAPEVENT(Suspend_Event, "Suspend",
308 
309  INTEGER(session_handle)
310  )
311 
312 WAPEVENT(Release_Event, "Release",
313 
314  INTEGER(dummy)
315  )
316 
317 WAPEVENT(Abort_Event, "Abort",
318  INTEGER(reason)
319  )
320 
321 /*
322  * Per-method events for session layer, server side
323  */
324 
325 WAPEVENT(S_MethodInvoke_Ind, "S-MethodInvoke.ind",
326  INTEGER(server_transaction_id)
327  OCTSTR(method) /* All caps */
328  OCTSTR(request_uri)
329  HTTPHEADER(request_headers)
330  OPTIONAL_OCTSTR(request_body)
331 
332  HTTPHEADER(session_headers)
333  ADDRTUPLE(addr_tuple)
334  INTEGER(client_SDU_size)
335  INTEGER(session_id)
336  )
337 
338 WAPEVENT(S_MethodInvoke_Res, "S-MethodInvoke.res",
339  INTEGER(server_transaction_id)
340 
341  INTEGER(session_id)
342  )
343 
344 WAPEVENT(S_MethodResult_Req, "S-MethodResult.req",
345  INTEGER(server_transaction_id)
346  INTEGER(status)
347  HTTPHEADER(response_headers)
348  OPTIONAL_OCTSTR(response_body)
349 
350  INTEGER(session_id)
351  )
352 
353 WAPEVENT(S_MethodResult_Cnf, "S-MethodResult.cnf",
354  INTEGER(server_transaction_id)
355 
356  INTEGER(session_id)
357  )
358 
359 /*
360  * Per-method events for session layer, client side
361  */
362 
363 WAPEVENT(S_MethodInvoke_Req, "S-MethodInvoke.req",
364  INTEGER(client_transaction_id)
365  OCTSTR(method)
366  OCTSTR(request_uri)
367  HTTPHEADER(request_headers)
368  OPTIONAL_OCTSTR(request_body)
369 
370  INTEGER(session_handle)
371  )
372 
373 WAPEVENT(S_MethodInvoke_Cnf, "S-MethodInvoke.cnf",
374  INTEGER(client_transaction_id)
375 
376  INTEGER(session_handle)
377  )
378 
379 WAPEVENT(S_MethodResult_Ind, "S-MethodResult.ind",
380  INTEGER(client_transaction_id)
381  INTEGER(status)
382  HTTPHEADER(response_headers)
383  OPTIONAL_OCTSTR(response_body)
384 
385  INTEGER(session_handle)
386  )
387 
388 WAPEVENT(S_MethodResult_Res, "S-MethodResult.res",
389  INTEGER(client_transaction_id)
390 
391  INTEGER(session_handle)
392  )
393 
394 /*
395  * Per-method events used by the session layer
396  * These events are used by both client and server side.
397  */
398 
399 WAPEVENT(S_MethodAbort_Req, "S-MethodAbort.req",
400  INTEGER(transaction_id)
401 
402  INTEGER(session_handle)
403  )
404 
405 WAPEVENT(S_MethodAbort_Ind, "S-MethodAbort.ind",
406  INTEGER(transaction_id)
407  INTEGER(reason)
408 
409  INTEGER(session_handle)
410  )
411 
412 /*
413  * Per-push events used by the session layer
414  */
415 
416 WAPEVENT(S_Push_Req, "S-Push.req",
417  HTTPHEADER(push_headers)
418  OPTIONAL_OCTSTR(push_body)
419 
420  INTEGER(session_id)
421  )
422 
423 WAPEVENT(S_Push_Ind, "S-Push.ind",
424  HTTPHEADER(push_headers)
425  OPTIONAL_OCTSTR(push_body)
426 
427  INTEGER(session_handle)
428  HTTPHEADER(session_headers)
429  )
430 
431 WAPEVENT(S_ConfirmedPush_Req, "S-ConfirmedPush.req",
432  INTEGER(server_push_id)
433  HTTPHEADER(push_headers)
434  OPTIONAL_OCTSTR(push_body)
435 
436  INTEGER(session_id)
437  )
438 
439 WAPEVENT(S_ConfirmedPush_Ind, "S-ConfirmedPush.ind",
440  INTEGER(client_push_id)
441  HTTPHEADER(push_headers)
442  OPTIONAL_OCTSTR(push_body)
443 
444  INTEGER(session_handle)
445  )
446 
447 WAPEVENT(S_ConfirmedPush_Res, "S-ConfirmedPush.res",
448  INTEGER(client_push_id)
449 
450  INTEGER(session_handle)
451  )
452 
453 WAPEVENT(S_ConfirmedPush_Cnf, "S-ConfirmedPush.cnf",
454  INTEGER(server_push_id)
455 
456  INTEGER(session_id)
457  )
458 
459 WAPEVENT(S_PushAbort_Ind, "S-PushAbort.ind",
460  INTEGER(push_id)
461  INTEGER(reason)
462 
463  INTEGER(session_id)
464  )
465 
466 /*
467  * The specification of S-PushAbort seems to assume that only the
468  * client can issue an S-PushAbort.req, and only the server can get
469  * an S-PushAbort.ind. This is contradicted by the state tables.
470  * That's why the definitions here use just "push_id" instead of
471  * server_push_id and client_push_id.
472  */
473 
474 WAPEVENT(S_PushAbort_Req, "S-PushAbort.req",
475  INTEGER(push_id)
476  INTEGER(reason)
477 
478  INTEGER(session_handle)
479  )
480 
481 WAPEVENT(Push_Abort, "Internal abort",
482  INTEGER(reason)
483  )
484 
485 /*
486  * Events created by unpacking T-DUnitdata.ind events.
487  * Used by WTP layer.
488  */
489 
490 WAPEVENT(RcvInvoke, "RcvInvoke",
491  OCTSTR(user_data)
492  INTEGER(tcl)
493  INTEGER(tid)
494  INTEGER(tid_new)
495  INTEGER(rid)
496  INTEGER(up_flag)
497  INTEGER(no_cache_supported)
498  INTEGER(version)
499  INTEGER(gtr)
500  INTEGER(ttr)
501  ADDRTUPLE(addr_tuple)
502  )
503 
504 WAPEVENT(RcvSegInvoke, "RcvSegInvoke",
505  OCTSTR(user_data)
506  INTEGER(tid)
507  INTEGER(rid)
508  INTEGER(no_cache_supported)
509  INTEGER(gtr)
510  INTEGER(ttr)
511  INTEGER(psn)
512  ADDRTUPLE(addr_tuple)
513  )
514 
515 WAPEVENT(RcvResult, "RcvResult",
516  OCTSTR(user_data)
517  INTEGER(tid)
518  INTEGER(rid)
519  INTEGER(gtr)
520  INTEGER(ttr)
521  ADDRTUPLE(addr_tuple)
522  )
523 
524 WAPEVENT(RcvAbort, "RcvAbort",
525  INTEGER(tid)
526  INTEGER(abort_type)
527  INTEGER(abort_reason)
528  ADDRTUPLE(addr_tuple)
529  )
530 
531 WAPEVENT(RcvAck, "RcvAck",
532  INTEGER(tid)
533  INTEGER(tid_ok)
534  INTEGER(rid)
535  INTEGER(psn)
536  ADDRTUPLE(addr_tuple)
537  )
538 
539 WAPEVENT(RcvNegativeAck, "RcvNack",
540  INTEGER(tid)
541  INTEGER(rid)
542  INTEGER(nmissing)
543  OPTIONAL_OCTSTR(missing)
544  ADDRTUPLE(addr_tuple)
545  )
546 
547 /*
548  * Other events used by WTP layer.
549  */
550 
551 WAPEVENT(TimerTO_A, "Timeout-A",
552  INTEGER(handle)
553  )
554 
555 WAPEVENT(TimerTO_R, "Timeout-R",
556  INTEGER(handle)
557  )
558 
559 WAPEVENT(TimerTO_W, "Timeout-W",
560  INTEGER(handle)
561  )
562 
563 WAPEVENT(RcvErrorPDU, "RcvErrorPDU",
564  INTEGER(tid)
565  ADDRTUPLE(addr_tuple)
566  )
567 
568 /*
569  * Events used by connectionless session protocol (WSP)
570  */
571 
572 WAPEVENT(S_Unit_MethodInvoke_Req, "S-Unit-MethodInvoke.req",
573  ADDRTUPLE(addr_tuple)
574  INTEGER(transaction_id)
575  OCTSTR(method)
576  OCTSTR(request_uri)
577  HTTPHEADER(request_headers)
578  OPTIONAL_OCTSTR(request_body)
579  )
580 
581 WAPEVENT(S_Unit_MethodInvoke_Ind, "S-Unit_MethodInvoke.ind",
582  ADDRTUPLE(addr_tuple)
583  INTEGER(transaction_id)
584  OCTSTR(method) /* All caps */
585  OCTSTR(request_uri)
586  HTTPHEADER(request_headers)
587  OPTIONAL_OCTSTR(request_body)
588  )
589 
590 WAPEVENT(S_Unit_MethodResult_Req, "S-Unit-MethodResult.req",
591  ADDRTUPLE(addr_tuple)
592  INTEGER(transaction_id)
593  INTEGER(status)
594  HTTPHEADER(response_headers)
595  OPTIONAL_OCTSTR(response_body)
596  )
597 
598 WAPEVENT(S_Unit_MethodResult_Ind, "S-Unit-MethodResult.ind",
599  ADDRTUPLE(addr_tuple)
600  INTEGER(transaction_id)
601  INTEGER(status)
602  HTTPHEADER(response_headers)
603  OPTIONAL_OCTSTR(response_body)
604  )
605 
606 WAPEVENT(S_Unit_Push_Req, "S-Unit-Push.req",
607  ADDRTUPLE(addr_tuple)
608  INTEGER(push_id)
609  HTTPHEADER(push_headers)
610  OPTIONAL_OCTSTR(push_body)
611 
612  INTEGER(address_type)
613  OPTIONAL_OCTSTR(smsc_id)
614  INTEGER(dlr_mask)
615  OPTIONAL_OCTSTR(dlr_url)
616  OPTIONAL_OCTSTR(smsbox_id)
617  OPTIONAL_OCTSTR(service_name)
618  )
619 
620 WAPEVENT(S_Unit_Push_Ind, "S-Unit-Push.ind",
621  ADDRTUPLE(addr_tuple)
622  INTEGER(push_id)
623  HTTPHEADER(push_headers)
624  OPTIONAL_OCTSTR(push_body)
625  )
626 
627 /*
628  * Events used by push OTA protocol, server side
629  */
630 
631 WAPEVENT(Pom_SessionRequest_Req, "Pom-SessionRequest.req",
632  ADDRTUPLE(addr_tuple)
633  HTTPHEADER(push_headers)
634 
635  INTEGER(push_id)
636  INTEGER(address_type)
637  OPTIONAL_OCTSTR(smsc_id)
638  INTEGER(dlr_mask)
639  OPTIONAL_OCTSTR(dlr_url)
640  OPTIONAL_OCTSTR(smsbox_id)
641  OPTIONAL_OCTSTR(service_name)
642  )
643 
644 WAPEVENT(Pom_Connect_Ind, "Pom-Connect.ind",
645  ADDRTUPLE(addr_tuple)
646  HTTPHEADER(push_headers)
647  CAPABILITIES(requested_capabilities)
648  HTTPHEADER(accept_application)
649  HTTPHEADER(bearer_indication)
650 
651  INTEGER(session_id)
652  INTEGER(push_id)
653  )
654 
655 WAPEVENT(Pom_Connect_Res, "Pom-Connect.res",
656  CAPABILITIES(negotiated_capabilities)
657 
658  INTEGER(session_id)
659  )
660 
661 WAPEVENT(Pom_Disconnect_Ind, "Pom-Disconnect.ind",
662  INTEGER(reason_code)
663  INTEGER(redirect_security) /* Only meaningful if redirecting*/
664  INTEGER(redirect_addresses) /* FIXME: Wrong type, not used */
665  OPTIONAL_OCTSTR(error_headers)
666  OPTIONAL_OCTSTR(error_body)
667 
668  INTEGER(session_handle)
669  )
670 
671 WAPEVENT(Pom_Suspend_Ind, "Pom-Suspend.ind",
672  INTEGER(reason)
673 
674  INTEGER(session_id)
675  )
676 
677 WAPEVENT(Pom_Resume_Ind, "Pom-Resume.ind",
678  ADDRTUPLE(addr_tuple)
679  HTTPHEADER(client_headers)
680  HTTPHEADER(bearer_indication)
681 
682  INTEGER(session_id)
683  )
684 
685 WAPEVENT(Po_Push_Req, "Po-Push.req",
686  HTTPHEADER(push_headers)
687  INTEGER(authenticated)
688  INTEGER(trusted)
689  INTEGER(last)
690  OPTIONAL_OCTSTR(push_body)
691 
692  INTEGER(session_handle)
693  )
694 
695 WAPEVENT(Po_ConfirmedPush_Req, "Po-ConfirmedPush.req",
696  INTEGER(server_push_id)
697  HTTPHEADER(push_headers)
698  INTEGER(authenticated)
699  INTEGER(trusted)
700  INTEGER(last)
701  OPTIONAL_OCTSTR(push_body)
702 
703  INTEGER(session_handle)
704  )
705 
706 WAPEVENT(Po_ConfirmedPush_Cnf, "Po-ConfirmedPush.Cnf",
707  INTEGER(server_push_id)
708 
709  INTEGER(session_handle)
710  )
711 
712 WAPEVENT(Po_Unit_Push_Req, "Po-Unit-Push.req",
713  ADDRTUPLE(addr_tuple)
714  INTEGER(push_id)
715  HTTPHEADER(push_headers)
716  INTEGER(authenticated)
717  INTEGER(trusted)
718  INTEGER(last)
719  OPTIONAL_OCTSTR(push_body)
720 
721  INTEGER(address_type)
722  OPTIONAL_OCTSTR(smsc_id)
723  INTEGER(dlr_mask)
724  OPTIONAL_OCTSTR(dlr_url)
725  OPTIONAL_OCTSTR(smsbox_id)
726  OPTIONAL_OCTSTR(service_name)
727  )
728 
729 WAPEVENT(Po_PushAbort_Req, "Po-PushAbort.req",
730  INTEGER(push_id)
731  INTEGER(reason)
732 
733  INTEGER(session_id)
734  )
735 
736 WAPEVENT(Po_PushAbort_Ind, "Po-PushAbort.ind",
737  INTEGER(push_id)
738  INTEGER(reason)
739 
740  INTEGER(session_handle)
741  )
742 
743 /*
744  * Following events are used communicating between PPG main module (implement-
745  * ing main logic of PPG) and PAP module. These are defined in Push Access
746  * Protocol, chapter 9.
747  * Note here is one address, one group of push headers, one push body and one
748  * group of capabilities. We should use list of address_values for multiple
749  * addresses (optional) and Lists of push headers, push data and capabilities
750  * for multipart (non-nested mandatory).
751  * Note, too, that we do not yet support multiple addresses.
752  * Optional fields, if PAP control message originally does not contain one,
753  * should be set NULL, and mandatory fields non-NULL.
754  */
755 
756 WAPEVENT(Push_Message, "push-message",
757  OCTSTR(pi_push_id)
758  OPTIONAL_OCTSTR(deliver_before_timestamp) /* using PAP format */
759  OPTIONAL_OCTSTR(deliver_after_timestamp) /* ditto */
760  OPTIONAL_OCTSTR(source_reference)
761  OPTIONAL_OCTSTR(ppg_notify_requested_to)
762  INTEGER(progress_notes_requested)
763  OCTSTR(address_value) /* as parsed PAP */
764  INTEGER(address_type)
765  INTEGER(priority)
766  INTEGER(delivery_method)
767  OPTIONAL_OCTSTR(network)
768  INTEGER(network_required)
769  OPTIONAL_OCTSTR(bearer)
770  INTEGER(bearer_required)
771  HTTPHEADER(push_headers)
772  OPTIONAL_OCTSTR(push_data)
773  CAPABILITIES(pi_capabilities)
774  OPTIONAL_OCTSTR(smsc_id)
775  INTEGER(dlr_mask)
776  OPTIONAL_OCTSTR(dlr_url)
777  OPTIONAL_OCTSTR(smsbox_id)
778  OPTIONAL_OCTSTR(service_name)
779  OPTIONAL_OCTSTR(product_name)
780 )
781 
782 /*
783  * Push response element indicates that there will be no more progress notes,
784  * see Push Access Protocol, 9.3.2.
785  */
786 WAPEVENT(Push_Response, "push-response",
787  OCTSTR(pi_push_id)
788  OPTIONAL_OCTSTR(sender_name)
789  OPTIONAL_OCTSTR(reply_time)
790  OPTIONAL_OCTSTR(sender_address)
791  INTEGER(code)
792  OPTIONAL_OCTSTR(desc)
793  OPTIONAL_OCTSTR(product_name)
794  )
795 
796 /*
797  * This is for debugging PIs. One note per stage. See Push Access Protocol,
798  * 9.3.1.PPG main module sends these separately to PAP.
799  */
800 WAPEVENT(Progress_Note, "progress-note",
801  INTEGER(stage)
802  OPTIONAL_OCTSTR(note)
803  OPTIONAL_OCTSTR(time)
804 )
805 
806 /*
807  * Element bad-message-response is defined in PAP, Implementation Note,
808  * chapter 5.
809  */
810 WAPEVENT(Bad_Message_Response, "badmessage-response",
811  INTEGER(code)
812  OPTIONAL_OCTSTR(desc)
813  OPTIONAL_OCTSTR(bad_message_fragment)
814 )
815 
816 #undef WAPEVENT
817 #undef OCTSTR
818 #undef OPTIONAL_OCTSTR
819 #undef INTEGER
820 #undef WTLSPDUS
821 #undef HTTPHEADER
822 #undef ADDRTUPLE
823 #undef CAPABILITIES
824 
825 
826 
827 
828 
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.