Problems with ISDN MWI to phones.

1) The "controlling user number" is always the number of the voice mail box
which is identical with the subscriber number itself.  This number which
is listed in the ISDN phone MWI menu cannot be called back to contact the
voice mail box.  The controlling user number should be made configurable.

2) The MWI indication is not restricted to a user (broadcast facility with
dummy call reference).  A called party IE should be added to address only
the relevant MSN.  (ETSI 300-196 Section 8.3.2.4)

JIRA ABE-2738
JIRA SWP-2846


git-svn-id: https://origsvn.digium.com/svn/libpri/branches/1.4@2262 2fbb986a-6c06-0410-b554-c9c1f0a7f128
This commit is contained in:
Richard Mudgett
2011-04-18 19:43:47 +00:00
parent c794af652e
commit 239f8186ef
4 changed files with 112 additions and 34 deletions

View File

@@ -1621,11 +1621,11 @@ int pri_mwi_deactivate(struct pri *pri, q931_call *c, char *caller, int callerpl
* \brief Send a MWI indication on the specified D channel.
*
* \param ctrl D channel controller.
* \param mailbox Controlling party number (NULL if not present).
* \param mailbox Party receiving notification.
* \param basic_service Basic service enum (-1 if not present).
* \param num_messages NumberOfMessages (-1 if not present).
* \param caller_id Controlling party privided number (NULL if not present).
* \param timestamp Generalized Time format (NULL if not present).
* \param caller_id Party leaving message (NULL if not present).
* \param timestamp When message left. (Generalized Time format, NULL if not present)
* \param message_reference Message reference number (-1 if not present).
* \param message_status Message status: added(0), removed(1).
*
@@ -1636,6 +1636,27 @@ int pri_mwi_indicate(struct pri *ctrl, const struct pri_party_id *mailbox,
int basic_service, int num_messages, const struct pri_party_id *caller_id,
const char *timestamp, int message_reference, int message_status);
/*!
* \brief Send a MWI indication on the specified D channel. (Take two)
*
* \param ctrl D channel controller.
* \param mailbox Party receiving notification.
* \param vm_id Voicemail system number (NULL if not present).
* \param basic_service Basic service enum (-1 if not present).
* \param num_messages NumberOfMessages (-1 if not present).
* \param caller_id Party leaving message (NULL if not present).
* \param timestamp When message left. (Generalized Time format, NULL if not present)
* \param message_reference Message reference number (-1 if not present).
* \param message_status Message status: added(0), removed(1).
*
* \retval 0 on success.
* \retval -1 on error.
*/
int pri_mwi_indicate_v2(struct pri *ctrl, const struct pri_party_id *mailbox,
const struct pri_party_id *vm_id, int basic_service, int num_messages,
const struct pri_party_id *caller_id, const char *timestamp, int message_reference,
int message_status);
/* Set service message support flag */
int pri_set_service_message_support(struct pri *pri, int supportflag);