#include <termios.h>
#include <time.h>
#include "asterisk/config.h"
#include "asterisk/module.h"
#include "asterisk/astobj.h"
#include "asterisk/optional_api.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 | |
| ast_smdi_interface * | ast_smdi_interface_find (const char *iface_name) |
| Find an SMDI interface with the specified name. | |
| void | ast_smdi_interface_unref (struct ast_smdi_interface *iface) |
| void | ast_smdi_md_message_destroy (struct ast_smdi_md_message *msg) |
| ast_smdi_md_message destructor. | |
| ast_smdi_md_message * | ast_smdi_md_message_pop (struct ast_smdi_interface *iface) |
| 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) |
| Put an SMDI message back in the front of the queue. | |
| ast_smdi_md_message * | ast_smdi_md_message_wait (struct ast_smdi_interface *iface, int timeout) |
| Get the next SMDI message from the queue. | |
| void | ast_smdi_mwi_message_destroy (struct ast_smdi_mwi_message *msg) |
| ast_smdi_mwi_message destructor. | |
| ast_smdi_mwi_message * | ast_smdi_mwi_message_pop (struct ast_smdi_interface *iface) |
| 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) |
| Put an SMDI message back in the front of the queue. | |
| ast_smdi_mwi_message * | ast_smdi_mwi_message_wait (struct ast_smdi_interface *iface, int timeout) |
| Get the next SMDI message from the queue. | |
| ast_smdi_mwi_message * | ast_smdi_mwi_message_wait_station (struct ast_smdi_interface *iface, int timeout, const char *station) |
| int | ast_smdi_mwi_set (struct ast_smdi_interface *iface, const char *mailbox) |
| Set the MWI indicator for a mailbox. | |
| int | ast_smdi_mwi_unset (struct ast_smdi_interface *iface, const char *mailbox) |
| Unset the MWI indicator for a mailbox. | |
Russell Bryant <russell@digium.com>
Definition in file smdi.h.
| struct ast_smdi_interface* ast_smdi_interface_find | ( | const char * | iface_name | ) |
Find an SMDI interface with the specified name.
| iface_name | the name/port of the interface to search for. |
Definition at line 623 of file res_smdi.c.
References ASTOBJ_CONTAINER_FIND, and smdi_ifaces.
Referenced by load_config(), and smdi_msg_retrieve_read().
00624 { 00625 return (ASTOBJ_CONTAINER_FIND(&smdi_ifaces, iface_name)); 00626 }
| void ast_smdi_interface_unref | ( | struct ast_smdi_interface * | iface | ) |
Definition at line 255 of file res_smdi.c.
References ast_smdi_interface_destroy(), ASTOBJ_UNREF, and mailbox_mapping::iface.
Referenced by destroy_dahdi_pvt().
00256 { 00257 ASTOBJ_UNREF(iface, ast_smdi_interface_destroy); 00258 }
| void ast_smdi_md_message_destroy | ( | struct ast_smdi_md_message * | msg | ) |
ast_smdi_md_message destructor.
Definition at line 820 of file res_smdi.c.
References ast_free.
Referenced by __analog_ss_thread(), ast_smdi_interface_destroy(), smdi_msg_datastore_destroy(), smdi_msg_retrieve_read(), and unref_msg().
00821 { 00822 ast_free(msg); 00823 }
| struct ast_smdi_md_message* ast_smdi_md_message_pop | ( | struct ast_smdi_interface * | iface | ) |
Get the next SMDI message from the queue.
| iface | a pointer to the interface to use. |
Definition at line 594 of file res_smdi.c.
References SMDI_MD, and smdi_msg_pop().
00595 { 00596 return smdi_msg_pop(iface, SMDI_MD); 00597 }
| 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. | |
| msg | a pointer to the message to use. |
Definition at line 325 of file res_smdi.c.
References ast_cond_broadcast, ast_mutex_lock, ast_mutex_unlock, ASTOBJ_CONTAINER_LINK_START, mailbox_mapping::iface, ast_smdi_interface::md_q, ast_smdi_interface::md_q_cond, and ast_smdi_interface::md_q_lock.
00326 { 00327 ast_mutex_lock(&iface->md_q_lock); 00328 ASTOBJ_CONTAINER_LINK_START(&iface->md_q, md_msg); 00329 ast_cond_broadcast(&iface->md_q_cond); 00330 ast_mutex_unlock(&iface->md_q_lock); 00331 }
| struct ast_smdi_md_message* ast_smdi_md_message_wait | ( | struct ast_smdi_interface * | iface, | |
| int | timeout | |||
| ) |
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 599 of file res_smdi.c.
References SMDI_MD, and smdi_message_wait().
Referenced by __analog_ss_thread(), and analog_ss_thread().
00600 { 00601 struct ast_flags options = { 0 }; 00602 return smdi_message_wait(iface, timeout, SMDI_MD, NULL, options); 00603 }
| void ast_smdi_mwi_message_destroy | ( | struct ast_smdi_mwi_message * | msg | ) |
ast_smdi_mwi_message destructor.
Definition at line 825 of file res_smdi.c.
References ast_free.
Referenced by ast_smdi_interface_destroy(), run_externnotify(), and unref_msg().
00826 { 00827 ast_free(msg); 00828 }
| struct ast_smdi_mwi_message* ast_smdi_mwi_message_pop | ( | struct ast_smdi_interface * | iface | ) |
Get the next SMDI message from the queue.
| iface | a pointer to the interface to use. |
Definition at line 605 of file res_smdi.c.
References smdi_msg_pop(), and SMDI_MWI.
00606 { 00607 return smdi_msg_pop(iface, SMDI_MWI); 00608 }
| 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. | |
| msg | a pointer to the message to use. |
Definition at line 333 of file res_smdi.c.
References ast_cond_broadcast, ast_mutex_lock, ast_mutex_unlock, ASTOBJ_CONTAINER_LINK_START, mailbox_mapping::iface, ast_smdi_interface::mwi_q, ast_smdi_interface::mwi_q_cond, and ast_smdi_interface::mwi_q_lock.
00334 { 00335 ast_mutex_lock(&iface->mwi_q_lock); 00336 ASTOBJ_CONTAINER_LINK_START(&iface->mwi_q, mwi_msg); 00337 ast_cond_broadcast(&iface->mwi_q_cond); 00338 ast_mutex_unlock(&iface->mwi_q_lock); 00339 }
| struct ast_smdi_mwi_message* ast_smdi_mwi_message_wait | ( | struct ast_smdi_interface * | iface, | |
| int | timeout | |||
| ) |
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 610 of file res_smdi.c.
References smdi_message_wait(), and SMDI_MWI.
00611 { 00612 struct ast_flags options = { 0 }; 00613 return smdi_message_wait(iface, timeout, SMDI_MWI, NULL, options); 00614 }
| struct ast_smdi_mwi_message* ast_smdi_mwi_message_wait_station | ( | struct ast_smdi_interface * | iface, | |
| int | timeout, | |||
| const char * | station | |||
| ) |
Definition at line 616 of file res_smdi.c.
References smdi_message_wait(), and SMDI_MWI.
Referenced by run_externnotify().
00618 { 00619 struct ast_flags options = { 0 }; 00620 return smdi_message_wait(iface, timeout, SMDI_MWI, station, options); 00621 }
| 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 315 of file res_smdi.c.
References mailbox_mapping::iface, mailbox_mapping::mailbox, and smdi_toggle_mwi().
Referenced by poll_mailbox(), and run_externnotify().
00316 { 00317 return smdi_toggle_mwi(iface, mailbox, 1); 00318 }
| 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 320 of file res_smdi.c.
References mailbox_mapping::iface, mailbox_mapping::mailbox, and smdi_toggle_mwi().
Referenced by poll_mailbox(), and run_externnotify().
00321 { 00322 return smdi_toggle_mwi(iface, mailbox, 0); 00323 }
1.4.7