#include <termios.h>
#include <time.h>
#include "asterisk/config.h"
#include "asterisk/module.h"
#include "asterisk/astobj.h"


Go to the source code of this file.
Data Structures | |
| struct | ast_smdi_md_message |
| An SMDI message desk message. More... | |
| struct | ast_smdi_mwi_message |
| An SMDI message waiting indicator message. More... | |
Defines | |
| #define | SMDI_MAX_FILENAME_LEN 256 |
| #define | SMDI_MAX_STATION_NUM_LEN 10 |
| #define | SMDI_MESG_DESK_NUM_LEN 3 |
| #define | SMDI_MESG_DESK_TERM_LEN 4 |
| #define | SMDI_MWI_FAIL_CAUSE_LEN 3 |
Functions | |
| struct ast_smdi_interface * | ast_smdi_interface_find (const char *iface_name) attribute_weak |
| Find an SMDI interface with the specified name. | |
| void | ast_smdi_interface_unref (struct ast_smdi_interface *iface) attribute_weak |
| void | ast_smdi_md_message_destroy (struct ast_smdi_md_message *msg) attribute_weak |
| ast_smdi_md_message destructor. | |
| struct ast_smdi_md_message * | ast_smdi_md_message_pop (struct ast_smdi_interface *iface) attribute_weak |
| Get the next SMDI message from the queue. | |
| void | ast_smdi_md_message_putback (struct ast_smdi_interface *iface, struct ast_smdi_md_message *msg) attribute_weak |
| Put an SMDI message back in the front of the queue. | |
| struct ast_smdi_md_message * | ast_smdi_md_message_wait (struct ast_smdi_interface *iface, int timeout) attribute_weak |
| Get the next SMDI message from the queue. | |
| void | ast_smdi_mwi_message_destroy (struct ast_smdi_mwi_message *msg) attribute_weak |
| ast_smdi_mwi_message destructor. | |
| struct ast_smdi_mwi_message * | ast_smdi_mwi_message_pop (struct ast_smdi_interface *iface) attribute_weak |
| Get the next SMDI message from the queue. | |
| void | ast_smdi_mwi_message_putback (struct ast_smdi_interface *iface, struct ast_smdi_mwi_message *msg) attribute_weak |
| Put an SMDI message back in the front of the queue. | |
| struct ast_smdi_mwi_message * | ast_smdi_mwi_message_wait (struct ast_smdi_interface *iface, int timeout) attribute_weak |
| Get the next SMDI message from the queue. | |
| struct ast_smdi_mwi_message * | ast_smdi_mwi_message_wait_station (struct ast_smdi_interface *iface, int timeout, const char *station) attribute_weak |
| int | ast_smdi_mwi_set (struct ast_smdi_interface *iface, const char *mailbox) attribute_weak |
| Set the MWI indicator for a mailbox. | |
| int | ast_smdi_mwi_unset (struct ast_smdi_interface *iface, const char *mailbox) attribute_weak |
| Unset the MWI indicator for a mailbox. | |
Definition in file smdi.h.
| struct ast_smdi_interface* ast_smdi_interface_find | ( | const char * | iface_name | ) | [read] |
Find an SMDI interface with the specified name.
| iface_name | the name/port of the interface to search for. |
Definition at line 529 of file res_smdi.c.
References ASTOBJ_CONTAINER_FIND, and smdi_ifaces.
Referenced by load_config(), mkintf(), and smdi_msg_retrieve_read().
00530 { 00531 return (ASTOBJ_CONTAINER_FIND(&smdi_ifaces, iface_name)); 00532 }
| void ast_smdi_interface_unref | ( | struct ast_smdi_interface * | iface | ) |
Definition at line 161 of file res_smdi.c.
References ast_smdi_interface_destroy(), and ASTOBJ_UNREF.
Referenced by destroy_dahdi_pvt().
00162 { 00163 ASTOBJ_UNREF(iface, ast_smdi_interface_destroy); 00164 }
| void ast_smdi_md_message_destroy | ( | struct ast_smdi_md_message * | msg | ) |
ast_smdi_md_message destructor.
Definition at line 726 of file res_smdi.c.
References ast_free.
Referenced by ast_smdi_interface_destroy(), smdi_msg_datastore_destroy(), smdi_msg_retrieve_read(), smdi_read(), ss_thread(), and unref_msg().
00727 { 00728 ast_free(msg); 00729 }
| struct ast_smdi_md_message* ast_smdi_md_message_pop | ( | struct ast_smdi_interface * | iface | ) | [read] |
Get the next SMDI message from the queue.
| iface | a pointer to the interface to use. |
Definition at line 500 of file res_smdi.c.
References SMDI_MD, and smdi_msg_pop().
00501 { 00502 return smdi_msg_pop(iface, SMDI_MD); 00503 }
| void ast_smdi_md_message_putback | ( | struct ast_smdi_interface * | iface, | |
| struct ast_smdi_md_message * | msg | |||
| ) |
Put an SMDI message back in the front of the queue.
| iface | a pointer to the interface to use. | |
| md_msg | a pointer to the message to use. |
Definition at line 231 of file res_smdi.c.
References ast_cond_broadcast(), ast_mutex_lock(), ast_mutex_unlock(), ASTOBJ_CONTAINER_LINK_START, ast_smdi_interface::md_q, ast_smdi_interface::md_q_cond, and ast_smdi_interface::md_q_lock.
00232 { 00233 ast_mutex_lock(&iface->md_q_lock); 00234 ASTOBJ_CONTAINER_LINK_START(&iface->md_q, md_msg); 00235 ast_cond_broadcast(&iface->md_q_cond); 00236 ast_mutex_unlock(&iface->md_q_lock); 00237 }
| struct ast_smdi_md_message* ast_smdi_md_message_wait | ( | struct ast_smdi_interface * | iface, | |
| int | timeout | |||
| ) | [read] |
Get the next SMDI message from the queue.
| iface | a pointer to the interface to use. | |
| timeout | the time to wait before returning in milliseconds. |
Definition at line 505 of file res_smdi.c.
References SMDI_MD, and smdi_message_wait().
Referenced by ss_thread().
00506 { 00507 struct ast_flags options = { 0 }; 00508 return smdi_message_wait(iface, timeout, SMDI_MD, NULL, options); 00509 }
| void ast_smdi_mwi_message_destroy | ( | struct ast_smdi_mwi_message * | msg | ) |
ast_smdi_mwi_message destructor.
Definition at line 731 of file res_smdi.c.
References ast_free.
Referenced by ast_smdi_interface_destroy(), run_externnotify(), smdi_read(), and unref_msg().
00732 { 00733 ast_free(msg); 00734 }
| struct ast_smdi_mwi_message* ast_smdi_mwi_message_pop | ( | struct ast_smdi_interface * | iface | ) | [read] |
Get the next SMDI message from the queue.
| iface | a pointer to the interface to use. |
Definition at line 511 of file res_smdi.c.
References smdi_msg_pop(), and SMDI_MWI.
00512 { 00513 return smdi_msg_pop(iface, SMDI_MWI); 00514 }
| void ast_smdi_mwi_message_putback | ( | struct ast_smdi_interface * | iface, | |
| struct ast_smdi_mwi_message * | msg | |||
| ) |
Put an SMDI message back in the front of the queue.
| iface | a pointer to the interface to use. | |
| mwi_msg | a pointer to the message to use. |
Definition at line 239 of file res_smdi.c.
References ast_cond_broadcast(), ast_mutex_lock(), ast_mutex_unlock(), ASTOBJ_CONTAINER_LINK_START, ast_smdi_interface::mwi_q, ast_smdi_interface::mwi_q_cond, and ast_smdi_interface::mwi_q_lock.
00240 { 00241 ast_mutex_lock(&iface->mwi_q_lock); 00242 ASTOBJ_CONTAINER_LINK_START(&iface->mwi_q, mwi_msg); 00243 ast_cond_broadcast(&iface->mwi_q_cond); 00244 ast_mutex_unlock(&iface->mwi_q_lock); 00245 }
| struct ast_smdi_mwi_message* ast_smdi_mwi_message_wait | ( | struct ast_smdi_interface * | iface, | |
| int | timeout | |||
| ) | [read] |
Get the next SMDI message from the queue.
| iface | a pointer to the interface to use. | |
| timeout | the time to wait before returning in milliseconds. |
Definition at line 516 of file res_smdi.c.
References smdi_message_wait(), and SMDI_MWI.
00517 { 00518 struct ast_flags options = { 0 }; 00519 return smdi_message_wait(iface, timeout, SMDI_MWI, NULL, options); 00520 }
| struct ast_smdi_mwi_message* ast_smdi_mwi_message_wait_station | ( | struct ast_smdi_interface * | iface, | |
| int | timeout, | |||
| const char * | station | |||
| ) | [read] |
Definition at line 522 of file res_smdi.c.
References smdi_message_wait(), and SMDI_MWI.
Referenced by run_externnotify().
00524 { 00525 struct ast_flags options = { 0 }; 00526 return smdi_message_wait(iface, timeout, SMDI_MWI, station, options); 00527 }
| int ast_smdi_mwi_set | ( | struct ast_smdi_interface * | iface, | |
| const char * | mailbox | |||
| ) |
Set the MWI indicator for a mailbox.
| iface | the interface to use. | |
| mailbox | the mailbox to use. |
Definition at line 221 of file res_smdi.c.
References smdi_toggle_mwi().
Referenced by poll_mailbox(), and run_externnotify().
00222 { 00223 return smdi_toggle_mwi(iface, mailbox, 1); 00224 }
| int ast_smdi_mwi_unset | ( | struct ast_smdi_interface * | iface, | |
| const char * | mailbox | |||
| ) |
Unset the MWI indicator for a mailbox.
| iface | the interface to use. | |
| mailbox | the mailbox to use. |
Definition at line 226 of file res_smdi.c.
References smdi_toggle_mwi().
Referenced by poll_mailbox(), and run_externnotify().
00227 { 00228 return smdi_toggle_mwi(iface, mailbox, 0); 00229 }
1.5.6