This module provides offline message storage for Kamailio SIP Server Platform. It stores received messages for an offline user and sends them when the user comes back online. It can also send reminders and auto-expire messages. For each message, the module stores “Request-URI” (“R-URI”) only if it is a complete address of record (“username@hostname”), URI from “To” header, URI from “From” header, incoming time, expiration time, content type and body of the message. If “R-URI” is not an address of record (it might be the contact address for current SIP session) the URI from “To” header will be used as R-URI. When the expiration time is passed, the message is discarded from database. Expiration time is computed based on incoming time and one of the module's parameters. Every time when a user registers with Kamailio, the module is looking in database for offline messages intended for that user. All of them will be sent to contact address provided in REGISTER request and then be deleted. It may happen that the SIP user registering use a SIP User Agent that has no support for MESSAGE requests. In this case the “failure_route” should be used to re-store the undelivered requests. Another functionality provided by the MSILO module is to send messages at a certain time -- the reminder functionality. Using config logic, a received message can be stored and delivered at a time specified while storing with the 'snd_time_avp'.
| Parámetro | Tipo | Descripción |
|---|---|---|
| db_url | string | 3.2. db_table (string) 3.3. sc_mid (string) 3.4. sc_from (string) 3.5. sc_to (string) 3.6. sc_uri_user (string) 3.7. sc_uri_host (string) 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time |
| db_table | string | 3.3. sc_mid (string) 3.4. sc_from (string) 3.5. sc_to (string) 3.6. sc_uri_user (string) 3.7. sc_uri_host (string) 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_ |
| sc_mid | string | 3.4. sc_from (string) 3.5. sc_to (string) 3.6. sc_uri_user (string) 3.7. sc_uri_host (string) 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. s |
| sc_from | string | 3.5. sc_to (string) 3.6. sc_uri_user (string) 3.7. sc_uri_host (string) 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3. |
| sc_to | string | 3.6. sc_uri_user (string) 3.7. sc_uri_host (string) 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs ( |
| sc_uri_user | string | 3.7. sc_uri_host (string) 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs (string) 3.14. sc_callid (s |
| sc_uri_host | string | 3.8. sc_body (string) 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs (string) 3.14. sc_callid (string) 3.15. sc_callid (st |
| sc_body | string | 3.9. sc_ctype (string) 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs (string) 3.14. sc_callid (string) 3.15. sc_callid (string) 3.16. from_addre |
| sc_ctype | string | 3.10. sc_exp_time (string) 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs (string) 3.14. sc_callid (string) 3.15. sc_callid (string) 3.16. from_address (string) 3.17. conta |
| sc_exp_time | string | 3.11. sc_inc_time (string) 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs (string) 3.14. sc_callid (string) 3.15. sc_callid (string) 3.16. from_address (string) 3.17. contact_hdr (string) 3.18. extra |
| sc_inc_time | string | 3.12. sc_snd_time (string) 3.13. sc_stored_hdrs (string) 3.14. sc_callid (string) 3.15. sc_callid (string) 3.16. from_address (string) 3.17. contact_hdr (string) 3.18. extra_hdrs (string) 3.19. offlin |
| sc_snd_time | string | 3.13. sc_stored_hdrs (string) 3.14. sc_callid (string) 3.15. sc_callid (string) 3.16. from_address (string) 3.17. contact_hdr (string) 3.18. extra_hdrs (string) 3.19. offline_message (string) 3.20. co |
| sc_stored_hdrs | string | 3.14. sc_callid (string) 3.15. sc_callid (string) 3.16. from_address (string) 3.17. contact_hdr (string) 3.18. extra_hdrs (string) 3.19. offline_message (string) 3.20. content_type_hdr (string) 3.21. |
| sc_callid | string | 3.15. sc_callid (string) 3.16. from_address (string) 3.17. contact_hdr (string) 3.18. extra_hdrs (string) 3.19. offline_message (string) 3.20. content_type_hdr (string) 3.21. reminder (string) 3.22. o |
| sc_callid | string | 3.16. from_address (string) 3.17. contact_hdr (string) 3.18. extra_hdrs (string) 3.19. offline_message (string) 3.20. content_type_hdr (string) 3.21. reminder (string) 3.22. outbound_proxy (string) 3. |
| from_address | string | 3.17. contact_hdr (string) 3.18. extra_hdrs (string) 3.19. offline_message (string) 3.20. content_type_hdr (string) 3.21. reminder (string) 3.22. outbound_proxy (string) 3.23. expire_time (int) 3.24. |
| contact_hdr | string | 3.18. extra_hdrs (string) 3.19. offline_message (string) 3.20. content_type_hdr (string) 3.21. reminder (string) 3.22. outbound_proxy (string) 3.23. expire_time (int) 3.24. check_time (int) 3.25. send |
| extra_hdrs | string | 3.19. offline_message (string) 3.20. content_type_hdr (string) 3.21. reminder (string) 3.22. outbound_proxy (string) 3.23. expire_time (int) 3.24. check_time (int) 3.25. send_time (int) 3.26. clean_pe |
| offline_message | string | 3.20. content_type_hdr (string) 3.21. reminder (string) 3.22. outbound_proxy (string) 3.23. expire_time (int) 3.24. check_time (int) 3.25. send_time (int) 3.26. clean_period (int) 3.27. use_contact (i |
| content_type_hdr | string | 3.21. reminder (string) 3.22. outbound_proxy (string) 3.23. expire_time (int) 3.24. check_time (int) 3.25. send_time (int) 3.26. clean_period (int) 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.2 |
| reminder | string | 3.22. outbound_proxy (string) 3.23. expire_time (int) 3.24. check_time (int) 3.25. send_time (int) 3.26. clean_period (int) 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. |
| outbound_proxy | string | 3.23. expire_time (int) 3.24. check_time (int) 3.25. send_time (int) 3.26. clean_period (int) 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_c |
| expire_time | int | 3.24. check_time (int) 3.25. send_time (int) 3.26. clean_period (int) 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra |
| check_time | int | 3.25. send_time (int) 3.26. clean_period (int) 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. s |
| send_time | int | 3.26. clean_period (int) 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. skip_notification_flag |
| clean_period | int | 3.27. use_contact (int) 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. skip_notification_flag (int) 3.34. use_mode (int |
| use_contact | int | 3.28. snd_time_avp (str) 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. skip_notification_flag (int) 3.34. use_mode (int) |
| snd_time_avp | str | 3.29. add_date (int) 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. skip_notification_flag (int) 3.34. use_mode (int) |
| add_date | int | 3.30. max_messages (int) 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. skip_notification_flag (int) 3.34. use_mode (int) |
| max_messages | int | 3.31. add_contact (int) 3.32. extra_hdrs_avp (str) 3.33. skip_notification_flag (int) 3.34. use_mode (int) |
4.2. m_store_addrs(owner, srcaddr, dstaddr) 4.3. m_dump([owner])
4.3. m_dump([owner])
4.1. m_store([owner])
The method stores certain parts of the current SIP request (it should be called when the request type is MESSAGE and the destination user is offline or his UA does not support MESSAGE requests). If the user is registered with a UA which does not supp
Similar to m_store(), but instead of getting source user address from From-URI and destination user address from To_URI, this function allows to give them via parameters.
The method sends stored messages for the SIP user that has registered to the contact address in the registration. The method should be called when a REGISTER request is received and the “Expire” header has a value greater than zero.
Copyright © 2003 FhG FOKUS
Copyright © 2009 Juha Heinanen