pv_core.h 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. /*
  2. * $Id$
  3. *
  4. * Copyright (C) 2001-2005 FhG Fokus
  5. * Copyright (C) 2008 Daniel-Constantin Mierla (asipto.com)
  6. *
  7. * This file is part of Kamailio, a free SIP server.
  8. *
  9. * Kamailio is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License as published by
  11. * the Free Software Foundation; either version 2 of the License, or
  12. * (at your option) any later version
  13. *
  14. * Kamailio is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this program; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  22. */
  23. #ifndef _PV_CORE_H_
  24. #define _PV_CORE_H_
  25. #include "../../pvar.h"
  26. #include "../../parser/parse_to.h"
  27. int pv_get_msgid(struct sip_msg *msg, pv_param_t *param,
  28. pv_value_t *res);
  29. int pv_get_udp(struct sip_msg *msg, pv_param_t *param,
  30. pv_value_t *res);
  31. int pv_get_5060(struct sip_msg *msg, pv_param_t *param,
  32. pv_value_t *res);
  33. int pv_get_return_code(struct sip_msg *msg, pv_param_t *param,
  34. pv_value_t *res);
  35. int pv_get_pid(struct sip_msg *msg, pv_param_t *param,
  36. pv_value_t *res);
  37. int pv_get_method(struct sip_msg *msg, pv_param_t *param,
  38. pv_value_t *res);
  39. int pv_get_methodid(struct sip_msg *msg, pv_param_t *param,
  40. pv_value_t *res);
  41. int pv_get_msgtype(struct sip_msg *msg, pv_param_t *param,
  42. pv_value_t *res);
  43. int pv_get_status(struct sip_msg *msg, pv_param_t *param,
  44. pv_value_t *res);
  45. int pv_get_reason(struct sip_msg *msg, pv_param_t *param,
  46. pv_value_t *res);
  47. int pv_get_ruri(struct sip_msg *msg, pv_param_t *param,
  48. pv_value_t *res);
  49. int pv_get_ouri(struct sip_msg *msg, pv_param_t *param,
  50. pv_value_t *res);
  51. int pv_get_xuri_attr(struct sip_msg *msg, struct sip_uri *parsed_uri,
  52. pv_param_t *param, pv_value_t *res);
  53. int pv_get_ruri_attr(struct sip_msg *msg, pv_param_t *param,
  54. pv_value_t *res);
  55. int pv_get_ouri_attr(struct sip_msg *msg, pv_param_t *param,
  56. pv_value_t *res);
  57. int pv_get_errinfo_attr(struct sip_msg *msg, pv_param_t *param,
  58. pv_value_t *res);
  59. int pv_get_contact(struct sip_msg *msg, pv_param_t *param,
  60. pv_value_t *res);
  61. int pv_get_xto_attr(struct sip_msg *msg, pv_param_t *param,
  62. pv_value_t *res, struct to_body *xto, int type);
  63. int pv_get_to_attr(struct sip_msg *msg, pv_param_t *param,
  64. pv_value_t *res);
  65. int pv_get_from_attr(struct sip_msg *msg, pv_param_t *param,
  66. pv_value_t *res);
  67. int pv_get_cseq(struct sip_msg *msg, pv_param_t *param,
  68. pv_value_t *res);
  69. int pv_get_msg_buf(struct sip_msg *msg, pv_param_t *param,
  70. pv_value_t *res);
  71. int pv_get_msg_len(struct sip_msg *msg, pv_param_t *param,
  72. pv_value_t *res);
  73. int pv_get_flags(struct sip_msg *msg, pv_param_t *param,
  74. pv_value_t *res);
  75. int pv_get_hexflags(struct sip_msg *msg, pv_param_t *param,
  76. pv_value_t *res);
  77. int pv_get_flag(struct sip_msg *msg, pv_param_t *param,
  78. pv_value_t *res);
  79. int pv_get_bflags(struct sip_msg *msg, pv_param_t *param,
  80. pv_value_t *res);
  81. int pv_get_hexbflags(struct sip_msg *msg, pv_param_t *param,
  82. pv_value_t *res);
  83. int pv_get_bflag(struct sip_msg *msg, pv_param_t *param,
  84. pv_value_t *res);
  85. int pv_get_sflags(struct sip_msg *msg, pv_param_t *param,
  86. pv_value_t *res);
  87. int pv_get_hexsflags(struct sip_msg *msg, pv_param_t *param,
  88. pv_value_t *res);
  89. int pv_get_sflag(struct sip_msg *msg, pv_param_t *param,
  90. pv_value_t *res);
  91. int pv_get_callid(struct sip_msg *msg, pv_param_t *param,
  92. pv_value_t *res);
  93. int pv_get_srcip(struct sip_msg *msg, pv_param_t *param,
  94. pv_value_t *res);
  95. int pv_get_srcport(struct sip_msg *msg, pv_param_t *param,
  96. pv_value_t *res);
  97. int pv_get_srcaddr_uri(struct sip_msg *msg, pv_param_t *param,
  98. pv_value_t *res);
  99. int pv_get_rcvip(struct sip_msg *msg, pv_param_t *param,
  100. pv_value_t *res);
  101. int pv_get_rcvport(struct sip_msg *msg, pv_param_t *param,
  102. pv_value_t *res);
  103. int pv_get_force_sock(struct sip_msg *msg, pv_param_t *param,
  104. pv_value_t *res);
  105. int pv_get_useragent(struct sip_msg *msg, pv_param_t *param,
  106. pv_value_t *res);
  107. int pv_get_refer_to(struct sip_msg *msg, pv_param_t *param,
  108. pv_value_t *res);
  109. int pv_get_diversion(struct sip_msg *msg, pv_param_t *param,
  110. pv_value_t *res);
  111. int pv_get_rpid(struct sip_msg *msg, pv_param_t *param,
  112. pv_value_t *res);
  113. int pv_get_ppi_attr(struct sip_msg *msg, pv_param_t *param,
  114. pv_value_t *res);
  115. int pv_get_pai(struct sip_msg *msg, pv_param_t *param,
  116. pv_value_t *res);
  117. int pv_get_proto(struct sip_msg *msg, pv_param_t *param,
  118. pv_value_t *res);
  119. int pv_get_dset(struct sip_msg *msg, pv_param_t *param,
  120. pv_value_t *res);
  121. int pv_get_dsturi(struct sip_msg *msg, pv_param_t *param,
  122. pv_value_t *res);
  123. int pv_get_dsturi_attr(struct sip_msg *msg, pv_param_t *param,
  124. pv_value_t *res);
  125. int pv_get_content_type(struct sip_msg *msg, pv_param_t *param,
  126. pv_value_t *res);
  127. int pv_get_content_length(struct sip_msg *msg, pv_param_t *param,
  128. pv_value_t *res);
  129. int pv_get_msg_body(struct sip_msg *msg, pv_param_t *param,
  130. pv_value_t *res);
  131. int pv_get_body_size(struct sip_msg *msg, pv_param_t *param,
  132. pv_value_t *res);
  133. int pv_get_authattr(struct sip_msg *msg, pv_param_t *param,
  134. pv_value_t *res);
  135. int pv_get_acc_username(struct sip_msg *msg, pv_param_t *param,
  136. pv_value_t *res);
  137. int pv_get_branch(struct sip_msg *msg, pv_param_t *param,
  138. pv_value_t *res);
  139. int pv_get_branches(struct sip_msg *msg, pv_param_t *param,
  140. pv_value_t *res);
  141. int pv_get_avp(struct sip_msg *msg, pv_param_t *param, pv_value_t *res);
  142. int pv_get_hdr(struct sip_msg *msg, pv_param_t *param, pv_value_t *res);
  143. int pv_get_scriptvar(struct sip_msg *msg, pv_param_t *param,
  144. pv_value_t *res);
  145. int pv_get_true(struct sip_msg *msg, pv_param_t *param,
  146. pv_value_t *res);
  147. int pv_get_version(struct sip_msg *msg, pv_param_t *param,
  148. pv_value_t *res);
  149. int pv_get_server_id(struct sip_msg *msg, pv_param_t *param,
  150. pv_value_t *res);
  151. int pv_get_cnt(struct sip_msg *msg, pv_param_t *param,
  152. pv_value_t *res);
  153. int pv_get_ruid(struct sip_msg *msg, pv_param_t *param,
  154. pv_value_t *res);
  155. int pv_get_location_ua(struct sip_msg *msg, pv_param_t *param,
  156. pv_value_t *res);
  157. int pv_get_tcpconn_id(struct sip_msg *msg, pv_param_t *param,
  158. pv_value_t *res);
  159. /********* end PV get functions *********/
  160. /********* start PV set functions *********/
  161. int pv_set_avp(struct sip_msg* msg, pv_param_t *param,
  162. int op, pv_value_t *val);
  163. int pv_set_scriptvar(struct sip_msg* msg, pv_param_t *param,
  164. int op, pv_value_t *val);
  165. int pv_set_dsturi(struct sip_msg* msg, pv_param_t *param,
  166. int op, pv_value_t *val);
  167. int pv_set_ruri(struct sip_msg* msg, pv_param_t *param,
  168. int op, pv_value_t *val);
  169. int pv_set_ruri_user(struct sip_msg* msg, pv_param_t *param,
  170. int op, pv_value_t *val);
  171. int pv_set_ruri_host(struct sip_msg* msg, pv_param_t *param,
  172. int op, pv_value_t *val);
  173. int pv_set_ruri_port(struct sip_msg* msg, pv_param_t *param,
  174. int op, pv_value_t *val);
  175. int pv_set_branch(struct sip_msg* msg, pv_param_t *param,
  176. int op, pv_value_t *val);
  177. int pv_set_force_sock(struct sip_msg* msg, pv_param_t *param,
  178. int op, pv_value_t *val);
  179. int pv_set_mflags(struct sip_msg* msg, pv_param_t *param,
  180. int op, pv_value_t *val);
  181. int pv_set_mflag(struct sip_msg* msg, pv_param_t *param,
  182. int op, pv_value_t *val);
  183. int pv_set_sflags(struct sip_msg* msg, pv_param_t *param,
  184. int op, pv_value_t *val);
  185. int pv_set_sflag(struct sip_msg* msg, pv_param_t *param,
  186. int op, pv_value_t *val);
  187. int pv_set_bflags(struct sip_msg* msg, pv_param_t *param,
  188. int op, pv_value_t *val);
  189. int pv_set_bflag(struct sip_msg* msg, pv_param_t *param,
  190. int op, pv_value_t *val);
  191. int pv_set_to_uri(struct sip_msg* msg, pv_param_t *param,
  192. int op, pv_value_t *val);
  193. int pv_set_to_username(struct sip_msg* msg, pv_param_t *param,
  194. int op, pv_value_t *val);
  195. int pv_set_to_domain(struct sip_msg* msg, pv_param_t *param,
  196. int op, pv_value_t *val);
  197. int pv_set_to_display(struct sip_msg* msg, pv_param_t *param,
  198. int op, pv_value_t *val);
  199. int pv_set_from_uri(struct sip_msg* msg, pv_param_t *param,
  200. int op, pv_value_t *val);
  201. int pv_set_from_username(struct sip_msg* msg, pv_param_t *param,
  202. int op, pv_value_t *val);
  203. int pv_set_from_domain(struct sip_msg* msg, pv_param_t *param,
  204. int op, pv_value_t *val);
  205. int pv_set_from_display(struct sip_msg* msg, pv_param_t *param,
  206. int op, pv_value_t *val);
  207. /********* end PV set functions *********/
  208. int pv_parse_scriptvar_name(pv_spec_p sp, str *in);
  209. int pv_parse_hdr_name(pv_spec_p sp, str *in);
  210. int pv_parse_cnt_name(pv_spec_p sp, str *in);
  211. int pv_parse_af_name(pv_spec_p sp, str *in);
  212. int pv_get_af(sip_msg_t *msg, pv_param_t *param,
  213. pv_value_t *res);
  214. int pv_parse_K_name(pv_spec_p sp, str *in);
  215. int pv_get_K(sip_msg_t *msg, pv_param_t *param,
  216. pv_value_t *res);
  217. int pv_parse_flag_param(pv_spec_p sp, str *in);
  218. int pv_parse__s_name(pv_spec_p sp, str *in);
  219. int pv_get__s(sip_msg_t *msg, pv_param_t *param,
  220. pv_value_t *res);
  221. int pv_parse_expires_name(pv_spec_p sp, str *in);
  222. int pv_get_expires(sip_msg_t *msg, pv_param_t *param,
  223. pv_value_t *res);
  224. #endif