extensions.ael 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. macro endsess()
  2. {
  3. NoOp(hithere);
  4. }
  5. macro nullchk(type)
  6. {
  7. NoOp(${type} is this);
  8. }
  9. macro endcall(type) {
  10. switch(${type}) {
  11. case out:
  12. &nullchk(callid);
  13. if(${testnotnull}) {
  14. &endsess();
  15. goto ptr1 ; // <-- goto call to valid label
  16. }
  17. else {
  18. ptr1: // <-- valid label
  19. Softhangup(${CHANNEL});
  20. break ;
  21. }
  22. Noop(esac) ;
  23. }
  24. }
  25. macro endcall2(type) {
  26. switch(${type}) {
  27. case out:
  28. &nullchk(callid);
  29. if(${testnotnull}) {
  30. &endsess();
  31. goto ptr1 ; // <-- goto call to valid label
  32. }
  33. case out2:
  34. {
  35. ptr1: // <-- valid label
  36. Softhangup(${CHANNEL});
  37. break ;
  38. }
  39. Noop(esac) ;
  40. }
  41. }
  42. macro endcall3(type) {
  43. switch(${type}) {
  44. case out:
  45. &nullchk(callid);
  46. if(${testnotnull}) {
  47. &endsess();
  48. goto ptr1 ; // <-- goto call to valid label
  49. }
  50. Noop(esac) ;
  51. }
  52. if(${testnotnull}) {
  53. goto ptr1;
  54. }
  55. switch(${type}) {
  56. case out:
  57. if(${testnotnull}) {
  58. ptr1: // <-- valid label
  59. Softhangup(${CHANNEL});
  60. break ;
  61. }
  62. Noop(esac) ;
  63. }
  64. }
  65. macro endcall4(type) {
  66. switch(${type}) {
  67. case out:
  68. &nullchk(callid);
  69. if(${testnotnull}) {
  70. &endsess();
  71. goto ptr1 ; // <-- goto call to valid label
  72. }
  73. Noop(esac) ;
  74. }
  75. if(${testnotnull}) {
  76. goto ptr1;
  77. }
  78. switch(${type}) {
  79. case out:
  80. switch(${type})
  81. {
  82. case in:
  83. if(${testnotnull}) {
  84. ptr1: // <-- valid label
  85. Softhangup(${CHANNEL});
  86. break ;
  87. }
  88. Noop(esac) ;
  89. }
  90. }
  91. }
  92. macro endcall5(type) {
  93. switch(${type}) {
  94. case out:
  95. &nullchk(callid);
  96. if(${testnotnull}) {
  97. &endsess();
  98. goto ptr1 ; // <-- goto call to valid label
  99. }
  100. case in:
  101. &nullchk(callid);
  102. ptr2:
  103. if(${testnotnull}) {
  104. &endsess();
  105. goto ptr1 ; // <-- goto call to valid label
  106. }
  107. Noop(esac) ;
  108. }
  109. if(${testnotnull}) {
  110. goto ptr1;
  111. }
  112. switch(${type}) {
  113. case out:
  114. switch(${type})
  115. {
  116. case in:
  117. if(${testnotnull}) {
  118. ptr1: // <-- valid label
  119. Softhangup(${CHANNEL});
  120. break ;
  121. }
  122. Noop(esac) ;
  123. }
  124. }
  125. }